Настраиваем L2TP+IPSEC PSK VPN Server в Debian 10
Общая
В статье рассказывается как поднять L2TP+IPSec PSK сервер на Debian 10 для доступа работников к сети организации.
Содержание:
Модули ядра, необходимые для работы: ppp_async, pppol2tp, xfrm4_mode_transport, xfrm4_mode_tunnel, xfrm_ipcomp, esp4
.
Установка необходимых пакетов.
Установим следующие необходимые для работы пакеты:
apt install iptables-persistent xl2tpd libgmp3-dev gawk flex bison make libc6-dev devscripts libssl-dev
Установка Openswan из исходников.
Загружаем последнюю версию с официального сайта:
wget https://download.openswan.org/openswan/openswan-latest.tar.gz
Распаковываем:
tar -xvzf openswan-latest.tar.gz
Собираем и устанавливаем:
cd openswan-2.6.50
make programs
make install
Настройка сервера.
Настройка ipsec:
nano /etc/ipsec.conf
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
oe=off
protostack=netkey
nhelpers=0
;
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
dpddelay=30
dpdtimeout=120
dpdaction=clear
ikelifetime=8h
keylife=1h
type=transport
left=ВНЕШНИЙ IP+АДРЕС СЕРВЕРА
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
forceencaps=yes
Укажем PSK ключ для IPSec:
nano /etc/ipsec.secrets
ВНЕШНИЙ IP+АДРЕС СЕРВЕРА %any: PSK "PSK-КЛЮЧ"
Настраиваем L2TP:
nano /etc/xl2tpd/xl2tpd.conf
[global]
listen-addr = ВНЕШНИЙ IP+АДРЕС СЕРВЕРА
port = 1701
ipsec saref = no
debug tunnel = yes
debug avp = yes
debug packet = yes
debug network = yes
debug state = yes
auth file = /etc/ppp/chap-secrets
;
[lns default]
ip range = 172.16.254.1-172.16.254.253 ; Диапазон IP-адресов, которые выдаются подключающимся клиентам
local ip = 172.16.254.254 ; Локальный IP-адрес сервера для VPN-клиентов
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
name = VPN
assign ip = yes
Настраиваем PPP:
nano /etc/ppp/options.xl2tpd
require-mschap-v2
refuse-mschap
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
idle 1800
mtu 1200
mru 1200
lock
hide-password
local
debug
name VPN
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
Создаем пользователя для авторизации:
nano /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
ИМЯ-ПОЛЬЗОВАТЕЛЯ VPN ПАРОЛЬ *
Настраиваем файервол:
iptables -t nat -A POSTROUTING -o venet0:0 -s 172.16.254.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o venet0 -s 172.16.254.0/24 -j MASQUERADE
iptables -A FORWARD -s 172.16.254.0/24 -j ACCEPT
iptables -A FORWARD -d 172.16.254.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -o venet0 -s 172.16.254.0/24 -j SNAT --to-source ВНЕШНИЙ IP-АДРЕС СЕРВЕРА
iptables-save
Отключаем ICMP send_redirects и ICMP accept_redirects:
Узнать имена имеющихся интерфейсов поможет команда ifconfig
nano /etc/sysctl.conf
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.ИМЯ_СЕТЕВОГО_ИНТЕРФЕЙСА.send_redirects = 0
net.ipv4.conf.ИМЯ_СЕТЕВОГО_ИНТЕРФЕЙСА.accept_redirects = 0
Перезапускаем службы:
/etc/init.d/ipsec restart
/etc/init.d/xl2tpd restart
Проверяем правильность настройки IPSec командой:
ipsec verify
https://itcrowd.top/l2tpipsec#sigProIdc8f794fdf5
Пробуем установить соединение.
Возможные ошибки.
Выявить ошибки в работе сервера поможет команда:
grep pluto /var/log/auth.log
Ошибка 809 Windows клиента:
При попытке подключения стандартным клиентом Windows, не важно какой версии, может появляться ошибка 809. Связано это с тем, что по умолчанию клиент не умеет работать с сервером за NAT. Для исправления ошибки откройте на Windows машине regedit и найдите ветку:
Для Windows XP
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPSec
Для Windows 7, 8.1, 10
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent
Создайте параметр DWORD (32 бита)
и укажите ему имя:
AssumeUDPEncapsulationContextOnSendRule
В качестве значения поставьте 2
.
Возможные значение параметра AssumeUDPEncapsulationContextOnSendRule:
0 – (значение по-умолчанию), предполагается, что сервер подключен к интернету без NAT;
1 – сервер находится за NAT;
2 — и сервер и клиент находятся за NAT.
Перезагрузите ПК.
Ошибка 789 в Windows 7
Добавить в реестр следующие строки и перезагрузиться:
REGEDIT4
[HKEY_LOCAL_MACHINESystemCurrentControlSetServicesRasmanParameters]
"ProhibitIpSec"=dword:00000001
"AllowL2TPWeakCrypto"=dword:00000001
Ошибка 689 во всех версиях
Так-же могут наблюдаться ошибка 689, в Windows 10 может выскакивать ошибка, что сервер не отвечает. Если с файрволом все хорошо то попробуйте следующее
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters" /v AllowL2TPWeakCrypto /t REG_DWORD /d 1 /f
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters" /v ProhibitIpSec /t REG_DWORD /d 0 /f
- Просмотров: 31401
failed to start openswan IKE daemon - the following error occured:
can not load config '/etc/ipsec.conf': /etc/ipsec.conf:2: syntax error, unexpected BOOLWORD, expecting $end [nat_traversal]
Debian 9
У вас синтаксическая ошибка во 2 строке ipsec.conf
Согласно документации https://wiki.strongswan.org/projects/strongswan/wiki/Connsection можете. Так же для правильной работы с DDNS может понадобится добавить параметр left|rightallowany = yes
там всё правильно. Просто для ipsec очень важен синтаксис. Перед второй строчкой и последующими(не всеми) нужен пробел.
просто тот кто перепечатывал эту статью на этот сайт из кучи других мест, даже не заморочился на эту тему
Не задавался таким вопросом
RSS лента комментариев этой записи