Предварительная подготовка
Ставим пакеты:
# apt-get update && apt-get upgrade
# apt-get install xl2tpd strongswan
Открываем порты:
UDP: 1701,500,4500
Для UFW команды:
# ufw allow 1701/udp
# ufw allow 500/udp
# ufw allow 4500/udp
Настраиваем IPSEC
/etc/ipsec.conf
# ipsec.conf - strongSwan IPsec configuration file
config setup
# strictcrlpolicy=yes
# uniqueids = no
conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
keyingtries=1
keyexchange=ikev1
authby=secret
ike=aes128-sha1-modp2048!
esp=aes128-sha1-modp2048!
conn bds-upstream
keyexchange=ikev1
left=%defaultroute
auto=add
authby=secret
type=transport
leftprotoport=17/1701
rightprotoport=17/1701
right=37.194.5.244
/etc/ipsec.secrets
: PSK "SECRET-PSK-KEY"
Меняем права файла с PSK-ключом на 600
# chmod 600 /etc/ipsec.secrets
Пробуем запустить вручную для отладки:
# systemctl enable strongswan-starter.service
# systemctl restart strongswan-starter.service
# ipsec up bds-upstream
В результате должны получить сообщение connection ‘bds-upstream’ established successfully, в противном случае лезем в syslog и дебажим.
Настраиваем XL2TP
/etc/xl2tpd/xl2tpd.conf
[lac bds-upstream]
lns = 37.194.5.244
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd.client
length bit = yes
autodial=yes
redial = yes
redial timeout = 10
max redials = 1000
tunnel rws = 4
length bit = yes
require chap = yes
require pap = no
require authentication = yes
/etc/ppp/options.l2tpd.client
ipcp-accept-local
ipcp-accept-remote
refuse-eap
require-chap
noccp
noauth
mtu 1280
mru 1280
noipdefault
defaultroute
usepeerdns
connect-delay 5000
name prod-srv-02
password SECRET-PASSWORD
Перезапускаем сервис и настраиваем автозапуск.
# systemctl enable xl2tpd
# systemctl restart xl2tpd
Отладка
Принудительный запуск xl2tp соединения:
# echo "c bds-upstream" > /var/run/xl2tpd/l2tp-control
Маршрутизация на стороне клиента
/etc/ppp/ip-up.d/client-routes
#!/bin/sh
ip route add 10.212.1.0/24 via 0.0.0.0 dev ppp0
exit0
Делаем скрипт исполняемым:
# chmod +x /etc/ppp/ip-up.d/client-routes