O servidor strongSwan com clientes Windows 7 não roteia o tráfego

2

Eu tenho um servidor rodando strongSwan em uma instância do Amazon EC2 que eu quero conectar ao Windows 7. O servidor strongSwan está em uma rede privada (endereço IP 172.16.1.15 na rede 172.16.0.0/17) e tem tráfego encaminhado para o seu endereço privado de um endereço IP público - é o que a Amazon chama de "Elastic IP".

Eu quero atribuir os endereços de clientes de outra sub-rede privada - 10.127.0.0/22 - e direcionar o tráfego entre as duas sub-redes privadas. Observe que a sub-rede 172.16.0.0/17 é gerenciada pela Amazon, mas a sub-rede 10.127.0.0/22 não é gerenciada por nada agora (exceto pelo ipsec.conf).

Meus clientes Windows se conectam à VPN, mas não podem se conectar a nenhum host na rede privada. Minha teoria é que isso está relacionado a um problema com o roteamento do cliente ou a falta de alguma invocação do iptables no servidor, mas eu não sou muito bem informada em nenhum domínio e fiquei presa.

  • Eu instalei o Ubuntu 12.04 e o strongswan-ikev2 no servidor.
  • ipsec version relatórios Linux strongSwan U4.5.2/K3.2.0-52-virtual
  • Observe que o cliente e o servidor estão por trás do NAT (o cliente porque ele está em uma rede de escritório local e o servidor porque está na nuvem da Amazon). Desbloqueei as portas UDP 500 e 4500 no painel da Amazon e no firewall do cliente.
  • Eu ativei o encaminhamento IPv4 no servidor: echo 1 > /proc/sys/net/ipv4/ip_forward
  • Entrei na interface administrativa da VPC da Amazon para a sub-rede 172.16.0.0/17 e permiti todo o tráfego de / para a sub-rede 10.127.0.0/23.
  • Isso é /etc/ipsec.conf:

    config setup
        plutostart=no
    
    conn %default
        keyexchange=ikev2
        dpdaction=clear
        dpddelay=300s
        rekey=no
    
    conn dlpvpn
        left=172.16.1.15
        leftauth=pubkey
        leftcert=openssl-cert.pem
        leftid=vpn.example.com
        leftsubnet=172.16.0.0/17
        right=%any
        rightsourceip=10.127.0.0/22
        rightauth=eap-mschapv2
        rightsendcert=never
        eap_identity=%any
        auto=add
    
  • Isso é /etc/ipsec.secrets:

    : RSA openssl-key.rsa
    TESTDOMAIN\testuser : EAP "testpassword"
    
  • Isso é /etc/strongswan.conf:

    charon {
        threads = 16
        dns1 = 172.16.3.246
    }
    
  • Eu quero usar o tunelamento dividido - onde apenas o tráfego para a rede privada 172.16.0.0/17 passa pela VPN, e o tráfego para a Internet usa o gateway local do cliente. Para fazer isso, desmarcou "Usar gateway padrão na rede remota" e selecione "Desativar adição de rota baseada em classe" no cliente Windows.

  • A conexão é concluída com sucesso. ipconfig /all mostra:

    PPP adapter strongswan:
    
       Description . . . . . . . . . . . : strongswan
       IPv4 Address. . . . . . . . . . . : 10.127.0.1(Preferred)
       Subnet Mask . . . . . . . . . . . : 255.255.255.255
       Default Gateway . . . . . . . . . :
       DNS Servers . . . . . . . . . . . : 172.16.3.246
    
  • No entanto, não consigo pingar nenhum host na rede 172.16.0.0/17. Na verdade, se eu fizer um nslookup, ele tentará entrar em contato com o servidor DNS especificado em strongswan.conf, mas o Wireshark nesse servidor DNS mostra que não recebeu nada. Eu não posso nem pingar o endereço 172.16.1.15 do próprio servidor strongSwan.

  • Entendo que as regras de rota devem ser adicionadas manualmente no Windows. No entanto, o que eles precisam ser? A única resposta que eu consegui fazer foi tentar adicionar a rota para a rede 172.16.0.0/17 para usar o endereço do servidor VPN como o gateway usando o comando route add 172.16.0.0/17 172.16.1.15 if 45 . No entanto, isso não alterou nada - o tráfego do meu cliente VPN não chegou à rede 172.16.0.0/17.

Eu gostaria de receber ajuda. Obrigado.

    
por Micah R Ledbetter 05.09.2013 / 03:02

1 resposta

3

Eu finalmente tenho esse trabalho, graças à ajuda do @ecdsa aqui e da ajuda do canal #strongswan irc.

  1. As regras de rota do meu cliente VPN estavam incompletas. Eu precisava adicionar as duas regras:

    route add 172.16.1.15/32 10.127.0.1
    route add 172.16.0.0/17 172.16.1.15
    

    O primeiro adiciona uma rota para o endereço IP privado do servidor VPN, especificando o endereço IP atribuído pelo VPN do cliente como o gateway para ele ( route print exibirá isso como sendo on-link AKA local para essa interface). O segundo faz o que eu estava tentando fazer com a regra de rota na minha pergunta - ele adiciona uma rota para toda a rede privada, especificando o servidor VPN como o gateway.

  2. Eu precisava especificar leftsubnet=172.16.0.0/17 no servidor, caso contrário, a diretiva IPsec não permitiria o tráfego para a sub-rede, independentemente das rotas.

  3. Eu precisava especificar leftfirewall=yes no servidor para inserir regras apropriadas no iptables.

  4. Eu precisava desativar a "verificação de origem / destino" na minha instância do Amazon. Embora eu tenha permitido o tráfego da minha sub-rede VPN de / para os grupos de segurança no painel do Amazon VPC, não percebi que havia outra configuração. No painel do EC2, você pode clicar com o botão direito do mouse em uma instância e ir em "Alterar verificação de origem / destino". Essa verificação é ativada por padrão e impediu que meu tráfego de VPN saísse do servidor VPN (e impedia que o tráfego de outros hosts VPC para minha sub-rede VPN entrasse no servidor VPN).

por 10.09.2013 / 00:29