LINUX.ORG.RU
ФорумAdmin

VPN strongswan + xl2tpd + ppp нет интернета на Windows

 , ,


0

1

Предисловие

Поднят 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 клиента:

  1. телефон (под управлением ios) (10.18.18.7)
  2. планшет (под управлением ios) (10.18.18.6)
  3. ПК (под управлением 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. Если нужно будет что-то дополнить, с радостью сделаю это.



Последнее исправление: vr18 (всего исправлений: 1)