iptables DNAT na porta smb falhou, acertos em PREROUTING, mas não em POSTROUTING

iptables DNAT na porta smb falhou, acertos em PREROUTING, mas não em POSTROUTING

Estou executando o Ubuntu 20.04. Ele funciona bem encaminhando solicitações HTTP direcionadas à porta 8080 da máquina local para a porta 80 de outra máquina. Mas quando defini regras de iptables para encaminhar solicitações SMB direcionadas a uma máquina local para outra máquina executando um servidor SMB, ela falhou. Existem apenas hits em PREROUTING, mas não em POSTROUTING. Os comandos do iptables são os seguintes:

sudo iptables -t nat -A PREROUTING -p tcp --match multiport --dports 445,137,138,139 -j DNAT --to-destination 192.168.10.162
sudo iptables -t nat -A POSTROUTING -d 192.168.10.162 -j MASQUERADE

Depois de executar $sudo iptables -t nat -L -v, ele mostra o seguinte:

Chain PREROUTING (policy ACCEPT 3981 packets, 847K bytes)
 pkts bytes target     prot opt in     out     source               destination
   60  3156 DNAT       tcp  --  any    any     anywhere             anywhere             multiport dports netbios-ns,netbios-dgm,netbios-ssn,microsoft-ds to:192.168.10.162

Chain INPUT (policy ACCEPT 604 packets, 86773 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 57 packets, 4781 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 57 packets, 4781 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 MASQUERADE  all  --  any    any     anywhere             192.168.10.162

O Ubuntu 20.04 se conecta a um switch que se conecta a outro switch ao qual a outra máquina Linux se conecta. Eu uso um PC Win10 conectado ao mesmo switch que o Ubuntu 20.04 faz para visitar o Ubuntu 20.04.

Responder1

Lamento dizer a todos vocês que cometi um erro de baixo nível. Esqueci de habilitar o IPFORWARD na máquina Linux. Depois que eu corro

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

Funciona.

informação relacionada