Openswan conectando-se a várias sub-redes à direita não funcionando

14

Estou tentando usar o Openswan (versão 2.6.37) para conectar uma VPN IPsec da minha rede local a um site remoto. Tudo funciona bem quando eu só quero me conectar a uma única sub-rede no site remoto. No entanto, o site remoto também possui uma sub-rede extra que eu quero acessar.

Esta é a minha configuração:

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

Quando eu substituo rightsubnetpor rightsubnets, assim:

rightsubnets={172.16.1.0/24 192.168.3.0/24}

... então a conexão é criada com sucesso, mas apenas a última sub-rede da lista está disponível. Qualquer tentativa de executar ping em qualquer coisa na 172.16.1.0sub - rede falha. Se eu trocar a ordem das sub-redes, posso executar ping, 172.16.1.Xmas não consigo executar ping na outra sub-rede. É como se o Openswan estivesse usando apenas a última sub-rede da lista para criar uma conexão.

Estou fazendo algo errado aqui?

Um pouco de informação extra que eu esqueci de mencionar (embora não tenha certeza de que seja relevante): Meu cliente Openswan está atrás de um roteador usando NAT e eu tenho nat_traversal=yesno meu ipsec.confarquivo.

FixMaker
fonte
Você usa VLANs? Eu tinha quase exatamente o mesmo problema e o problema foi um erro de VLAN
Você já tentou fazer duas associações de segurança, uma para cada sub-rede?
Gimmesudo
@ Tyke, não, eu não estou usando VLANs. Meu cliente OpenSwan está atrás de um roteador usando NAT - atualizei a pergunta para refletir isso.
FixMaker 23/01
@ gimmesudo: Tentei duplicar minha configuração acima para uma nova conexão ( connection myConn2), com tudo idêntico, exceto o rightsubnet. Quando uso ipsec auto --up myConn, posso executar o ping 172.168.1.X. Quando tento abrir a segunda conexão ( ipsec auto --up myConn2), posso executar o ping 192.168.3.X, mas a primeira conexão morre completamente.
FixMaker 23/01
Para conectar-se como cliente em muitos roteadores IPSec (como Cisco), é mais simples de usar vpnc!
21713 F. Hauri

Respostas:

3

Parece que o separador usual para várias sub-redes é uma vírgula , mas pelo menos o openswan-2.6.32 também funciona com espaços.

Informações interessantes devem ser registradas para /var/log/secureque possam conter pistas sobre por que elas não estão funcionando. Poste também a saída de ip x s she ip x p sh.

skarap
fonte
Se você chegou aqui tentando mudar de host único para vários hosts, preste atenção que a chave para várias sub-redes está no plural ( rightsubnet*s*) em vez de no singular.
mgarciaisaia
1

Faça a connconfiguração da seção para cada sub-rede nos AMBOS terminais do túnel. Apenas um deles (o primeiro iniciado) iniciará uma negociação de SA, o segundo (ou mais) fará apenas um novo SPD das sub-redes adicionais.

Endre Szabo
fonte
Infelizmente, não posso fazer isso, pois o terminal remoto é um roteador FortiGate de terceiros (não executando o OpenSwan). Estou começando a me perguntar se o problema pode estar relacionado ao roteador não conseguir lidar com vários túneis entre os mesmos pontos de extremidade.
FixMaker 04/02
1

Se você usar rightsubnetsvocê tem que usar leftsubnetsbem, não leftsubnet. Mesmo se houver apenas uma sub-rede desse lado. A página de manual do ipsec.conf não explica muito bem isso, mas está lá.

Eu tive os mesmos problemas por meses e encontrei a resposta aqui: /server/571352/openswan-multiple-subnets-routing-issue

exor314
fonte
1
Não é o caso. leftsubnets = {singletone}, deve ser idêntico ao leftsubnet =. (Escrevi o código)
mcr
Esta foi a solução que funcionou para mim usando o libeswan 3.15. Minha esquerda tinha uma única sub-rede e a direita tinha várias. Se eu configurei a esquerda usando leftsubnet = e a direita usando rightsubnets = {}, apenas o último rightsubnet realmente se conectou. Depois de configurar a esquerda para usar leftsubnets = {} com a sub-rede, ela se conectou a todos.
precisa
1

Parece que há um bug no OpenSwan em que a lista de sub-redes precisa de uma vírgula extra no final para funcionar corretamente. Experimentar:

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

Observe a vírgula extra no final.

Ryan Shillington
fonte
Não é esse o caso, nenhum dos casos ou exemplos de teste possui vírgula extra.
mcr
-3

Deve ser assim

rightsubnets={172.16.1.0/24,192.168.3.0/24}

Use uma vírgula ( ,) e não um espaço para separar entradas.

Madhu
fonte
1
Parece ser o que a resposta de dois anos atrás está dizendo.
G-Man diz 'Reinstate Monica'