VPN strongswan + xl2tpd + ppp нет интернета на Windows
Предисловие
Поднят vpn L2TP IPsec на VPS (kvm) средствами xl2tpd + strongswan на Ubuntu 20.04.6 LTS. IPsec работает по PSK. IP форвардинг включён. eth0 смотрит в интернет. Есть клиенты, которые должны получать ip адреса статические (под них диапазон 10.18.18.2-10.18.18.39), остальные получают динамический ip из диапазона 10.18.18.40-10.18.18.120.
Конфиг xl2tpd
[global]
port = 1701
auth file = /etc/ppp/chap-secrets
access control = no
ipsec saref = yes
force userspace = yes
[lns default]
exclusive = no
ip range = 10.18.18.40-10.18.18.120
hidden bit = no
local ip = 10.18.18.1
length bit = yes
require authentication = yes
name = l2tpvpn
pppoptfile = /etc/ppp/options.xl2tpd
flow bit = yes
Конфиг ppp
asyncmap 0
auth
crtscts
lock
hide-password
modem
mtu 1460
lcp-echo-interval 30
lcp-echo-failure 4
noipx
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
multilink
mppe-stateful
novj
ms-dns 8.8.8.8
ms-dns 8.8.4.4
iptables
iptables --append INPUT --in-interface lo --jump ACCEPT
iptables --append INPUT --match state --state RELATED,ESTABLISHED --jump ACCEPT
iptables --append INPUT --match state --state INVALID --jump DROP
iptables --append INPUT --protocol tcp --dport 22 --jump ACCEPT
iptables --append INPUT --protocol icmp --icmp-type 8 --jump ACCEPT
iptables --append INPUT --protocol ah --jump ACCEPT
iptables --append INPUT --protocol esp --jump ACCEPT
iptables --append INPUT --protocol udp --dport 500 --jump ACCEPT
iptables --append INPUT --protocol udp --dport 4500 --jump ACCEPT
iptables --append INPUT --protocol udp --dport 1701 --jump ACCEPT
iptables --append FORWARD --in-interface ppp+ --out-interface eth0 --source 10.18.18.0/24 --jump ACCEPT
iptables --append FORWARD --in-interface eth0 --out-interface ppp+ --destination 10.18.18.0/24 --match state --state RELATED,ESTABLISHED --jump ACCEPT
iptables --table nat --append POSTROUTING --out-interface eth0 --source 10.18.18.0/24 --jump MASQUERADE
iptables --table nat --append POSTROUTING --out-interface ppp+ --source 10.18.18.0/24 --jump MASQUERADE
iptables --policy INPUT DROP
Суть проблемы
Есть 3 клиента:
- телефон (под управлением ios) (10.18.18.7)
- планшет (под управлением ios) (10.18.18.6)
- ПК (под управлением win 10) (10.18.18.5) (на 80 порту крутится nginx)
При подключении клиентов выдаются ip адреса, которые прописаны в /etc/ppp/chap-secrets. С телефона и планшета можно спокойно выходить в интернет из под VPN. Win 10 через vpn не имеет доступа в интернет. При том, если прописать в iptables:
iptables --table nat --append POSTROUTING --jump MASQUERADE
то выход в интернет у windows появляется, однако если с телефона вбить адрес пк (10.18.18.5), то соединение не проходит до nginx, который слушает 80 порт (будто не видит ip).
Подозреваю, что проблема в конфигах iptables.
Помогите пожалуйста разобраться в ошибке.
Попрошу не судить строго, я только начал свой путь в linux. Если нужно будет что-то дополнить, с радостью сделаю это.