Для работы использовался хостинг WebHost1.ru. Поделимся с вами промокодом для webhost1.ru на скидку 5%: fb7687-5.
У вас уже имеется сервер с установленной и обновленной ОС Debian 10, c набором нужных утилит (sudo, ssh, mc, net-tools и пр.)
Установите следующие пакеты:
- xl2tpd
- libreswan (реализация IpSec для Debian)
apt install xl2tpd libreswan
После успешной установки пакетом приступим к редактированию файла /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 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=SERVER.IP leftprotoport=17/1701 right=%any rightprotoport=17/%any
Отступы ВАЖНЫ! Ключевые слова "config" и "conn" начинаются с начала строки. Остальные строки - после восьми пробелов!
Устанавливаем ключ шифрования для IpSec, для этого создаем файл /etc/ipsec.d/my.secrets с помощью команды
touch /etc/ipsec.d/my.secrets
и вставляем в него следующее содержимое:
SERVER.IP %any: PSK "YourSharedSecret
Далее нам необходимо создать скрипт для настройки сети. Создаем файл скрипта следующей командой
touch /root/ipsec
Делаем его исполняемым с помощью команды
chmod +x /root/ipsec
и наполняем его следующим содержимым
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 systemctl restart ipsec
Теперь необходимо поместить наш скрипт в автозагрузку. Один из способов - это поместить его в rc.local
В новых версиях Debian по умолчанию файла rc.local нет. Чтобы активировать его необходимо сделать следующее:
Создадим файл сервиса
/etc/systemd/system/rc-local.service
Наполним его следующим содержимым
[Unit] Description=/etc/rc.local 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
Создадим файл /etc/rc.local , добавим в него следующее содержимое
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. /root/ipsec exit 0
Сделаем файл /etc/rc.local исполняемым
chmod +x /etc/rc.local
Добавим вновь созданный сервис в автозапуск
systemctl enable rc-local
Запустим сервис
systemctl start rc-local
И проверим его статус
systemctl status rc-local
Возвращаемся к настройке VPN. Запускаем наш скрипт для автонастройки сети.
sh /root/ipsec
Также рекомендуем выполнить команду
ipsec verify
Она не должна содержать ошибок. Выглядеть вывод данной команды должен примерно так
Теперь переходим к настройке L2TP. Редактируем конфигурационный файл пакета xl2tpd - /etc/xl2tpd/xl2tpd.conf. Вставляем в него следующее содержимое:
[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
Теперь переходим к настройке PPP-авторизации
Создадим файл /etc/ppp/options.xl2tpd с помощью команды
touch /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 VPN proxyarp lcp-echo-interval 30 lcp-echo-failure 4
Тепель добавим пользователей, для этого вставим в файл /etc/ppp/chap-secrets следующее содержимое
test VPN password *
Перегагрузим наши сервисы с помощью команд
systemctl restart xl2tpd
systemctl restart ipsec
Теперь настроим наше IOS-устройство, для этого перейдем в
Настройки-VPN-Добавить конфигурацию VPN
-
Тип – L2TP
-
Описание – на ваше усмотрение
-
Сервер – имя или адрес VPN-сервера
-
Учетная запись – имя пользователя VPN
-
Пароль – пароль пользователя VPN
-
Общий ключ – ключ, сгенерированный вами при настройках (файл /etc/ipsec.d/my.secrets)