Conectando um EC2 VPC com o OpenVPN todo o tráfego roteado sendo perdido

6

Estou tentando usar o OpenVPN no Amazon Linux para conectar a LAN local a uma VPC no EC2. Eu tenho tráfego fluindo da instância do OpenVPN para qualquer máquina na LAN, mas outras máquinas no VPC não estão vendo o tráfego da LAN.

Aqui está uma versão aparada da rede:

       Local network          /        EC2 VPC, 10.2.0.*/255.255.255.0
  10.1.0.*/               ,'
     255.255.255.0     ,'
                      .'
                      |
 +---------------+   |             
 | OpenVPN on    |   |             
 |   firewall    XXX |   +---------------+
 | 10.1.0.1      |  XXXX | OpenVPN server|
 +------'.-------+   \  XX  10.2.0.10  '-.    +-------------+
          \          '.  +---------------+  '-. Second server
  +--------'.---+     |                       | 10.2.0.12   |
  |Local server |      \                      +-------------+
  | 10.1.0.3    |       \
  +-------------+        \

Do servidor EC2 OpenVPN:

[root@ip-10-2-0-10 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.2.0.1        0.0.0.0         UG    0      0        0 eth0
10.1.0.0        10.1.2.5        255.255.255.0   UG    0      0        0 tun0
10.1.2.0        10.1.2.5        255.255.255.0   UG    0      0        0 tun0
10.1.2.5        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
10.2.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0

[root@ip-10-2-0-10 ~]# ping -c 2 10.1.0.3
PING 10.1.0.3 (10.1.0.3) 56(84) bytes of data.
64 bytes from 10.1.0.3: icmp_seq=1 ttl=127 time=488 ms
64 bytes from 10.1.0.3: icmp_seq=2 ttl=127 time=54.9 ms

--- 10.1.0.3 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1056ms
rtt min/avg/max/mdev = 54.925/271.767/488.609/216.842 ms

Do firewall da LAN:

root@firewall:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         xxx.xxx.xxx.xxx 0.0.0.0         UG    0      0        0 eth0.2
10.1.0.0        0.0.0.0         255.255.255.0   U     0      0        0 br-lan
10.1.2.0        10.1.2.2        255.255.255.0   UG    0      0        0 tun0
10.1.2.2        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
10.2.0.0        10.1.2.2        255.255.255.0   UG    0      0        0 tun0

Do segundo servidor no EC2:

[root@ip-10-2-0-12 ~]# ping -c 3 10.1.0.3
PING 10.1.0.3 (10.1.0.3) 56(84) bytes of data.

--- 10.1.0.3 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 12014ms

No entanto, aqui está o kicker. Fazer um tcpdump no servidor EC2 OpenVPN mostra todo o fluxo de tráfego como deveria:

[root@ip-10-2-0-10 ~]# tcpdump -i eth0 -n host 10.1.0.3
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
13:46:58.779826 IP 10.2.0.12 > 10.1.0.3: ICMP echo request, id 21846, seq 1, length 64
13:46:58.852756 IP 10.1.0.3 > 10.2.0.12: ICMP echo reply, id 21846, seq 1, length 64
13:46:59.787467 IP 10.2.0.12 > 10.1.0.3: ICMP echo request, id 21846, seq 2, length 64
13:46:59.847424 IP 10.1.0.3 > 10.2.0.12: ICMP echo reply, id 21846, seq 2, length 64

O tcpdump no Segundo servidor no EC2 mostra apenas a solicitação de eco e nenhuma resposta.

  • Os firewalls IPtables estão desativados em todas as instâncias do EC2.
  • O
  • encaminhamento de IP foi ativado no servidor OpenVPN.
  • O grupo de segurança do EC2 que tanto o servidor OpenVPN como o Segundo servidor estão definidos para permitir todo o tráfego de 10.0.0.0/8 e as ACLs de rede estão abertos.

Parece que esse tráfego está sendo descartado pela Amazon que é originado fora da VPC, independentemente das configurações do Grupo de segurança.

Algo que esteja perdendo causaria a queda desse tráfego?

    
por lschweiss 21.10.2014 / 15:57

2 respostas

11

Acontece que o EC2 estava bloqueando os pacotes encaminhados do servidor OpenVPN.

Há uma configuração no painel de controle do EC2, em Rede & Segurança - > Interfaces de Rede - > Ações - > Alterar origem / destino Verifique.

Quando desativei isso em todas as minhas instâncias, o tráfego pela VPN está fluindo conforme o esperado.

Espero que isso ajude alguém.

    
por 21.10.2014 / 16:31
2

Você me superou com sua própria resposta, então vou expandir um pouco ...

Se você precisar incluir isso no script de inicialização da instância, adicione o seguinte ao bloco Dados do usuário (ao iniciar a instância, na etapa 3, Configurar Detalhes da Instância ..., expanda a seção Detalhes Avançados na parte inferior da página) para a instância ... atualize a linha 3 para a região correta:

#!/bin/bash
export my_instance='curl http://169.254.169.254/latest/meta-data/instance-id'
export AWS_DEFAULT_REGION=us-east-1
aws ec2 modify-instance-attribute --instance-id $my_instance --no-source-dest-check

... e se for para uma instância NAT, você pode modificar sua tabela de rota adicionando esta linha (atualizar route-table-id para o ID da tabela de rotas usado pelo seu VPC):

aws ec2 replace-route --route-table-id rtb-01234567 --destination-cidr-block 0.0.0.0/0 --instance-id $my_instance

Para que isso funcione, sua instância precisará de direitos para atualizar o atributo e substituir a rota ... Você pode fazer isso com uma função do EC2 com a seguinte declaração de política e especificar o nome da política na caixa Função do IAM ( também na etapa 3 do assistente do EC2, Configurar Detalhes da Instância):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1413415456000",
      "Effect": "Allow",
      "Action": [
        "ec2:ModifyInstanceAttribute",
        "ec2:ReplaceRoute"
      ],
      "Resource": "*"
    }
  ]
}
    
por 21.10.2014 / 22:54