Portweiterleitung in Ubuntu von einer öffentlichen IP zu einem Client

Portweiterleitung in Ubuntu von einer öffentlichen IP zu einem Client

Auf einem VPS mit installiertem Ubuntu Server 20.04 und OpenVPN muss ich den gesamten Datenverkehr von einem bestimmten Port der öffentlichen IP des VPS an denselben Port eines VPN-Clients weiterleiten.

VPS-IPs:

vps public ip: 1.1.1.1
vps vpn ip: 10.8.0.1

Client-IP:

vpn client ip: 10.8.0.2

Portweiterleitung für den Port 587:

1.1.1.1:587 >> 10.8.0.2:587

Ich habe versucht, die Befehle auf dem VPS (1.1.1.1) auszuführen:

sudo iptables -t nat -A PREROUTING -p tcp --dport 587 -j DNAT --to-destination 10.8.0.2:587
sudo iptables -t nat -A POSTROUTING -p tcp -d 10.8.0.2 --dport 587 -j SNAT --to-source 1.1.1.1

Die Pakete werden jedoch nicht an die IP 10.8.0.2 weitergeleitet.

Irgendeine Idee, wie iptables konfiguriert werden muss, um eine korrekte Portweiterleitung vorzunehmen?

Antwort1

Ich habe diese Lösung gefunden, die wie erwartet funktioniert:

sudo sysctl net.ipv4.ip_forward=1
sudo iptables -t nat -A PREROUTING -p tcp --dport 587 -j DNAT --to-destination 10.8.0.2:587
#exclude "lo" interface, otherwise dns service stop working
sudo iptables -t nat -A POSTROUTING ! -o lo -j MASQUERADE

verwandte Informationen