Öffnet eine Verbindung zu mehreren rechten Subnetzen, die nicht funktionieren

14

Ich versuche, mit Openswan (Version 2.6.37) ein IPsec-VPN von meinem lokalen Netzwerk zu einem Remote-Standort zu verbinden. Alles funktioniert einwandfrei, wenn ich nur eine Verbindung zu einem einzelnen Subnetz am Remotestandort herstellen möchte. Der Remote-Standort verfügt jedoch auch über ein zusätzliches Subnetz, auf das ich zugreifen möchte.

Das ist meine Konfiguration:

conn myConn
        type=tunnel
        left=192.168.139.14
        leftsubnet=192.168.139.0/24
        leftxauthclient=yes
        right=X.X.X.X
        rightsubnet=172.16.1.0/24
        keyexchange=ike
        auth=esp
        authby=secret
        phase2alg=3des-sha1
        pfs=yes

Wenn ich ersetzen rightsubnetmit rightsubnets, etwa so:

rightsubnets={172.16.1.0/24 192.168.3.0/24}

... dann wird die Verbindung erfolgreich hergestellt, aber nur das letzte Subnetz in der Liste ist verfügbar. Alle Ping-Versuche im 172.16.1.0Subnetz schlagen fehl. Wenn ich die Reihenfolge der Subnetze vertausche 172.16.1.X, kann ich pingen, aber im anderen Subnetz kann ich nichts pingen. Es ist, als würde Openswan nur das letzte Subnetz in der Liste verwenden, um eine Verbindung herzustellen.

Mache ich hier etwas falsch?

Ein paar zusätzliche Informationen, die ich versäumt habe zu erwähnen (obwohl ich nicht sicher bin, ob sie relevant sind): Mein Openswan-Client befindet sich hinter einem Router, der NAT verwendet, und ich habe sie nat_traversal=yesin meiner ipsec.confDatei.

FixMaker
quelle
Verwenden Sie VLANs? Ich hatte fast genau das gleiche Problem und das Problem war ein VLAN-Fehler
Haben Sie versucht, zwei Sicherheitszuordnungen zu erstellen, eine für jedes Subnetz?
Gimmesudo
@ Tyke, nein, ich verwende keine VLANs. Mein OpenSwan-Client befindet sich jedoch hinter einem Router, der NAT verwendet. Ich habe die Frage entsprechend aktualisiert.
FixMaker
@gimmesudo: Ich habe versucht, meine Konfiguration oben für eine neue Verbindung ( connection myConn2) zu duplizieren , mit Ausnahme der rightsubnet. Wenn ich benutze, ipsec auto --up myConnkann ich 172.168.1.X anpingen. Wenn ich versuche, die zweite Verbindung ipsec auto --up myConn2aufzurufen ( ), kann ich 192.168.3.X anpingen, aber die erste Verbindung wird vollständig unterbrochen.
FixMaker
Für die Verbindung als Client auf vielen IPSec-Routern (wie Cisco) ist die Verwendung einfacher vpnc!
F. Hauri

Antworten:

3

Sieht so aus, als wäre das übliche Trennzeichen für mehrere Subnetze ein Komma , aber mindestens openswan-2.6.32 funktioniert auch mit Leerzeichen.

Es sollten interessante Informationen protokolliert werden, /var/log/securedie Hinweise darauf enthalten können, warum sie nicht funktionieren. Veröffentlichen Sie auch die Ausgabe von ip x s shund ip x p sh.

Skarap
quelle
Wenn Sie hierher gekommen sind, um von einem einzelnen Host auf mehrere Hosts zu wechseln, achten Sie darauf, dass der Schlüssel für mehrere Subnetze im Plural ( rightsubnet*s*) und nicht im Singular steht.
Margarciaisaia
1

Machen connAbschnitt Konfiguration für die einzelnen Subnetze auf die beiden Endpunkte des Tunnels. Nur einer von ihnen (der erste hat begonnen) startet eine SA-Aushandlung, der zweite (oder mehrere) erstellt nur eine neue SPD der weiteren Subnetze.

Endre Szabo
quelle
Leider kann ich das nicht tun, da der entfernte Endpunkt ein FortiGate-Router eines Drittanbieters ist (auf dem OpenSwan nicht ausgeführt wird). Ich beginne mich zu fragen, ob das Problem damit zusammenhängt, dass der Router nicht in der Lage ist, mehrere Tunnel zwischen denselben Endpunkten zu bewältigen.
FixMaker
1

Wenn Sie verwenden rightsubnets, müssen Sie auch verwenden leftsubnets, nicht leftsubnet. Auch wenn es auf dieser Seite nur ein Subnetz gibt. Die ipsec.conf-Manpage erklärt dies nicht besonders gut, aber sie ist da.

Ich hatte die gleichen Probleme seit Monaten und habe gerade die Antwort hier gefunden: /server/571352/openswan-multiple-subnets-routing-issue

exor314
quelle
1
Nicht der Fall. leftsubnets = {singletone} sollte identisch mit leftsubnet = sein. (Ich habe den Code geschrieben)
mcr
Dies war die Lösung, die mit libeswan 3.15 für mich funktioniert hat. Meine linke hatte ein einziges Subnetz und die rechte mehrere. Wenn ich das linke mit leftsubnet = und das rechte mit rightsubnets = {} konfiguriert habe, dann ist tatsächlich nur das letzte rightsubnet verbunden. Nachdem ich das linke Subnetz so konfiguriert hatte, dass es leftsubnets = {} mit dem einen Subnetz verwendet, wurde es mit allen verbunden.
Adam Plumb
1

Es sieht so aus, als ob es einen Fehler in OpenSwan gibt, bei dem die Subnetzliste am Ende ein zusätzliches Komma benötigt, um korrekt zu funktionieren. Versuchen:

rightsubnets={172.16.1.0/24,192.168.3.0/24,}

Beachten Sie das zusätzliche Komma am Ende.

Ryan Shillington
quelle
Das ist nicht der Fall, keiner der Testfälle oder Beispiele hat ein zusätzliches Komma.
mcr
-3

Es sollte so sein

rightsubnets={172.16.1.0/24,192.168.3.0/24}

Verwenden Sie ein Komma ( ,) und kein Leerzeichen, um Einträge zu trennen.

Madhu
quelle
1
Das scheint die Antwort von vor zwei Jahren zu sein.
G-Man sagt, dass Monica