IPsec-tools für freetz (ohne AVM VPN)

Mal aktuellen trunk angepasst. Minianleitung:

Code:
# Voraussetzung: Patch ist entpackt im Freetz-Ordner
# Einspielen mit 
patch -p0   < ipsectools.patch
# "Hack" um ausführbare Dateien zu erzeugen
grep "^Eigenschafts" ipsectools.patch | sed 's%^Eigen.*: make%make%' | xargs chmod +x

Das Paket kann unter "testing" gewählt werden, "replace Kernel" ist Voraussetzung.

Ob die ganzen Kernel-Module für alle Boxen-Varianten richtig gebaut werden weiß ich nicht, getestet war es (und Patches sind drin für) AR7 x.04.33, AR7 x.04.49 (getestet auf FBF und Eumex) und Ohio x.04.76 (getestet auf W701V).


Jörg
 

Anhänge

  • ipsectools.patch.gz
    6.5 KB · Aufrufe: 26
Hallo Jörg,

vielen Dank für dein Engagement auf dem Gebiet der Lan-to-Lan Kopplung.
Ich hoffe das ich am Montag dazu komme deine Realisierung gegen einen Cisco 2811 zu testen, da für mich das "Außenstellen-Szenario" besonders interessant ist.

Sehe ich das Richtig, dass da racoon als ipsec-implementierung läuft? (wenn ja :cool:)


mfg tommy


P.S mach bitte weiter ;)
 
Hurra, wenigstens einer, der sich das mal ansieht :D

Ich bin sehr gespannt! Und ja: das läuft mit racoon...

Jörg
 
Mahlzeit ;)

Vorab: ich werde leider erst am Mittwoch dazu kommen, das ganze gegen den Cisco zu testen. Es sollten dabei aber eigentlich keine Probleme Auftreten, da ich die Lan-zu-Lan Kopplung mittels ipsec-tools (Racoon) und Cisco validieren konnte!

Nun zur FritzBox (3270), da ich bereits die Vorkehrungen getroffen habe, um das ganze ersteinmal im LAN zu testen.

das Patchen der FW funktioniert tadellos, sodass die benötigten Packete drauf sind --> :groesste:

Die ganze konfiguriererei mittels der Oberfläche is vollkommen ausreichend !

Mir ist lediglich aufgefallen, dass racoon das pseudointerface (169.254.2.1 (dsl) bzw. 169.254.1.1 (lan:0)) nicht binden kann, solange dsld noch läuft (kill dsld) d.h internetzugang würde flach fallen :(
Wäre hierfür ein zuätzliches Interface (ipsec?) für die Box angebracht, was direkt auf das dsl interface zeigt und eine andere pseudo-ip verwendet?

mfg tom

P.S ich halte dich weiter auf dem laufenden ;)
P.SS eventuell über StongSwan schonmal nachgedacht (wobei es viele packete benötigt, wie iptables ipport und das ganze zeugs)
 
Wegen der Bindung: Kann es sein, dass das bei einer 3270 irgendwie mit dem AVM-ipsec kollidiert?
Wenn du also vielleicht mal versuchst, den "avmike" zu stoppen (so der denn läuft)?

Jörg

EDIT: Ach so, für die x270-er Boxen sind die Patches für die Kernelmodule nicht enthalten, da müsstest du noch selbst Hand anlegen ;-)
Diese Module werden gewählt:
Code:
CONFIG_NET_KEY=m
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_TUNNEL=m
CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_TWOFISH=m

EDIT2: Mit dem aktuellen Trunk machen die nicht statisch gelinkten Programme Probleme, weil sie die Libraries nicht finden. Das angehängte "ipsec-tools.mk" ist eine "besere" Version (die Datei make/ipsec-tools/ipsec-tools.mk durch die angehängte ipsec-tools.mk.txt ersetzen). Zwei Dinge sind darin noch unschön:

- das install vom Libtool benötigt einen absoluten Pfad (DESTDIR="$(PWD)/$(IPSEC_TOOLS_DIR)/root")
- mir ist noch immer keine Methode eingefallen, wie ich die Programme "schön" statisch übersetze (ohne den plumpen Eingriff ins Makefile)
 

Anhänge

  • ipsec-tools.mk.txt
    3 KB · Aufrufe: 13
Zuletzt bearbeitet:
Guten Morgen Jörgn,

zur Bindung: du hattest recht, ich hatte noch eine vpn.cfg auf der Box, sodass diese noch bei booten den avmike daemon gestartet hat --> cfg raus und ruhe im Karton ;)

Die crypto-Module für den Kernel hatte ich bereits manuell hinzugefügt - ohne würde es ja keinen Sinn machen, aber danke für den Patch. Für eine automatisierte Erstellung der relevanten libs definitiv flexibler.

Ich konnte es mir gestern Abend nicht nehmen lassen und hab das ganz mal, vorbereitend für den Cisco-Test, gegen eine Linux-Machine (ipsec-tools + racoon) getestet. Siehe da: es tuts :p
Ich hoffe, dass ich zum Ende der Woche dir dann ein umfangreicheres feedback zukommen lassen kann + szenario + config, sodass andere leser darauf aufbauen können.


mfg tom
 
Sollen wir da noch was in den trunk einbauen/aufnehmen? Evtl. auch nur um die Nutzung zu erleichtern.

Mfg Oliver
 
Ich denke, die Auswahlmöglichkeit der für IPSec benötigten Module könnte man vielleicht in das "normale" menuconfig mit aufnehmen, da es bislang wohl bei keiner Box zu Problemen gekommen ist.

Der Rest des "Pakets" ist zunächst noch sehr rudimentär und es gibt die oben genannten Punkte, für die mir noch keine Lösung eingefallen ist (vielleicht sollte ich mal jemand fragen, der sich damit auskennt ;-)).

Ist natürlich auch die Frage, bei welchen Boxen das überhaupt "nachgefragt" wird.
Zuerst war es (zumindest nach meinem Wissen) die einzige IPSec Implementierung auf der Box, mit dem sich auch das Iphone verbinden ließ, aber das geht ja heute mit dem AVM Kram direkt...

Jörg

EDIT Ticket im Freetz-Trac angelegt
 
Zuletzt bearbeitet:
Hallo Jörg,

glücklicherweise hatte ich heute Zeit um das ganze mal gegen den Cisco zu testen.

Vorab noch ein kleinen Kommentar zum erwähnten avmike Daemon. Bisher hat sich das ganze als sehr unflexible erwiesen. Besonders in Kombination mit Drittanbietern (z.B. eben Cisco) ist es mir noch nicht gelungen über die Phase 2 Negotiation heraus zu kommen (Konfiguration?!)
Umso interessanter ist es für mich ipsec-tools + racoon auf der Box zu haben, da (i) ich bisher gute Erfahrung mit den offenen IPSec (Strongswa o. Racoon) Implementierungen sammeln konnte und (ii) diese zum Teil sehr kompatible zu Drittanbietern sind. Die Problematik dahinter ist darin begründet, dass der IPSec-Standard (!) sehr Herstellerspezifisch umgesetzt wird.

Lange rede, kurzer Sinn --> heute getestet und es geht auf Anhieb.

Hardware:
FritzBox 3270, FW mit oben genannten ipsec-tools patch
Cisco 2811 (ebenfalls getestet mit C2600 und C3600)

Topologie:

remote Network = 194.94.78.0/24
lokal Network = 192.168.1.0/24
wan Network = 10.0.0.0/8

[Host]194.94.78.11---194.94.78.1(eth0)[Cisco](eht1)10.0.0.1---10.0.0.11(Lan1)[FritzBox3270](Lan2)192.168.1.1---192.168.1.11[Host]

IPSec:

Pre-shared-key
Tunnel-Modus (ESP)
Crypto-Module: 3DES (verschlüsselung), MD5 (hash), DH-Group2 (1024)


Auf diesem Wege ein riesen Dank an Jörg für seine Bestrebungen und Ansträngungen :groesste:

mfg tommy

Im Anhang befindet sich:
[für FritzBox=racoon_FB.zip]
racoon.conf
setkey.conf
psk.txt

[für Cisco]
cisco2811.txt Konfiguration output (sh configuration)

[zusätliches]
negotation.zip (wireshark log isakmp/ipsec negotiation)
 

Anhänge

  • racoon_FB.zip
    11 KB · Aufrufe: 18
  • cisco2811.txt
    1.6 KB · Aufrufe: 19
  • negotiation.zip
    3.7 KB · Aufrufe: 8
Hallo Thommy,

Gratulation, ist ja klasse da schlägt doch das Cisco-Herz gleich höher, ich werde das gleich morgen mal nachbauen (auf die "Heim-Boxen" passt kein IOS mit IPSec)!
Und Danke, dass du gleich ein Beispiel drangehängt hast!

Jörg
 
Ich erlaube mir mal einen neuen Beitrag, weil auch noch was neues drinsteht ;-)

Im Trac ist ein leicht korrigiertes Paket.

Ansonsten konnte ich das jetzt auch bei mir nachvollziehen: IPSec-Tunnel zu einem Cisco (2800) war möglich.

Ich habe dann das ganze noch etwas steigern können:
- Kernel-Unterstützung für GRE aktiviert und BusyBox mit "ip" (tunnel Unterstützung) -> GRE-Tunnel durch IPSec geht
- Dann noch den Patch von hier mit eingearbeitete, dann kann sogar der "GRE-Keepalive" von Cisco genutzt werden ;-).

(Der Patch "erlaubt", dass GRE Pakete geroutet werden, auch wenn sie eine eigene IP der Box haben, denn das funktioniert so, dass sich der Cisco quasi durch den GRE-Tunnel selbst ein Paket mit der IP der Gegenseite schickt. Im Anhang ein Patch für die 04.80-er FW vom 7170)

Jörg
 

Anhänge

  • gre_patch_04.80.patch.gz
    406 Bytes · Aufrufe: 7
Hallo zusammen,

ich habe hier eine Fritzbox (Welche Version hab ich gerade nicht im Kopf) bei mir zuhause stehen. Über diese Fritzbox sind bereits 2 IPSec Tunnel eingerichtet. Nun soll eine weitere Fritzbox 7112 dazukommen. Da auf der 7112 kein IPSec verfügbar ist werd ich mich im laufe der nächsten 2-3 Wochen intensiver damit beschäftigen das mit Freetz zum laufen zu kriegen.

Seht ihr da generelle Schwierigkeiten? Soll (oder besser "Darf") ich mich hier bei Problemen hier melden? Feedback was am Ende geht und was nicht kommt natürlich auch. :)

Gruß,
Stefan
 
Hallo silversonic,

was die Konfiguration deines Tunnels angeht, bin ich dir gerne behilflich.
Wenn ich das richtig verstanden hab soll das ganze so aussehen?!

[internet Netz] -- [FB dessen bezeichnung unbekannt] - (tunnel) - [7112] --[externes Netz]

Was den compile-Vorgang angeht, insofern Probleme aufteten, müsstest du dich an Jörg (MaxMuster) wenden. Ich gehe aber eigentlich davon aus, dass es keine Probleme geben dürfte.

Probier einfach mal den Patch aus dem Freetz-Ticket, was der Jörg angelegt hat
(*ticket*)

mfg Tom

P.S bei fragen immer rein hier
 
Alternativ sollte man vllt. auch für die 7112 eine Alien-Variante der 7170 anbieten, da ist avm vpn mit drin.
 
Soweit sogut... Hab mich gestern Abend mal an ein Image gesetzt. Ich denke das hat soweit auch erstmal funktioniert. Wenn ich per telnet auf die Box gehe ist auch "racoon" als Befehl verfügar... also müssten die IPsec-Tools drauf sein.

Heute Abend geht es weiter. Ich vermute der nächste Schritt wäre auf meiner Box ein IPSec Tunnel mit dem AVM Tool anzulegen. Anschliessend muss ich die Konfiguration für die Gegenstelle aus dem AVM Tool irgendwie für racoon verständlich auf die 7112 packen. Korrekt?

Ist es eigentlich richtig, dass ich bei dem Freetz Webinterface so gar nichts zu IPSec finde?

Gruß,
Stefan
 
Hallo Stefan

Soweit sogut... Hab mich gestern Abend mal an
Ist es eigentlich richtig, dass ich bei dem Freetz Webinterface so gar nichts zu IPSec finde?

Prinzipiell sollte das nicht der Fall sein. Solange du im Webinterface IPSec-Tools nicht startest und somit die Routinge ausgeführt wird, werden die relevanten Konfigurationen (racoon.conf, setkey.conf, psk.txt) nicht angelegt. Racoon meldet sich demnach immer mit einem "could not found racoon.conf"

Daher würde ich vorschlagen da nochmal genau zu kontrollieren, ob alles geklappt hat (Es sollte definitiv unter Dienste --> IPSec-Tools zu finden sein).

Bei der Konfiguration der "Haupt-VPN-Box" (nicht die 7112) mit dem AVM-Tool ist - nach meiner Erfahrung - vorsicht geboten. Das teil erstellt bloss *.cfg's für AVM relevante Lösungen (VPN-Client, FB2FB etc). Es wird sehr wahrscheinlich sein, dass du auf Grundlage des AVM-VPN-Tools erstmal dir eine Konfig erstellst und diese anpassen musst.
Ein Tipp von mir hinsichtlich der interoperabilität:

AVM verwendet standardmässig für seinen VPN-Daemon fertige Konfigurationen, d.h. einzelne IPSec Proposels kannst du nicht angeben, sondern nur im Verbund.
Ein weiterer Hinweis ist, dass AVM standardmäßig für die Phase 1 eine Keylife time von 3600 Sec (1h) festlegt und dies auch in der racoon.conf so angegeben werden sollte, sonst scheiterst du bereits beim Schlüsselaustausch.

PHP:
remote 10.0.0.1 {
        exchange_mode main,aggressive;
	lifetime time 3600 sec;
        proposal {
                encryption_algorithm 3des;
                hash_algorithm sha1;
                authentication_method pre_shared_key;
                dh_group modp1024; //DH-Group 2 entspricht bei AVM alternative deffie-hillmann
        }
        generate_policy off;
}

Unten habe ich dir nochmal eine Beispielhafte vpn.cfg für meine 3270 eingefügt, um dir einen Eindruck zu geben, was man einstellen sollte/könnte.
Die vpn.cfg sollte kompatible zu der racoon.conf sein, die du oben siehst (ACHTUNG: nicht getestet!)

PHP:
/*
 * C:\Users\tommy\AppData\Roaming\AVM\FRITZ!Fernzugang\10_0_0_11\fritzbox_10_0_0_11.cfg
 * Wed Jun 02 13:27:45 2010
 */

vpncfg {
        connections {
                enabled = yes;
                conn_type = conntype_lan;
                name = "AVM2Racoon";
                always_renew = no;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = 10.0.0.1; //endpunkt deiner VPN-Box 
                remote_virtualip = 0.0.0.0;
                localid {
                        ipaddr = 0.0.0.0;
                }
                remoteid {
                        ipaddr = 10.0.0.1; //endpunkt deiner VPN-Box
                }
                mode = phase1_mode_idp;
                phase1ss = "alt/3des/sha/3600"; //DH-Group 2, 3des, sha1 , key lifetime 1h
                keytype = connkeytype_pre_shared;
                key = "geheimniss";
                cert_do_server_auth = no;
                use_nat_t = no;
                use_xauth = no;
                use_cfgmode = no;
                phase2localid {
                        ipnet {
                                ipaddr = 192.168.1.0;  //netz hinter 7112
                                mask = 255.255.255.0;
                        }
                }
                phase2remoteid {
                        ipnet {
                                ipaddr = 194.94.78.0; //netz hinter VPN-BOX
                                mask = 255.255.255.0;
                        }
                }
                phase2ss = "esp-des|3des-all/ah-all/comp-all/pfs"; // 3des, sha1, Perfect forwarding secret aktiv!!
                accesslist = "permit ip any 194.94.78.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";
}


// EOF

Noch ein kleiner Tipp von mir: Insofern du die möglichkeit hast, teste das ganze vorher mit einem Linux rechner, der per Lan mit deiner VPN-Box verbunden ist. Mach dort racoon rauf (z.b. apt-get install -y ipsec-tools && racoon) und teste das ganze ersteinmal "offline". Mit linux bist du erst einmal flexibler und kannst das ganze besser debuggen. Wenn das erfolgreich war/ist, kannst du die Konfigurationen (racoon.conf, setkey.conf etc) ohne weiteres auf die 7112 übertragen


mfg tom
 
Zuletzt bearbeitet:
Wenn du den Patch im Trac anschaust, dann siehst du ein paar Property Änderungen "executeable". Diese Dateien musst du selbst mit "chmod +x $file" auf dem Rechner ausführbar machen, dass sie später richtig im Image sind.

MfG Oliver
 
Das geht z.B. so (siehe #21) auch "automatisch":
Code:
# Voraussetzung: Patch ist entpackt im Freetz-Ordner  und eingespielt, z.B. mit 
# "patch -p0   < IPSec_20100629_package.patch"
#
# "Hack" um ausführbare Dateien zu erzeugen
grep "^Eigenschafts" IPSec_20100629_package.patch | sed 's%^Eigen.*: make%make%' | xargs chmod +x

Jörg
 
OK, das mit dem ausführbar machen hatte ich übersehen. Gerade während des Halbfinales ein neues Image gebaut und jetzt sehe ich die IPsec-Tools auch in der Freetz Oberfläche. Hab jetzt gerade angefangen mal die vpn.cfg und racoon.conf zu erstellen. Da brauch ich aber wohl noch ein bisschen für.

Den Tipp mit dem Linux Server werd ich am Wochenende mal ausprobieren, wenn ich bis dahin kein Erfolg mit den beiden Box hatte.

So oder so schonmal vielen Dank für eure Hinweise und Tipps. :)
 
He, Super! Das geht ja schon. Danke.

Das ist die Lösung um die Android (>= 2.3.3 ?, ipsec racoon 0.7.3 eingebaut) smartphones mit sipdroid endlich durch VPN an die Fritzbox zu bringen und keiner wills haben?

http://freetz.org/ticket/854

http://freetz.org/changeset/5554

Ou, also kernel dependencies für IPSEC manuell handhaben, das geht nicht, sondern so:

cd ins kernel directory und

Code:
$ export CC="mipsel-linux-gcc"
$ make allnoconfig
$ make xconfig

Managed dependencies, alles was abwählbar ist abwählen ausser was für ipsec gebraucht wird...

Code:
$ grep =y .config-ipsec > .config-ipsec-dep
$ grep =m .config-ipsec >> .config-ipsec-dep

So hat man das schön im überblick -Anhang- Anhang anzeigen .config-ipsec-dep.00.tar.bz2

Hab aber glaub ich nicht alle üblichen compression algs drin.

Die Option Replace AVM Kernel scheint nicht nötig zu sein, aber das weiss man erst nach make dep.

Version 0.7.3 ausgewählt, 0.8.x laut debian QA zuviele neue bugs.
 
Zuletzt bearbeitet:
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.