L2TP/IPsec на centos 7

Подключаем epel репозиторий

yum install -y epel-release

Устанавливаем необходимые пакеты

yum install -y xl2tpd libreswan lsof

Настраиваем L2TP

Бэкапим дефолтный конфиг

cp /etc/xl2tpd/xl2tpd.conf /etc/xl2tpd/xl2tpd.conf.orig

Правим /etc/xl2tpd/xl2tpd.conf

listen-addr = 1.1.1.1

где 1.1.1.1 заменяем на свой ip

ip range = 10.0.5.50-200
local ip = 10.0.5.1

где 10.0.5. может быть любым, взято для примера

Бэкапим дефолтный конфиг

mv /etc/ppp/options.xl2tpd /etc/ppp/options.xl2tpd.orig

Создаем новый с такими параметрами

vim /etc/ppp/options.xl2tpd
ipcp-accept-local
ipcp-accept-remote
ms-dns 8.8.8.8
ms-dns 8.8.4.4
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

Настраиваем IPsec

Смотрим чтоб был расскоментирован параметр include /etc/ipsec.d/*.conf в /etc/ipsec.conf

Создаем файл настроек с таким содержимым

vim /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 свои логины и пароли

vim /etc/ppp/chap-secrets
"user1" "xl2tpd" "pass1" *
"user2" "xl2tpd" "pass2" *

Прописываем PSK ключ

vim /etc/ipsec.d/default.secrets
: PSK "SecretKey"

Добавляем правила в firewalld

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

Настраиваем ip forward

vim /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

Перезапускаем сеть

systemctl restart network

В принципе все. Запускаем.

systemctl enable ipsec
systemctl enable xl2tpd
systemctl start ipsec
systemctl start xl2tpd

Ах, да. Настроим logrotate для /var/log/xl2tpd.log

vim /etc/logrotate.d/xl2tpd
/var/log/xl2tpd.log {
missingok
compress
notifempty
weekly
rotate 2
create 0600 root root
}

Можно все это проделать вручную, либо воспользоваться этим скриптом (скрипт не мой, я его слегка причесал). В нем по сути этот же набор команд, поэтому достаточно только поправить переменные в начале файла — логин, пароль и PSK ключ и настройка займет меньше пары минут.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.