Сервер 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#