# apt install xl2tpd libreswan
# vi /etc/ipsec.conf
config setup
nat_traversal=yes
virtual_private=%v4:10.1.2.0/24
oe=off
protostack=netkey
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=1h
type=transport
left=внешний.ip.адрес.сервера
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
# vi /etc/ipsec.d/my.secrets
внешний.ip.адрес.сервера %any: PSK "секрет_для_ipsec_символов_20"
# vi /etc/xl2tpd/xl2tpd.conf
[global]
ipsec saref = yes
[lns default]
ip range = 10.1.2.2-10.1.2.255
local ip = 10.1.2.1
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
# vi /etc/ppp/options.xl2tpd
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 1.1.1.1
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name VPN
proxyarp
mtu 1200
mru 1200
lcp-echo-interval 30
lcp-echo-failure 4
# vi /etc/ppp/chap-secrets
user VPN пароль_символов_20_для_l2tp *
# systemctl enable ipsec ; systemctl start ipsec
# systemctl enable xl2tpd ; systemctl start xl2tpd
Настроим NAT в интернет, примерно так (где eth0 внешний интерфейс, имя узнать ip a)
# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
# crontab -e
@reboot /sbin/iptables -t nat -A POSTROUTING -s 10.1.2.0/24 -o eth0 -j MASQUERADE
# sysctl net.ipv4.ip_forward=1 ; iptables -t nat -A POSTROUTING -s 10.1.2.0/24 -o eth0 -j MASQUERADE
Настроим IOS-устройство, перейти в меню
Настройки - VPN - Добавить конфигурацию VPN
Тип – L2TP
Описание – на ваше усмотрение (VPN)
Сервер – домен или IP-адрес VPN-сервера
Учетная запись – имя пользователя VPN
Пароль – пароль пользователя VPN (файл /etc/ppp/chap-secrets)
Общий ключ – секрет IPsec (файл /etc/ipsec.d/my.secrets)
На Android добавляется аналогично в сетевых подключениях