Eu quero definir um túnel VPN usando StrongSwan para fazer o meu VM Linux como um roteador. A ilustração é assim:
Eu tenho um servidor com o IP público 111.111.111.111. Dentro dele eu instalei o Ubuntu 16.04 VM com o IP 192.168.100.3 e o segmento 192.168.100.0/24
Existe um servidor cliente com IP público 222.222.222.222 e rede privada de 172.100.3.0/24. Este servidor só permite que o IP 111.111.111.111 faça uma conexão.
Após fazer uma conexão, o segundo servidor concede a 111.111.111.111 uma rede privada 172.102.2.0/24. Estou usando o strongswan dentro do Ubuntu VM 192.168.100.3
Isto é ipsec.conf
config setup
uniqueids=never
conn %default
authby=secret
type=tunnel
conn test1-vpn
keyexchange=ikev1
left=192.168.100.3
leftid=111.111.111.111
leftsubnet=172.102.2.0/24
leftfirewall=yes
right=222.222.222.222
rightsubnet=172.100.3.0/24
auto=route
ike=aes256-sha1-modp2048!
ikelifetime=28800s
esp=aes256-sha1-modp2048!
lifetime=3600s
type=tunnel
ipsec up test1-vpn com sucesso Este é o meu iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:isakmp
ACCEPT udp -- anywhere anywhere udp dpt:ipsec-nat-t
ACCEPT esp -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 172.100.3.0/24 172.102.2.0/24 policy match dir in pol ipsec reqid 1 proto esp
ACCEPT all -- 172.102.2.0/24 172.100.3.0/24 policy match dir out pol ipsec reqid 1 proto esp
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Estas são minhas tabelas de pós-venda
Chain POSTROUTING (policy ACCEPT 1 packets, 84 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 policy match dir out pol ipsec
2 0 0 SNAT all -- * eth+ 0.0.0.0/0 0.0.0.0/0 to:101.100.177.228
3 0 0 ACCEPT all -- * eth+ 172.100.3.0/24 0.0.0.0/0 policy match dir out pol ipsec
4 0 0 MASQUERADE all -- * eth+ 172.100.3.0/24 0.0.0.0/0
5 0 0 MASQUERADE all -- * eth+ 172.102.2.0/24 0.0.0.0/0
6 0 0 ACCEPT all -- * eth+ 172.102.2.0/24 0.0.0.0/0 policy match dir out pol ipsec
7 0 0 SNAT all -- * eth+ 0.0.0.0/0 0.0.0.0/0 to:101.100.177.228
8 0 0 MASQUERADE all -- * * 172.100.3.0/24 172.102.2.0/24
9 0 0 MASQUERADE all -- * * 172.102.2.0/24 192.168.100.0/24
10 3 204 MASQUERADE all -- * * 192.168.100.0/24 172.102.2.0/24
11 0 0 MASQUERADE all -- * * 172.100.3.0/24 172.102.2.0/24
12 1 84 MASQUERADE all -- * * 192.168.100.3 111.111.111.111
Meu ifconfig
retornou apenas ensl8
e lo
. Eu também já coloquei encaminhamento ipv4
Quando eu ping
para o servidor cliente, eu tenho o host inacessível. Quando eu traceroute
ficou inacessível também. Me desculpe se a minha explicação é confusa, mas esta é a minha primeira vez fazendo isso. Eu sei que deve ser algo errado com o meu iptables.