Поговорим о возможности подключения к домашней или офисной сети из вне с помощью протокола L2TP/IPsec.
Для этого используются VPN соединения или туннели.
В рамках данного блога уже рассматривали данную тему:
Раз мы используем Mikrotik в качестве роутера, почему бы его не задействовать?:)
На RouteOS есть возможность использовать различные протоколы для построения VPN сервера:
- PPTP
- L2TP и L2TP/IPsec
- SSTP
- OpenVPN
PPTP — в данный момент является небезопасным, так же используется протокол GRE.
Несколько раз встречал сети, где GRE не работал.
L2TP/IPsec — является безопасным, так же «из коробки» его как клиенты поддерживают все (Windows, MacOS, Android и iOs)
SSTP — быстрый и безопасный Windows Only
OpenVPN — хорошая вещь, но требуется установки клиента (7 версия RouteOS вроде даже умеет UDP)
В 7 версии RouteOS добавили WireGuard
Для тестовой конфигурации будет использоваться RouteOS v. 6.47.7 CHR (Cloud Hosted Router).
Установленный на VirtualBox.
Поехали:)
Создаем пул адресов для VPN клиентов:
ip pool add name=vpn_pool ranges=10.11.11.10-10.11.11.220
Либо в графическом режиме:
IP->Pool->+
Создаем профиль PPP:
ppp profile add name=l2tp local-address=vpn_pool remote-address=vpn_pool change-tcp-mss=yes
В графическом режиме:
PPP->Profiles->+
Создаем пользователя (кем будем соединяться):
Используйте в имени пользователя строчные символы, т.к. VPN клиент в Windows передает имя строчными символами
ppp secret add profile=l2tp service=l2tp name=vladimir password=StrongPassword
В картинках:
PPP->Secrets->+
Включаем L2TP сервер:
interface l2tp-server server set authentication=mschap2 ipsec-secret=marvins use-ipsec=yes default-profile=l2tp caller-id-type=number enabled=yes
Графический вариант:
PPP->Interface->Click L2TP Server
Итак, мы создали:
- Пользователя vladimir с паролем: StrongPassword
- IPsec общий ключ: marvins
Mikrotik Firewall:
L2TP использует следующие UDP порты:
500 — для обмена ключами шифрования
1701- порт отправителя и получателя для инициализации туннеля
4500 — для NAT-операций
Так же для IPsec используется ESP протокол.
Добавим два правила в файрвол:
ip firewall filter add comment="Incoming VPN traffic" chain=input action=accept protocol=udp port=1701,500,4500 ip firewall filter add comment="IPsec ESP" chain=input action=accept protocol=ipsec-esp
Создаем L2TP VPN соединение в windows 10:
В настройке интерфейса my_test укажем нужный нам протокол проверки подлинности:
Соединение:
При слабой IPsec фразе будет предупреждение в Identities:
Suggestion to use stronger pre-shared key or different authentication method
После ее смены на более сильную фразу, типа такой:
LQsFQqabg46O
Если у вас есть проблема получения доступа к хостам удаленной сети, обратите внимание на настройку NAT.
На этом все:)