Сервер L2TP#

Описание#

Для обеспечения функциональности L2TP сервера в ПО Факел используется механизм accel-ppp. Данный механизм может использоваться как с локальной аутентификацией, так и совместно с подключенным сервером RADIUS.

Настройка#

Пример настройки#

IPSec с использованием L2TP#

Пример настройки простого использования протокола L2TP поверх стека протоколов IPsec для защищенного удаленного доступа (VPN).

Пример настройки L2TP:

set vpn ipsec ipsec-interfaces interface eth0
set vpn ipsec nat-traversal enable
set vpn ipsec nat-networks allowed-network 0.0.0.0/0
set vpn l2tp remote-access outside-address 192.0.2.2
set vpn l2tp remote-access client-ip-pool start 192.168.255.2
set vpn l2tp remote-access client-ip-pool stop 192.168.255.254
set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret
set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret <secret>
set vpn l2tp remote-access authentication mode local
set vpn l2tp remote-access authentication local-users username test password 'test'

В данном примере предполагается, что внешний адрес будет 192.0.2.2.

Если на внешнем интерфейсе установлена локальная политика межсетевого экрана, то необходимо разрешить сетевой трафик по указанным ниже портам:

  • Номер порта UDP 500 (для протокола IKE);

  • Номер протокола IP 50 (для протокола ESP);

  • Номер порта UDP 1701 (для стека протоколов IPsec);

  • Номер порта UDP 4500 (для механизма NAT-Traversal).

Разрешение сетевого трафика по порту UDP 4500 необходимо для работы механизма NAT-Traversal (NAT-T), когда между VPN сервером и VPN клиентом находится шлюз, выполняющий трансляцию адресов (NAT). В этом случае сетевые пакеты ESP дополнительно упаковываются в UDP для обеспечения работы стека протоколов IPSec.

Пример настройки локальной политики межсетевого экрана:

set firewall name OUTSIDE-LOCAL rule 40 action 'accept'
set firewall name OUTSIDE-LOCAL rule 40 protocol 'esp'
set firewall name OUTSIDE-LOCAL rule 41 action 'accept'
set firewall name OUTSIDE-LOCAL rule 41 destination port '500'
set firewall name OUTSIDE-LOCAL rule 41 protocol 'udp'
set firewall name OUTSIDE-LOCAL rule 42 action 'accept'
set firewall name OUTSIDE-LOCAL rule 42 destination port '4500'
set firewall name OUTSIDE-LOCAL rule 42 protocol 'udp'
set firewall name OUTSIDE-LOCAL rule 43 action 'accept'
set firewall name OUTSIDE-LOCAL rule 43 destination port '1701'
set firewall name OUTSIDE-LOCAL rule 43 ipsec 'match-ipsec'
set firewall name OUTSIDE-LOCAL rule 43 protocol 'udp'

Для разрешения VPN клиенту подключаться через указанный внешний адрес также необходимо наличие правила трансляции (NAT).

Пример настройки правила трансляции:

set nat source rule 110 outbound-interface 'eth0'
set nat source rule 110 source address '192.168.255.0/24'
set nat source rule 110 translation address masquerade

VPN клиент обычно запрашивает параметры конфигурации, в числе которых может быть и список DNS серверов для клиента.

Пример настройки DNS сервера для VPN клиентов:

set vpn l2tp remote-access name-server '198.51.100.8'
set vpn l2tp remote-access name-server '198.51.100.4'

Список установленных соединений можно посмотреть с помощью команды show vpn remote-access или команды show l2tp-server sessions в режиме Администрирования.

Пример работы команды show vpn remote-access:

fakel@fakel:~$ show vpn remote-access
ifname | username | calling-sid  |      ip       | rate-limit | type | comp | state  |  uptime
-------+----------+--------------+---------------+------------+------+------+--------+----------
ppp0   | fakel     | 192.168.0.36 | 192.168.255.1 |            | l2tp |      | active | 00:06:13

Сервер доступа LNS (L2TP Network Server)#

Сервер доступа LNS зачастую используется для подключения к серверу LAC (L2TP Access Concentrator).

Пример настройки сервера доступа LNS:

set vpn l2tp remote-access outside-address 192.0.2.2
set vpn l2tp remote-access client-ip-pool start 192.168.255.2
set vpn l2tp remote-access client-ip-pool stop 192.168.255.254
set vpn l2tp remote-access lns shared-secret 'secret'
set vpn l2tp remote-access ccp-disable
set vpn l2tp remote-access authentication mode local
set vpn l2tp remote-access authentication local-users username test password 'test'

В приведенном примере в качестве внешнего IP адреса используется 192.0.2.2. Для сервера LAC обычно требуется пароль аутентификации, который в приведенной в примере конфигурации задан как lns shared-secret 'secret'. Данная настройка требует отключения протокола управления сжатием (Compression Control Protocol, CCP), что достигается командой set vpn l2tp remote-access ccp-disable.

Ограничение полосы пропускания#

Лимиты пропускной способности могут быть установлены как для локальных пользователей так и для пользователей RADIUS с помощью специальных атрибутов.

Пример настройки ограничений полосы пропускания для локальных пользователей:

set vpn l2tp remote-access outside-address 192.0.2.2
set vpn l2tp remote-access client-ip-pool start 192.168.255.2
set vpn l2tp remote-access client-ip-pool stop 192.168.255.254
set vpn l2tp remote-access authentication mode local
set vpn l2tp remote-access authentication local-users username test password test
set vpn l2tp remote-access authentication local-users username test rate-limit download 20480
set vpn l2tp remote-access authentication local-users username test rate-limit upload 10240

Лимиты пропускной способности устанавливаются в единицах кбит/с (килобит в секунду).

Настроенные лимиты можно посмотреть с помощью команды show vpn remote-access в режиме Администрирования.

Пример работы команды show vpn remote-access:

fakel@fakel:~$ show vpn remote-access
ifname | username | calling-sid  |      ip       | rate-limit  | type | comp | state  |  uptime
-------+----------+--------------+---------------+-------------+------+------+--------+-----------
ppp0   | test     | 192.168.0.36 | 192.168.255.2 | 20480/10240 | l2tp |      | active | 00:06:30

Список команд#

Основные настройки#

set vpn ipsec ipsec-interfaces interface <ethN>#
set vpn ipsec nat-traversal enable#
set vpn ipsec nat-networks allowed-network <x.x.x.x/x>#
set vpn l2tp remote-access outside-address <x.x.x.x>#
set vpn l2tp remote-access client-ip-pool start <x.x.x.x>#
set vpn l2tp remote-access client-ip-pool stop <x.x.x.x>#
set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret#
set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret <secret>#
set vpn l2tp remote-access authentication mode local#
set vpn l2tp remote-access authentication local-users username <text-name> password <text-password>#
set vpn l2tp remote-access name-server '198.51.100.8'#
set vpn l2tp remote-access lns shared-secret 'secret'#
set vpn l2tp remote-access ccp-disable#
set vpn l2tp remote-access authentication local-users username test rate-limit download 20480#
set vpn l2tp remote-access authentication local-users username test rate-limit upload 10240#

Мониторинг состояния#

show vpn remote-access#