Sie müssen Richtlinienrouting implementieren, d. H. Zwei Routingtabellen. Wir werden die main
Routing-Tabelle nicht berühren, die bereits korrekt eingerichtet ist. Wenn Sie die IPv4-Weiterleitung aktiviert haben, werden die Pakete von eth1 automatisch durch Ihren OpenVPN übertragen.
Zunächst müssen wir lernen, wie Ihr OpenVP die Routing-Tabelle aufbaut. Um dies zu beenden, starten Sie den OpenVPN-Client von der Befehlszeile aus:
sudo openvpn --config YourConfigFile.conf
(oder YourConfigFile.ovpn
was auch immer Sie verwenden). In den letzten Zeilen erfahren Sie, wie die neue Routing-Tabelle eingerichtet wird. In meinem Fall heißt es beispielsweise:
Di Jul 14 18:58:07 2015 / sbin / ip route add My.Server.Public.IPaddress / 32 über 192.168.105.1
Di Jul 14 18:58:07 2015 / sbin / ip route add 0.0.0.0/1 über 10.8.73.5
Di Jul 14 18:58:07 2015 / sbin / ip route add 128.0.0.0/1 über 10.8.73.5
Di Jul 14 18:58:07 2015 / sbin / ip route add 192.168.73.0/24 über 10.8.73.5
Di Jul 14 18:58:07 2015 / sbin / ip route add 10.8.73.0/24 über 10.8.73.5
Di Jul 14 18:58:07 2015 Initialisierungssequenz abgeschlossen
Die oben genannten Routen sollten in eine ausführbare Datei eingefügt werden, mit der Ausnahme, dass einige dieser Nummern für diese bestimmte Instanz des VPN typisch sind. OpenVPN liefert jedoch nützliche Umgebungsvariablen, die die Werte der oben verwendeten Schnittstellen enthalten und die sehr nützlich sind: In diesem speziellen Fall sind sie es
route_net_gateway -> 192.168.105.1 route_vpn_gateway -> 10.8.73.5
Die Zeilen, die Sie einer Datei hinzufügen müssen (nennen wir sie /etc/openvpn/route_up.sh
), sind also:
/sbin/ip route add Your.OpenVPN.Server.IPAddress/32 via $route_net_gateway table vpn /sbin/ip route add 0.0.0.0/1 via $route_vpn_gateway table vpn /sbin/ip route add 128.0.0.0/1 via $route_vpn_gateway table vpn /sbin/ip route add Remote.LAN.Net/24 via $route_vpn_gateway table vpn /sbin/ip route add 172.18.2.0/24 via $route_vpn_gateway table vpn
Vergessen Sie nicht, oben die IP-Adresse Ihres Remote-Servers und des lokalen LANs zu ersetzen, wenn Sie ihn verwenden . Wenn Sie nur OpenVPN verwenden, um eine IP-Adresse Ihres Servers zu erhalten, benötigen Sie die neben der letzten Anweisung überhaupt nicht. Denken Sie daran, die Datei ausführbar zu machen chmod 700 route_up.sh
.
Außerdem müssen Sie eine neue /etc/openvpn/route_down.sh
, ebenfalls ausführbare Datei erstellen, die exakt die gleichen Routen herunterreißt (ändern Sie einfach add
zu del
).
Jetzt müssen wir Ihrem OpenVPN mitteilen, dass die Routen nicht implementiert werden müssen, da dies manuell erfolgen muss. Fügen Sie in Ihrer YourConfigFile.conf die folgenden Zeilen hinzu:
route-nopull up /etc/openvpn/route_up.sh down /etc/openvpn/route_down.sh
Zuletzt müssen wir die unterschiedliche Routing-Tabelle für das VPN einrichten. Fügen Sie eine neue Routing-Tabelle hinzu, nennen wir sie vpn
:
echo 200 vpn >> /etc/iproute2/rt_tables
Jetzt führen wir eine Regel ein:
ip rule add from 10.0.0.0/24 table vpn
wo ich davon ausgegangen bin, dass das netzwerk hinter eth1
ist 10.0.0.0/24
, wenn es nicht bitte entsprechend geändert wird.
Als letztes müssen Sie eine MASQUERADE iptables-Regel einführen:
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Das ist es.