Я пытаюсь подключить свою рабочую станцию Windows 7 к Интернету через туннель ipsec.
Я имею:
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 Конфигурация StrongSwan в 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 На стороне микротик у меня есть соответствующий конфиг
Вывод команды ipsec status:
ikev2-vpn[1]: ESTABLISHED 110 minutes ago, VPN_IPSEC_IP[VPN_IPSEC_IP]...MY_PUB_IP[MY_PUB_IP] ikev2-vpn: INSTALLED, TUNNEL, ESP SPIs: ca494e15_i 099301b9_o ikev2-vpn: 0.0.0.0/0 === 192.168.88.251/32 Видимо мой туннель ipsec работает правильно. На VPN_IPSEC я делаю ping 192.168.88.251, и я вижу ping. В то же время, когда на win7 я выполняю ping 8.8.8.8, я вижу трафик в разделе установленного SA на mikrotik, и если я создаю некоторые правила брандмауэра для VPN_IPSEC, который работает с 192.168.88.251, я вижу, что соответствующие счетчики растут.
На VPN_IPSEC у меня есть эта начальная конфигурация брандмауэра:
Chain INPUT (policy ACCEPT 936 packets, 92296 bytes) Chain FORWARD (policy ACCEPT 483 packets, 29148 bytes) Chain OUTPUT (policy ACCEPT 306 packets, 30108 bytes) Таблица NAT одинакова: все принимают
Теперь я теперь, когда зашифрованный трафик с win7 приходит на VPN_IPSEC. Я хочу сейчас, чтобы он пересылался за пределы VPN_IPSEC.
На win7 делаю
ping VPN_TEST На VPN_IPSEC делаю
tcpdump -nni venet0 icmp Я вижу:
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 т.е. нет ответа
Теперь я добавляю правило 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 т.е. нет ответа, но я вижу, что пакеты маскируются
В то же время на VPN_TEST я делаю:
tcpdump -nni eth0 icmp и я не вижу пингов от моего VPN_IPSEC, но я вижу случайные пинги с интернет-хостов.
Я тоже делаю на win7:
ping 8.8.8.8 И я не получаю ответа.
В то же время, когда я делаю на VPN_IPSEC
ping VPN_TEST Я вижу все пинги на обоих tcpdumps и вижу ответ
т. е. трафик из моего туннеля остается на VPN_IPSEC
Как это кошка быть ??
Как правильно настроить брандмауэр на VPN_IPSEC.
UPD: я знаю, что для совместного доступа к интернету я должен создать правила маскировки и пересылки. Также у меня должен быть net.ipv4.ip_forward = 1. У меня это уже есть. И я попробовал много правил маскировки и переадресации в миксе. БЕЗРЕЗУЛЬТАТНО.
В настоящее время я хочу только видеть, что мой эхо-запрос из туннеля переходит к моему VPN_TEST и возвращается к VPN_IPSEC.
Вы уверены, что туннель работает? Выполните команду
ipsec statusна вашем VPN-сервере и предоставьте ее вывод.