Redirigir el puerto local a través del puente a la IP estática compartida de Internet

Tengo mi módem de cable (10.0.0.1) a mi iMac (10.0.0.36) y mi iMac (10.0.0.36) con una IP compartida de Internet (bridge100 192.168.2.1) a mi máquina Debian (192.168.2.34), y todo de eso está funcionando perfectamente. Ahora me gustaría reenviar el puerto 80 desde Internet a través del puente en mi iMac a mi máquina Debian...

10.0.0.1:80 <-> 10.0.0.36:8080 <-> 192.168.2.1:8080 <-> 192.168.2.34:80

Encontré el siguiente enlace , que me lleva a

rdr on bridge100 inet proto tcp from any to 10.0.0.36 port = 8080 -> 192.168.2.34 port 80

Sin embargo, no funciona... Ahora en el enlace van a localhost, y encontré este enlace que dice que puedo necesitar algo como

pass out route-to (bridge100 192.168.2.1) from any to 10.0.0.36

Pero no he podido llegar pfctla analizar la línea anterior correctamente

¿Alguna idea sobre cómo puedo reenviar desde 10.0.0.36:80 <-> 192.168.2.1 <-> 192.168.2.34:80?

Editar: El cable módem/enrutador es un TG852G de Xfinity...

Editar: pfdump

                                        r     scrub-anchor "com.apple/*" all fragment reassemble
                                        r     anchor "com.apple/*" all
                                        r     anchor "usr.home/*" all
                                        n     nat-anchor "com.apple/*" all
                                        n     rdr-anchor "com.apple/*" all
                                        A       com.apple
                                        A       com.apple.internet-sharing
                                        A       usr.home
com.apple                               r     anchor "200.AirDrop/*" all
com.apple                               r     anchor "250.ApplicationFirewall/*" all
com.apple                               A       com.apple/200.AirDrop
com.apple                               A       com.apple/250.ApplicationFirewall
com.apple/200.AirDrop                   A       com.apple/200.AirDrop/Bonjour
com.apple/200.AirDrop/Bonjour           r     pass in on p2p0 inet6 proto udp from any to any port = 5353 keep state
com.apple/200.AirDrop/Bonjour           r     pass out on p2p0 proto tcp all flags any keep state
com.apple.internet-sharing              r     scrub-anchor "base_v4" all fragment reassemble
com.apple.internet-sharing              r     anchor "base_v4" all
com.apple.internet-sharing              n     nat-anchor "base_v4" all
com.apple.internet-sharing              n     rdr-anchor "base_v4" all
com.apple.internet-sharing              A       com.apple.internet-sharing/base_v4
com.apple.internet-sharing/base_v4      r     scrub on en1 all no-df fragment reassemble
com.apple.internet-sharing/base_v4      r     scrub on bridge100 all no-df max-mss 1460 fragment reassemble
com.apple.internet-sharing/base_v4      r     scrub on bridge100 proto esp all no-df fragment reassemble
com.apple.internet-sharing/base_v4      r     pass on en1 all flags any keep state
com.apple.internet-sharing/base_v4      r     pass on en1 proto esp all no state
com.apple.internet-sharing/base_v4      r     pass on bridge100 all flags any keep state rtable 7
com.apple.internet-sharing/base_v4      n     nat on en1 inet from 192.168.2.0/24 to any -> (en1:0) extfilter ei
com.apple.internet-sharing/base_v4      n     no nat on bridge100 inet from 192.168.2.1 to 192.168.2.0/24
com.apple.internet-sharing/base_v4      n     rdr on bridge100 inet proto tcp from 192.168.2.0/24 to any port = 21 -> 127.0.0.1 port 8021
usr.home                                r     anchor "SSH" all
usr.home                                A       usr.home/SSH
usr.home/SSH                            n     rdr on en1 inet proto tcp from any to 10.0.0.36 port = 8080 -> 192.168.2.34 port 80

Respuestas (1)

El comando adecuado para redirigir el tráfico http en su caso es:

echo "rdr on $ext inet proto tcp from any to 10.0.0.36 port = 80 -> 192.168.2.34 port 80" | sudo pfctl -a com.apple/HTTP -f -

Con $ext: la interfaz del iMac conectado al enrutador/módem (probablemente en0 o en1). ¡Se realiza una redirección en la interfaz y el tráfico entrantes! Por lo tanto, rdr on bridge100 ...no tiene ningún sentido aquí: no espera tráfico HTTP con el destino 192.168.2.34 del bridge100 a la red detrás del mismo bridge100.

El comando anterior usa el subancla temporal com.apple/HTTP y, después de reiniciar, desaparecerá.

Si desea habilitarlo permanentemente, cree un ancla separada como se describe en esta respuesta: pfctl: cómo agregar un ancla y activarlo / cargarlo o aquí: Reenvío de puertos en Mac Pro con macOS Sierra .

Solo se requiere A pass out route-to ...si desea redirigir el tráfico saliente desde el iMac.


En teoría, se requiere una ruta estática adicional en el enrutador/módem (TG852G):

route to 192.168.2.0/24 via 10.0.0.36

Aquí (aunque un enrutador diferente) funcionó sin él.

Las soluciones de doble NAT generalmente no se recomiendan en entornos SOHO y sugiero conectar el servidor Debian Linux directamente a uno de los puertos Ethernet del enrutador/módem o un conmutador interconectado.

gracias por su respuesta, desafortunadamente, todavía no funciona, ¿algún consejo que pueda ofrecer para solucionar problemas?
@JeffreyL.Roberts ¿Recibe un mensaje de error? ¿Puede publicar un pfdump en algún lugar, ya sea aquí (agregándolo a su pregunta como anexo) o en pastebin.com?
Haré lo que sugieres y conectaré la caja directamente al módem por cable.