Hallo zusammen,
ich bin seit ca. einem Jahr begeisterter Ubuntu Nutzer und habe nun ein Problem bei dem ich nicht mehr weiter komme. Ich hoffe ich kann hier im Forum Hilfe finden 😉
Ausgangssituation: Ich möchte gerne einen Ubuntu Server zu Hause betreiben. Das Problem ist leider, dass mein Glasfaser Provider nur DS-Lite Anschlüsse zur verfügung stellt. Da ich auf eine feste IPv4 Addresse nicht verzichten möchte, habe ich mir für kleines Geld einen Root-Server mit fester v4 und v6 Addresse gemietet.
Mein Vorhaben ist sozusagen die IPv4 Addresse des Root-Servers an meinen Heim-Server per VPN Tunnel anzubinden. D.h. der Traffic der am Root-Server eintrifft wird erst einmal völlig ungefiltert durch den VPN Tunnel an meinen Heim-Server weitergeleitet. Umgekehrt soll jede IPv4 Verbindung die mein Heim-Server aufbaut ebenfalls durch den VPN Tunnel geleitet werden.
Dazu habe ich bereits einen OpenVPN Server auf IPv6 Basis auf meinem Heim-Server und einen OpenVPN Client auf dem Root-Server eingerichtet. Das funktioniert soweit. Mit entsprechenden Einträgen in IPTables konnte ich auch realisieren, dass jeder Traffic, der am Root-Server eintrifft, getunnelt wird.
Seit Tagen versuche ich verzweifelt in die umgekehrte Richtung zu Tunneln. Dazu habe ich versucht dem Heim-Server beizubringen, dass er den OpenVPN Client als Gateway nehmen soll. Leider finde ich im Netz nur Anleitungen wie man den OpenVPN Server als Gateway verwenden kann, nicht jedoch einen OpenVPN Client. Ein wechseln des Servers/Clients würde ich nur ungern machen, da ich auch mit anderen Geräten auf mein Heimnetzwerk zugreifen möchte.
Hier ein Überblick über meine config:
Heim-Server:
root@Homeserver:~# ifconfig em1 Link encap:Ethernet Hardware Adresse 00:26:xx:xx:xx:xx inet Adresse:192.168.2.2 Bcast:192.168.2.255 Maske:255.255.255.0 inet6-Adresse: 2a00:xxxx:xxxx:xxxx:xxxx:b9ff:fe35:aad1/64 Gültigkeitsbereich:Global inet6-Adresse: fe80::226:b9ff:fe35:aad1/64 Gültigkeitsbereich:Verbindung UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1 RX-Pakete:1464 Fehler:0 Verloren:0 Ãberläufe:0 Fenster:0 TX-Pakete:1122 Fehler:0 Verloren:0 Ãberläufe:0 Träger:0 Kollisionen:0 Sendewarteschlangenlänge:1000 RX-Bytes:256371 (256.3 KB) TX-Bytes:156573 (156.5 KB) lo Link encap:Lokale Schleife inet Adresse:127.0.0.1 Maske:255.0.0.0 inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine UP LOOPBACK RUNNING MTU:65536 Metrik:1 RX-Pakete:98 Fehler:0 Verloren:0 Ãberläufe:0 Fenster:0 TX-Pakete:98 Fehler:0 Verloren:0 Ãberläufe:0 Träger:0 Kollisionen:0 Sendewarteschlangenlänge:0 RX-Bytes:7670 (7.6 KB) TX-Bytes:7670 (7.6 KB) tun0 Link encap:UNSPEC Hardware Adresse 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet Adresse:10.8.0.1 P-z-P:10.8.0.2 Maske:255.255.255.255 UP PUNKTZUPUNKT RUNNING NOARP MULTICAST MTU:1500 Metrik:1 RX-Pakete:265 Fehler:0 Verloren:0 Ãberläufe:0 Fenster:0 TX-Pakete:232 Fehler:0 Verloren:0 Ãberläufe:0 Träger:0 Kollisionen:0 Sendewarteschlangenlänge:100 RX-Bytes:20157 (20.1 KB) TX-Bytes:19245 (19.2 KB) root@Homeserver:~# route Kernel-IP-Routentabelle Ziel Router Genmask Flags Metric Ref Use Iface default 192.168.2.1 0.0.0.0 UG 0 0 0 em1 10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 10.8.0.2 * 255.255.255.255 UH 0 0 0 tun0 192.168.2.0 * 255.255.255.0 U 0 0 0 em1
Root-Server:
root@vps104494:~# ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:592 (592.0 B) TX bytes:592 (592.0 B) tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.10 P-t-P:10.8.0.9 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:315 errors:0 dropped:0 overruns:0 frame:0 TX packets:364 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:25740 (25.7 KB) TX bytes:27664 (27.6 KB) venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:127.0.0.2 P-t-P:127.0.0.2 Bcast:0.0.0.0 Mask:255.255.255.255 inet6 addr: 2001:xxxx:xxxx:xxxx::xxxx/56 Scope:Global UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 RX packets:1049 errors:0 dropped:0 overruns:0 frame:0 TX packets:989 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:165831 (165.8 KB) TX bytes:119203 (119.2 KB) venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:92.xxx.xxx.xxx P-t-P:92.xxx.xxx.xxx Bcast:92.xxx.xxx.255 Mask:255.255.255.0 UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 root@vps104494:~# iptables -t nat -L Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT all -- anywhere 92.xxx.xxx.xxx to:10.8.0.1 Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- anywhere anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination
Was ich bereits probiert habe: Ich habe die Default Route meines Heim-Servers durch eine Route über den Root-Server ersetzt. Die Routing Tabelle sah anschließend wie folgt aus:
Ziel Router Genmask Flags Metric Ref Use Iface default 10.8.0.10 0.0.0.0 UG 0 0 0 tun0 10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 10.8.0.2 * 255.255.255.255 UH 0 0 0 tun0 10.8.0.10 * 255.255.255.255 UH 0 0 0 tun0 192.168.2.0 * 255.255.255.0 U 0 0 0 em1
Wie im Wiki-Artikel zum Router beschrieben, habe ich im Root-Server das IPv4 Forwarding aktiviert und die Filter Regeln in den IPTables hinzugefügt (was aber, wenn ich das richtig verstehe, überflüssig ist, da die Policy der Forward Chain sowieso ACCEPT ist).
sysctl -w net.ipv4.ip_forward=1 iptables -A FORWARD -o tun0 -i venet0 -j ACCEPT iptables -A FORWARD -o venet0 -i tun0 -j ACCEPT
Wenn ich das so konfiguriere, dann schaff ich es nicht eine Verbindung vom Heim-Server zum externen Netz aufzubauen. Lediglich mein Heimnetz und das VPN ist erreichbar. Hat jemand eine Idee wieso das nicht funktioniert, bzw. welche Mittel ich zur weiteren Fehleranalyse verwenden kann? Ich habe es bereits mit tcpdump versucht. Das konnte weder auf meinem Heim-Server noch auf meinem Root-Server irgendwelche Pakete finden, die beim Verbindungsaufbau zu einem externen Server verschickt werden sollen.
Ich bin für jede Hilfe dankbar!