Я пытаюсь подключить свою рабочую станцию 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{1}: INSTALLED, TUNNEL, ESP SPIs: ca494e15_i 099301b9_o
ikev2-vpn{1}: 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.