iptables DNAT auf SMB-Port ist fehlgeschlagen, Treffer bei PREROUTING, aber keine bei POSTROUTING

iptables DNAT auf SMB-Port ist fehlgeschlagen, Treffer bei PREROUTING, aber keine bei POSTROUTING

Ich verwende Ubuntu 20.04. Es funktioniert gut, indem es HTTP-Anfragen, die an Port 8080 des lokalen Computers gerichtet sind, an Port 80 eines anderen Computers weiterleitet. Aber als ich iptables-Regeln so einstellte, dass SMB-Anfragen, die an einen lokalen Computer gerichtet sind, an einen anderen Computer weitergeleitet werden, auf dem ein SMB-Server läuft, schlug dies fehl. Es gibt nur Treffer bei PREROUTING, aber keine bei POSTROUTING. Die iptables-Befehle lauten wie folgt:

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

Nach dem Ausführen von $sudo iptables -t nat -L -v wird Folgendes angezeigt:

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

Ubuntu 20.04 stellt eine Verbindung zu einem Switch her, der wiederum eine Verbindung zu einem anderen Switch herstellt, mit dem wiederum die andere Linux-Maschine verbunden ist. Ich verwende einen Win10-PC, der mit demselben Switch wie Ubuntu 20.04 verbunden ist, um Ubuntu 20.04 aufzurufen.

Antwort1

Es tut mir leid, Ihnen allen mitteilen zu müssen, dass mir ein Fehler auf niedriger Ebene unterlaufen ist. Ich habe vergessen, IPFORWARD auf der Linux-Maschine zu aktivieren. Nachdem ich

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

Es klappt.

verwandte Informationen