ich habe ein Problem: Ich kann von außerhalb meines LAN keine Verbindung über Remotedesktop zu einem Windows-Computer herstellen.
Ich verwende Ubuntu 14.04, iptables.
External Inferface: eth1
LAN Intergace: eth2
Windows IP: 192.168.1.100
Serverlinux LAN IP: 192.168.1.2
Serverlinux External IP: 186.xxx.xxx.xxx
Aktuelle iptables-Konfiguration:
iptables-restore <<-EOF
*nat
-A POSTROUTING -o "$EXTIF" -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i "$INTIF" -o "$EXTIF" -j ACCEPT
-A FORWARD -j LOG
COMMIT
EOF
ich habe viele Beispiele ausprobiert, aber ohne Erfolg.
Beispiel 1:
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.1.100
iptables -t nat -A POSTROUTING -s 192.168.1.100 -p tcp --sport 3389 -j SNAT --to 192.168.1.2
iptables -A FORWARD -p tcp --dport 3389 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Beispiel 2:
iptables -A INPUT -i eth1 -p tcp --destination-port 3389 -j ACCEPT
iptables -t nat -I PREROUTING -p tcp --dport 3389 -j DNAT 192.168.1.100:3389
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Beispiel 3: Fehler (iptables: Keine Kette/Ziel/Übereinstimmung mit diesem Namen.)
iptables -A PREROUTING -d 186.xxx.xxx.xxx -p tcp -m tcp --dport 3386 -j DNAT --to-destination 192.168.1.100:3399
iptables -A FORWARD -i eth1 -o eth2 -d 192.168.1.100 -p tcp -m tcp --dport 3399 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
Was vermisse ich??
Dank im Voraus.
Antwort1
Folgendes leitet Port 1337 der externen IP-Adresse an Port 3389 der internen IP-Adresse weiter:
iptables -t nat -I PREROUTING -d 186.xxx.xxx.xxx -p tcp --dport 1337 -j DNAT --to-destination 192.168.1.100:3389
iptables -I FORWARD -o eth2 -d 192.168.1.100 -p tcp --dport 3389 -j ACCEPT
Die erste Regel (in der NAT-Tabelle, die Sie in Ihrem dritten Beispiel übersehen haben) schreibt die Zieladresse des Pakets beim Eintreffen neu. Die zweite Regel erlaubt die Weiterleitung des neu geschriebenen Pakets.
Ich habe alle Verweise auf die eingehende Schnittstelle entfernt, da ich davon ausgehe, dass Sie möchten, dass sie auch funktioniert, wenn Sie sich hinter dem Router befinden (nur aus Gründen der Konsistenz).
Antwort2
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 1337 -j DNAT --to-destination 192.168.1.100:3389
iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 3389 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT