Kleines Howto IPsec mit racoon: Unterschied zwischen den Versionen
Yehudi (Diskussion | Beiträge) |
K (Stilistische Korrektur(es gibt kein "selber" im deutschen Sprachgebrauch,nur "selbst")) |
||
Zeile 1: | Zeile 1: | ||
Autor: stka | Autor: stka | ||
− | Auf Grund dessen, dass ich | + | Auf Grund dessen, dass ich selbst über einige Zeit nach einer Lösung gesucht habe, möchte ich heute mal ein kleines Howto schreiben zum Thema IPsec Verbindung von einem Host hinter einem Router mit dynamischer IP. Vielleicht hilft es ja dem einen oder anderen. Zwar habe ich das ganze unter debian realisiert ist aber auch unter Suse machbar. |
Also die Aufgabe war folgende: | Also die Aufgabe war folgende: |
Aktuelle Version vom 12. Juni 2007, 01:03 Uhr
Autor: stka
Auf Grund dessen, dass ich selbst über einige Zeit nach einer Lösung gesucht habe, möchte ich heute mal ein kleines Howto schreiben zum Thema IPsec Verbindung von einem Host hinter einem Router mit dynamischer IP. Vielleicht hilft es ja dem einen oder anderen. Zwar habe ich das ganze unter debian realisiert ist aber auch unter Suse machbar.
Also die Aufgabe war folgende: Mein privates Netz über IPsec mit einem anderen Netz zu verbinden. Wobei die IP des IPsec Gateway'S auf der anderen Seite eine feste IP hat. Hier mal die Verbindungen:
"Mein Netz 192.168.0.0/24" ==> "Mein Router mit dynamischer IP" ==> "Router mit fester IP IPsec Gateway" ==> "Netzwerk hinter Gateway 192.168.1.0/24"
Die Netze, die verbunden werden sollen, MÜSSEN unterschiedliche IP Bereiche haben. Mein Router unterstützt IPsec passthrough, dadurch werden die IPsec Anfragen durchgeleitet. Die Verschlüsselung läuft über preshared key. Zum Verbindungsaufbau habe ich "racoon" und "setkey" verwendet. Beide Programme basieren auf dem im Kernel 2.6 integrierten IPsec Stack. Für beide Programme gibt es eine conf-Datei. Hier nun die conf-Dateien:
# Pfad zum Konfigurations Verzeichnis path include "/etc/racoon"; # So kann man am Anfag gut die Fehler finden log debug; # In der Datei werden die Schlüssel eingetragen path pre_shared_key "/etc/racoon/psk.txt"; # Voreinstellung die so aus dem Standard übernommen wurden. padding { maximum_length 20; # maximum padding length. randomize off; # enable randomize length. strict_check off; # enable strict check. exclusive_tail off; # extract last one octet. } # Hier die Konfiguration der Phase 1 # durch remote anonymous wird diese System zu einem roadwarrior # ein System mit dynamischer IP remote anonymous { exchange_mode aggressive; generate_policy on; support_proxy on; proposal_check obey; # der identifier MUSS von der Gegenstelle eingerichtet sein und bekannt sein. # Es gibt hier verschieden Möglichkeiten siehe "man racoon.conf" my_identifier user_fqdn "meine@email-adresse.de"; lifetime time 3600 sec; # Hier werden alle Verschlüsselungen für die Phase 1 angegeben # Auch das wird vom anderen GW vorgegeben. proposal { encryption_algorithm 3des; hash_algorithm md5; authentication_method pre_shared_key; dh_group 2; lifetime time 28800 sec; } } # Hier beginnt die Phase 2 sainfo anonymous { pfs_group 2; encryption_algorithm blowfish; authentication_algorithm hmac_md5; compression_algorithm deflate; lifetime time 3600 sec; } # Mein Netz ==> Netz hinter GW sainfo address 192.168.1.0/24 any address 192.168.0.0/24 any { pfs_group 2; lifetime time 3600 sec; encryption_algorithm blowfish; authentication_algorithm hmac_md5,hmac_sha1; compression_algorithm deflate; }
Das war die Datei racoon.conf
hier nun die Datei setkey.conf
#!/usr/sbin/setkey -f # Löschen und zurücksetzten aller Verbindungen flush; spdflush; # Hinweg hier werden die IP's der GW am ende des Tunnels angegeben # Die IP 162.54.11.14 ist die IP des anderen GW vor dem Zielnetz. spdadd 192.168.0.0/24 192.168.1.0/24 any -P out ipsec esp/tunnel/192.168.0.2-162.54.11.14/require; # Rückweg # Das ganze noch mal nur anders herum spdadd 192.168.1.0/24 192.168.0.0/24 any -P in ipsec esp/tunnel/162.54.11.14-192.168.0.2/require;
Jetzt fehlt nur noch die Datei psk.txt
162.54.11.14 einschoenlanger123undschwer23zuratender!!22schluessel
Jetzt noch den "racoon" neu starten und ein "ssh <host IP im anderen Netz>" sollte funktionieren.
Ich hoffe dem einen oder anderen wird es etwas helfen.
eingefügt: --Yehudi 00:59, 26. Aug 2006 (CEST)