Установка StrongSwan
наш тип VPN будет использовать протокол L2TP/IPsec с общим ключом длинной не менее 30 символов
Генерируем общий ключ
Где 30 - это длина сгенерированной строки, запомните её и храните в надежном месте.
Удаляем все в текущем файле, и после вставляем следующие строки конфигурации:
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16
oe=off
protostack=netkey
# config setup – в этом разделе прописана глобальная конфигурации для IPSec,
#-которая применяется ко всем соединениям
# nat_traversal – активируем NAT
# virtual_private - это диапазон IP-адресов которые допускаются в качестве
#-подсетей для удалённых VPN-клиентов.
# oe – выключаем шифрование
# protostack – выбираем стек работы протокола, варианты auto, klips, netkey ,mast
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= VASH_IP_SERVERA
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
Не забудьте сменить «VASH_IP_SERVERA» – на реальный IP вашего сервера.
Добавляем, где «VASH_KLUCH» - это сгенерированный ключ на предыдущем этапе, где «VASH_IP_SERVERA» – это реальный IP сервера, в следующую строку:
Настраиваем фаервол сервера на передачу IP-пакетов
iptables --table nat --append POSTROUTING --jump MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart
Включаем rc.local для исполнения скриптов
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
#!/bin/sh -ee
/usr/local/bin/ipsec
exit 0
Установка xl2tpd
Пакет xl2tpd необходим для настройки функций L2TP-сервера
nano /etc/ppp/options.xl2tpd
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name MOYVPNLOCAL
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
Обратите внимание на параметр name, это название вашего VPN сервера, в нашем случае это MOYVPNLOCAL
Создаем пароли и логины для пользователей VPN
Vpnuser1 MOYVPNLOCAL password *
Настраиваем L2TP
[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
systemctl enable ipsec
systemctl restart ipsec
systemctl enable xl2tpd
systemctl restart xl2tpd
systemctl enable strongswan-starter
systemctl restart strongswan-starter