L2TP VPN СЕРВЕР С ДОСТУПОМ К ЛОКАЛКЕ ИЗ ЭТИХ ВАШИХ ИНТЕРНЕТОВ.
НАСТРОЙКА IPSEC
sudo apt install strongswan
sudo nano /etc/ipsec.conf
config setup
        virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12, %v4:192.168.88.0/24
        protostack=netkey Ниже вставляем
conn l2tpvpn
        type=transport
        authby=secret
        pfs=no
        rekey=no
        keyingtries=2
        left=%any
        leftprotoport=udp/l2tp
        leftid=@l2tpvpnserver
        right=%any
        rightprotoport=udp/%any
        auto=add - где:
type — тип соединения. Возможны варианты tunnel (хост-хост, хост-подсеть или подсеть-подсеть); transport (хост-хост); passthrough (без обработки IPsec).
 authby — способы аутентификации двух узлов. Возможны варианты secret (по паролю) или rsasig (цифровые подписи RSA).
 pfs — расшифровывается как Perfect Forward Secrecy. Позволяет активировать совершенную секретность в канале ключей соединения.
 rekey — перепроверить соединение, когда оно истекает.
 keyingtries — число попыток, чтобы «договориться» о соединении или его замене.
 left — IP-адрес левого участника (сервера). %any означает, что адрес может быть любой.
 leftprotoport — определяет протокол и порт, на котором будет работать левая сторона (сервер). В данном примере указан UDP и порт 1701.
 leftid — идентификация левого участника соединения.
 right — IP-адрес правого участника (клиента). %any означает, что адрес может быть любой.
 rightprotoport — определяет протокол и порт, на котором будет работать правая сторона (клиент). В данном примере указан UDP и любой порт.
 auto — операция, которая должна запуститься автоматически при старте IPsec.
Далее создаем секретный ключ — для этого открываем на редактирование файл:
sudo nano /etc/ipsec.secrets
%any %any : PSK "MySharedKey"
sudo systemctl enable strongswan
sudo systemctl restart strongswan
L2TP
sudo apt-get install xl2tpd
sudo nano /etc/xl2tpd/xl2tpd.conf
[global] port = 1701 access control = no ipsec saref = yes force userspace = yes auth file = /etc/ppp/chap-secrets [lns default] ip range = 176.16.10.10-176.16.10.200 local ip = 176.16.10.1 name = l2tpserver pppoptfile = /etc/ppp/options.xl2tpd flow bit = yes exclusive = no hidden bit = no length bit = yes require authentication = yes require chap = yes refuse pap = yes
где:
port — порт UDP, на котором работает VPN. По умолчанию, 1701.
 access control — принимать или нет запросы только от клиентов с определенными IP, перечисленными в настройках клиентов.
 ipsec saref — указывает использовать или нет ipsec Security Association, позволяющий отслеживать несколько клиентов с одинаковыми IP-адресами.
 force userspace — повышает производительность за счет декапсуляции пакетов L2TP.
 auth file — путь к файлу аутентификации.
 ip range — диапазон адресов, которые назначаются подключенным клиентам.
 local ip — IP-адрес сервера в сети VPN.
 name — имя сервера для процесса согласования.
 pppoptfile — путь к файлу с настройкой pppd.
 flow bit — позволяет добавлять в пакеты порядковые номера.
 exclusive — если поставить в yes, сервер разрешит только одно соединение с клиентом.
 hidden bit — скрывать или нет AVP.
 length bit — использовать ли бит длины, указывающий полезную нагрузку.
 require authentication — требовать ли аутентификацию.
 require chap — требовать ли аутентификацию PPP по протоколу CHAP.
 refuse pap — требовать ли аутентификацию PPP по протоколу PAP.
sudo systemctl enable xl2tpd
sudo systemctl restart xl2tpd
PPP
sudo nano /etc/ppp/options.xl2tpd
asyncmap 0 auth crtscts lock hide-password modem mtu 1460 lcp-echo-interval 30 lcp-echo-failure 4 noipx refuse-pap refuse-chap refuse-mschap require-mschap-v2 multilink mppe-stateful
ms-dns 8.8.8.8 ms-dns 8.8.4.4
Теперь создаем пользователя:
sudo nano /etc/ppp/chap-secrets
"user1" l2tpserver "password1" "172.16.10.10" "user2" l2tpserver "password2" *
sudo systemctl restart xl2tpd
- где:
Имя подключения — произвольное имя.
 Имя или адрес сервера — адрес сервера VPN, к которому мы будем подключаться.
 Тип VPN — для нашего случая, выбираем L2TP/IPsec с предварительным ключом.
 Общий ключ — ключ, который мы задали в файле /etc/ipsec.secrets.
 Тип данных для входа — выбираем пользователь и пароль.
 Имя пользователя и пароль — логин и пароль, которые мы задали в файле /etc/ppp/chap-secrets.
ДОСТУП В ИНТЕРНЕТ И ЛОКАЛЬНУЮ СЕТЬ
sudo nano /etc/sysctl.d/99-sysctl.conf
net.ipv4.ip_forward=1
sudo sysctl -p /etc/sysctl.d/99-sysctl.conf
Далее настроим маскарадинг на интерфейсе eth0, который смотрит в этот ваш Интырнет. У вас он может называться иначе. Уточните название, например, при помощи команды ifconfig.
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
КЛИЕНТ
На компе-клиенте необходимо установить соответствующее ПО.
sudo apt-get install network-manager-l2tp network-manager-l2tp-gnome
sudo reboot
После перезагрузки заходим в Settings — Network и пробуем добавить VPN соединение

Заполняем все необходимые поля. Необходимый минимум:
Name — название соединения может быть любым
 Gateway — IP адрес сервера VPN либо его доменное имя
 User name — имя пользователя
 Password — пароль

Обычно для соединения по L2TP необходимо знать 4 вещи: адрес сервера, логин и пароль пользователя для подключения, и PSK ключ. Первые три параметра мы уже ввели. Теперь нажимаем кнопку IPsec Settings.

В данном окне ставим галочку Enable IPsec tunnel to L2TP host и вводим MySharedKey (PSK).
Сохраняем все настройки и пробуем подключиться. Если все работает, отлично. Когда есть проблемы с подключением, необходимо смотреть системный журнал Ubuntu и диагностировать проблемы на стороне сервера VPN.
Ну и на последок один маленький нюанс. Для того чтобы лыжи поехали, необходимо пробросить порты через NAT: UDP 1701, UDP 500, UDP 4500.
