Tentando replicar uma configuração de IPSec / L2TP funcional do OpenSWAN para o StrongSWAN

3

Eu tenho uma implementação OpenSWAN em funcionamento para RA, usando transporte IPsec e l2tp para o túnel, em execução no AWS. A instância tem um IP privado, com um EIP público mapeado para ele.

Eu uso o ip privado para os parâmetros left e leftsubnet e o público no leftid .

Agora estou tentando configurar uma conexão IPSec do mesmo cliente para um novo endpoint, que está executando o StrongSWAN (4.5.2). Eu tentei replicar a configuração do openswan para o strongswan, tanto quanto possível. Por enquanto, estou apenas tentando obter o IPSec configurado (não me preocupando com o l2tp ainda) e estou tendo problemas com a fase 2 (a fase 1 está concluindo ok).

As diferenças na configuração são:

--- openswan.conf       2014-07-18 11:48:01.740966015 +0200
+++ strongswan.conf     2014-07-18 11:46:58.927569703 +0200
@@ -1,11 +1,14 @@
+version 2.0
+
config setup
-       protostack=netkey
+       charonstart=no
+       interfaces="%none"
        nat_traversal=yes
-       virtual_private=%v4:192.168.10.0/24
        oe=off
-       nhelpers=0
-       interfaces=%defaultroute
+       virtual_private="%v4:192.168.11.0/24"
+
+conn %default
+       keyexchange=ikev1

conn remote-access
        forceencaps=yes
        type=transport
        ike=3des-sha1
-       phase2alg=3des-sha1

Quando eu levanto a conexão do meu cliente, recebo o seguinte:

003 "myconn" #1: NAT-Traversal: Result using RFC 3947 (NAT-Traversal): both are NATed
108 "myconn" #1: STATE_MAIN_I3: sent MI3, expecting MR3
004 "myconn" #1: STATE_MAIN_I4: ISAKMP SA established {auth=OAKLEY_PRESHARED_KEY cipher=aes_128 prf=oakley_sha group=modp2048}
117 "myconn" #2: STATE_QUICK_I1: initiate

E nos registros do servidor

"remote-access"[3] 105.1.1.1 #2: NAT-Traversal: Result using RFC 3947: both are NATed
"remote-access"[3] 105.1.1.1 #2: Peer ID is ID_IPV4_ADDR: '192.168.2.2'
"remote-access"[4] 105.1.1.1 #2: deleting connection "remote-access" instance with peer client.ip.addr {isakmp=#0/ipsec=#0}
"remote-access"[4] 105.1.1.1:4500 #2: sent MR3, ISAKMP SA established
"remote-access"[4] 105.1.1.1:4500 #2: cannot respond to IPsec SA request because no connection is known for 54.1.1.1/32===10.0.0.2:4500[54.1.1.1]:17/1701...105.1.1.1.1:4500[192.168.2.2]:17/%any==={192.168.2.2/32}
"remote-access"[4] 105.1.1.1:4500 #2: sending encrypted notification INVALID_ID_INFORMATION to 105.1.1.1:4500

192.168.2.2 é o IP privado do cliente e 105.1.1.1 é o IP público para o qual é NAT.

Procurei por "não posso responder à solicitação de SA do IPsec porque nenhuma conexão é conhecida por" e só obtenho 1 relacionado a strongswan em link , bem como isto mas nenhuma das sugestões funciona (ajustando o rightid no par ou adicionando o leftsourceip no servidor strongswan).

O par / cliente com o qual estou me conectando com o strongswan é o libreswan 3.7

editar aqui estão as configurações

StrongSWAN na CE:

conn remote-access authby=secret pfs=no left=10.0.0.2 leftid=54..1.1.1 leftsubnet=10.0.0.2/32 leftnexthop=%defaultroute leftprotoport=17/1701 right=%any rightid=%any rightsubnetwithin=0.0.0.0/0 rightprotoport=17/%any type=transport forceencaps=yes auto=add ike=3des-sha1 dpddelay=15 dpdtimeout=45 dpdaction=clear auth=esp esp=aes256-sha1,3des-sha1!

O arquivo de segredos neste host:

54.1.1.1 %any : PSK "XXX"

Minha configuração do cliente RA local:

conn myconn authby=secret pfs=no rekey=yes keyingtries=3 type=transport left=%defaultroute leftprotoport=17/1701 right=54.1.1.1 rightprotoport=17/1701 auto=add phase2=esp phase2alg=3des-md5;modp1024 forceencaps=yes

segredos:

0.0.0.0 %any 54.1.1.1 : PSK "XXX"

Eu adicionei recentemente os parâmetros phase2 e forceencaps no meu cliente local.

Os diffs mostrados anteriormente eram entre dois hosts baseados em EC2 aos quais estou me conectando. A conexão "myconn" é da minha estação de trabalho, e eu tenho 2 conns, 1 para o ponto openswan (que funciona) e uma cópia dele para o par strongswan (que não funciona). Eu imaginei que usar a mesma abordagem para configurações esquerda / direita resultaria em uma configuração de trabalho.

    
por Brett 18.07.2014 / 12:29

2 respostas

1

Aqui está uma configuração de trabalho usando o openswan. Alguns dos parâmetros que tiveram um impacto na configuração dessa configuração estavam usando rightsubnetwithin e phase2alg (phase2alg pode ser ajustado conforme necessário, inicialmente usei 3des-sha1, mas ajustei depois).

exemplo configs

/etc/ipsec.conf

config setup
    plutostderrlog= "/var/log/pluto.err"
    protostack=netkey
    nat_traversal=yes
    virtual_private=%v4:192.168.10.0/24
    oe=off
    nhelpers=0
    interfaces=%defaultroute

conn remote-access
    auto=add
    left=10.0.0.2
    leftid=54.1.1.1
    leftsubnet=10.0.0.2/32
    leftnexthop=%defaultroute
    leftprotoport=17/1701
    rightprotoport=17/%any
    right=%any
    rightid=%any
    rightsubnetwithin=0.0.0.0/0
    forceencaps=yes
    authby=secret
    pfs=no
    type=transport
    auth=esp
    ike=3des-sha1
    phase2alg=3des-sha1
    dpdaction=clear
    dpddelay=60
    dpdtimeout=500

/etc/ipsec.secrets

54.1.1.1 %any : PSK "Your_PSK"

Isso elevou o transporte IPSec.

    
por 23.07.2014 / 19:22
0

Se eu entendi corretamente, um ou ambos os endpoints aqui têm endereços RFC1918, que estão por trás de dispositivos NAT.

Você pode ler mais detalhes em uma resposta anterior minha , mas o resultado é que ela quebra a simetria do arquivo conf. Em vez de cada lado ter os mesmos left= e right= endpoints, e deixar o SWAN resolver qual é qual, cada lado deve ter seu próprio endereço IP e o endereço público do outro lado um. Ainda não importa qual é left e qual é right em qualquer extremidade, mas os dois endereços serão diferentes dos dois no outro.

Você não postou seu arquivo .conf real, apenas os diffs, então não posso comentar mais, mas suspeito strongmente que esse é o problema.

    
por 18.07.2014 / 12:52