2 votos

Reenvío de puertos en MacOS Monterey

He cambiado a MacOS Monterey y no soy capaz de conseguir el reenvío de puertos de trabajo para localhost (http y https) utilizando la interfaz de loopback lo0. Estoy usando pf y haciendo exactamente lo que estaba haciendo antes de la actualización del sistema operativo, pero sin éxito:

Básicamente, creo un archivo de anclas pf: /etc/pf.anchors/miorganización

rdr pass log (all) on lo0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 3000
rdr pass log (all) on lo0 inet proto tcp from any to any port 443 -> 127.0.0.1 port 7000

Añada una referencia en /etc/pf.conf :

scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
rdr-anchor "myorganization/*"
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
load anchor "myorganization" from "/etc/pf.anchors/myorganization"

Pruebo los anclajes:

sudo pfctl -vnf /etc/pf.anchors/myorganization

y el resultado tiene buena pinta:

pfctl: Use of -f option, could result in flushing of rules
present in the main ruleset added by the system at startup.
See /etc/pf.conf for further details.

rdr pass log (all) on lo0 inet proto tcp from any to any port = 80 -> 127.0.0.1 port 3000
rdr pass log (all) on lo0 inet proto tcp from any to any port = 443 -> 127.0.0.1 port 7000

Los he habilitado:

sudo pfctl -evf /etc/pf.conf
sudo pfctl -e

He añadido localhost a mi /etc/hosts

127.0.0.1   localhost

Pero cuando entro en https://localhost obtengo ERR_CONNECTION_REFUSED . Si navego a https://localhost:7000 el sitio funciona bien.

Mirando el tráfico tcp usando tcpdump, esperaba ver > 127.0.0.1.7000 pero muestra > 127.0.0.1.443 :

23:48:04.130611 IP6 (flowlabel 0xb0300, hlim 64, next-header TCP (6) payload length: 44) ::1.50441 > ::1.443: Flags [S], seq 3067776972, win 65535, options [mss 16324,nop,wscale 6,nop,nop,TS val 964644834 ecr 0,sackOK,eol], length 0
23:48:04.130738 IP6 (flowlabel 0xa0500, hlim 64, next-header TCP (6) payload length: 44) ::1.50442 > ::1.443: Flags [S], seq 3324498656, win 65535, options [mss 16324,nop,wscale 6,nop,nop,TS val 99035196 ecr 0,sackOK,eol], length 0
23:48:04.130869 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 64)
    127.0.0.1.50443 > 127.0.0.1.443: Flags [S], seq 3800502092, win 65535, options [mss 16344,nop,wscale 6,nop,nop,TS val 2889641981 ecr 0,sackOK,eol], length 0
23:48:04.131018 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 64)
    127.0.0.1.50444 > 127.0.0.1.443: Flags [S], seq 2687597757, win 65535, options [mss 16344,nop,wscale 6,nop,nop,TS val 3887445210 ecr 0,sackOK,eol], length 0
23:48:04.133055 IP6 (flowlabel 0xf0f00, hlim 64, next-header TCP (6) payload length: 44) ::1.50445 > ::1.443: Flags [S], seq 3046833283, win 65535, options [mss 16324,nop,wscale 6,nop,nop,TS val 2977518404 ecr 0,sackOK,eol], length 0
23:48:04.133214 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 64)
    127.0.0.1.50446 > 127.0.0.1.443: Flags [S], seq 3143600809, win 65535, options [mss 16344,nop,wscale 6,nop,nop,TS val 4289031031 ecr 0,sackOK,eol], length 0

3voto

Panos Puntos 18

También estoy intentando aplicar reglas rdr en MacOS Monterey. Curiosamente, mientras que no puedo conseguir reglas rdr en en0 al trabajo, normas sobre lo0 (incluida la regla exacta que has publicado más arriba) funcionan perfectamente.

Re tcpdump: no espere ver el puerto que está reenviando a mostrar de esa manera. Incluso la regla lo0 que me funciona aparece en wireshark con el puerto de destino original como si no estuviera siendo reenviado (incluso cuando de hecho está siendo reenviado).

Si desea ver los registros pf, intente sudo ifconfig pflog0 create y luego sudo tcpdump -v -n -e -ttt -i pflog0 . Ahí, si está funcionando, debería mostrarte algo como

00:00:00.000000 rule 3/0(match): rdr in on lo0: (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 64, bad cksum 0 (->3cb6)!)
    127.0.0.1.64597 > 127.0.0.1.3000: Flags [S], cksum 0xf2cc (incorrect -> 0xb902), seq 1023544220, win 65535, options [mss 16344,nop,wscale6,nop,nop,TS val 1448517328 ecr 0,sackOK,eol], length 0

Me doy cuenta de que esto no es realmente una respuesta, pero no me deja dejar un comentario...

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X