compartilhamento de internet sobre ipsec

0

Eu tento conectar minha estação de trabalho do Windows 7 à Internet através do túnel ipsec.
Eu tenho:

192.168.88.251  - win7 workstation
192.168.88.1    - my mikrotik router
VPN_IPSEC       - my vpn with ipsec address
VPN_TEST        - my 2nd vpn for connectiviti testing

Configuração StrongSwan em VPN_IPSEC:

config setup
 charondebug="ike 1, knl 1, cfg 0"
 uniqueids=no

conn ikev2-vpn
 auto=add
 compress=no
 type=tunnel
 keyexchange=ikev2
 fragmentation=yes
 forceencaps=yes

 ike=aes256-sha-modp1024
 esp=aes256-sha-modp1024
 dpdaction=clear
 dpddelay=300s
 rekey=no

 left=%any
 leftid=VPN_IPSEC_IP
 leftsendcert=always
 leftsubnet=0.0.0.0/0

 right=%any
 rightid=%any
 authby=secret
 rightsubnet=192.168.88.251/24
 rightdns=8.8.8.8,8.8.4.4

No lado do mikrotik eu tenho configuração correspondente

Saída do comando ipsec status:

ikev2-vpn[1]: ESTABLISHED 110 minutes ago, 
VPN_IPSEC_IP[VPN_IPSEC_IP]...MY_PUB_IP[MY_PUB_IP]
 ikev2-vpn{1}:  INSTALLED, TUNNEL, ESP SPIs: ca494e15_i 099301b9_o
 ikev2-vpn{1}:   0.0.0.0/0 === 192.168.88.251/32 

Aparentemente, o meu túnel ipsec funciona corretamente. Em VPN_IPSEC, faço ping 192.168.88.251 e vejo ping. Ao mesmo tempo Quando no win7 eu faço ping 8.8.8.8, vejo o tráfego na seção SA instalada no mikrotik, e se eu criar algumas regras de firewall no VPN_IPSEC que opera com 192.168.88.251, vejo os contadores correspondentes crescerem.

No VPN_IPSEC eu tenho esta configuração inicial do firewall:

Chain INPUT (policy ACCEPT 936 packets, 92296 bytes)

Chain FORWARD (policy ACCEPT 483 packets, 29148 bytes)

Chain OUTPUT (policy ACCEPT 306 packets, 30108 bytes)

O NAT da tabela é o mesmo: todos aceitam

Agora, agora que o tráfego criptografado do win7 chega a VPN_IPSEC. Quero agora que ele foi encaminhado para fora do VPN_IPSEC.

No win7 eu faço

ping VPN_TEST

Em VPN_IPSEC eu faço

tcpdump  -nni venet0 icmp

Eu vejo:

IP 192.168.88.251 > VPN_TEST_IP: ICMP echo request, id 512, seq 21277, length 40


IP 192.168.88.251 > VPN_TEST_IP: ICMP echo request, id 512, seq 49949, length 40

ou seja, sem resposta

agora adiciono a regra POSTROUTING:

iptables -t nat -A POSTROUTING -s 192.168.88.0/24 -o venet0 -j MASQUERADE

IP 192.168.88.251 > VPN_TEST_IP: ICMP echo request, id 25095, seq 301, length 64
IP 185.69.52.31 > VPN_TEST_IP: ICMP echo request, id 25095, seq 301, length 64
IP 192.168.88.251 > VPN_TEST_IP: ICMP echo request, id 25095, seq 302, length 64
IP 185.69.52.31 > VPN_TEST_IP: ICMP echo request, id 25095, seq 302, length 64

ou seja, sem resposta, mas vejo que os pacotes são mascarados

Ao mesmo tempo no VPN_TEST eu faço:

tcpdump  -nni eth0 icmp

e não vejo pings da minha VPN_IPSEC, mas vejo pings aleatórios de hosts da Internet.

Eu também faço no win7:

ping 8.8.8.8 

E não recebo resposta.

Ao mesmo tempo, quando faço em VPN_IPSEC

ping VPN_TEST

Eu vejo todos os pings nos dois tcpdumps e vejo resposta

i.e., o tráfego do meu túnel permanece em VPN_IPSEC

Como é o gato?

Como posso configurar o firewall no VPN_IPSEC corretamente.

UPD: Eu sei que para compartilhamento de conexão com a Internet eu deveria criar regras de mascaramento e encaminhamento. Também deveria ter net.ipv4.ip_forward = 1. Eu já tenho. E eu tentei muitas máscaras e encaminhamento de regras no mix. NÃO RESULTADO.

Neste momento, só quero ver por enquanto, que meus pings do túnel vão para o meu VPN_TEST e voltam para o VPN_IPSEC.

    
por wee wewewe 28.04.2018 / 23:02

1 resposta

0

Meu problema estava nas limitações do OpenVz vps. Quando eu corro o mesmo túnel ipsec em vps com hipervisor KVM , o problema foi resolvido.

    
por 03.05.2018 / 21:06