Anleitung: FipBox mit VPN an DS-Lite

Mit unserem VPN Dienste machen wir Netzwerke erreichbar die keine öffentliche IP-Adresse besitzen oder keine Änderungen im Router möglich sind.
KlaRi
Beiträge: 3
Registriert: Do 22. Aug 2019, 22:42

Re: Anleitung: FipBox mit VPN an DS-Lite

Beitrag von KlaRi » Fr 23. Aug 2019, 16:53

So, nach einigen Stunden Suche im I-Net
bin ich zumindest so weit daß es wohl an einer neueren Version von easy-rsa liegt.
Wenn ich das alles richtig verstanden habe wird derzeit wohl zusammen mit
openvpn das easy-rsa PaketIst Version 3 installiert bei dem die Vars Datei nicht mehr existiert.
Da scheint das angebotene Skript fipboxvpn.sh hier wohl etwas veraltet zu sein :-(
Für Raspi Cracks vermutlich nur ein kleines Ding, aber ich bin aufgeschmissen...
Viele Posts in etlichen Foren gelesen, überall Häppchenweise Informationen.
So komm ich leider nicht weiter.
Wenn hier noch jemand helfen kann wäre das super.

Danke schonmal
Klaus

mickym
Beiträge: 54
Registriert: Mi 28. Aug 2019, 11:33

Re: Anleitung: FipBox mit VPN an DS-Lite

Beitrag von mickym » Sa 31. Aug 2019, 15:08

Also erst mal vielen Dank für die Anleitung - so bin ich auch überhaupt hier in das Forum und hierher gekommen.
Leider sind in der Anleitung und in dem Script einige Fehler drin, die mich einiges an Zeit gekostet hat und ich auch ein paar Fehler am prinzipiellen Verständnis des Autors - sorry ;) - in der Anleitung entdeckt habe.
Bei mir funktioniert nun die Fip Box nun einwandfrei mit dem PortMapper und dem VPN zusammen. Auch funktioniert die Namensauflösung und man kann über das VPN auch alle internen und externen Ressourcen über Namen arbeiten.

Als erstes mal @KlaRi - ja das habe ich auch nach langem hin und her herausgefunden und deshalb einfach folgendes gemacht.
Bevor man also das Script fipboxvpn.sh laufen lasst, geht auf diese Seite: https://github.com/OpenVPN/easy-rsa-old
und ladet euch das zip.file runter. Aus dem Zip-File müsst ihr lediglich das Verzeichnis:
\easy-rsa-old-master\easy-rsa entpacken und auf einen USB Stick kopieren.
Das komplette Verzeichnis easy-rsa dann auf Eure fipbox in das Verzeichnis /usr/share/doc/openvpn/examples kopieren, dann funktioniert das Script wieder. ;)

Doch nun zu den aus meiner Sicht Fehlern in der Anleitung - mit Begründung natürlich - ich beziehe mich dabei immer auf die Schritte - so wie sie dort aufgeführt sind:

Also zu Schritt A.11:
Bevor man also das Script fipboxvpn.sh laufen lasst, geht auf diese Seite: https://github.com/OpenVPN/easy-rsa-old
und ladet euch das zip.file runter. Aus dem Zip-File müsst ihr lediglich das Verzeichnis:
\easy-rsa-old-master\easy-rsa entpacken und auf einen USB Stick kopieren.
Das komplette Verzeichnis easy-rsa dann auf Eure fipbox in das Verzeichnis /usr/share/doc/openvpn/examples kopieren, dann funktioniert das Script wieder. ;)

Nehmt Euch bisschen Zeit und passt schon mal Eure zukünftige CA an - indem Ihr wenigsten ein bisschen persönlicher Note Eurer CA verleiht in dem Ihr auch die Einträge anpasst:
export KEY_COUNTRY="DE"
export KEY_PROVINCE="WEB"
export KEY_CITY="FIP-Box City"
export KEY_ORG="FIPBOX-CA"
export KEY_OU="VPN Management"
export KEY_NAME="Admin"
export KEY_EMAIL="support@feste-ip.net"
export KEY_CN=

die meine ich!
Und das Wichtigste was in der Anleitung fehlt und im Script noch angepasst werden muss ist folgender Abschnitt:


Wenn die Key-Erstellung gelaufen ist, aber sonst noch irgendwelche Fehler kommen, könnt ihr wirklich hier die einzelnen Schritte machen - wie in der Orginalanleitung beschrieben: https://jankarres.de/2013/05/raspberry- ... tallieren/
auf dem dieses Shell-Script basiert.

# Tragen Sie hier bitte die Portmapperadresse OHNE DOPPELPUNKT ein !
remote ENTER.YOUR.PORTMAP64.NET 1194
und hier bitte nicht - wie man vielleicht denken mag - da hier 1194 dahinter steht, den IP V6 Teil Eures Portmappings zu 1194, sondern den IP V4 Teil:
Also xxxx.feste-ip.de.
Und auch der Port ist falsch - hier nicht 1194, sondern der Port der Euch im Feste-IP.net-Portmapper zu dieser IP Adresse zur Verfügung gestellt wird.
Statt feste Ip kommt natürlich Eurer gewählter dns Name dahinter xxxx.<dns-name>.de.
Der Port ist auch nicht 1194 - sondern der, der Euch vom Feste-IP.net-Portmapper zugewiesen wurde.

das sieht dann so aus:
remote xxxx.<dns-name>.de <yyyyy>
Falls ihr das Script schon habt laufen lassen - dann siehe meine Ergänzung 2. in A.12

Ändert auch noch in dem Script:
iptables -t nat -A POSTROUTING -s 10.0.0.0/8 ! -d 10.0.0.0/8 -o eth0 -j MASQUERADE
.
.
.
echo "@reboot root /sbin/iptables -t nat -A POSTROUTING -s 10.0.0.0/8 ! -d 10.0.0.0/8 -o eth0 -j MASQUERADE" >> /etc/crontab

in

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -o eth0 -j MASQUERADE
.
.
.
echo "@reboot root /sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -o eth0 -j MASQUERADE" >> /etc/crontab

Statt eth0 - ggf. Eurer Netzwerkinterface eintragen, wenn ihr die fipbox über WLAN betreibt.

Nähere Erläuterungen - siehe meine Ergänzung 8. in A.13

A.12
Da ist nichts falsch in der Anleitung, aber ich würde noch einiges ergänzen:
1. Wenn ihr den Key nicht vom Bildschirm kopiert habt, dann ist der private Schlüssel noch in der Datei: client1.key-orig im Verzeichnis: /etc/openvpn/easy-rsa/keys
Hier noch eine kleine Bemerkung. Kopiert Euch diese Datei weg - hebt sie bestens auf und löscht die vom Server, also der fipbox. Wenn die jemand in den Fingern hat, ist Euere CA kompromitert und das VPN ist nicht mehr "private".
2. Wenn ihr das Script nicht angepasst habt dann kann man nachträglich noch die Datei fipboxathome.ovpn ändern und dort die remote Zeile entsprechend meinen Erläuterungen anpassen:
remote xxxx.<dns-name>.de <yyyyy>

Ihr dürft auf keinen Fall, wie im Script beschrieben, dann auf der Fipbox ein Port-Mapping für 1194, wie in A13 beschrieben ist einrichten!!!!
Das ist das Allerschlimmste was ihr damit macht!!

Hintergrund erst mal:
Diese Datei fipboxathome.ovpn kopiert ihr ja später auf Euren VPN-Client (Eine der 4 Dateien). Diese Verbindung ist deshalb Euer IP V4 Zugang, da Euch ja auf dem Client kein IP V6 zur Verfügung steht. Deswegen machen wir das ja ganze ja!
Deshalb ist unter remote hier der IP V4 Teil einzutragen - da sich Euer VPN-Client ja mit IP V4 verbindet!

zu A.13:
Hier sind leider grundlegende Fehler in der Anleitung - und ich würde sie komplett neu schreiben.
Bevor Ihr also Eure fipbox neu startet, passt tatsächlich noch mal Eure server.conf des openvpn servers an!

sudo nano /etc/openvpn/server.conf

ändert die Zeile - ja NICHT!!!!!
server Beginn-IP-Adressraum 255.255.255.0

Da steht im Orginal:
server 10.8.0.0 255.255.255.0

und das muss auch so bleiben und hat nichts mit dem Adressraum Eures Netzes daheim zu tun!!
Was ihr allerdings dort anpassen könnt - ist Eurer IP v4 DNS Server - für die Namensauflösung:

push "dhcp-option DNS 192.168.x.y"

Hier die IP-V4 Adresse Eurer Fritz Box eintragen - den 2. Eintrag kann man raus löschen, falls ihr nicht noch einen 2. DNS Server habt.

So nun ein paar Hintergründe warum das so sein muss.
1. Der VPN Client braucht ein IP V4 Verbindung deshalb in der fipboxathome.ovpn den IP V4 Teil des Portmappings stehen.
2. Ankommen an der FipBox kommt aber IP V6 - was ja der Portmapper auf feste-ip.net macht!!! Die Umsetzung von IPv6 macht aber nicht der Portmapper auf der FipBox sondern der Openvpn Server (wie im Weiteren erläutert!)
3. Openvpn auf der FipBox arbeitet unter IP V6 und erreicht diese direkt (und nicht über den Portmapper der fipbox !!!!!) - dazu ist es aber erforderlich, dass ihr jedem Client bei Euch in der Fritzbox auch eine IP V6 zuweist - was ihr aber sicherlich getan habt:
---DNS-Server, Präfix (IA_PD) und IPv6-Adresse (IA_NA) zuweisen (FritzBox - Heimnetz-Netzwerk-Netzwerkeinstellungen- IP V6 Adressen)
4. Man kann nun die fipbox wie beschrieben neu starten - damit der Openvpn Server alle Änderungen übernommen hat!
5. sudo reboot
6. Nun vergesst den restlichen Teil - der in der Anleitung steht, der macht mehr kaputt als ganz. ;)
Also ja kein Portmapping auf port 1194 auf der FipBox auf sich selbst einstellen - die Umsetzung der IP v6 auf IP v4 Adressen darf nämlich nicht mehr der Port-Mapper auf der Fipbox übernehmen, sondern das macht Openvpn.

Ja ich habe auch etwas gebraucht - aber die FipBox bietet 2 komplett unterschiedliche Funktionen an, um IP v6 in IP v4 umzusetzen - die miteinander gar nichts zu tun haben.
---1. Den Portmapper mit fipedit um quasi direkt auf die Endgeräte zu kommen (also ohne VPN), was erforderlich ist, wenn ihr beispielsweise von einem Bürogerät arbeitet, wo ihr gar keinen VPN Client nutzen könnt, weil ihr die Client Software gar nicht installieren dürft. Die Fipbox als Portmapper setzt dann IPv6 in IPv4 um.
---2. Den OpenVPN Server um sich über den VPN Tunnel so zu bewegen, als wäre man im eigenen Netz zuhause. Dieser setzt die IP v6 Adressen in IP v4 Adressen um! Deshalb macht keinesfalls ein Portmapping mit fipedit #AKTIV#PORTMAPPER#1194#192.168.X.XX#1194 auf die fipbox selbst!!!!
Das läuft ins Leere, weil der Openvpn Server auf keine internen IP v4 Adressen hört!

7. Wenn ihr also die fipbox neu gestartet habt, sollte bereits ohne Portmapping auf der Feste-Ip.Net Seite der Port 1194 bereits erreichbar sein, und das ohne Eintrag in /etc/fipbox mittel fipedit!
Wenn das nicht klappt, dann habt ihr noch ein Problem an Eurer Fritzbox oder hier den Port 1194 auf IP v6 Seite nicht freigegeben - oder was weiß ich!
8. Weiter zum Verständnis. Der Openvpn Server auf Eurer fipbox macht nun ein 10.8.0.0 auf macht ein NAT auf Euer Heimnetz. Deshalb darf man in die server.conf hier nicht das eigene Netz eintragen!
Die Umsetzung in IPv4 erfolgt dann über normales "natten" (NAT = Netzwerk Address Translation) und fungiert als eigener Router. Das ist wichtig zum Verständnis. Jeder Client von außen erhält also erst mal eine 10.8.0.x Adresse, die dann von dem openvpn Server in das eigene 192.168.x.y geroutet wird, wie in der server.conf angegeben. Dabei merkt sich der Router eben welche 10.8.0.x Adresse welcher internen IP 192.168.x.y entspricht.
Diese ganzen Tabellen verwaltet die fipbox und deshalb muss über system crontab - wie in dem script eingetragen sein:
cat /etc/crontab | grep -v "d 10.0.0.0/8 -o eth0 -j MASQUERADE"
Wenn man einen anderen Netzwerkadapter hat, dann muss man hier halt eth0 gegen ein anderes Device austauschen.
Eigentlich ist das in meinen Augen zwar falsch, was in dem Script steht - da hier das gesamte 10er Netz genattet wird, müsste eigentlich 10.8.0.0/24
reichen, so wie in der server.conf definiert.

9. Zur Krönung damit der Weg auch durch den VPN Tunnel wieder zurück funktioniert, tragt ihr dann in Eurer FritzBox noch eine statische Route in Euer 10er Netz ein:
Also FritzBox - Heimnetz-Netzwerk-Netzwerkeinstellungen-IP V4-Routen:
10.8.0.0 - 255.255.255.0 - <IP v4 Adresse Eurer fipbox - also 192.168.x.y)

So bei mir geht nun alles - und ich war am Anfang so unglücklich, aber nach ca. 40 Stunden lesen - habe ich das zumindest nun so verstanden und ich hoffe es hilft dem einen oder anderen.

Gruß Mic :)
Zuletzt geändert von mickym am So 1. Sep 2019, 07:14, insgesamt 11-mal geändert.

mickym
Beiträge: 54
Registriert: Mi 28. Aug 2019, 11:33

Re: Anleitung: FipBox mit VPN an DS-Lite

Beitrag von mickym » Sa 31. Aug 2019, 15:16

Noch zur Ergänzung den crontab Eintrag kontrollieren oder nachträglich richtigstellen geht dann mit:

sudo crontab -e

dann muss da die Zeile:
@reboot sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

stehen!

Hoffentlich klappts nun auch bei jedem!

Gruß Mic :)

KlaRi
Beiträge: 3
Registriert: Do 22. Aug 2019, 22:42

Re: Anleitung: FipBox mit VPN an DS-Lite

Beitrag von KlaRi » Do 26. Dez 2019, 19:20

Hallo Mic,

danke für das Update.
Es hat trotzdem nicht funktioniert... irgendwo klemmts noch.
Inzwischen hab ich aber eine Lösung.
Da ich eine Synology habe konnte ich auf der Diskstation mit dieser Anleitung
https://www.synology-forum.de/showthrea ... ia-usw-%29
den VPN Server zum Laufen bringen.
.... jetzt kann ich den Raspi für andere Dinge verwenden :D

Antworten