[Frage] Fritzbox mit Linux VPN verbinden (Strongswan, Openswan, Racoon, ...) Anleitung/HowTo

DeRaWa

Neuer User
Mitglied seit
18 Sep 2013
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich bin seit einigen Tagen dabei zu versuchen einen VPN Server zu installieren und die Fritzbox (7360 und/oder 7490) zu connecten zu lassen. Leider ohne erfolg, da die Anleitungen die ich per google gefunden habe veraltet oder unvollständig sind. Diverse Software schon ausprobiert, Openswan, Strongswan, Racoon - welche ich auf einem Linux vServer installiert hatte.

Kennt sich jemand damit aus und kann helfen oder hat ein gutes und einfaches Howto?
Ich würd mich freuen :p


Beispiele:
https://elcravo-networks.eu/securit...-openswan-und-einer-fritz-box-unter-centos-6/
https://layer9.wordpress.com/2010/07/28/ipsec-vpn-mit-strongswan-und-fritzbox-fon-wlan-7270-v3/
https://lists.openswan.org/pipermail/users/2013-November/022784.html
https://www.seffner-schlesier.de/news/ipsec-zwischen-avm-fritzbox-und-strongswan/
http://www.computersalat.de/linux/vpn/ipsec-vpn-zwischen-fritzbox-und-linux/
http://blog.foxel.org/2009/09/25/vpn-between-a-fritzbox-fon-and-racoonbsd/
 
vServer ist generell etwas schwierig, es kommt ganz darauf an, worauf der Host basiert. Container-Lösungen wie Virtuozzo oder OpenVZ gestatten meist den virtuellen Instanzen kein Nachinstallieren der notwendigen Module, da muß der Host also schon passend konfiguriert sein.

Auf einem "richtigen" Server ist es eigentlich kein großes Problem (bei mir mit 'racoon'), die FRITZ!Box braucht halt IKEv1 und PSK, dann noch passende Proposals und es klappt (fast) auf Anhieb.

Ich habe aber keinen Bock auf ein "HowTo" ... wenn Du konkrete Fragen (mit Konfigurationsdatei und entsprechenden Protokollen) hast, kann ich Dir aber vielleicht weiterhelfen.

An meiner Konfiguration, mit der ich vor einem halben Jahr dem 54-Minuten-Problem versucht habe auf den Grund zu gehen, hat sich eigentlich nichts geändert ...
 
Hi,

ich nutze ein KVM vServer. Kannst du mir vielleicht deine Konfigurationsdateien von racoon und fritzbox senden, das würde mir schonmal deutlich weiterhelfen. Ich glaube wichtig sind hier nur:

fritzbox.cfg
/etc/racoon/setkey.conf
/etc/racoon/racoon.conf
/etc/racoon/psk.txt

Oder hast du noch andere Dateien geändert?
 
Da hast Du etwas fundamental falsch verstanden ... warum sollte ich mir die Arbeit machen und meine Dateien so verfremden, daß ich sie Dir zur Verfügung stellen kann?

Wenn Du eigene Dateien hast, damit etwas nicht funktioniert und Du diese Dateien zusammen mit den passenden Protokollen der Probleme hier einstellst (nachdem Du die dann im notwendigen Umfang verfremdet hast), dann wird da ein Schuh draus ... das ist nicht persönlich gemeint - ich helfe gerne bei Problemen, kaue aber niemandem etwas vor oder liefere irgendwelche "step by step"-Anleitungen und schon gar keine "Vorlagen" für irgendwelche Konfigurationen.

Vielleicht klärst Du als erstes mal, daß alle notwendigen Module wirklich in Deiner VM zur Verfügung stehen bzw. eingebunden werden können ... sollte eigentlich so sein, denn das dürfte eine "volle Virtualisierung" sein.

Dann wäre es sicherlich nicht uninteressant, welches System Du verwendest, falls Du nicht gerade die ipsec-tools (so heißt nach meiner Erinnerung das Source-Paket für racoon, wenn ich mich nicht irren sollte) selbst komplett übersetzt hast - schon damit man nachschlagen kann, ob Du überhaupt alle notwendigen Pakete installiert hast.

Dann richtest Du ganz normal eine LAN2LAN-Verbindung in der Box ein. Wobei ... selbst das steht ja nicht deutlich da, ob Du LAN2LAN oder Host2LAN haben möchtest und von wo nach wo, wer hat feste Adressen, wer nur dynamische (und muß damit zwangsweise den "aggressive mode" verwenden, da das FRITZ!OS nur PSK kann) und wer soll die Initiative beim Aufbau einer Verbindung übernehmen?

Egal ... die in der FRITZ!Box angelegte Verbindung kannst Du dann aus einer Sicherung der Einstellungen extrahieren und nachträglich mit einem Editor bearbeiten, damit die Einstellungen (PSK, IDs für P1/P2) zu denen im "racoon" passen. Eine so bearbeitete Datei kann man dann wieder einzeln über das GUI in die FRITZ!Box importieren.

Alles das fehlt jedenfalls bisher komplett und mit der Bitte um "Überlassung" bist Du bei mir vor der komplett falschen Schmiede ... Hilfe zur Selbsthilfe ist mein Motto, das setzt aber eigene Anstrengungen in einem ersten Schritt voraus.
 
Hi, dachte wenn ich hier falsche Konfigurationen zeige können die wenigsten damit was anfangen, bzw. es hilft ja auch anderen wenig weiter die dasselbe Problem haben. Aber gerne hier mal einer meiner letzten Test Config:

=> 109.230.236.49 ist der KVM vSever
=> dyndns.no-ip.biz bzw 70.50.210.210 ist die Fritzbox
=> 192.168.1.0/24 Fritzbox LAN
=> 192.168.2.0/24 vServer LAN

Fritzbox
Code:
vpncfg {
        connections {
                enabled = yes;
                conn_type = conntype_lan;
                name = dyndns.no-ip.biz;
                always_renew = yes;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = 109.230.236.49;
                remote_virtualip = 0.0.0.0;
                localid {
                        fqdn = "dyndns.no-ip.biz";
                }
                remoteid {
                        ipaddr = 109.230.236.49;
                }
                mode = phase1_mode_aggressive;
                phase1ss = "all/all/all";
                keytype = connkeytype_pre_shared;
                key = "xyzpass1234567890xyz";
                cert_do_server_auth = no;
                use_nat_t = yes;
                use_xauth = no;
                use_cfgmode = no;
                phase2localid {
                        ipnet {
                                ipaddr = 192.168.1.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2remoteid {
                        ipnet {
                                ipaddr = 192.168.2.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2ss = "esp-all-all/ah-none/comp-all/pfs";
                accesslist = "permit ip any 192.168.2.0 255.255.255.0";
        }
        ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500", 
                            "udp 0.0.0.0:4500 0.0.0.0:4500";
}

racoon.conf
Code:
log error;
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";

remote 70.50.210.210 {
        exchange_mode aggressive;
        peers_identifier user_fqdn "dyndns.no-ip.biz";
        verify_identifier off;
        proposal {
                encryption_algorithm 3des;
                hash_algorithm md5;
                authentication_method pre_shared_key;
                dh_group 2;
        }
        generate_policy off;
}

sainfo address 192.168.1.0/24 any address 192.168.2.0/24 any {
        pfs_group 2;
        lifetime time 3600 seconds;
        encryption_algorithm aes;
        authentication_algorithm hmac_sha1;
        compression_algorithm deflate;
}

setkey.conf
Code:
spdadd 192.168.2.0/24 192.168.1.0/24 any -P out ipsec
        esp/tunnel/70.50.210.210-109.230.236.49/require;

spdadd 192.168.1.0/24 192.168.2.0/24 any -P in ipsec
        esp/tunnel/109.230.236.49-70.50.210.210/require;

psk.txt
Code:
70.50.210.210 yxzpass1234567890xyz

Fehlermeldungen beim verbinden
Code:
root@debian:# tailf /var/log/syslog

ERROR: notification INITIAL-CONTACT receive in aggressive exchange.
ERROR: failed to get sainfo.
ERROR: failed to pre-process ph2 packet.
 
Zuletzt bearbeitet:
Die Verwendung der Adresse für die FRITZ!Box ist nicht wirklich sinnvoll, wenn die dynamisch ist (was ich bei der Verwendung von DynDNS mal unterstelle) und auch eine Verbindungsaufnahme von Serverseite macht ja bei dynamischer IP-Adresse wenig Sinn. Bei den Proposals kannst Du zwar auch mixen, aber ich verstehe den Sinn nicht und erlaube mir auch da eine Korrektur.

racoon.conf
Code:
log [COLOR="#FF0000"][S]error[/S] debug2[/COLOR]; (kann man später immer noch runterdrehen)
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";

remote [COLOR="#FF0000"][S]70.50.210.210[/S] anonymous[/COLOR] {
        exchange_mode aggressive;
        [COLOR="#FF0000"]my_identifier address 109.230.236.49;[/COLOR] (ist zwar Standard, angeben schadet aber nicht, so sieht man wenigstens gleich, was Sache ist)
        verify_identifier off;
        [COLOR="#FF0000"]passive on; [/COLOR](solange nicht der Server von sich aus die Verbindung herstellen soll, alle Fragen zu dieser Thematik hast Du bisher unbeantwortet gelassen)
        [COLOR="#FF0000"]dpd_delay 20;[/COLOR] (damit tote Verbindungen abgeräumt werden bzw. die SAs dazu)
        [COLOR="#FF0000"]ike_frag on;[/COLOR] (auch reine Vorsichtsmaßnahme)
        [COLOR="#FF0000"]nat_traversal on;[/COLOR] (schadet auch nicht, wird ja "ausgemessen" und wenn man es mal braucht, ist es schon drin)
        proposal {
                encryption_algorithm [COLOR="#FF0000"][S]3des[/S] aes[/COLOR];
                hash_algorithm [COLOR="#FF0000"][S]md5[/S] sha1[/COLOR];
                authentication_method pre_shared_key;
                lifetime time 1 hour;
                dh_group 2;
        }
        generate_policy [COLOR="#FF0000"][S]off[/S] on[/COLOR];
}

sainfo [COLOR="#FF0000"][S]address 192.168.1.0/24 any address 192.168.2.0/24 any[/S] anonymous[/COLOR] {
        pfs_group 2;
        lifetime time 3600 seconds;
        encryption_algorithm aes;
        authentication_algorithm hmac_sha1;
        compression_algorithm deflate;
}

[COLOR="#FF0000"]listen
{
        isakmp 109.230.236.49 [500]; [COLOR="#000000"](ist zwar Standard ... aber)[/COLOR]
        isakmp_natt 109.230.236.49 [4500]; [COLOR="#000000"](die hier nicht)[/COLOR]
        strict_address;
}
[/COLOR]

setkey.conf
Code:
[COLOR="#FF0000"][S]spdadd 192.168.2.0/24 192.168.1.0/24 any -P out ipsec
        esp/tunnel/70.50.210.210-109.230.236.49/require;

spdadd 192.168.1.0/24 192.168.2.0/24 any -P in ipsec
        esp/tunnel/109.230.236.49-70.50.210.210/require;[/S]

flush;
spdflush;[/COLOR]
In der psk.txt dann natürlich auch den FQDN anstelle der Adresse als "Schlüssel", sonst findet er da nichts.

Ansonsten fehlen noch die "Absichten" (wer baut wann wohin die Verbindung auf) ... bei weiteren Problemen bitte zusammen mit den Protokollen (und zwar den vollständigen, das "debug2" ist mein Ernst - irgendwelche PSKs kannst Du immer noch erneut ändern, wenn es erst mal läuft) als Anhang die jeweils aktuellen Einstellungsdateien noch einmal wiederholen und nicht darauf verlassen, daß man sich das beim Durchgraben durch die Beiträge in voller Länge ja auch zusammenreimen könnte.

Wenn es dann erst einmal läuft, kann man ab Firmware 06.20 auch bei DHE auf ein paar mehr Bits setzen, da werden dann in der FRITZ!Box auch bessere "DH groups" unterstützt. Solltest Du eine Firewall in Benutzung haben und tatsächlich NAT-T brauchen, mußt Du natürlich auch den UDP-Port 4500 noch freigeben.
 
Zuletzt bearbeitet:
Hi, super danke! :) Das hat mir sehr weiter geholfen und die Verbindung hat sich aufgebaut zwischen vServer und Fritzbox. Die Konfiguration bischen noch angepasst und sieht nun so aus:

Code:
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";

remote anonymous {
        exchange_mode aggressive;
        my_identifier address 109.230.236.49;
        verify_identifier off;
        passive on;
        dpd_delay 20;
        ike_frag on;
        nat_traversal on;
        proposal {
                encryption_algorithm aes;
                hash_algorithm sha1;
                authentication_method pre_shared_key;
                dh_group 2;
        }
        generate_policy on;
}

sainfo anonymous {
        pfs_group 2;
        lifetime time 3600 seconds;
        encryption_algorithm aes;
        authentication_algorithm hmac_sha1;
        compression_algorithm deflate;
}

Wie kann ich jetzt Pakete komplett über den vServer routen? Neben Routen die ich auf dem vServer erstellen muss, ist doch sicherlich notwendig der Fritzbox eine öffentliche IP und Gateway/DNS zu übergeben? Die Verbindung soll dauerhaft gehalten werden nachdem die Fritzbox die Verbindung aufbaut.

Muss ich der der Fritzbox dann einstellen?
Code:
ccesslist = "permit ip any 0.0.0.0 0.0.0.0", "deny ip any 192.168.1.0 255.255.255.0"
oder
Code:
accesslist = "reject udp any any eq 53", "reject udp any any eq 500", "reject udp any any eq 4500", "permit ip any any";
 
Zuletzt bearbeitet:
hallo, darf ich dieses thema nochmal aufgreifen. ich versuche eine vpn verbindung zwischen meiner fritzbox kabel 7490 und einem linuxrechner im internet herzustellen. dazu habe ich hier größtenteils die cfg´s kopiert, doch leider findet kein vpn aufbau statt.

meine fritzbox config sieht so aus:

vpncfg {
connections {
enabled = yes;
conn_type = conntype_lan;
name = 185.68.xxxxx;
always_renew = yes;
reject_not_encrypted = no;
dont_filter_netbios = yes;
localip = 0.0.0.0;
local_virtualip = 0.0.0.0;
remoteip = 163.172.35.100;
remote_virtualip = 0.0.0.0;
localid {
fqdn = "185.68.xxxxx";
}
remoteid {
ipaddr = 163.172.35.100;
}
mode = phase1_mode_aggressive;
phase1ss = "all/all/all";
keytype = connkeytype_pre_shared;
key = "xyzpass1234567890xyz";
cert_do_server_auth = no;
use_nat_t = yes;
use_xauth = no;
use_cfgmode = no;
phase2localid {
ipnet {
ipaddr = 192.168.178.80;
mask = 255.255.255.0;
}
}
phase2remoteid {
ipnet {
ipaddr = 192.168.178.81;
mask = 255.255.255.0;
}
}
phase2ss = "esp-all-all/ah-none/comp-all/pfs";
accesslist = "permit ip any 192.168.178.81 255.255.255.0";
}
ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500",
"udp 0.0.0.0:4500 0.0.0.0:4500";

}

#################################################################
racoon.conf
##################################################################
log debug2;
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";

remote anonymous {
exchange_mode aggressive;
my_identifier address 163.172.35.100;
verify_identifier off;
passive off;
dpd_delay 20;
ike_frag on;
nat_traversal on;
proposal {
encryption_algorithm aes;
hash_algorithm sha1;
authentication_method pre_shared_key;
lifetime time 1 hour;
dh_group 2;
}
generate_policy on;
}

sainfo anonymous {
pfs_group 2;
lifetime time 3600 seconds;
encryption_algorithm aes;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
}

listen
{
isakmp 163.172.35.100 [500];
strict_address;
}

#######################################################################

das log sagt

Dec 5 14:54:14 sd-91892 racoon: DEBUG: no check of compression algorithm; not supported in sadb message.
Dec 5 14:54:14 sd-91892 racoon: DEBUG: getsainfo params: loc='ANONYMOUS' rmt='ANONYMOUS' peer='NULL' client='NULL' id=0
Dec 5 14:54:14 sd-91892 racoon: DEBUG2: parse successed.
Dec 5 14:54:14 sd-91892 racoon: DEBUG: open /var/run/racoon/racoon.sock as racoon management.
Dec 5 14:54:14 sd-91892 racoon: INFO: 163.172.35.100[500] used for NAT-T
Dec 5 14:54:14 sd-91892 racoon: INFO: 163.172.35.100[500] used as isakmp port (fd=6)
Dec 5 14:54:14 sd-91892 racoon: DEBUG: pk_recv: retry[0] recv()
Dec 5 14:54:14 sd-91892 racoon: DEBUG: got pfkey X_SPDDUMP message
Dec 5 14:54:14 sd-91892 racoon: DEBUG2: #01202120200 02000000 00000000 95090000
Dec 5 14:54:14 sd-91892 racoon: DEBUG: pfkey X_SPDDUMP failed: No such file or directory



ich bin ein ziemlicher beginner, vlt kann mir jemand helfen. vielen dank im vorraus..
 
Zuletzt bearbeitet:
1. Es gibt passende Tags, in die man sowohl Konfiguration als auch Protokolle einschließen kann, das erleichtert das Lesen ungemein. Vermutlich ist das auch der Grund, warum das in den vorhergehenden Beiträgen verwendet wurde.

2. Die "Idee" hinter dieser VPN-Konfiguration fehlt ... zwar sind (vermutlich, mangels korrekter Einrückungen habe ich das gar nicht im Einzelnen geprüft, die FRIZ!Box-Konfiguration sieht schon merkwürdig aus) Konfiguration und (Teile der) Protokolldateien vorhanden, aber warum da bei "Phase2" derart merkwürdige Angaben verwendet werden für die Netze auf beiden Seiten so einer LAN/LAN-Kopplung, müßte man schon sehr gut begründen ... wenn man das nicht kann, wäre zumindest ein Verweis auf die Quelle dieses Unsinns wünschenswert.

3. Vielleicht hilft es ja auch (sowohl für den Leser als auch für den Fragesteller, weil er dabei sein eigenes Wissen entsprechend ausbauen muß), neben die Einstellungen für "racoon" jeweils zu schreiben, warum man genau diese Einstellung gewählt hat und was sie (nach eigener Ansicht) bewirken soll. Das kriegt man auch problemlos aus dem Hilfedateien und "Bedienungsanleitungen" für die jeweiligen Programme heraus - es ist also keine Frage von "beginner or not", sich da zumindest bei einer Einstellung "etwas zu denken" anstatt sie stumpf (und ggf. auch noch falsch) an irgendwelche abweichenden Situationen anzupassen.

4. Wenn ich weiter oben explizit "passive on" setze und auch noch daneben schreibe, wann das ggf. nicht die richtige Einstellung sein könnte, dann müßtest Du freundlicherweise mit einer sehr guten Begründung (und bei der Gelegenheit dann auch mit der psk.txt - da würde nämlich nach dem passenden Eintrag in P1 gesucht werden) um die Ecke kommen, damit man das ernsthaft als "eigenen Versuch, bei dem sich jemand etwas gedacht hat" werten muß.

5. Neben der Beschreibung, was dieses VPN eigentlich machen soll (das geht dabei los, ob ein "asymmetrischer Verbindungsaufbau" (also ein passiver Responder und ein aktiver Initiator - wenn die FRITZ!Box keine statische IP-Adresse hat, ist das fast zwangsläufig die sinnvollste Lösung) erforderlich und/oder gewollt sind, ob die Verbindung "always on" sein soll oder nur "on demand" hergestellt werden sollte) gibt es dann auch noch in der FRITZ!Box ein Protokoll für das VPN - auch das gehört zu einer "Fehlermeldung" dazu.

Insofern: Man kann Dir mit einiger Sicherheit helfen ... ein paar "Formen" sollte so ein Beitrag aber schon einhalten und dazu gehört ggf. sogar die gelegentliche Verwendung der Shift-Taste beim Schreiben eines Beitrags. Es gibt ja auch noch genug andere Threads im IPPF, die sich mit dieser Thematik beschäftigen und ich denke nicht, daß Dir einer davon als "Blaupause" für #8 gedient hat - oder Du hast schon beim "Kopieren" einiges nicht richtig verstanden (oder als "nicht so wichtig" erachtet).

Dein Beitrag in #8 sieht zwar lang und ausführlich aus, aber eigentlich ist das nur den "Formfehlern" geschuldet ... der Text "rundherum" ist ziemlich inhaltsleer und läßt sich auf folgende Fakten reduzieren:

1. Eine Seite ist eine FRITZ!Box 7490 - nicht einmal die verwendete Firmware-Version wird erwähnt.
2. Die andere Seite ist ein "linuxrechner im internet" - darunter können sich auch nur Laien irgendetwas vorstellen, die schon von Beginn an nur sehr verschwommene Vorstellungen davon haben, was "linuxrechner" und "internet" sein mögen.
3. Du bist "ziemlicher beginner" ... ob das nun als Entschuldigung oder nur als Erklärung oder gar als Ausrede für nicht gemachte Hausaufgaben herhalten soll, kann man dem Kontext nicht entnehmen.

Sei nicht sauer, aber so gibt es von mir keine (inhaltliche) Antwort (vielliecht findet sich ein anderer, aber ich wüßte nicht einmal, wo ich bei einem Versuch einer Antwort ansetzen sollte, weil ich die Idee gar nicht verstanden habe) ... aber vielleicht liest Du Dir ja auch mal diesen Text durch: https://www.tty1.net/smart-questions_de.html#beprecise und überarbeitest Deine Frage dann noch einmal.
 
meine fritzbox config sieht so aus:
Code:
... 
                phase2localid {
                        ipnet {
                                ipaddr = 192.168.[COLOR=#ff0000]178[/COLOR].80;
                                mask = 255.255.255.0;
                        }
                }
                phase2remoteid {
                        ipnet {
                                ipaddr = 192.168.[COLOR=#ff0000]178[/COLOR].81;
                                mask = 255.255.255.0;
                        }

Hallo choco,
zwei gleiche LAN-Netzwerkaddressen 192.168.178.0/24 wird bei "conn_type = conntype_lan" nicht funktionieren;

Bitte auch mal die VPN-Logfiles ike.log (ist als Abschnitt in support datei enthalten, kann mittels http://fritz.box/?lp=support generiert werden.) beifügen;

Gruß
Pokemon20021
 
hallo nochmal und danke für eure antworten, es tut mir leid das ich den anforderungen nicht genüge und bemühe mich in zukunft zu verbessern. Ich möchte das vpn nutzen um upload und download durch den tunnel zum server zu schicken. ich habe eine fritz box kabel 7490 mit fritz os 06.62.Die installierte firmware lautet 141.06.62. der linuxserver hat das betriebssystem ubuntu 14.04_64bit. hier nochmal meine config dateien:

fritzbox.conf:

vpncfg {
connections {
enabled = yes;
conn_type = conntype_lan;
name = 185.68.xxxxxx;
always_renew = yes;
reject_not_encrypted = no;
dont_filter_netbios = yes;
localip = 0.0.0.0;
local_virtualip = 0.0.0.0;
remoteip = 163.172.35.100;
remote_virtualip = 0.0.0.0;
localid {
fqdn = "185.68.xxxxxx";
}
remoteid {
ipaddr = 163.172.35.100;
}
mode = phase1_mode_aggressive;
phase1ss = "all/all/all";
keytype = connkeytype_pre_shared;
key = "xyzpass1234567890xyz";
cert_do_server_auth = no;
use_nat_t = yes;
use_xauth = no;
use_cfgmode = no;
phase2localid {
ipnet {
ipaddr = 192.168.178.0/24;
mask = 255.255.255.0;
}
}
phase2remoteid {
ipnet {
ipaddr = 192.168.190.0/24;
mask = 255.255.255.0;
}
}
phase2ss = "esp-all-all/ah-none/comp-all/pfs";
accesslist = "permit ip any 192.168.190.0/24 255.255.255.0";
}
ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500",
"udp 0.0.0.0:4500 0.0.0.0:4500";

}

racoon.conf:

log debug2;
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";

remote anonymous {
exchange_mode aggressive;
my_identifier address 163.172.35.100;
verify_identifier off;
passive on;
dpd_delay 20;
ike_frag on;
nat_traversal on;
proposal {
encryption_algorithm aes;
hash_algorithm sha1;
authentication_method pre_shared_key;
lifetime time 1 hour;
dh_group 2;
}
generate_policy on;
}

sainfo anonymous {
pfs_group 2;
lifetime time 3600 seconds;
encryption_algorithm aes;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
}

listen
{
isakmp 163.172.35.100 [500];
strict_address;
}

setkey.conf

#!/sbin/setkey -f
flush;
spdflush;

psk.txt

185.68.xxxxxxx xyzpass1234567890xyz

mittlerweile bekomme ich eine verbindung zwischen fritz box und server. die öffentliche ip bleibt allerdings unverändert wenn ich meine ip unter https://www.wieistmeineip.de/ checke.
 
Zuletzt bearbeitet:
es tut mir leid das ich den anforderungen nicht genüge
Das kann passieren, daher meine Hinweise auf die gemachten Fehler ... aber von
und bemühe mich in zukunft zu verbessern.
ist - außer dieser "Versicherung" - nicht wirklich etwas zu sehen.

Die Entdeckung des "QUOTE"-Tags war Dir offensichtlich schon Erfolgserlebnis genug? Wenn Du das jetzt mit den von anderen geschriebenen Beiträgen vergleichst, fällt Dir nichts auf?

ich habe eine fritz box kabel 7490 mit fritz os 06.62.Die installierte firmware lautet 141.06.62.
Das wäre für eine FRITZ!Box 7490 (und das ist ja offensichtlich nicht nur ein Flüchtigkeits-/Schreibfehler, denn das wird ja ständig wiederholt, unabhängig von dem, was im GUI des FRITZ!OS groß und deutlich in der Titelzeile steht) in der Tat eine sehr, sehr ungewöhnliche OS-Konfiguration und könnte sehr interessant sein ... aber vermutlich handelt es sich eben bloß um einen weiteren Beleg für nicht allzu akribisches Vorgehen beim Verfassen von Beiträgen.

Den Rest kommentiere ich nicht mehr weiter ... offenbar nimmst Du Hinweise tatsächlich zur Kenntnis, aber das Kennzeichnen/Beschreiben der daraus abgeleiteten Änderungen ist wohl nichts, was Du selbst gerne machst. Jetzt muß man dann immer noch mühsam durch den Vergleich der alten mit der neuen Konfiguration ermitteln, was Du eigentlich geändert hast oder man muß sich erneut durch die gesamte Konfiguration kämpfen, nur um am Ende festzustellen, daß Du die Hinweise verstanden und umgesetzt hast. Meinst Du tatsächlich, daß das jedem weiteren/späteren Leser so ohne weiteres auffällt, daß es keines weiteren Wortes dazu bedurfte?

Von wo am Ende "wieistmeineip.de" überhaupt aufgerufen wurde und wieso sich da eine andere IP-Adresse zeigen sollte (von einem Vorhaben, alle Daten über einen VPN-Tunnel zum Server zu senden, steht ja gar nichts in der "Beschreibung" des Ziels, das gibt tatsächlich auch die Konfiguration nicht her - aber auch dieses Thema "Wie sende ich sämtlichen Verkehr über eine VPN-Verbindung?" ist ad nauseam behandelt worden im IPPF und man findet es mit ein wenig eigener Initiative problemlos), kann/muß man nach wie vor raten.
 
die öffentliche ip bleibt allerdings unverändert wenn ich meine ip unter https://www.wieistmeineip.de/ checke.

wie soll sich den "Deine Internet-Gateway-IP" ändern, wenn Du nur Traffic an das Netzwerk 192.168.190.0/24 in den Tunnel schickst ?

Code:
accesslist = "permit ip any 192.168.190.0/24 255.255.255.0";

Es wäre toll, wenn Du beim Zusammentragen der Informationen mehr Sorgfalt walten lässt und vor dem Posten entsprechend prüfst (Beispiel: FW Angabe einer FB6490 gepostet und die Box FB7490 bezeichnet), siehe auch Hinweise von PeterPawn.
 
Zuletzt bearbeitet:
Auch ich beschäftige mich momentan mit Fritzbox als VPN Client. Dabei habe ich folgende Situation:

Server (public ip) <--Internet--> Mobilfunk gedöns (public ip+nat) <--GSM/UMTS/LTE--> Fritzbox mit Internet-Stick (7270)

Im Idealfall sind es dann irgendwann mal mehrere Boxen die sich mit dem VPN verbinden und darüber verschlüsselt Telefonie abwickeln.
Das interne Netz ist auf dem Server 10.0.10.0/24 und die Boxen kriegen IP's aus dem Netz 10.0.11.0/24 (nur eine IP!) die FB macht dann NAT aus dem eigenen internen FB-Netz zum 10.0.10.0/24 Netz.

Zur Authentifizierung und Schlüsselerzeugung setze ich auf Pre-Shared-Key.
Das IPSec-Krams betreibe ich aus Sicherheitsgründen im Main-Mode und nicht aggressive mode.
Auf dem Server läuft strongswan U5.2.1
Die Fritzbox soll nicht ihr gesamtes LAN zur Verfügung stellen sondern nur den Zugang zu einem geschützten internen Server-LAN bereitstellen (aka RTP und SIP verschlüsseln :)
Aus Sicherheitsgründen habe ich 3des aus den erlaubten Schlüsselverfahren herausgenommen. Die Schlüsselaushandlung habe ich auf Diffie-Hellman Group 2 belassen, da meine FB anscheinend nichts anderes kann. Sonst sollte man hier auch eine bessere Variante nehmen.

Ich habe mittlerweile mit folgender Konfiguration erfolge erzielen können:
/etc/ipsec.conf:
Wichtig war hier die Anpassung der keylife und ikelifetime, sonst ist mir regelmäßig die Verbindung nach ~1h bei der erneuten Schlüsselaushandlung kaputt gegangen. Mit den aktuellen Einstellungen ist der Ausfall auf ~90sec runter.
Code:
conn %default
    ikelifetime=60m
    keylife=20m
    rekeymargin=3m
    keyingtries=1
    keyexchange=ikev1
    rekey=yes
    dpdaction=clear
    dpddelay=300s
    ike = aes192-sha1-modp1024!
    esp = aes192-sha1!

conn rw
    left=<public ip server>
    leftid=@<dns name server>
    leftsubnet=10.0.10.0/24
    leftauth=psk
    leftfirewall=yes
    right=%any
    rightsourceip=%dynamic,10.0.11.0/24
    rightauth=psk
    rightauth2=xauth
    auto=add
    ikelifetime=4200s
    margintime=600s
    keylife=15m



/etc/strongswan.conf:
Hier sind eigentlich nur Angaben drin um den Daemon charon gesprächiger zu machen.
Code:
charon {
        load_modular = yes
        #load = sha1 sha2 md5 aes des hmac gmp random nonce xauth-generic kernel-netlink socket-default updown stroke

        plugins {
                include strongswan.d/charon/*.conf
        }
        syslog {
#               identifier = charonsl
                auth {
                        default = 1
                        ike_name = yes
                        cfg = 2
                        ike = 2
                        enc = 1
                        chd = 2
                }
                daemon {
                        default = 1
                        ike_name = yes
                        cfg = 2
                        ike = 2
                        enc = 1
                        chd = 2
                }
        }
}

/etc/ipsec.secrets:
Code:
<dns name server, identisch zur ipsec.conf> %any : PSK <psk-ganzlanger-blödsinniger-text>
<id aus fritzbox xauth config> : XAUTH "xauth passwort"

Fritzbox Config:
phase1_mode_idp = kein aggressive sondern main mode
keepalive_ip = IP Adresse eines Gerätes hinter/im VPN das immer erreichbar ist
Code:
vpncfg {
        connections {
                enabled = yes;
                editable = no;
                conn_type = conntype_out;
                name = "SIP VPN";
                boxuser_id = 0;
                always_renew = yes;
                reject_not_encrypted = no;
                dont_filter_netbios = no;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = <public ip server>;
                remote_virtualip = 0.0.0.0;
                keepalive_ip = 10.0.10.1;
                localid {
                        fqdn = "fritz-mobil";
                }
                mode = phase1_mode_idp;
                phase1ss = "all/all/all";
                keytype = connkeytype_pre_shared;
                key = "pre shared key, wie in ipsec.secrets";
                cert_do_server_auth = no;
                use_nat_t = yes;
                use_xauth = yes;
                xauth {
                        valid = yes;
                        username = "[email protected]";
                        passwd = "xauth password";
                }
                use_cfgmode = yes;
                phase2remoteid {
                        ipnet {
                                ipaddr = 10.0.10.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2ss = "esp-all-all/ah-none/comp-all/no-pfs";
                accesslist = "permit ip any 10.0.10.0 255.255.255.0";
        }
        ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500",
                            "udp 0.0.0.0:4500 0.0.0.0:4500";
}

Folgendes Problem besteht noch:
Nach 1h10min erfolgt eine Neuaushandlung des Hauptschlüssels für die Verbindung. Dabei kommt es zu einem ~90sec Verbindungsabbruch. Hat das auch schon jemand in seiner Konfiguration feststellen können? oder habt ihr die Neuaushandlung komplett abgeschaltet?

Können die neueren Fritzboxen auch andere Schlüsselverfahren? z.B. DH Group 5 oder 14? siehe https://wiki.strongswan.org/projects/strongswan/wiki/IKEv1CipherSuites

Benutzt noch wer strongswan?
 
Ich würde mal versuchen, der StrongSwan-Seite hier das eigenständige Rekeying zu untersagen (rekey=no) ... das sollte sie nicht daran hindern, auf entsprechende Requests der FRITZ!Box trotzdem korrekt zu antworten. Damit könnte aber vermieden werden, daß irgendwelche neuen SAs eingerichtet werden (während alte noch gültig sind) und dann bei einem Mißverständnis auf der AVM-Seite (vorzeitig) wieder abgeräumt werden.

Dieses Verhalten bei "Kollisionen" tritt zwar ansonsten nur auf, wenn eine Verbindung "frisch" von beiden Seiten aufgebaut wird (und kann i.d.R. durch explizites Festlegen eines Responders und eines Initiators gelöst werden), aber das kann natürlich auch beim späteren Aushandeln neuer "Sitzungsschlüssel" passieren. Die Idee wäre es also, dafür zu sorgen, daß die FRITZ!Box keine "fremden" Anforderungen für neue SAs verarbeiten muß. Das könnte die 90 Sekunden Pause vermeiden (in Telefonaten sicherlich recht störend) ... ich tippe da auf ein Mißverständnis beim Rekeying und dann werden eben erst einmal alle SAs abgeräumt, bis irgendwann ein Paket wieder einen "frischen Verbindungsaufbau" auslöst.

Ansonsten können neuere FRITZ!OS-Versionen (ab 06.2x) auch andere DH-Groups verwenden - nur bei der 7270 (und Vorgängermodellen) ist halt bei der 06.06 (oder früher) schon Schluß.

Dafür hat die 06.06 dann noch nicht das "54 Minuten-Problem", das hat AVM m.W. auch erst mit der 06.2x eingeführt.

Ich weiß nicht genau, ob/wie das Problem mit den dynamischen DNS-Namen inzwischen im StrongSwan gelöst wurde - ich kenne das nur aus den Zeiten, wo man den Daemon noch neu starten mußte (oder "reload"en), damit DynDNS-Änderungen wirksam wurden, weil der Name in der "ipsec.secrets" nur einmalig beim Start aufgelöst wurde und dann eben für den Main-Mode der passende PSK nicht mehr gefunden wurde, wenn der Client inzwischen eine andere dynamische IP-Adresse erhalten hatte.

Daher staune ich ein wenig über die Verwendung des "main mode" - hier würde mich tatsächlich interessieren, ob das StrongSwan inzwischen ohne solche Restarts/Reloads hinbekommt. Beim "aggressive mode" stellt sich das Problem nicht (mit ausreichend langem und zufälligem Key ist auch dieser Modus kein Sicherheitsproblem), weil hier die Identität der Gegenstelle nicht nur aus der IP-Adresse (Zertifikate kann die FRITZ!Box ja offiziell nicht) abgeleitet werden kann und nur damit wird dann der passende PSK auch gefunden in der "ipsec.secrets".

Solange man nur ein 1:1-Szenario hat, ist das sicherlich auch nicht wirklich problematisch, aber bei 1:n-Verbindungen wird die Frage, wann und wie häufig man so ein Reload ausführt (wenn es immer noch notwendig sein sollte), dann schon kniffliger - nur so als "Einwurf" meinerseits, weil die Verwendung des "main mode" mit dynamischen IP-Adressen schon etwas ungewöhnlich ist.

Das ist eigentlich mehr eine Roadwarrior-Konfiguration hier als ein Site-to-Site-VPN (oder auch Site-to-Host). Solange die FRITZ!Boxen an dynamischen Adressen hängen, macht es ohnehin nicht allzuviel Sinn, seitens des Servers ebenfalls einen Verbindungsaufbau zu versuchen. Wenn ein solcher Anschluß mal für mehr als die Dauer eines "normalen Adresswechsels" ausfällt, zeigt so eine DynDNS-Adresse auch mal längere Zeit auf den falschen Host - außer unnötigem Traffic bringt das am Ende gar nichts.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

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.