zum Aufbau eines kleinen "Helpdesks" habe ich auf meinem Notebook einen VNC-Viewer im Listen-Modus laufen. Da ich mit dem Notebook an unterschiedlichen Orten hinter NAT-Routern hänge, aber ständig mit meinem OpenVPN verbunden bin, habe ich mir gedacht, dass man das mit DNAT von meinem Server aus lösen könnte. Ich habe also auf meinem Server (Firewall) zwei Zonen, trans für das Internet und ovpn für das VPN. Die Interfaces sind eth1 und tap0.
In der Shorewall habe ich in /etc/shorewall/interfaces:
Code: Alles auswählen
#ZONE INTERFACE BROADCAST OPTIONS
trans eth1 detect nosmurfs,tcpflags,blacklist,routeback
ovpn tap0 detect nosmurfs,tcpflags,routeback
Das OpenVPN ist sogar (per Eintrag in /etc/shorewall/masq) hinter dem NAT gemasqueradet:
Code: Alles auswählen
#INTERFACE SUBNET ADDRESS PROTO PORT(S) IPSEC
eth1 tap0
Code: Alles auswählen
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/
# PORT PORT(S) DEST LIMIT GROUP
DNAT trans ovpn:192.168.136.51 tcp 5500
Meine Vermutung ist, dass das daran liegt, dass die Antwort-Pakete vom Notebook über eine andere Route und mit anderer Absender-IP zurück kommen. Ich dachte aber, dass das mit der routeback-Option verhindert würde.
Die relevanten Auszüge aus iptables -L -t nat auf der Firewall/OpenVPN-Server zeigen ein eigentlich korrektes Setup:
Code: Alles auswählen
Chain trans_dnat (1 references)Chain PREROUTING (policy ACCEPT)
target prot opt source destination
trans_dnat all -- anywhere anywhere
target prot opt source destination
DNAT tcp -- anywhere anywhere tcp dpt:5500 to:192.168.136.51
Grüße,
Nik