Москва+7 (495) 103-4-103
Заказать звонок
  • Заказать звонок
  • Отложить 0 шт.
  • Сравнить 0 шт.
 02 Янв 2018    Ubiquiti, Настройка и установка оборудования , Практика и программирование , Полезные советы, Примеры использования беспроводных систем

В этой публикации мы расскажем, как настроить EdgeRouter L2TP (протокол туннелирования уровня 2), используя локальную аутентификацию. Этот пример основан на проверке «до совместного использования» и не фокусируется на аутентификации на основе сертификата.

Важно! Применимо к прошивке EdgeOS 1.9.1+ во всех моделях EdgeRouter. Требуется знание интерфейса командной строки (CLI) и базовых сетевых знаний.

Что используем?

  • EdgeRouter-X (ER-X)
  • Тестовый клиент (Host1 and Server1)

Что делаем?

  • Топология сети
  • L2TP сервер
  • Правила Firewall
  • Windows-клиент
  • Тестирование и результат

Топология сети

Сетевая топология представлена ниже. IP адреса и интерфейсы, использованные Host1 и клиентским роутером не соответствуют этому примеру. Используя L2TP терминологию, ER-X является "L2TP-сервером", в то время как Host1 является "L2TP-клиентом".

Для ER используются следующие интерфейсы:

  • eth0 (WAN) - 203.0.113.1
  • eth1 (LAN) - 192.168.1.1/24

L2TP-сервер

В этом примере ER был предварительно настроен с помощью "Мастера базовой установки" (Basic setup wizard). Мы предположим, что хосты локальной сети могут быть связаны с хостами в Интернете.

UDP порты и протоколы, относящиеся к L2TP:

  • UDP 1701 (L2TP)
  • UDP 500 (IKE)
  • ESP (Protocol 50)
  • UDP 4500 (NAT-T) 
CLI STEPS: Получите доступ к интерфейсу командной строки (CLI). Вы можете сделать это, используя CLI-кнопку в GUI или используя программу PuTTY.

1. Запустите режим конфигурации.

configure

2. Измените настройки аутентификации сервера (замените своим паролем).

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 ipsec-settings authentication pre-shared-secret пароль 'sup3rSecure' должен выглядеть как 'sup3rSecure' на клиенте.

3.Создайте IP-адрес для использования VPN-клиентами.

set vpn l2tp remote-access client-ip-pool start 192.168.100.240
set vpn l2tp remote-access client-ip-pool stop 192.168.100.249

Примечание: Вы можете также выдавать IP адреса локальной субсети (192.168.1.0/24 в этом случае), но убедитесь, что они не пересекаются с IP адресами, которые выдает Ваш DHCP-сервер, или не используются другими устройствами Вашей сети. Определение адресов в том же радиусе, что и локальная субсеть, не рекомендуется, потому что оно может привести к проблемам с приложениями, которые полагаются на мультикаст (discovery).

4. Определите DNS серверы, которые будут использовать VPN клиенты.

set vpn l2tp remote-access dns-servers server-1 8.8.8.8
set vpn l2tp remote-access dns-servers server-2 8.8.4.4

Вы также можете настроить DNS-сервер как внутренний IP-адрес самого маршрутизатора. В этом случае Вам также понадобится включить DNS пересылку (если она еще не включена) и установить адрес ожидания сети на тот же внутренний IP-адрес.

set vpn l2tp remote-access dns-servers server-1 192.168.1.1
set service dns forwarding options "listen-address=192.168.1.1"
set service dns forwarding cache-size 150
set service dns forwarding listen-on eth1

5. Определите интерфейс WAN, который будете получать L2TP-запросы от клиентов.

Настройте только одно из следующих действий. Определите, какая команда лучше всего подходит для Вашей ситуации, используя следующие параметры:

(A) Ваш интерфейс WAN получает адрес через DHCP.

set vpn l2tp remote-access dhcp-interface eth0

(B) Ваш WAN-интерфейс настроен на статический адрес (замените значение на внешний адрес).

set vpn l2tp remote-access outside-address 203.0.113.1

(C) Ваш WAN-интерфейс получает адрес через PPPoE, или вы используете Dual WAN Load-Balancing.

set vpn l2tp remote-access outside-address 0.0.0.0

Примечание: Когда используются несколько восходящих линий (Dual WAN Load-Balancing), применяйте опцию C. Если Вы используете вариант A или B, Ваш сервер L2TP будет доступен только на одном адресе WAN.

6. Настройте локальную аутентификацию (замените на нужные Вам пользовательские пароли):

set vpn l2tp remote-access authentication mode local
set vpn l2tp remote-access authentication local-users username user1 password <password>
set vpn l2tp remote-access authentication local-users username user2 password <password>

7. (Необязательно) Определите интерфейсы IPsec, которые будут использоваться для L2TP.

Этот шаг зависит от используемой версии прошивки. Официальное использование этой команды устарело в версии 1.8.5.

set vpn ipsec ipsec-interfaces interface eth0

8. (Необязательно) Понизьте MTU для трафика L2TP.

Экспериментируйте с понижением значения MTU, если производительность L2TP низкая. Это может произойти, к примеру, когда внешний интерфейс WAN использует PPPoE (1492 байт MTU).

set vpn l2tp remote-access mtu <mtu-value>

9. (Необязательно) Включите требование от VPN-клиентов использовать определенный протокол аутентификации при подключении.

set vpn l2tp remote-access authentication require [ pap | chap | mschap | mschap-v2 ]
  • PAP - Require Password Authentication Protocol 
  • CHAP - Require Challenge Handshake Authentication Protocol 
  • MS-CHAP - Require Microsoft Challenge Handshake Authentication Protocol
  • MS-CHAP-V2 - Require Microsoft Challenge Handshake Authentication Protocol Version 2

10. Зафиксируйте изменения.

commit

11. Сохраните конфигурацию.

save

Правила Firewall

Правило WAN_LOCAL, созданное Мастером базовой установки (Basic Setup wizard), не разрешает входящие подключения по умолчанию. Для принятия VPN-трафика необходимо создать правила брандмауэра для L2TP, ESP и IKE.

1. Запустите режим конфигурации.

configure

2. Добавьте дополнительные правила L2TP, IKE, NAT-T и ESP для WAN интерфейсов.

set firewall name WAN_LOCAL rule 30 action accept
set firewall name WAN_LOCAL rule 30 description IKE
set firewall name WAN_LOCAL rule 30 destination port 500
set firewall name WAN_LOCAL rule 30 log disable
set firewall name WAN_LOCAL rule 30 protocol udp

set firewall name WAN_LOCAL rule 40 action accept
set firewall name WAN_LOCAL rule 40 description L2TP
set firewall name WAN_LOCAL rule 40 destination port 1701
set firewall name WAN_LOCAL rule 40 log disable
set firewall name WAN_LOCAL rule 40 protocol udp

set firewall name WAN_LOCAL rule 50 action accept
set firewall name WAN_LOCAL rule 50 description ESP
set firewall name WAN_LOCAL rule 50 log disable
set firewall name WAN_LOCAL rule 50 protocol esp

set firewall name WAN_LOCAL rule 60 action accept
set firewall name WAN_LOCAL rule 60 description NAT-T
set firewall name WAN_LOCAL rule 60 destination port 4500
set firewall name WAN_LOCAL rule 60 log disable
set firewall name WAN_LOCAL rule 60 protocol udp

Примечание. Имя локального правила брандмауэра, применяемого к интерфейсу WAN, может отличаться в Вашей среде. Независимо от схемы, убедитесь, что верное правило брандмауэра применяется в интерфейсе WAN или вручную применяйте его set interfaces ethernet eth0 firewall local name .

3. Зафиксируйте изменения.

commit

4. Сохраните конфигурацию.

save

Windows-клиент

Существуют различные способы подключения к серверу L2TP с использованием множества приложений и операционных систем. В этой статье мы сосредоточимся только на одном, встроенном VPN-клиенте Windows 10. Причиной выбора этого метода является то, что он обычно используется, и он также имеет важный момент, который стоит обсудить.

1. Перейдите к настройкам Windows 10 (WIN + I)> Сеть и Интернет> Добавить VPN-соединение:

  • VPN Провайдер: Windows (встроенный)
  • Название соединения: ER-L2TP
  • Название сервера: WAN IP-адрес сервера ER
  • VPN тип: L2TP/IPsec с предварительно представленным ключом или сертификатом.

2. Перейдите к свойствам сетевого адаптера Windows 10 (WIN + X)> ER-L2TP

Security > Allow these protocols > Microsoft CHAP Version 2 (MS-CHAP v2)

Примечание: Если ваш EdgeRouter находится вне NAT и Вы не можете подключиться к вашему серверу L2TP, это может быть связано с операционной системой Windows и тем, как она обрабатывает трафик IPsec на серверах/маршрутизаторах, расположенных вне устройства NAT. В этом случае примените хотфикс (шаг 3).

3. (Хотфикс) Перейдите в реестр Windows 10 (WIN + R)> regedit

Найдите следующее поддерево реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent

Создайте новое DWORD (32-разрядное) значение в этом поддереве:

AssumeUDPEncapsulationContextOnSendRule

Измените вновь созданное значение DWORD, дайте ему значение 2 (по умолчанию 0) и перезагрузите компьютер.

Тестирование и результат

Последний шаг - протестировать и подтвердить прибытие трафика L2TP на внешний интерфейс и проверить журналы. Если есть проблемы с L2TP VPN, проверьте файлы журнала, чтобы определить проблему. После запуска сеанса L2TP проверьте соединение, используя следующие команды:

1. Проверить состояние IPsec в ER:

sudo ipsec statusall
Status of IKE charon daemon (strongSwan 5.2.2, Linux 3.10.14-UBNT, mips):
uptime: 49 seconds, since Jul 17 14:01:59 2017
malloc: sbrk 376832, mmap 0, used 272072, free 104760
worker threads: 11 of 16 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 0
Listening IP addresses:
192.168.1.1
203.0.113.1
10.255.255.0
Connections:
remote-access: 203.0.113.1...%any IKEv1, dpddelay=15s
remote-access: local: [203.0.113.1] uses pre-shared key authentication
remote-access: remote: uses pre-shared key authentication
remote-access: child: dynamic[udp/l2f] === dynamic[udp] TRANSPORT, dpdaction=clear
Security Associations (1 up, 0 connecting):
remote-access[1]: ESTABLISHED 30 seconds ago, 203.0.113.1[203.0.113.1]...192.0.2.1[172.16.1.10]
remote-access[1]: IKEv1 SPIs: 7ef8fd033bea7f4c_i 27eaafddd951c8dc_r*, rekeying disabled
remote-access[1]: IKE proposal: AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/ECP_384
remote-access{1}: INSTALLED, TRANSPORT, ESP in UDP SPIs: c009fce1_i cd73f1b4_o
remote-access{1}: AES_CBC_128/HMAC_SHA1_96, 3594 bytes_i (36 pkts, 18s ago), 675 bytes_o (17 pkts, 27s ago)
remote-access{1}: 203.0.113.1/32[udp/l2f] === 192.0.2.1/32[udp/l2f]

2. Убедитесь, что трафик увеличивает счетчики на соответствующих правилах Firewall.

show firewall name WAN_LOCAL statistics 
------------------------------------------
IPv4 Firewall "WAN_LOCAL" [WAN to router]
 Active on (eth0,LOCAL)

rule packets bytes action description
---- ------- ----- ------ -----------
10 2926 271414 ACCEPT Allow established/related
20 0 0 DROP Drop invalid state
30 19 5512 ACCEPT IKE
40 5 655 ACCEPT L2TP
50 0 0 ACCEPT ESP
60 8 1088 ACCEPT NAT-T
10000 69 9516 DROP DEFAULT ACTION

3. Захватите приход трафика L2TP на внешний интерфейс глобальной сети ER:

3. Захватить приход трафика L2TP на внешний интерфейс глобальной сети ER:

4. Захватите журналы ER IPsec VPN:

sudo swanctl --log
[NET] received packet: from 192.0.2.1[500] to 203.0.113.1[500] (408 bytes)
[IKE] 192.0.2.1 is initiating a Main Mode IKE_SA
[IKE] remote host is behind NAT
[CFG] looking for pre-shared key peer configs matching 203.0.113.1...192.0.2.1[172.16.0.10]
[CFG] selected peer config "remote-access"
[IKE] IKE_SA remote-access[15] established between ...
[IKE] CHILD_SA remote-access{5} established with SPIs ...
[KNL] 10.255.255.0 appeared on ppp0

5. IPsec Security Associations (SAs):

show vpn ipsec sa
remote-access: #545, ESTABLISHED, IKEv1, b0a8c5df5ff1b225:a251946b15ebaaae
local '203.0.113.1' @ 203.0.113.1
remote '172.16.0.10' @ 192.0.2.1
AES_CBC-256/HMAC_SHA1_96/PRF_HMAC_SHA1/ECP_384
established 351s ago
remote-access: #17, INSTALLED, TRANSPORT-in-UDP, ESP:AES_CBC-128/HMAC_SHA1_96
installed 8 ago
in cd49a319, 0 bytes, 0 packets
out 47a8a786, 0 bytes, 0 packets
local 76.237.8.193/32[udp/l2f]
remote 192.0.2.1/32[udp/l2f]

6. Пользователи и интерфейсы удаленного доступа:

show vpn remote-access 
Active remote access VPN sessions:

User Time Proto Iface Remote IP TX pkt/byte RX pkt/byte
---------- --------- ----- ----- --------------- ------ ------ ------ ------
ubnt 00h01m22s L2TP l2tp0 192.168.100.240 4 58 86 7.4K

show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address S/L Description
--------- ---------- --- -----------
l2tp0 10.255.255.0 u/u User: ubnt (192.168.100.240)

7. Отправить трафик через туннель от Host1 до Server1 и наоборот:

ping 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=1 ttl=63 time=45.9 ms
64 bytes from 192.168.1.10: icmp_seq=2 ttl=63 time=45.2 ms
64 bytes from 192.168.1.10: icmp_seq=3 ttl=63 time=45.5 ms

ping 172.16.1.10
PING 172.16.1.10 (172.16.1.10) 56(84) bytes of data.
64 bytes from 172.16.1.10: icmp_seq=1 ttl=63 time=43.9 ms
64 bytes from 172.16.1.10: icmp_seq=2 ttl=63 time=44.1 ms
64 bytes from 172.16.1.10: icmp_seq=3 ttl=63 time=44.4 ms

Авторский перевод "EdgeRouter - IPsec L2TP Server"