Iptables leitet den gesamten internen Datenverkehr weiter

Iptables leitet den gesamten internen Datenverkehr weiter

Ich habe eine VM mit einer internen Schnittstelle, die mit dem lokalen LAN verbunden ist. Die VM hat eine funktionierende OpenVPN-Verbindung zu einer anderen Site. Wie leite ich den gesamten eingehenden Datenverkehr auf der lokalen Schnittstelle mit iptables durch den VPN-Tunnel weiter? Ich verwende eine Ubuntu-Distribution.

Antwort1

Um mit der bestehenden Verbindung ein Site-to-Site-VPN erstellen zu können, benötigen Sie Routing-Pfade über das VPN. Nehmen wir an, Sie befinden sich an Site Nr. 1 (alles ist symmetrisch, unabhängig davon, wer als OpenVPN-Server fungiert).

  1. Zunächst müssen Sie sicherstellen, dass die VM mit der VPN-Verbindung (die wir "VPN#1" nennen können) das Remote-Subnetz erreichen kann. Dies geschieht durch das Hinzufügen einer Route mithilfe der OpenVPN-Konfiguration
    • Wenn "VPN#1" der OpenVPN-Client ist, können Sie ihn entweder mit einem Schlüsselwort im Server hinzufügen pushoder lokal mitroute
    • Wenn "VPN#1" der OpenVPN-Server ist, können Sie ihn mit hinzufügen routeoder mit einem externen Tool wieip
  2. Anschließend müssen Sie sicherstellen, dass sowohl bei „VPN#1“ als auch beim Remote-Endpunkt die IP-Weiterleitung aktiviert ist (Hinzufügen net.ipv4.ip_forward=1und /etc/sysctl.conferneutes Laden mit sysctl -p).
  3. Wenn VPN#1 das Standard-Gateway ist, ist es erledigt. Wenn nicht, müssen Sie entweder eine statische Route für das Remote-LAN im Standard-Gateway hinzufügen oder Sie können auf jedem Host Ihres LANs eine statische Route hinzufügen.
  4. Überprüfen Sie die Firewall in VPN#1: Sie sollte so konfiguriert sein, dass sie Datenverkehr zwischen LAN- und VPN-Schnittstellen zulässt (siehe FORWARDKette in filterder Tabelle mit iptables).

Wenn Sie dies auf der Remote-Seite wiederholen, sollte alles funktionieren. Verwenden Sie pingund , tracerouteum etwaige Probleme zu debuggen.

Antwort2

OK, jetzt funktioniert es. Ich kann den Server auf der anderen Seite von meinem lokalen LAN aus per RDP erreichen. Ich kann SMB nicht verwenden, um auf die administrativen Freigaben auf den Windows-Servern auf der anderen Seite zuzugreifen. Dies sind die IP-Tabellenregeln, die ich verwendet habe:

/sbin/iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE /sbin/iptables -A FORWARD -i tun0 -o ens160 -m state --state RELATED,ESTABLISHED -j ACCEPT /sbin/iptables -A FORWARD -i ens160 -o tun0 -j ACCEPT

verwandte Informationen