Openswan que se conecta a varias subredes derechas no funciona

14

Estoy tratando de usar Openswan (versión 2.6.37) para conectar una VPN IPsec desde mi red local a un sitio remoto. Todo funciona bien cuando solo quiero conectarme a una única subred en el sitio remoto. Sin embargo, el sitio remoto también tiene una subred adicional a la que quiero acceder.

Esta es mi configuración:

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

Cuando reemplazo rightsubnetcon rightsubnets, así:

rightsubnets={172.16.1.0/24 192.168.3.0/24}

... entonces la conexión se crea correctamente pero solo está disponible la última subred de la lista. Cualquier intento de hacer ping a cualquier cosa en la 172.16.1.0subred falla. Si cambio el orden de las subredes, entonces puedo hacer ping 172.16.1.Xpero no puedo hacer ping a nada en la otra subred. Es como si Openswan solo utilizara la última subred de la lista para crear una conexión.

¿Estoy haciendo algo mal aquí?

Un poco de información adicional que no mencioné (aunque no estoy seguro de que sea relevante): mi cliente Openswan está detrás de un enrutador que usa NAT y lo tengo nat_traversal=yesen mi ipsec.confarchivo.

FixMaker
fuente
¿Usas VLAN? Tuve casi exactamente el mismo problema y el problema fue un error de VLAN
¿Has intentado hacer dos asociaciones de seguridad, una para cada subred?
gimmesudo
@Tyke, no, no estoy usando VLAN. Sin embargo, mi cliente OpenSwan está detrás de un enrutador que usa NAT. He actualizado la pregunta para reflejar eso.
FixMaker
@gimmesudo: intenté duplicar mi configuración anterior para una nueva conexión ( connection myConn2), con todo idéntico excepto el rightsubnet. Cuando lo uso, ipsec auto --up myConnpuedo hacer ping a 172.168.1.X. Cuando trato de abrir la segunda conexión ( ipsec auto --up myConn2), puedo hacer ping a 192.168.3.X pero la primera conexión muere por completo.
FixMaker
Para conectarse como cliente en muchos enrutadores IPSec (como Cisco), ¡será más fácil de usar vpnc!
F. Hauri

Respuestas:

3

Parece que el separador habitual para las subredes múltiples es una coma , pero al menos openswan-2.6.32 también funciona con espacios.

Se debe registrar información interesante en la /var/log/secureque pueda contener pistas de por qué no funciona. También publique la salida de ip x s shy ip x p sh.

skarap
fuente
Si llegó aquí tratando de cambiar de un solo host a varios hosts, preste atención a que la clave para múltiples subredes está en plural ( rightsubnet*s*) en lugar de singular.
mgarciaisaia
1

Realice la connconfiguración de la sección para cada subred en AMBOS puntos finales del túnel. Solo uno de ellos (el primero iniciado) comenzará una negociación de SA, el segundo (o más) solo hará un nuevo SPD de las subredes adicionales.

Endre Szabo
fuente
Desafortunadamente, no puedo hacer esto ya que el punto final remoto es un enrutador FortiGate de terceros (que no ejecuta OpenSwan). Estoy empezando a preguntarme si el problema puede estar relacionado con el enrutador no puede hacer frente a múltiples túneles entre los mismos puntos finales.
FixMaker
1

Si usas rightsubnetstienes que usar leftsubnetstambién, no leftsubnet. Incluso si solo hay una subred en ese lado. La página de manual de ipsec.conf no hace un gran trabajo al explicar esto, pero está ahí.

Tuve los mismos problemas durante meses y acabo de encontrar la respuesta aquí: /server/571352/openswan-multiple-subnets-routing-issue

exor314
fuente
1
No es el caso. leftsubnets = {singletone}, debe ser idéntico a leftsubnet =. (Escribí el código)
mcr
Esta fue la solución que funcionó para mí usando libeswan 3.15. Mi izquierda tenía una subred única y la derecha tenía varias. Si configuré la izquierda usando leftsubnet = y la derecha usando rightsubnets = {} entonces solo el último subred de derechos realmente conectado. Una vez que configuré la izquierda para usar leftsubnets = {} con una subred, se conectó a todas.
Adam Plumb
1

Parece que hay un error en OpenSwan donde la lista de subredes necesita una coma extra al final para funcionar correctamente. Tratar:

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

Tenga en cuenta la coma extra al final.

Ryan Shillington
fuente
Ese no es el caso, ninguno de los casos de prueba o ejemplos tienen una coma adicional.
mcr
-3

Debería ser así

rightsubnets={172.16.1.0/24,192.168.3.0/24}

Use una coma ( ,) y no un espacio para separar las entradas.

Madhu
fuente
1
Esa parece ser la respuesta de hace dos años.
G-Man dice 'Reincorporar a Monica'