Estou tentando retransmitir conexões SSH de hosts da LAN para hosts além da VPN. Apenas um host de roteador na LAN tem conexão VPN para ser reutilizado por outros hosts na LAN.
Abaixo está a configuração do pfctl no roteador.
extif = "utun0"
intif = "en1"
set skip on lo0
set ruleset-optimization none
set optimization normal
set timeout { tcp.established 360, tcp.closing 60 }
nat log on $extif from $intif:network to any -> ($extif)
pass in log on $extif from any to any
pass out log on $extif from any to any
pass in log on $intif from any to any
pass out log on $intif from any to any
interface utun0 (tem endereço IP 10.66.20.3) acima é interface voltada para VPN.
O endereço IP do host da LAN é 192.168.1.34.
O host além da VPN em que estou tentando fazer o SSH tem o endereço IP 172.19.13.63.
O problema é que o pfctl do roteador realiza NAT apenas para o pacote SYN, mas não retorna a resposta SYN ACK de 172.19.13.63 ao host da LAN.
Nesse meio tempo, roteador com êxito NATs ICMP pacotes de hosts da LAN, ou seja, 192.168.1.34 pings 172.19.13.63 e vejo no tcpdump que NAT é realizada pelo roteador.
Abaixo está o resultado do sudo pfctl -ss durante quando eu estou no host SSH (172.19.13.63:22) do host da LAN (192.168.1.34): TODOS tcp 192.168.1.34:50298 - > 10.66.20.3:37149 - > 172.19.13.63:22 ESTABELECIDO: SYN_SENT
O tcpdump também confirma que o SYN ACK não é redirecionado para o host da LAN.
O que deve ser alterado no arquivo de configuração pfctl para fazer o NAT funcionar corretamente para conexões SSH para hosts além da VPN?
Abaixo está uma captura de tela do instantâneo wireshark na interface utun0:
AbaixoestáoestadoempfctlduranteatentativadeconexãoSSH:
$sudopfctl-sall|grep"\.34" | grep tcp
ALL tcp 172.19.13.63:22 <- 192.168.1.34:51856 CLOSED:SYN_SENT
ALL tcp 192.168.1.34:51856 -> 10.66.20.3:42525 -> 172.19.13.63:22 ESTABLISHED:SYN_SENT