L2TP/IPsec PSK на CentOS 7
Для начала работы устанавливаем epel репозиторий
yum install epel-release
Далее устанавливаем нужные пакеты
yum install xl2tpd libreswan lsof
Сохраняем стандартный конфиг xl2tpd (на всякий случай)
cp /etc/xl2tpd/xl2tpd.conf /etc/xl2tpd/xl2tpd.conf.backupТ
Теперь настроим адреса которые будут раздаваться клиентам сети.
Редактируем /etc/xl2tpd/xl2tpd.conf и меняем строчки
ip range = 10.0.0.50-200
local ip = 10.0.0.1
ip range — это адреса которые будут раздаваться клиентам сети;
local ip — адрес текущего сервера в приватной сети
Теперь перемещаем стандартный конфиг и на место его создаём новый
mv /etc/ppp/options.xl2tpd /etc/ppp/options.xl2tpd.backup
Новый создаём с такими параметрами
ipcp-accept-local
ipcp-accept-remote
ms-dns 1.1.1.1
ms-dns 1.0.0.1
auth
idle 1800
mtu 1410
mru 1410
nodefaultroute
debug
proxyarp
connect-delay 5000
name xl2tpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
persist
logfile /var/log/xl2tpd.log
Настроим логи xl2tpd. Создаём: /etc/logrotate.d/xl2tpd
/var/log/xl2tpd.log {
missingok
compress
notifempty
weekly
rotate 2
create 0600 root root
}
Теперь настроим IPSec.
Создаём файл /etc/ipsec.d/l2tp-ipsec.conf со следующим содержимым
conn L2TP-PSK-NAT
rightsubnet=0.0.0.0/0
dpddelay=10
dpdtimeout=20
dpdaction=clear
forceencaps=yes
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=1.1.1.1
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
1.1.1.1 замените на свой внешний IP адрес сервера
Добавляем логины и пароли в /etc/ppp/chap-secrets
"user1" "xl2tpd" "pass1" *
"user2" "xl2tpd" "pass2" *
Ставим ключ PSK в /etc/ipsec.d/default.secrets
: PSK "SecretKey"
Где SecretKey ваш общий секретный ключ PSK
Добавляем правила фаервола
firewall-cmd --permanent --add-service=ipsec
firewall-cmd --permanent --add-port=1701/udp
firewall-cmd --permanent --add-port=4500/udp
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
И последнее, настроим sysctl. Создаём файл /etc/sysctl.d/60-sysctl_ipsec.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.eth0.rp_filter = 0
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.eth1.accept_redirects = 0
net.ipv4.conf.eth1.rp_filter = 0
net.ipv4.conf.eth1.send_redirects = 0
net.ipv4.conf.eth2.accept_redirects = 0
net.ipv4.conf.eth2.rp_filter = 0
net.ipv4.conf.eth2.send_redirects = 0
net.ipv4.conf.ip_vti0.accept_redirects = 0
net.ipv4.conf.ip_vti0.rp_filter = 0
net.ipv4.conf.ip_vti0.send_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0
net.ipv4.conf.lo.rp_filter = 0
net.ipv4.conf.lo.send_redirects = 0
net.ipv4.conf.ppp0.accept_redirects = 0
net.ipv4.conf.ppp0.rp_filter = 0
net.ipv4.conf.ppp0.send_redirects = 0
Всё готово, осталось только перезапустить сеть, добавить в автозагрузку ipsec и xl2tpd и запустить их
systemctl restart network
systemctl enable ipsec
systemctl enable xl2tpd
systemctl start ipsec
systemctl start xl2tpd