[HowTo] Site 2 Site/ LAN 2 LAN: Fritzbox (mit DS-Lite) mit Strongswan Server Kopplung

davidwohnthier

Neuer User
Mitglied seit
21 Nov 2018
Beiträge
27
Punkte für Reaktionen
0
Punkte
1
Ich hab mich relativ lange... circa eine Woche um ehrlich zu sein mit dem Verbinden von verschiedenen Fritzboxen an einen VPS herumgeärgert. Ziel war es, mehrere Fritzboxen an einen Server zu verbinden, um es Roadwarrior zu ermöglichen sich zu diesem zu verbinden und in Folge dessen Zugriff auf die verschiedenen Netzwerke der Fritzboxen zu bekommen. Die Konfiguration mit "normalen" Fritzbox, welche einen Ipv4 Anschluss besitzen ging aus irgend einem Grund relativ problemlos (Konfiguration dieser angehängt). Problematisch war die Fritzbox, welche hinter einem DS-Lite Anschluss hängt und ein Vodafone Leihgerät ist (Formware 7.12). Tatsache ist: AVM ändert wieder irgend etwas zwischen 7.12 und 7.19Labor. Was bei 7.19Labor funktioniert, funktioniert aus irgend einem Grund nicht bei 7.12. Hin oder her. Hier jetzt erst einmal die Konfiguration für die Verbindung einer Vodafone Fritzbox 6490 7.12 (kdg), welche per DS-Lite Tunnel verbunden ist.

Kurzfassung:
- Es funktioniert nur im aggressive Modus
- Es müssen mehrere Einstellungen in der Fritzbox vpncfg geändert werden - wichtige Stellen sind fettgedruckt

Server-Seite Teil 1/3:

/etc/ipsec.conf
Code:
config setup
    uniqueids=no
  
conn AVM1-AGGRO
    dpdaction=restart
    dpddelay=5
    dpdtimeout=25
    ikelifetime=1h
    keylife=1h
    keyexchange=ikev1
    aggressive=yes                     # wird unbedingt benötigt bei meinen 7.12er Fritzboxen
    authby=psk
    auto=add
    left=%defaultroute
    [email protected]                 # hier steht in meinem Fall die Server-"DYNDNS" z.B. beispiel.no-ip.com
    leftsourceip=192.168.42.1
    leftsubnet=192.168.42.0/24
    right=%any
    [email protected]             # hier steht in meinem Fall die beispiel.myfritz.net Adresse
    rightsubnet=192.168.177.0/24     # hier muss das Subnet der Fritzbox eingetragen werden, in meinem Fall eben 192.168.177.0/24
    ike=aes256-sha-modp1024         
    esp=3des-sha

Server-Seite Teil 2/3:
Es muss eine neue Datei im Ordner "strongswan.d" (in meinem Fall /etc/strongswan.d/) erstellt werden.
Die Datei "local.conf" nennen und folgenden Inhalt reinkopieren:

Code:
charon {
    # Allow IKEv1 Aggressive Mode with pre-shared keys as responder.
    i_dont_care_about_security_and_use_aggressive_mode_psk = yes
}

Server-Seite 3/3:
Da wir für die Authentifizierung PSK verwenden brauchen wir natürlich auch einen Schlüssel in der ipsec.secrets Datei. In meinem Fall liegt diese in /etc/ipsec.secrets und schaut wie folgt aus:

Code:
: PSK "XXXXXXXXXXXXXX" # unbedingt einen langen, nicht brutforce-baren Key verwenden!!
%any  %any  : PSK "XXXXXXXXXXXXXX" # hier der selbe Key - eventuell nicht benötigt, egal

Fritzbox Seite:
Ich für meinen Teil habe den umständlichen Weg gewählt erst einmal im Web-Interface eine neue Verbindung mit den passenden Parametern anzulegen und dann die Sicherung dieser Konfiguration herunterzuladen und die Datei dann zu editieren. Nach Abschluss der Edit-Arbeiten muss der Inhalt der Datei dann auf folgender Seite hochgeladen werden, dann auf "Berechnen" drücken um die Checksumme neu zu berechnen, dann auf herunterladen drücken. Die heruntergeladene Datei ist die richtige Datei um dann wieder bei der Fritzbox eingespielt zu werden. Ohne die neue Checksumme akzeptiert die Fritzbox die Sicherungsdatei nicht. Link zur Seite um die Checksumme neu zu berechnen: https://www.mengelke.de/Projekte/FritzBox-JSTool
--> Ich füge hier gerne eine bequemere Lösung ein. So hab ich es gemacht.
Edit mit Info von eisbaerin:
Die Verbindung im WebGUI löschen und dann nur den vpncfg Teil in einer Datei speichern und dann unter VPN-Verbindungen diese Datei hochladen. Das ist wirklich deutlich bequemer :)
Einfach aus der Sicherungsdatei den VPN-Teil ausschneiden.
Den dann beliebig ändern und in der GUI unter VPN als Datei reinladen.
Vorher den alten Eintrag löschen.


In der Konfigurationsdatei den "vpncfg" Abschnitt suchen und die richtige VPN Verbindung anschauen und editieren, nach folgendem Schema. Damit es mit der DS-Lite Box von Vodafone funktioniert hat waren vor allem die Änderungen in phase1ss und phase2ss unabdingbar. Der Mode bleibt auf aggressive, aber jetzt im Detail. :

WICHTIG: NICHT DIE "#.... [Anmerkung" ÜBERNEHMEN!!!!!

Code:
vpncfg {
        vpncfg_version = 1;
        connections {
                enabled = yes;
                editable = no;                                    # editable von yes auf no ändern
                conn_type = conntype_lan;
                name = "LAN2SERVER";                  # Hier steht der individuelle Name der Verbindung
                boxuser_id = 0;
                always_renew = yes;                         # hier von no auf yes
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = 0.0.0.0;
                remote_virtualip = 192.168.42.1;      # falls nicht eh schon, hier die Virtual IP des Servers
                remotehostname = "beispiel.no-ip.com";        # hier den dyndns der Server-Seite
                keepalive_ip = 192.168.42.1;            # hier eine - am besten vom Server - IP aus dem Server-Subnet
                localid {
                        fqdn = "beispiel.myfritz.net";               # hier die, auch in der Server-Config verwendete "rightID", also beispiel.myfritz.net
                }
                remoteid {
                        fqdn = "beispiel.no-ip.com";                   # hier die leftID aus der Server-Config, in meinem Fall beispiel.no-ip.com
                }
                mode = phase1_mode_aggressive;        # der Modus bleibt Aggressive
                phase1ss = "LT8h/all/all/all";        # hier muss LT8h vor das standardmäßige all/all/all hinzugefügt werden
                keytype = connkeytype_pre_shared;
                key = "XXXXXXXXXXXXXXX";            # hier muss der individuelle UNBEDINGT lange und nicht brute-forcebare PSK Schlüssel aus der ipsec.secrets eingetragen werden
                cert_do_server_auth = no;
                use_nat_t = yes;
                use_xauth = no;
                use_cfgmode = no;
                phase2localid {
                        ipnet {
                                ipaddr = 192.168.177.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2remoteid {
                        ipnet {
                                ipaddr = 192.168.42.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2ss = "esp-3des-sha/ah-no/comp-no/no-pfs";                # hier muss der Eintrag so angepasst werden, wie er hier in diesem beispiel steht!
                accesslist = "permit ip any 192.168.42.0 255.255.255.0";
                app_id = 0;
        }
}

Mit dieser Konfiguration funktioniert die Verbindung einer Fritzbox 6490 7.12 (kdg) an einem DS-Lite Anschluss mit einem Strongswan Server 5.7.2. Ich konnte die 7.19er Fritzboxen auch im nicht aggressive Modus verbinden - bei den 7.12er hat das einfach nicht funktioniert. Die Phase2 ist immer abgerissen. Warum? Ich hab es nicht rausgefunden. Vor allem, falls jemand Anmerkungen bezüglich Sicherheit hat, baue ich die sehr gerne ein!!!

Hier noch schnell die Konfigurationen für den nicht-aggressive Modus, der bei mir bei 7.19er Fritzboxen funktioniert:

ipsec.conf

Code:
conn avm 
    keyexchange=ikev1 
    authby=psk 
    auto=add 
    left=%defaultroute
    [email protected]   
    leftsourceip=192.168.42.1
    leftsubnet=192.168.42.0/24
    right=%any 
    rightsubnet=192.168.0.0/24
    [email protected]
    ike=aes256-sha-modp1024!
    esp=3des-md5!
    ikelifetime=3600s
    keylife=3600s

Und die vpncfg einer 7.19er Fritzbox im idp-Modus und an einem ipv4 Anschluss:
Code:
vpncfg {
        vpncfg_version = 1;
        connections {
                enabled = yes;
                editable = no;
                conn_type = conntype_lan;
                name = "LAN2VPS";
                boxuser_id = 0;
                always_renew = yes;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remote_virtualip = 192.168.42.1;
                remotehostname = "beispiel.no-ip.com";
                keepalive_ip = 192.168.42.1;
                localid {
                        fqdn = "beispiel.myfritz.net";
                }
                remoteid {
                        fqdn = "beispiel.no-ip.com";
                }
                mode = phase1_mode_idp;
                phase1ss = "all/all/all";
                keytype = connkeytype_pre_shared;
                key = "XXXXXXXXXXXXXXXXXXXXXXXXXX";
                cert_do_server_auth = no;
                use_nat_t = yes;
                use_xauth = no;
                use_cfgmode = no;
                phase2localid {
                        ipnet {
                                ipaddr = 192.168.0.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2remoteid {
                        ipnet {
                                ipaddr = 192.168.42.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2ss = "esp-all-all/ah-all/comp-all/no-pfs";
                accesslist = "permit ip any 192.168.42.0 255.255.255.0";
                app_id = 0;
        }
}
 
Zuletzt bearbeitet:

eisbaerin

IPPF-Urgestein
Mitglied seit
29 Sep 2009
Beiträge
11,377
Punkte für Reaktionen
1,051
Punkte
113
Ich füge hier gerne eine bequemere Lösung ein.
Einfach aus der Sicherungsdatei den VPN-Teil ausschneiden.
Den dann beliebig ändern und in der GUI unter VPN als Datei reinladen.
Vorher sicherheitshalber den alten Eintrag löschen.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: davidwohnthier

davidwohnthier

Neuer User
Mitglied seit
21 Nov 2018
Beiträge
27
Punkte für Reaktionen
0
Punkte
1
Also das Hauptproblem bei den Fritzboxen ist einfach die Dead Peer Detection (DPD). Das Teil erkennt einfach nicht wenn es zum Abbruch der Verbindung kommt. Ich hab deswegen in dem How To oben eine Veränderung der DPD Parameter vorgenommen, wodurch der Server die Verbindung recht zügig bei Erkennung von DP trennt und neustartet. Dadurch lässt sich eine relativ hohe Erreichbarkeit der verbundenen Fritzbox umsetzen. Wichtig ist dass der dpddelay recht kurz ist und der dpd timeout circa 4-5x so hoch ist. Wenn der dpddelay zu lange ist reißt die Verbindung ab während die Fritzbox weiterhin denkt, dass sie verbunden ist und keine Neuinitalisierung vornimmt. Da sie ja von außen nicht vom Server erreicht werden kann, ist sie dann erst mal getrennt bis sie nach Stunden(!) drauf kommt, dass da ja irgendwas los ist. Wer spielen will, kann die dpdaction mal auf clear setzen. Hatte dann irgendwann keine Lust mehr ;-)
 
3CX

Neueste Beiträge

Statistik des Forums

Themen
239,061
Beiträge
2,121,679
Mitglieder
362,159
Neuestes Mitglied
jochen.brueckner

Erhalten Sie 3CX für 1 Jahr kostenlos!

Gehostet, in Ihrer privaten Cloud oder on-Premise! Ganz ohne Haken. Geben Sie Ihren Namen und Ihre E-Mail an und los geht´s:

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.
oder via