Teilen Sie die VPN-Verbindung über Ethernet

608
Wrykoulaka

Ich versuche, einen alten PC mit Linux (CentOS) als Zugangspunkt zu einem VPN einzurichten, das ich in einem anderen Haus habe. Ich habe zwei Ethernet-Schnittstellen, also möchte ich eine verwenden, um über meinen Router eine Verbindung zum Internet herzustellen, eine Verbindung zu meinem VPN herzustellen und diese VPN-Verbindung dann über mein zweites Ethernet zu teilen. Die IP-Adresse des zweiten Geräts sollte per DHCP zugewiesen werden.

Ich habe viele Tutorials / Beiträge gelesen und konnte meine normale Internetverbindung mit meinem VPN-Netzwerk teilen. Sobald ich jedoch das VPN starte, unabhängig von meinen iptables / routing-Regeln, stecke ich ohne Internet in meinem zweiten Gerät fest. Ich weiß nicht, was ich falsch mache. Könnte jemand Hilfe geben?

Hier sind meine Konfigurationen: - enp2s0: Dies ist mit meinem Hauptrouter verbunden. - enp0s29f7u1: wird mit einem zweiten Gerät verbunden

enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether bc:ee:7b:19:89:68 brd ff:ff:ff:ff:ff:ff inet 192.168.1.26/24 brd 192.168.1.255 scope global noprefixroute enp2s0 valid_lft forever preferred_lft forever inet6 fe80::c25c:2c9d:4777:79fc/64 scope link noprefixroute valid_lft forever preferred_lft forever enp0s29f7u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast stat e UP group default qlen 1000 link/ether 00:e0:4c:69:35:d0 brd ff:ff:ff:ff:ff:ff inet 10.8.0.5/24 brd 10.8.0.255 scope global noprefixroute enp0s29f7u1 valid_lft forever preferred_lft forever inet6 fe80::2e0:4cff:fe69:35d0/64 scope link valid_lft forever preferred_lft forever 

Sobald ich mich mit meinem VPN verbunden habe, gibt es eine andere Schnittstelle, tun0:

tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100 link/none inet 10.8.0.2/24 brd 10.8.0.255 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::2d75:64c0:6c21:c9d9/64 scope link flags 800 valid_lft forever preferred_lft forever 

Meine /etc/dhcp/dhcpd.conf hat die folgenden Optionen:

subnet 10.8.0.0 netmask 255.255.255.0 { range 10.8.0.10 10.8.0.15; option routers 10.8.0.5; option domain-name-servers 8.8.8.8, 8.8.4.4; } 

Das zweite Gerät erhält 10.8.0.11 als IP, also denke ich, dass es gut funktioniert.

Ich habe die folgenden Regeln mit iptables hinzugefügt:

iptables -t nat -I POSTROUTING 1 -o tun0 -j MASQUERADE iptables -I FORWARD 1 -i tun0 -o enp0s29f7u1 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -I FORWARD 1 -i enp0s29f7u1 -o tun0 -j ACCEPT 

Zusätzliche Information:

  • Ich habe die IP4-Weiterleitung aktiviert: /sbin/sysctl net.ipv4.ip_forwardkehrt zurück net.ipv4.ip_forward = 1

  • Wie erwartet kann ich von meinem VPN-Server in einem anderen Zuhause auf das Internet mit der IP zugreifen. Ich kann dies jedoch nur von dem Computer aus tun, auf dem ich diese Konfiguration eingerichtet habe, nicht von dem angeschlossenen Gerät aus enp0s29f7u1.

  • Dies sind die Routen vor / nach dem Start des VPN.

VOR

ip route default via 192.168.1.1 dev enp2s0 proto static metric 101 10.8.0.0/24 dev enp0s29f7u1 proto kernel scope link src 10.8.0.5 metric 100 

NACH DEM

IP-Route

0.0.0.0/1 via 10.8.0.1 dev tun0 default via 192.168.1.1 dev enp2s0 proto static metric 101 10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.2 10.8.0.0/24 dev enp0s29f7u1 proto kernel scope link src 10.8.0.5 metric 100 xx.xx.xx.xx via 192.168.1.1 dev enp2s0 128.0.0.0/1 via 10.8.0.1 dev tun0 192.168.1.0/24 dev enp2s0 proto kernel scope link src 192.168.1.26 metric 101  192.168.1.0/24 dev enp2s0 proto kernel scope link src 192.168.1.26 metric 101 

Ich habe meine öffentliche IP-Adresse des VPN-Servers durch xx.xx.xx.xx ersetzt

Was fehlt mir hier?

EDIT: Aus Verzweiflung versuchte ich, Schnittstellen zu überbrücken, auch wenn ich wusste, dass dies keine gute Idee war. Es hat auch nicht funktioniert.

1

1 Antwort auf die Frage

0
Andy

Sie haben viele Dinge richtig gemacht, also herzlichen Glückwunsch, dass Sie so weit kommen. Ein paar Dinge sehen für mich falsch aus.

Ihre tun0-Standardroute ist falsch: 0.0.0.0/1 gibt nur die Hälfte des Internets an tun0 ab. Du brauchst die andere Hälfte. Versuchen Sie, 128.0.0.0/1 hinzuzufügen. Verwenden Sie alternativ "default" oder 0.0.0.0/0, um beide Hälften gleichzeitig zu erhalten. Stellen Sie jedoch sicher, dass Sie eine niedrigere Metrik verwenden, die "default via 192.168.1.1" ist. Sehen Sie sich danach meinen letzten Absatz an. Sie können ein anderes Problem einführen.

Eine andere Sache, die mich stört, ist die Verwendung von 10.8.0.0/24 sowohl für das Tun-Subnetz als auch für das LAN-Subnetz. Sie möchten wahrscheinlich, dass es sich um unterschiedliche Subnetze handelt. Dies manifestiert sich auch als zwei doppelte Routen in Ihrer Routingtabelle für 10.8.0.0/24. Versuchen Sie, enp0s29f7u1 auf das nächste Subnetz (10.8.1.5/24) zu setzen, und machen Sie dasselbe mit Ihrem dhcp-Server.

subnet 10.8.1.0 netmask 255.255.255.0 { range 10.8.1.10 10.8.1.15; option routers 10.8.1.5; option domain-name-servers 8.8.8.8, 8.8.4.4; } 

Ansonsten sieht die Konfiguration gut aus. Es gibt eine weitere Überprüfung der Gesundheit. Stellen Sie sicher, dass Sie die VPN-Verbindung zum Internet nicht verschlucken. Sie benötigen immer noch eine Route, die Vorrang vor 0.0.0.0/0 hat, damit Tun nicht versucht, sich selbst zu verwenden, um zum VPN-Server zu gelangen. Sie müssen eine Route in Ihrer Tabelle haben, die genauer als 0.0.0.0/0 ist. Ich glaube, Sie haben diese Route bereits, aber es ist ein häufiger Fehler.

xx.xx.xx.xx via 192.168.1.1 dev enp2s0

Um dies zu überprüfen, vergewissern Sie sich, dass Ihre Empfangszähler auf der Tun-Schnittstelle nach dem Erstellen des Tunnels erhöht werden .

Vielen Dank @Andy, es hat wie ein Zauber funktioniert :) Wrykoulaka vor 5 Jahren 0