
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.