PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : freeswan mit Suse9.1 und Kernel 2.6



Zerwas
05.07.04, 09:47
Hallo,

ich bin mit derzeit auf der Suche nach einer geeigneten VPN-Lösung.

Da ich für die VPN-Verbindung die Möglichkeiten von dhcp-over-ipsec und NAT-T
benötige um Firmen wie Roadwarriors anzubinden komme ich bei der mitgelieferten IPsec.Variante derzeit nicht weiter.

Ich habe jetzt Freeswan2.04 mit der neuesten Version ovn ipsec-tools installiert.

Nachdem ich das Programm nur installiert habe und keinen KLIPS-Patch in den Kernel kompiliert habe wollte ich freewan starten.

ipsec setup start

Dann kam eine Fehlermeldung beim Installieren von Kernelmodulen:

ipsec-setup: insmod: can't read ´ìpsec´: No such file or directory



Nun gut ich habe eine manuelle Konfiguration in /etc/ipsec.conf erstellt und das Interface eth0 für ipsec konfiguriert.

interfaces="ipsec0=eth0"

Wenn ich jetzt mit dem Befehl

ipsec manual --up verbindung-netz1-netz2

eingebe bekomme ich folgende Fehlermeldung

ipsec manual: fatal error in "verbindung-netz1-netz2": no ipsec-enabled interfaces found


Ich hofe es kann mir jemand weiterhelfen.

Ich bin schon seit 5 tagen am forschen und leider nicht fündig geworden.


Gruß

Christian

redmac5
01.08.04, 15:42
Bin gerade am exakt gleichen Problem.
Nach langer Recherche habe ich herausgefunden, dass die Meldung "no ipsec-enabled interfaces found" auch dann auftritt, wenn das KLIPS Kernelmodul nicht geladen ist. Anscheinend ist es bei SuSE 9.1 auch nicht im Kernel dabei, denn es gibt weder die Datei noch ist es in der Kernelkonfiguration aktiv.

Mein Plan war nun das Ganze nativ ueber IPSec im 2.6er Kernel abzuwickeln, was aber bisher an der sehr mageren Dokumentation scheitert... FreeSWAN wird mittlerweile ja nicht mehr weiter entwickelt und so wie es aussieht wird IPSec und die IPSec-Tools der Ersatz, zumindest bei SuSE.

Nunja, ich werde dann mal weiter suchen.

Zerwas
02.08.04, 08:18
Hallo,

schaue mal auf der Seite www.spenneberg.de
nach. Dort findest du für den Anfang ausführliche Informationen über die Installation und den Betrieb von VPN-Umgebungen.

Ich habe mir das Buch gekauft und konnte mich sehr gut einarbeiten.

Mein Problem war nur, dass ich gewisse Funktionen benötigt habe (dhcp-over-IPSec, RADIUS Authorisation und Accounting) welche ich mit dem native Stack nicht hinbekommen habe.

Da wollte ich halt mal Freeswan ausprobieren. Das war wohl nichts.

Jetzt kaufe ich einen Cisco VPN-Gateway für die Zentrale und für die Filialen benutze ich den native Stack.

Viel Spass mit der Implementierung. Die Konfiguration ist sehr bedienerfreundlich.

redmac5
02.08.04, 16:01
Hallo,
die Seite kenne ich mittlerweile schon, danke ;)

Bin jetzt auf den Native IPSec Stack des 2.6er Kernels umgestiegen. Hatte das ganze auch mit Racoon problemlos am laufen, jedoch nur zum Test auf dem internen Netz.
Wenn ich jetzt aber ueber ein NAT hinweg muss klappt die Sache nicht mehr ganz:

Aug 2 16:32:00 linux racoon: INFO: ISAKMP-SA established 192.168.2.1[500]-192.168.2.2[500] spi:f228f61d1e5301fc:2c6a88e72db46ddb
Aug 2 16:32:00 linux racoon: INFO: NAT-T: ports changed to: 192.168.2.2[4500]<->192.168.2.1[4500]
Aug 2 16:32:00 linux racoon: INFO: KA list add: 192.168.2.1[4500]->192.168.2.2[4500]
Aug 2 16:32:01 linux racoon: INFO: respond new phase 2 negotiation: 192.168.2.1[0]<=>192.168.2.2[0]
Aug 2 16:32:01 linux racoon: INFO: Adjusting peer's encmode UDP-Transport->Transport
Aug 2 16:32:01 linux racoon: INFO: Adjusting peer's encmode UDP-Transport->Transport
Aug 2 16:32:01 linux racoon: ERROR: libipsec failed send update (No algorithm specified)
Aug 2 16:32:01 linux racoon: ERROR: pfkey update failed.
Aug 2 16:32:01 linux racoon: ERROR: failed to process packet.
Aug 2 16:32:01 linux racoon: ERROR: phase2 negotiation failed.
Die Rechner "sehen" sich also, aber irgendwo bei der Portvergabe scheint es dann aber zu Haken. Zu der "No algorithm" Meldung gibt es bei google nur einen einzigen Treffer, der jedoch nur das gleiche Problem beschreibt.

Kennt sich jemand damit aus?


Ach ja, zwei gute Dokumentationen zum Thema habe ich auch noch gefunden:
http://ipsec.universale.info/ausarbeitung.pdf
http://lartc.org/lartc.pdf

Zerwas
03.08.04, 10:13
Hi,

möchtest zwischen den beiden VPN-Gateways natten?

Wenn ja wechselt das IKE-Protokoll von Port 500 auf UDP Port 4500.

Die Aussage " libipsec failed send update (No algorithm specified) " würde ich so interpretieren, dass entweder eine Seite NAT-T nicht eingestellt hat und somit nicht auf Port 4500 wechselt oder in deiner Phase 2 Konfiguration mit den Verschlüsselungstiefen oder Tunnel/Transport etwas faul ist.

Phase 1: Aushandlung des IKE ist auf Port 500 in Ordnung.
Konzentriere dich mal auf Phase 2 (SPD-Einträge)

Gruß

Christian

redmac5
03.08.04, 23:35
Hallo,
erst einmal danke fuer die Antwort.

Zum Netzaufbau: Der Client (der die Verbindung aufbaut) sitzt im LAN, der Server im Web. Beide kann ich konfigurieren, bloss auf das NAT das zwischen beiden sitzt habe ich keinen Einfluss.

Bezueglich dem NAT-Setting habe ich alle Kombinationen aus on, off, force und alle anderen Moeglichkeiten davon ausprobiert, jedoch ohne Erfolg. Wenn ich NAT bei einer Seite nicht anschalte, gibt es ueberhaupt keinen Verbindungsaufbau.

Hier noch die racoon.conf des Servers:

sainfo anonymous
{
pfs_group 2;
lifetime time 2 min;
encryption_algorithm 3des, des, blowfish;
authentication_algorithm hmac_sha1, non_auth;
compression_algorithm deflate;
}

remote anonymous
{
exchange_mode aggressive,main;
nat_traversal on;
my_identifier user_fqdn "server@web";
peers_identifier user_fqdn "client@lan";
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2;
}
}
Die vom Client habe ich gerade nicht zur Hand, sollte aber dazu passen.

Zerwas
04.08.04, 06:47
Also deinServer steht im Netz und du möchtest von einer Workstation im LAN eine IPSec-Transport Verbindung zum Server herstellen.

Der Server hat eine anonymous Verbindung

Welche Art von Authentifizierung kommt bei dir zum Einsatz?
PSK, x509v3 ...

Frage war unnötig.

Du bentuzt PSK.


Wenn du noch einen Test machst schalte racoon mit einem erhöhten debugging mal en (Option -vv). Damit habe ich eigentlich immer meine Probleme lokalisieren können.

Phase 1 funktioniert ja einwandfrei.

Aus reiner Neugier:

Wieso möchtest du eigentlich natten?

Geht die Verbindung ohne Probleme wenn du NAT-T abschaltest?

Deinen Fehler habe ich bisher leider nicht gehabt.

Ich kämpfe mit dhcp-over-IPSec rum.

Sende mal das relevante debugging von racoon mit erhöhter Ausgabe.



Gruß
Christian

redmac5
07.08.04, 17:14
So, hier ist (endlich) das Log vom Client, diesmal mit Logmode 2. Habe nur den relevanten Teil kopiert, da das Logging jetzt SEHR umfangreich ist.

Wenn die Rechner im selben Netz haengen und NAT aus ist, klappt es einwandfrei. Wenn sie nicht im selben Netz sind und NAT aus ist, bekomme ich wie gesagt gar keine Verbindung.

Hier das Log (die IPs habe ich durch Platzhalter ersetzt (IP_CLIENT und IP_SERVER)):


INFO: Adjusting my encmode UDP-Tunnel->Tunnel
INFO: Adjusting peer's encmode UDP-Tunnel->Tunnel
DEBUG: matched
DEBUG: ===
DEBUG: HASH(3) generate
DEBUG: HASH with:
DEBUG: 0087093e 36b0e87a 5e817842 595f816b a5932d8e ec874e16 13024782 c4fd741d 6a853d0c 96
DEBUG: hmac(hmac_sha1)
DEBUG: HASH computed:
DEBUG: 410de10e c152b23e 9bbd62e0 a5104ae0 e6d044da
DEBUG: add payload of len 20, next type 0
DEBUG: begin encryption.
DEBUG: encription(3des)
DEBUG: pad length = 8
DEBUG: 00000018 410de10e c152b23e 9bbd62e0 a5104ae0 e6d044da 00000000 00000008
DEBUG: encription(3des)
DEBUG: with key:
DEBUG: 8af40633 9ec79f0a 52556b89 20797535 c1d9ced9 e01a760c
DEBUG: encrypted payload by IV:
DEBUG: b0b877bd 994a4418
DEBUG: save IV for next:
DEBUG: b0b877bd 994a4418
DEBUG: encrypted.
DEBUG: Adding NON-ESP marker
DEBUG: 64 bytes from IP_CLIENT[4500] to IP_SERVER[4500]
DEBUG: sockname IP_CLIENT[4500]
DEBUG: send packet from IP_CLIENT[4500]
DEBUG: send packet to IP_SERVER[4500]
DEBUG: src4 IP_CLIENT[4500]
DEBUG: dst4 IP_SERVER[4500]
DEBUG: 1 times of 64 bytes message will be sent to IP_CLIENT[4500]
DEBUG: 00000000 c9c4d744 060807e9 1f21f095 e13def2a 08102001 87093e36 0000003c 13dae96b ee703f99 29c6a187 00c825c0 184d5101 8dfee6e1 b0b877bd 994a4418
DEBUG: compute DH's shared.
DEBUG: fefd5822 7b5137d2 01dae2e8 396bc957 4f464cb3 f520b69a 0d6088e4 4d660333 044833cd 741c15e4 e236421d c44824ec 2c30b45c f7a8f277 aa612b7c d6a6a82d e68f520e 5b1e8c6e 9d3ebc18 533d3c15 b6c0fd95 95ebbaa2 baff773d 092326d6 e15759f9 64d9766d 04fafe08 d22544f5 804afb1a c45db667 2cf28533 eafca704
DEBUG: KEYMAT compute with
DEBUG: fefd5822 7b5137d2 01dae2e8 396bc957 4f464cb3 f520b69a 0d6088e4 4d660333 044833cd 741c15e4 e236421d c44824ec 2c30b45c f7a8f277 aa612b7c d6a6a82d e68f520e 5b1e8c6e 9d3ebc18 533d3c15 b6c0fd95 95ebbaa2 baff773d 092326d6 e15759f9 64d9766d 04fafe08 d22544f5 804afb1a c45db667 2cf28533 eafca704 0201b5c0 e0b0e87a 5e817842 595f816b a5932d8e ec874e16 13024782 c4fd741d 6a853d0c 96
DEBUG: hmac(hmac_sha1)
DEBUG: encklen=0 authklen=0
DEBUG: generating 480 bits of key (dupkeymat=3)
DEBUG: generating K1...K3 for KEYMAT.
DEBUG: hmac(hmac_sha1)
DEBUG: hmac(hmac_sha1)
DEBUG: 336b4328 88b55ead e8b70a95 198484d3 b2d6caa3 598a5fb0 95107667 c392875b 478a327c 62343ff9 91332264 fd9e448f 8d38ac89 14bcaddc 5866c3a6
DEBUG: KEYMAT compute with
DEBUG: fefd5822 7b5137d2 01dae2e8 396bc957 4f464cb3 f520b69a 0d6088e4 4d660333 044833cd 741c15e4 e236421d c44824ec 2c30b45c f7a8f277 aa612b7c d6a6a82d e68f520e 5b1e8c6e 9d3ebc18 533d3c15 b6c0fd95 95ebbaa2 baff773d 092326d6 e15759f9 64d9766d 04fafe08 d22544f5 804afb1a c45db667 2cf28533 eafca704 0206a8a2 77b0e87a 5e817842 595f816b a5932d8e ec874e16 13024782 c4fd741d 6a853d0c 96
DEBUG: hmac(hmac_sha1)
DEBUG: encklen=0 authklen=0
DEBUG: generating 480 bits of key (dupkeymat=3)
DEBUG: generating K1...K3 for KEYMAT.
DEBUG: hmac(hmac_sha1)
DEBUG: hmac(hmac_sha1)
DEBUG: f2a72ba7 dd399aed 86d91181 79d2cf5b d06bd10f 4dddb687 1049ca58 41159ea5 48d34f29 193817b6 d882b41f 7d5dbfc4 684963cb 0db15c0b 7248122f
DEBUG: KEYMAT computed.
DEBUG: call pk_sendupdate
DEBUG: hmac(hmac_sha1)
DEBUG: call pfkey_send_update_nat
ERROR: libipsec failed send update (No algorithm specified)
ERROR: pfkey update failed.
ERROR: failed to process packet.
ERROR: phase2 negotiation failed.
DEBUG: an undead schedule has been deleted.
INFO: KA: IP_CLIENT[4500]->IP_SERVER[4500]
DEBUG: sockname IP_CLIENT[4500]
DEBUG: send packet from IP_CLIENT[4500]
DEBUG: send packet to IP_SERVER[4500]
DEBUG: src4 IP_CLIENT[4500]
DEBUG: dst4 IP_SERVER[4500]
DEBUG: 1 times of 1 bytes message will be sent to IP_CLIENT[4500]
DEBUG: ff
DEBUG: get pfkey EXPIRE message
DEBUG2: 02080002 14000000 00000000 00000000 02000100 01b5c0e0 00030000 00000000 04000300 00000000 00000000 00000000 1e000000 00000000 00000000 00000000 04000200 00000000 00000000 00000000 d8f51441 00000000 00000000 00000000 03000500 00200000 02000000 c0a80201 00000000 00000000 03000600 00200000 02000000 c0a863fd 00000000 00000000 02001300 02000000 00000000 00000000
INFO: IPsec-SA expired: AH/Tunnel IP_SERVER->IP_CLIENT spi=28688608(0x1b5c0e0)
DEBUG: no such a SA found: AH/Tunnel IP_SERVER->IP_CLIENT spi=28688608(0x1b5c0e0)
INFO: KA: IP_CLIENT[4500]->IP_SERVER[4500]
DEBUG: sockname IP_CLIENT[4500]
DEBUG: send packet from IP_CLIENT[4500]
DEBUG: send packet to IP_SERVER[4500]
DEBUG: src4 IP_CLIENT[4500]
DEBUG: dst4 IP_SERVER[4500]
DEBUG: 1 times of 1 bytes message will be sent to IP_CLIENT[4500]
DEBUG: ff
INFO: KA: IP_CLIENT[4500]->IP_SERVER[4500]
DEBUG: sockname IP_CLIENT[4500]
DEBUG: send packet from IP_CLIENT[4500]
DEBUG: send packet to IP_SERVER[4500]
DEBUG: src4 IP_CLIENT[4500]
DEBUG: dst4 IP_SERVER[4500]
DEBUG: 1 times of 1 bytes message will be sent to IP_CLIENT[4500]
DEBUG: ff
INFO: KA: IP_CLIENT[4500]->IP_SERVER[4500]
DEBUG: sockname IP_CLIENT[4500]
DEBUG: send packet from IP_CLIENT[4500]
DEBUG: send packet to IP_SERVER[4500]
DEBUG: src4 IP_CLIENT[4500]
DEBUG: dst4 IP_SERVER[4500]
DEBUG: 1 times of 1 bytes message will be sent to IP_CLIENT[4500]
DEBUG: ff
INFO: KA: IP_CLIENT[4500]->IP_SERVER[4500]
DEBUG: sockname IP_CLIENT[4500]
DEBUG: send packet from IP_CLIENT[4500]
DEBUG: send packet to IP_SERVER[4500]
DEBUG: src4 IP_CLIENT[4500]
DEBUG: dst4 IP_SERVER[4500]
DEBUG: 1 times of 1 bytes message will be sent to IP_CLIENT[4500]
DEBUG: ff

Zerwas
17.08.04, 10:19
Wenn die Rechner im selben Netz haengen und NAT aus ist, klappt es einwandfrei. Wenn sie nicht im selben Netz sind und NAT aus ist, bekomme ich wie gesagt gar keine Verbindung.

Dein Debugging ist aber allerdings mir eingeschaltetem NAT-T oder warum ist deine Kommunikation auf Port UDP/4500?

Hast du eine Tunnel- oder einer Transfer-Verbindung?



INFO: Adjusting my encmode UDP-Tunnel->Tunnel
INFO: Adjusting peer's encmode UDP-Tunnel->Tunnel

Hier ist doch NAT-T eingeschaltet?

DEBUG: matched
DEBUG: ===
DEBUG: HASH(3) generate
DEBUG: HASH with:
DEBUG: 0087093e 36b0e87a 5e817842 595f816b a5932d8e ec874e16 13024782 c4fd741d 6a853d0c 96
DEBUG: hmac(hmac_sha1)
DEBUG: HASH computed:
DEBUG: 410de10e c152b23e 9bbd62e0 a5104ae0 e6d044da
DEBUG: add payload of len 20, next type 0
DEBUG: begin encryption.
DEBUG: encription(3des)
DEBUG: pad length = 8
DEBUG: 00000018 410de10e c152b23e 9bbd62e0 a5104ae0 e6d044da 00000000 00000008
DEBUG: encription(3des)
DEBUG: with key:
DEBUG: 8af40633 9ec79f0a 52556b89 20797535 c1d9ced9 e01a760c
DEBUG: encrypted payload by IV:
DEBUG: b0b877bd 994a4418
DEBUG: save IV for next:
DEBUG: b0b877bd 994a4418
DEBUG: encrypted.
DEBUG: Adding NON-ESP marker
DEBUG: 64 bytes from IP_CLIENT[4500] to IP_SERVER[4500]
DEBUG: sockname IP_CLIENT[4500]
DEBUG: send packet from IP_CLIENT[4500]
DEBUG: send packet to IP_SERVER[4500]
DEBUG: src4 IP_CLIENT[4500]
DEBUG: dst4 IP_SERVER[4500]
DEBUG: 1 times of 64 bytes message will be sent to IP_CLIENT[4500]
DEBUG: 00000000 c9c4d744 060807e9 1f21f095 e13def2a 08102001 87093e36 0000003c 13dae96b ee703f99 29c6a187 00c825c0 184d5101 8dfee6e1 b0b877bd 994a4418
DEBUG: compute DH's shared.
DEBUG: fefd5822 7b5137d2 01dae2e8 396bc957 4f464cb3 f520b69a 0d6088e4 4d660333 044833cd 741c15e4 e236421d c44824ec 2c30b45c f7a8f277 aa612b7c d6a6a82d e68f520e 5b1e8c6e 9d3ebc18 533d3c15 b6c0fd95 95ebbaa2 baff773d 092326d6 e15759f9 64d9766d 04fafe08 d22544f5 804afb1a c45db667 2cf28533 eafca704
DEBUG: KEYMAT compute with
DEBUG: fefd5822 7b5137d2 01dae2e8 396bc957 4f464cb3 f520b69a 0d6088e4 4d660333 044833cd 741c15e4 e236421d c44824ec 2c30b45c f7a8f277 aa612b7c d6a6a82d e68f520e 5b1e8c6e 9d3ebc18 533d3c15 b6c0fd95 95ebbaa2 baff773d 092326d6 e15759f9 64d9766d 04fafe08 d22544f5 804afb1a c45db667 2cf28533 eafca704 0201b5c0 e0b0e87a 5e817842 595f816b a5932d8e ec874e16 13024782 c4fd741d 6a853d0c 96
DEBUG: hmac(hmac_sha1)
DEBUG: encklen=0 authklen=0
DEBUG: generating 480 bits of key (dupkeymat=3)
DEBUG: generating K1...K3 for KEYMAT.
DEBUG: hmac(hmac_sha1)
DEBUG: hmac(hmac_sha1)
DEBUG: 336b4328 88b55ead e8b70a95 198484d3 b2d6caa3 598a5fb0 95107667 c392875b 478a327c 62343ff9 91332264 fd9e448f 8d38ac89 14bcaddc 5866c3a6
DEBUG: KEYMAT compute with
DEBUG: fefd5822 7b5137d2 01dae2e8 396bc957 4f464cb3 f520b69a 0d6088e4 4d660333 044833cd 741c15e4 e236421d c44824ec 2c30b45c f7a8f277 aa612b7c d6a6a82d e68f520e 5b1e8c6e 9d3ebc18 533d3c15 b6c0fd95 95ebbaa2 baff773d 092326d6 e15759f9 64d9766d 04fafe08 d22544f5 804afb1a c45db667 2cf28533 eafca704 0206a8a2 77b0e87a 5e817842 595f816b a5932d8e ec874e16 13024782 c4fd741d 6a853d0c 96
DEBUG: hmac(hmac_sha1)
DEBUG: encklen=0 authklen=0
DEBUG: generating 480 bits of key (dupkeymat=3)
DEBUG: generating K1...K3 for KEYMAT.
DEBUG: hmac(hmac_sha1)
DEBUG: hmac(hmac_sha1)
DEBUG: f2a72ba7 dd399aed 86d91181 79d2cf5b d06bd10f 4dddb687 1049ca58 41159ea5 48d34f29 193817b6 d882b41f 7d5dbfc4 684963cb 0db15c0b 7248122f
DEBUG: KEYMAT computed.
DEBUG: call pk_sendupdate
DEBUG: hmac(hmac_sha1)
DEBUG: call pfkey_send_update_nat
ERROR: libipsec failed send update (No algorithm specified)
ERROR: pfkey update failed.
ERROR: failed to process packet.
ERROR: phase2 negotiation failed.
DEBUG: an undead schedule has been deleted.
INFO: KA: IP_CLIENT[4500]->IP_SERVER[4500]
DEBUG: sockname IP_CLIENT[4500]
DEBUG: send packet from IP_CLIENT[4500]
DEBUG: send packet to IP_SERVER[4500]
DEBUG: src4 IP_CLIENT[4500]
DEBUG: dst4 IP_SERVER[4500]
DEBUG: 1 times of 1 bytes message will be sent to IP_CLIENT[4500]
DEBUG: ff
DEBUG: get pfkey EXPIRE message
DEBUG2: 02080002 14000000 00000000 00000000 02000100 01b5c0e0 00030000 00000000 04000300 00000000 00000000 00000000 1e000000 00000000 00000000 00000000 04000200 00000000 00000000 00000000 d8f51441 00000000 00000000 00000000 03000500 00200000 02000000 c0a80201 00000000 00000000 03000600 00200000 02000000 c0a863fd 00000000 00000000 02001300 02000000 00000000 00000000
INFO: IPsec-SA expired: AH/Tunnel IP_SERVER->IP_CLIENT spi=28688608(0x1b5c0e0)
DEBUG: no such a SA found: AH/Tunnel IP_SERVER->IP_CLIENT spi=28688608(0x1b5c0e0)

In deiner SA ist irgend ein Fehler.

Entweder hast du Sie nicht angepasst oder deine Gateway bzw Netz-Adressen
sind unterschiedlich.


Ich war letzte Woche im Urlaub. Daher melde ich mich erst jetzt wieder.

Wenn du wie du sagst dein VPN im gleichen Netz funktioniert und in unterschiedlichen Netzen nicht sollte die ganze Problematik dort gelöst werden, ohne NAT-T.

Kannst du mir mal die Configs von beiden schicken?
Und gibt mir noch mal deine Transfernetze an.