Strongswan encaminhando tráfego entre dois túneis IPsec

2

Dado um servidor VPN remoto (centralizado) com uma configuração StrongSwan IKEv2 com IP estático externo:

  • IP interno do servidor centralizado 192.168.1.65, rede 192.168.1.64/27

E dois gateways fazendo NAT para redes internas:

  • primeiro IP interno do gateway 192.168.1.33, rede: 192.168.1.32/27;
  • segundo IP interno do gateway 192.168.1.1, rede: 192.168.1.0/27;

Os gateways estão conectados ao servidor centralizado, também usando StrongSwan.

A conexão funciona perfeitamente dos gateways para o servidor e do servidor para os gateways: o ping funciona, o acesso aos serviços no servidor / gateways. Dispositivos por trás de gateways também podem acessar o servidor sem problemas.

O problema começa quando tento acessar computadores entre diferentes gateways.

Configurações:

centralizado:

conn base
    keyexchange = ikev2
    keyingtries = %forever
    forceencaps = yes
    compress = no

    left = centralized
    leftid = @centralized
    leftauth = pubkey
    leftca = "..."
    leftcert = centralized.crt
    leftupdown = sudo -E ipsec _updown iptables
    leftsubnet = 192.168.1.65

    right = %any
    rightauth = pubkey
    rightauth2 = psk
    rightca = %same

conn gateway-first
    auto = add
    rightid = @gateway-first
    rightcert = gateway-first.crt
    rightsubnet = 192.168.1.32/27
    rightsourceip = 192.168.1.66
    also = base

conn gateway-second
    auto = add
    rightid = @gateway-second
    rightcert = gateway-second.crt
    rightsubnet = 192.168.1.0/27
    rightsourceip = 192.168.1.67
    also = base

gateway-first:

conn gateway-first
    auto = route
    dpdaction = restart
    closeaction = restart
    keyexchange = ikev2
    keyingtries = %forever
    forceencaps = yes
    compress = no

    rightid = @centralized
    right = centralized
    rightauth = pubkey
    rightca = "..."
    rightcert = centralized.crt
    rightsubnet = 192.168.1.65,192.168.1.0/27

    leftid = @gateway-first
    left = %defaultroute
    leftauth = pubkey
    leftauth2 = psk
    leftca = %same
    leftcert = gateway-first.crt
    leftupdown = sudo -E ipsec _updown iptables
    leftsubnet = 192.168.1.32/27
    leftsourceip = %config4

gateway-segundo:

conn gateway-second
    auto = route
    dpdaction = restart
    closeaction = restart
    keyexchange = ikev2
    keyingtries = %forever
    forceencaps = yes
    compress = no

    rightid = @centralized
    right = centralized
    rightauth = pubkey
    rightca = "..."
    rightcert = centralized.crt
    rightsubnet = 192.168.1.65,192.168.1.32/27

    leftid = @gateway-second
    left = %defaultroute
    leftauth = pubkey
    leftauth2 = psk
    leftca = %same
    leftcert = gateway-second.crt
    leftupdown = sudo -E ipsec _updown iptables
    leftsubnet = 192.168.1.1/27
    leftsourceip = %config4

Ao tentar pingar gateway-segundo do computador atrás de gateway-first (o IP do computador de origem é 192.168.1.40) e executando tcpdump O servidor centralizado ao mesmo tempo mostra:

tcpdump -i eth0 host 192.168.1.1 -n
error : ret -1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
21:27:49.030650 IP 192.168.1.40 > 192.168.1.1: ICMP echo request, id 9721, seq 35, length 64
21:27:50.026652 IP 192.168.1.40 > 192.168.1.1: ICMP echo request, id 9721, seq 36, length 64
21:27:51.031805 IP 192.168.1.40 > 192.168.1.1: ICMP echo request, id 9721, seq 37, length 64
21:27:52.041165 IP 192.168.1.40 > 192.168.1.1: ICMP echo request, id 9721, seq 38, length 64
21:27:53.029530 IP 192.168.1.40 > 192.168.1.1: ICMP echo request, id 9721, seq 39, length 64

Então, de acordo com esse log, os pacotes são enviados para o servidor centralizado , mas nunca são encaminhados para o 192.168.1.1 .

No servidor centralizado e nos dois gateways, ativei o encaminhamento:

net.ipv4.ip_forward = 1

Tabela de roteamento no servidor centralizado:

# ip route
default via yy.yy.yy.yy dev eth0  proto static 
zz.zz.zz.zz dev eth0  proto kernel  scope link  src xx.xx.xx.xx
192.168.1.64/27 via 192.168.1.65 dev eth1  proto static

E também a tabela de rotas # 220 (VPN):

# ip route show table 220
192.168.1.0/27 via 5.189.141.1 dev eth0  proto static  src 192.168.1.65 
192.168.1.32/27 via 5.189.141.1 dev eth0  proto static  src 192.168.1.65 

Alguma idéia de como habilitar o encaminhamento entre dois diferentes túneis?

    
por GeekMagus 22.06.2015 / 21:36

1 resposta

4

Tente adicionar as sub-redes dos dois gateways a leftsubnet no servidor central. Mesmo que rightsubnet em cada gateway inclua a respectiva sub-rede oposta, o seletor de tráfego será restrito ao que está configurado no servidor central como leftsubnet (ou seja, 192.168.1.65 ). Você deve ver isso na saída de ipsec statusall . Você também pode configurar leftsubnet=0.0.0.0/0 no servidor central, então ele aceitará qualquer coisa que os gateways propõem como rightsubnet .

    
por 23.06.2015 / 09:16