
Meu computador físico é capaz de estabelecer um túnel IPsec (com Strongswan) para meu VPS acessível pela Internet, para que o tráfego de Internet do meu computador físico passe pelo meu VPS.
Também tentei e obtive sucesso ao configurar o Strongswan em uma VM rodando em minha máquina física. Como esperado, minha VM pode acessar a Internet através do meu VPS.
O que eu gostaria de fazer é ter o Strongswan rodando no meu computador físico, para que o tráfego de todas as minhas VMs (em 192.168.122.0/24) passe pelo meu VPS. Acho que isso deve ser possível com uma configuração site a site (exemplo aqui:https://www.strongswan.org/testing/testresults/ikev2/net2net-cert/), mas não consegui fazê-lo funcionar. Não tenho certeza se meu problema está na configuração do Strongswan, ou na configuração de rede da minha VM, ou em ambos...
ipsec.conf na minha máquina física:
config setup
charondebug="ike 2, cfg 2"
conn kvm-test
rightsubnet=0.0.0.0/0
keyexchange=ikev2
ike=aes256gcm128-sha512-modp8192!
esp=aes256gcm128-sha512-modp8192!
leftcert=client.pem
auto=add
right=123.123.123.123 # not my VPS's actual IP
rightcert=vpn_server.pem
leftsubnet=192.168.122.0/24
left=192.168.1.2
ipsec.conf no meu VPS:
config setup
# strictcrlpolicy=yes
# uniqueids = no
conn %default
keyexchange=ikev2
leftfirewall=yes
auto=add
leftsubnet=0.0.0.0/0
left=123.123.123.123 # not my VPS's actual IP
ike=aes256gcm128-sha512-modp8192!
esp=aes256gcm128-sha512-modp8192!
conn kvm-test
leftcert=vpn_server.pem
rightcert=client.pem
rightsubnet=192.168.122.0/24
Com esta configuração a conexão é estabelecida com sucesso, porém o tráfego da minha VM não passa por ela. Devo observar que ip route show table 220
não mostra nada, o que é diferente do exemplo vinculado acima, e não tenho certeza do que devo colocar lá... ip route add table 220 default via 123.123.123.123 proto static
não funciona. Alguma ideia?
Responder1
Se a sua solução de virtualização faz NAT do tráfego de 192.168.122.0/24 para o IP físico do seu host (192.168.1.2), você precisa evitar isso e adicionar uma regra que aceite tráfego que corresponda a uma política IPsec. Por exemplo (mais detalhes):
iptables -t nat -I POSTROUTING -s 192.168.122.0/24 -o eth0 -m policy --dir out --pol ipsec -j ACCEPT