Ipsec-Verbindung schließt von einer Seite

jmt

Well-Known Member
Hallo,

ich habe zwei OpenBSD-Rechner, die mittels IPSEC verbunden sind. Der eine steht im Internet und hat eine feste IP. Der andere steht bei mir zu Hause mit einer dynamischen IP. Die Einwahl ins Internet erfolgt auch von diesem Rechner. Ich kann problemlos eine IPSEC-Verbindung zwischen den beiden aufbauen, aber nach einiger Zeit kann ich von zu Hause nicht mehr auf den Internet-Rechner zugreifen. Logge ich mich jedoch auf den Internet-Rechner ein und setze ein Ping auf den Heimrechner (via IPSEC) ab, so ist die Verbindung sofort wieder aktiv. Meine Frage ist nun, wie schaffe ich es, dass die IPSEC-Verbindung auch von zu Hause aus startet?

In beiden PFs ist das enc-Device mittels skip von der Firewall ausgenommen.

Hier meine ipsec.conf von zu Hause:
Code:
ike dynamic from pppoe0 to crom.lf28.net srcid wopr.lf28.net dstid crom.lf28.net psk xxx tag grid
ike dynamic from 192.168.142.0/24 to crom.lf28.net srcid wopr.lf28.net dstid crom.lf28.net psk xxx tag grid

Und hier die ipsec.conf des Internet-Rechners:
Code:
ike passive esp tunnel from vio0 to any srcid crom.lf28.net dstid wopr.lf28.net psk "xxx"
ike passive esp tunnel from vio0 to 192.168.142.0/24 srcid crom.lf28.net dstid wopr.lf28.net psk "xxx"
 
hi

versuch mal auf den recher mit festert ip

ike passive esp .............

und auf dem rechner mit dynamischer ip

ike active esp ....................

holger
 
Ich probier es mal über nacht aus. Ein laufender ping auf dem Rechner mit dynamischer IP zu dem Rechner mit fester IP hat mich heute über den Tag gebracht.
 
Hi, ich hatte einen Verbindungsabbruch und damit auch eine neue IP auf dem dynamischen Rechner. Ike active hat danach leider nicht mehr funktioniert. Auch ein Neustart des isakmpd auf dem dynamischen Rechner half nicht. Von dem statischen Rechner konnte ich aber sofort ein Ping zum dynamischen machen und das VPN funktionierte wieder! Wieso geht das immer nur in eine Richtung?
 
hi

da du eine dynamische ip hast musst du ipsec im aggressive mode sprechen .

dieser mode beinhaltet das nur eine seite die verbindung aufbaut und diese auch die sa erneuert, das ist der client .

der server kann das nicht da er ja nicht die ip des client , grundsaetzlich , kennt . ( wie im main mode )

wenn nun kein traffic da ist wird der tunnel abgebau , entsprechend der livetime timings der sa , die du nicht setzt und somit die default aktiv sind. ( siehe man )

wenn du eine permanent ping schickst ist das wie ein keep alive .



holger
 
wie sehen denn die IKE und IPsec SAs aus, wenn die Verbindung abbricht? Gibts denn keine Logs?
Leider gibt es in der Tat kaum Logs. Die SAs sind vorhanden und passen, wenn ich mich recht erinnere, auch zusammen. Ich erhalte 2 Arten von Messages:
Code:
Mar  8 11:23:12 wopr isakmpd[24058]: message_recv: invalid cookie(s) 83967b782fb7840b f7b0d485dcb1b90b
Mar  8 11:23:12 wopr isakmpd[24058]: dropped message from 46.165.252.206 port 500 due to notification type INVALID_COOKIE
Mar  8 14:46:53 wopr isakmpd[24058]: transport_send_messages: giving up on exchange peer-46.165.252.206, no response from peer 46.165.252.206:500
Auf der statischen Seite gibt es zur gleichen Zeit nur dieses:
Code:
Mar  8 11:23:12 crom isakmpd[64426]: message_recv: invalid cookie(s) 83967b782fb7840b f7b0d485dcb1b90b
Mar  8 11:23:12 crom isakmpd[64426]: dropped message from 84.158.61.178 port 500 due to notification type INVALID_COOKIE
Die Abbrüche passieren leider nicht wirklich reproduzierbar. Von der dynamischen Seite geht dann nichts mehr durch den Tunnel. Aber ein einfaches Paket von der statischen Seite macht den Tunnel auf. Dieses Phänomen passiert unabhängig davon, ob sich die IP auf der dynamischen Seite ändert.

Da ich auf meine Firewall tippe, teste ich gerade mit folgender Zeile an exponierter Stelle:
Code:
pass out log quick from ($internet) to $crom
Bis jetzt läuft der Tunnel.
 
hi

du benötigst folgende regeln ....

pass quick on $internet proto esp
pass quick on $internet inet proto from any to any udp port { 500,4500 }

beachte das du stateful connections hast und somit ggf die timings der states anpassen muss , sie sollten gleich oder laenger der
der sa lifetime.

holger
 
Ich habe da ansonsten volgenden Block drin:
Code:
# IPSec
pass in quick on $internet proto esp from $crom to ($internet)
pass out quick on $internet proto esp from ($internet) to $crom
pass in  quick on $internet proto udp from $crom to ($internet) port {isakmp, ipsec-nat-t}
pass out quick on $internet proto udp from ($internet) to $crom port {isakmp, ipsec-nat-t}
pass in  quick on enc0 proto ipencap from $crom to ($internet) keep state (if-bound)
pass out quick on enc0 proto ipencap from ($internet) to $crom keep state (if-bound)
Der scheint wohl etwas überspezifiziert zu sein...
Ansonsten noch folgende Regeln, die nur Verkehr über IPSEC zulassen sollen:
Code:
# crom.lf28.net
pass out quick on enc0 inet from $lan:network to $crom keep state (if-bound)
pass out quick on $internet proto tcp from $lan:network to $crom port ssh
block out quick on $internet inet from $lan:network to $crom
Kann die letzte Regel der Übeltäter sein? Sie soll verhindern, dass unverschlüsselte Verbindungen genutzt werden.
 
Ich mache gerade folgende Beobachtung: Mein dynamische Rechner loggt folgendes in pflog:
Code:
Apr 01 22:35:52.233313 rule 34/(match) block out on pppoe0: 84.158.49.104.23533 > 46.165.252.206.143: FP 333354514:333354589(75) ack 4243470007 win 256 <nop,nop,timestamp 1092423407 1460802820>
Wenn ich das richtig verstehe, wird eine ausgehende Verbindung von 84.158.49.104 zu 46.165.252.206 geblockt. Letzteres ist mein statischer Rechner crom. Die erste IP ist aber nicht meine dynamische IP?!?! Die ist 79.252.224.180 und das schon seit über 2 Tagen.

Dies wurde geloggt, als ich von meinem dynamischen auf den statischen Rechner per imap Mails gelesen habe (Port 143). Der IMAP-Zugriff funktioniert, wenn auch manchmal etwas hakelig...
 
Zurück
Oben