Portweiterleitung zum Backend-Server

Portweiterleitung zum Backend-Server

Ich betreibe auf meinem VPS einen OpenVPN-Server mit einer öffentlichen IP. Es ist ein Backend-Server mit dem VPN verbunden. Dies sind die IPs auf dem VPN: VPS: 10.8.0.1 Backend-Server: 10.8.0.2. eth0 ist die öffentliche Schnittstelle, tun0 ist die VPN-Schnittstelle

Nun möchte ich beispielsweise Port 22 auf dem Backend-Server auf Port 2200 auf dem VPS weiterleiten. Folgendes habe ich auf dem VPS gemacht (basierend auf mehreren Tutorials und bereits gestellten Fragen):

  1. Port 2200 geöffnet
  2. IPv4-Weiterleitung aktiviert
  3. fügen Sie dies in /etc/ufw/before.rules ein (ja, ich verwende ufw und es funktioniert ordnungsgemäß):

    *nat

    :PREROUTING AKZEPTIEREN [0:0]

    :POSTROUTING AKZEPTIEREN [0:0]

    -A PREROUTING -i eth0 -p tcp --dport 2200 -j DNAT --to-destination 10.8.0.2:22

    -A POSTROUTING -d 10.8.0.2 -p tcp --dport 22 -j SNAT --to-source VPS-öffentliche-IP:2200

    -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

  4. ufw neu geladen oder sogar alles neugestartet...

  5. Habe andere Lösungen ausprobiert und einige Zeilen auskommentiert (wie die erste POSTROUTING-Regel oben). Nichts hat - offensichtlich - geholfen.

Die Ausgabe nmap VPS-public-IP -p 2200besagt, dass der Port „gefiltert“ ist, und wenn ich versuche, per SSH auf Port 2200 zuzugreifen, bleibt er einfach hängen und tut nichts, ich erhalte nicht einmal eine Fehlermeldung – das passiert auch, wenn ich versuche, per SSH vom VPS über das VPN auf den Backend-Server zuzugreifen (was normalerweise funktioniert). Was übersehe ich?

Antwort1

Für Leute, die vielleicht noch nach einer Lösung suchen.

Abhängig von Ihrer FORWARD-Richtlinie (vorausgesetzt es handelt sich um DROP)

iptables -t nat -A PREROUTING -p tcp -d xx.xx.xxx.xxx --dport 80 
         -j DNAT --to-destination yyy.yyy.yy.yy:80
iptables -A FORWARD  -p tcp -d yyy.yyy.yy.yy --dport 80 -j ACCEPT
Result:  x:80 --> X --y:80--> Y

iptables -t nat -A POSTROUTING -p tcp -d yyy.yyy.yy.yy --dport 80
         -j SNAT --to-source xx.xx.xxx.xxx
Result:  x:80 --> X <--y:80--> Y

iptables -A FORWARD  -p tcp -s yyy.yyy.yy.yy --sport 80 -j ACCEPT
Result:  x:80 <--> X <--y:80--> Y

Möglicherweise fügen Sie für lokal initiierte Verbindungen auch diese Regel hinzu: x --> x:80

iptables -t nat -A OUTPUT -p tcp --dport 80 -d xx.xx.xxx.xxx
         -j DNAT --to-destination yyy.yyy.yy.yy:80  
Result:       
  x:80 ->- X <--y:80--> Y
     |_____V

verwandte Informationen