L2TP сервер удобен тем, что позволяет использовать встроенные средства Windows для подключения. В данной инструкции рассмотрим процесс его установки и настройки на Ubuntu 16.04 и 18.04. В итоге мы получим:
Мы выполним следующие настройки:
Для управления IPSec используется пакет strongswan — установим его командой:
apt-get install strongswan
Открываем конфигурационный файл для настройки ipsec:
vi /etc/ipsec.conf
Для config setup добавим:
config setup virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12 protostack=netkey
* где virtual_private для нас является наиболее важным параметром и определяет приватные сети. В данном примере просто перечислены сети, зарезервированные под локальные — мы можем указать и другие.
… а также вставляем ниже:
conn l2tpvpn type=transport authby=secret pfs=no rekey=no keyingtries=2 left=%any leftprotoport=udp/l2tp [email protected] right=%any rightprotoport=udp/%any auto=add
* где:
Создаем секретный ключ — для этого открываем на редактирование файл:
vi /etc/ipsec.secrets
… и добавляем:
%any %any : PSK “my_key_password”
* в данном примере мы устанавливаем общий пароль my_key_password для соединений с любого IP.
Разрешаем автозапуск strongswan и перезапускаем службу:
systemctl enable strongswan
systemctl restart strongswan
Устанавливаем сервер L2TP:
apt-get install xl2tpd
Открываем файл настройки сервера:
vi /etc/xl2tpd/xl2tpd.conf
Добавляем:
[global]port = 1701access control = noipsec saref = yesforce userspace = yesauth file = /etc/ppp/chap-secrets
[lns default]ip range = 176.16.10.10-176.16.10.200local ip = 176.16.10.1name = l2tpserverpppoptfile = /etc/ppp/options.xl2tpdflow bit = yesexclusive = nohidden bit = nolength bit = yesrequire authentication = yesrequire chap = yesrefuse pap = yes
где:
Разрешаем автозапуск vpn-сервера и перезапускаем его:
systemctl enable xl2tpd
systemctl restart xl2tpd
Открываем на редактирование конфигурационный файл:
vi /etc/ppp/options.xl2tpd
noccpauthcrtsctsmtu 1410mru 1410nodefaultroutelocknoproxyarpsilentmodemasyncmap 0hide-passwordrequire-mschap-v2ms-dns 77.88.8.8ms-dns 8.8.8.8
Создаем пользователя. Для этого открываем файл:
vi /etc/ppp/chap-secrets
И добавляем:
“user1” l2tpserver “password1” “172.16.10.10”“user2” l2tpserver “password2” *
* формат записи — <логин> <имя сервиса> <пароль> <IP клиента (не обязательно)>
Перезапускаем xl2tpd:
В параметрах сети и Интернет в разделе VPN создаем новое соединение:
Задаем настройки:
После подключения к сети VPN мы не сможем ни выйти в Интернет, ни подключиться к узлам локальной сети. Чтобы это исправить, открываем на редактирование файл:
vi /etc/sysctl.d/99-sysctl.conf
… и добавляем строку:
net.ipv4.ip_forward=1
* мы разрешили форвард сетевых запросов и настроили сервер в качестве шлюза.
После применяем настройку:
sysctl -p /etc/sysctl.d/99-sysctl.conf
Добавляем правило в iptables:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
* данное правило включает маскарадинг на интерфейсе eth0. Вам необходимо подставить в команду значение своего сетевого адаптера.
В случае с единым сетевым интерфейсом больше ничего делать не потребуется — Ubuntu начнет работать как Интернет-шлюз.
В случае с несколькими сетевыми адаптерами, настраиваем сетевой экран:
iptables -A FORWARD -i eth1 -o eth0 -m state –state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
* предполагается, что eth1 используется для внутренней сети, а eth0 — внешней.
Описанная выше настройка не предполагает наличие лога. Для этого открываем конфигурационный файл для ppp:
Добавим:
…logfile /var/log/xl2tpd/xl2tpd.logdebug
Создадим каталог для лога:
mkdir /var/log/xl2tpd
Перезапускаем сервис xl2tpd:
Пробуем подключиться к серверу — в случае наличия проблем, наблюдаем за логом:
tail -f /var/log/xl2tpd/xl2tpd.log
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies