Roteie todo o tráfego através da VPN StrongSwan

Roteie todo o tráfego através da VPN StrongSwan

Sou novo nisso - desculpe minha ignorância. Examinei muitas outras perguntas semelhantes sem sucesso.

Tentando configurar uma VPN StrongSwan de forma que o cliente C possa se conectar ao host H, receber um endereço IP virtual e acessar a rede de H. (Devido a limitações práticas durante a configuração e teste, C e H estão atualmente na mesma rede - na verdade, são VMs no mesmo PC físico, com a rede no modo Bridged, portanto, obtêm seus próprios endereços IP.)

Usando StrongSwan 5.3.0, Ubuntu 14.04 (em C e H).

Eu corro ipsec up homeem C e a conexão parece estar estabelecida. H pode executar ping no endereço IP virtual atribuído a C (192.168.0.1) e C pode ver os pings indo para seu endereço IP virtual (confirmado usando tcpdump).

No entanto, até onde posso entender, todo o tráfego em C ainda passa direto pela conexão de rede de C, não pelo túnel - se eu executar tcpdump ip proto \\icmpem um terceiro servidor de teste (T) e executar ping nele de C, eu veja as solicitações com o endereço IP real de C. O mesmo acontece se eu fizer wgetde C para T.

Minha configuração segue:

# /etc/ipsec.conf no host (H)

config setup

conn %default
    ikelifetime=60m
    keylife=20m
    rekeymargin=3m
    keyingtries=1
    keyexchange=ikev2

conn rw
    left=192.168.196.50
    leftcert=moonCert.pem
    [email protected]
    leftfirewall=yes
    right=%any
    rightsourceip=192.168.0.0/16
    auto=add

-

# /etc/ipsec.conf - no cliente (C)

 config setup

 conn %default
     ikelifetime=60m
    keylife=20m
     rekeymargin=3m
     keyingtries=1
     keyexchange=ikev2

 conn home
     left=192.168.198.74
     leftsourceip=%config
     leftcert=carolCert.pem
     [email protected]
     leftfirewall=yes
     right=192.168.196.50
     [email protected]
     auto=add

O endereço IP real de H é 192.168.196.50. O endereço IP real de C é 192.168.198.74.

Responder1

eu precisava correr

sudo sysctl net.ipv6.conf.all.forwarding=1
sudo sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 10.0.3.0/24 -o eth0 -m policy --dir out --pol ipsec -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.0.3.0/24 -o eth0 -j MASQUERADE

no host para fazer com que ele roteie o tráfego.

Meu cliente C agora pode ver outras máquinas na rede local e ALGUMAS (mas não todas, o que não entendo) na internet.

informação relacionada