В качестве клиетов могут выступать любые устройства с поддержкой "L2TP/IPSec" туннелей, которым требуется доступ к удаленной сети за сервером.
Данный способ подойдет когда у сервера имеется белый IP-Адрес, а у подключающихся клиентов серый IP-адрес. Это достигается за счет использования на стороне L2TP-сервера внутренней IP-адресации. Cо стороны сервера можно получить достук к сети, находящейся за клиентами, с помощью добавления необходимых маршрутов. Клиенты также могут находится за NAT (настройка NAT-Traversal) и получить дусуп к сети, находящейса за сервером. Со стороны клиентов прописывать маршруты к удаленной сети не требуется.
Будут использоваться:
- pfSense - 2.4.4-RELEASE-p2 (amd64) - ESXi;
- Keenetic Start II / 4G - 2.13.C.0.0-1;
- Windows 10;
- Android 8.1.0.
Netgate Wiki - L2TP/IPsec
L2TP Server:
Настройка сервера и создание пользователей.
- Включаем L2TP-сервер;
VPN -> L2TP -> Configuration
# - Enable L2TP
Enable - *;
# - Configuration
Interface - WAN;
Server address - 10.0.1.254;
Remote address range - 10.0.1.0/24;
Number of L2TP users - 3;
Authentication type - MS-CHAPv2;
- Save.
- Создаем пользователей;
VPN -> L2TP -> Users
# - User
Username - StartII;
Password - pass;
IP Address - 10.0.1.2;
- Save.
IPSEC:
Заворачиваем трафик L2TP в IPSEC.
Mobile Clients:
VPN -> IPsec -> Mobile Clients
# - Enable IPsec Mobile Client Support
IKE Extensions - *;
User Authentication - Local Database;
# - Client Configuration (mode-cfg)
Тут достаточно default значений (сняты все галочки)
- Применяем настройки и жмем на Create Phase 1
Phase 1:
# - General Information
Key Exchange version - IKEv1;
Internet Protocol - IPv4;
Interface - WAN;
Description - L2TP/IPSEC;
# Phase 1 Proposal (Authentication)
Authentication Method - Mutual PSK;
Negotiation mode - Main;
My identifier - My IP Addres;
# Phase 1 Proposal (Encryption Algorithm)
Encryption Algorithm - AES | 128 bits | SHA1 | 2 (1024 bit);
- 3DES | SHA1 | 2 (1024 bit); # этот алгоритм используют Windows клиенты.
Lifetime (Seconds) - 28800;
# Advanced Options
Disable rekey - -;
Margintime (Seconds) - -;
Responder Only - -;
NAT Traversal - Auto;
Dead Peer Detection - *;
Delay - 10;
Max failures - 5;
- Save, Apply Changes.
Phase 2:
+ Show Phase 2 Entries - Add P2
# General Information
Disabled - -;
Mode - Transport; # т.к. IPsec будет работать поверх L2TP
Description - L2TP/IPSEC;
# Phase 2 Proposal (SA/Key Exchange)
Protocol - ESP;
Encryption Algorithms - *AES *128 bits;
- *3DES; # Для клиентов Windows.
Hash Algorithms - *SHA1;
PFS key group - off;
Lifetime - 3600;
- Save, Apply Changes.
Pre-Shared Keys:
Если хотим использовать один ключ для всех клиентов, то в "Identifier" должно быть значение "any".
VPN -> IPsec -> Pre-Shared Keys
# - Edit Pre-Shared-Secret
Identifier - any;
Secret type - PSK;
Pre-Shared Key - Key;
- Save, Apply Changes.
Firewall:
Добавляем правила.
L2TP:
Firewall -> Rules -> L2TP VPN
# - Edit Firewall Rule
Action - Pass;
Disabled - -;
Interface - L2TP VPN;
Address Family - IPv4;
Protocol - Any;
# - Source
Source - Any;
# - Destination
Destination - Any;
IPSEC:
Firewall -> Rules -> IPsec
# - Edit Firewall Rule
Action - Pass;
Disabled - -;
Interface - IPsec;
Address Family - IPv4;
Protocol - Any;
# - Source
Source - Any;
# - Destination
Destination - Any;
Базовая настройка завершена.
Routes:
Проброс маршрутов в локальную сеть за клиетами.
Interfaces:
Создаем интерфейс для L2TP подключения.
Interfaces -> Interface Assignments
- Available network ports: l2tp1
- Add.
Переходим в созданный интерфейс OPTx.
# - General Configuration
Enable - *
Description - GW2
IPv4 Configuration Type - IPv4;
IPv6 Configuration Type - none;
# - Static IPv4 Configuration
IPv4 Address - 10.0.1.2/32; # Если шлюз будет 10.0.1.254/32, то L2TP-сервер не запустится.
IPv4 Upstream gateway - none;
# - Reserved Networks
Block private networks and loopback addresses - *;
Block bogon networks - *;
- Save.
Прописывать для интерфейса правила в "Firewall" ненужно. Для того чтобы в "Dashboard" в разделе "Interfaces" для шлюза назначился "IP-адрес", необходимо перезапустить "L2TP-сервер".
Gateways:
Добавляем шлюз и прописываеим статические маршруты.
System -> Routing -> Gateways -> Add
# - Edit Gateway
Interface - GW2;
Address Family - IPv4;
Name - StartII;
Gateway - 10.0.1.2;
Description - StartII;
System -> Routing -> Static Routes - Add
# - Edit Route Entry
Destination network - 192.168.2.0/24;
Gateway - StartII - 10.0.1.2;
Description - StartII;
Теперь можем проверять доступ в удаленную сеть за клиентом.