Como configuro uma VPN de túnel ssh -w entre o AWS VPC e um Linode?

2

Provavelmente não usarei isso a longo prazo, mas ainda quero saber por que isso não está funcionando.

Configurei um túnel ssh simples da minha instância do Linode para uma instância do AWS EC2 em meu VPC. Eu tenho três instâncias em execução, uma tem um IP público (não um IP elástico, apenas um IP público). Meu comando ifup traz o túnel usando algo como:

manual tun0
iface tun0 inet static
    pre-up /usr/bin/ssh -i /root/.ssh/awsvpn -S /var/run/ssh-aws-vpn-control -NMfw 0:0 jump.aws.mydomain.org
    pre-up sleep 5
    address     192.168.11.2
    pointopoint 192.168.11.1
    broadcast   255.255.255.0
    up  route add -net 10.11.0.0 netmask 255.255.0.0 gw 192.168.11.2
    post-down /usr/bin/ssh -i /root/.ssh/awsvpn -S /var/run/ssh-aws-vpn-control -O exit jump.aws.mydomain.org

... corre do Linode para o awsgw ( jump.aws.mydomain.org ). Os endereços IP estão sendo resolvidos por meio de /etc/hosts .

Depois disso, posso ver meu túnel de ambos os lados. Eu posso pingar para o outro lado do túnel (192.168.11. ) e para a eth0 no lado oposto (10.11.0.xx no lado da AWS, 123.45.67. no lado do Linode ). (Nota: todos os endereços foram higienizados aqui). Eu também posso ssh através do túnel de qualquer lado.

A parte que NÃO está funcionando é qualquer tentativa de alcançar os outros dois nós dentro do meu VPC através desse túnel. Eu posso pingar e ssh de jump.aws. * Para qualquer um deles (anode e bnode).

No sistema de salto que fiz:

net.ipv4.ip_forward = 1

... e

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  10.0.0.0/8           0.0.0.0/0

... e nos outros dois nós defini isso como meu roteador / gateway padrão:

## From anode:
root@anode:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.11.0.35      0.0.0.0         UG    0      0        0 eth0
10.11.0.0       0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.11.0.0       0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0

Em jump , a tabela de roteamento se parece com isso:

## From jump:
root@ip-10-11-0-35:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.11.0.1       0.0.0.0         UG    0      0        0 eth0
10.11.0.0       0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
192.168.11.2    0.0.0.0         255.255.255.255 UH    0      0        0 tun0

... e, finalmente, no Linode, é assim:

## From linode
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         123.45.67.89    0.0.0.0         UG    0      0        0 eth0
10.11.0.0       0.0.0.0         255.255.0.0     U     0      0        0 tun0
192.168.11.1    0.0.0.0         255.255.255.255 UH    0      0        0 tun0
123.45.67.89    0.0.0.0         255.255.255.0   U     0      0        0 eth0

Não há outras regras iptables atualmente ativas em qualquer um desses nós. As únicas regras ativas estão na caixa jump em meu VPC. O AWS SG está permitindo todo o tráfego entre os nós VPC (e eu já estabeleci que eu posso alcançar o ânodo e o bnode a partir do salto e o linode a partir daí.

Se eu executar tcpdump -n -v dst 10.11.0.39 (o ânodo) em jump (o roteador NAT que estou tentando configurar) e tentar ssh do Linode para anodo através dele, vejo o tráfego atingir o salto / roteador. Eu vejo também o tráfego ARP bem-sucedido. Mas eu não vejo nenhum tráfego saindo para o ânodo nem vejo nenhum sendo recebido de um tcpdump no próprio ânodo (além do ssh entre o salto e o ânodo).

Aliás, o NAT / Masquerading não está funcionando. Independentemente do túnel, é como se minha rota padrão no ânodo (e bnode) estivesse sendo ignorada.

Isso é algum artefato do AWS VPC SDN da Amazon (rede definida por software)? Como é que eu posso configurar uma rota padrão para apontar para um dos meus nós ... um nó que eu posso pingar e ssh para ... e meu tráfego não está sendo roteado para esse nó?

(Todos os nós do AWS EC2 nesta configuração são Debian Wheezy 7.1 AMI com patches "shellshock" ... e o VPC está em us-west-2 (Oregon)).

O que estou perdendo?

    
por Jim Dennis 22.11.2014 / 08:40

1 resposta

-1

Soa como um problema de roteamento, já que o túnel está funcionando bem. Eu fiz isso e deu certo ... não funciona mais :-). Eu ainda não me adaptei à nova maneira de dispositivos tun ou meu servidor é apenas borked.

A parte de roteamento ainda deve estar ok.

Pegue a apresentação ssh aqui, tem uma seção em ssh VPN, com toda a configuração (iptables, roteamento etc) em um blob de script dentro de .ssh / config: link

    
por 26.01.2015 / 15:35