L2TP в роутере RTU: Часть 1 - режим "L2TP Сервер"

L2TP в роутере RTU: Часть 1 - режим "L2TP Сервер"

Настройка L2TP VPN на роутерах серии RTU

В роутерах серии RTU есть возможность использования защищенного соединения через частные виртуальные сети (VPN).

Разновидностей различных видов VPN-соединений довольно много, но в данной статье будет рассматриваться настройка VPN-соединения протокола L2TP.

Основная часть конфигурирования производится с помощью консоли роутера, поэтому необходимо понимать, что для реализации данного метода подключения нужно обладать уверенными знаниями в области операционной системы на базе Linux.

Данная статья является примером реализации туннельного протокола L2TP и не является полноценным руководством.

Настройка сервера производится через консоль. Для подключения к консоли роутера рекомендуем ознакомиться со статьей: Как подключиться к роутеру RTU?


1. Настраиваем конфигурацию сервера L2TP

Переходим к конфигурации:

nano /etc/xl2tpd/xl2tpd.conf

Приводим файл к следующему виду:

[global]
port = 1701
auth file = /etc/xl2tpd/xl2tp-secrets
access control = no

[lns default]
exclusive = yes
ip range = 10.0.0.2-10.0.0.10
;lac = 10.0.1.2
hidden bit = no
local ip = 10.0.0.1
length bit = yes
refuse authentication = yes
name = Teleofis
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd


2. Настраиваем параметры подключения к серверу

Открываем редактором файл конфигурации:

nano /etc/ppp/chap-secrets

Пример содержания файла:

#USERNAME PROVIDER PASSWORD IPADDRESS
teleofis * teleofis2 10.0.0.5

Пояснения:

  • teleofis — логин для подключения.
  • * — имя сервера для подключения (параметр name), если указана *, не используется.
  • teleofis2 — пароль для подключения.
  • 10.0.0.5 — Прописываем адрес, который будет присвоен клиенту при подключении, по указанному логину и паролю.

Для доступа в подсеть клиента на сервере необходимо прописать маршрут через IP-адрес и интерфейс, однако особенность L2TP заключается в том, что при подключении клиентов к серверу появляется случайный интерфейс ppp0,ppp3, ppp+, от чего нельзя простым способом прописать маршрут в подсеть клиента.
Решим данную проблему с помощью скрипта, который будет прописывать маршрут при подключении клиента, по назначенному ему IP-адресу.

 Настроим скрипт, который будет прописывать маршрут в подсеть клиента через указанный адрес 10.0.0.5
Допустим у клиента подсеть 192.168.89.0/24, пропишем маршрут в данную подсеть через тоннельный адрес 10.0.0.5


Отредактируем конфигурацию /etc/ppp/ip-up командой nano /etc/ppp/ip-up и добавим туда скрипт:

#!/bin/sh 

if [ "$5" == "10.0.0.5" ];         then         sleep 10 && ip route add 192.168.89.0/24 via 10.0.0.5 dev $1 fi

exit 0


После сохраним изменения комбинацией клавиш:
1) Ctrl + x
2) y
3) Enter

Выдадим скрипту права на исполнения командой chmod +x /etc/ppp/ip-up

Теперь при подключении клиента к серверу, ему будет назначен адрес 10.0.0.5, который мы задали в /etc/ppp/chap-secrets
После скрипт определит на каком интерфейсе был присвоен этот адрес и пропишет через него маршрут.

3. Настраиваем параметры межсетевого экрана

Открываем редактором файл конфигурации:

nano /etc/config/firewall

Добавляем правило для трафика:

config rule
option target 'ACCEPT'
option src 'wan'
option proto 'tcp udp'
option dest_port '1701'
option name '1701'
Разрешаем трафик с интерфейсов PPP+

config zone
        option name 'PPP'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        option masq '1'
        list device 'ppp+'

config forwarding
        option src 'PPP'
        option dest 'lan'

config forwarding
        option src 'lan'
        option dest 'PPP'


4. Перезагружаем службы для запуска сервера

В консоли подаем команду:

/etc/init.d/firewall restart && /etc/init.d/xl2tpd restart

Важно! После перезапуска файрволла можно увидеть сообщение следующего вида:

sh: /etc/firewall.user: line 8: /var/ipsec/firewall.sh: not found
! Failed with exit code 127

Данное сообщение не является критической ошибкой, на него можно не обращать внимания.

На этом этапе настройка сервера завершена. Переходим к настройке клиента L2TP.