mikrotik-wiki.ru
Главная
Загрузка...

L2TP/IPsec VPN на MikroTik — настройка сервера и клиентов

RouterOS 7.xVPN11 мин130 мар. 2026 г.
TelegramVK

L2TP/IPsec — один из самых распространённых VPN-протоколов, поддерживаемый «из коробки» в Windows, macOS, iOS и Android. В отличие от WireGuard, для подключения не нужно устанавливать дополнительное ПО — встроенный VPN-клиент операционной системы справляется с задачей. В этом руководстве мы настроим L2TP/IPsec сервер на MikroTik RouterOS 7.20+, создадим пользователей, откроем нужные порты в firewall и подключим клиентов на Windows 10/11, macOS и iOS. Также рассмотрим site-to-site вариант и разберём типичные ошибки.

Описание

Когда L2TP/IPsec лучше WireGuard

WireGuard — современный, быстрый и простой протокол, но у L2TP/IPsec есть свои преимущества:

КритерийL2TP/IPsecWireGuard
Встроенный клиент WindowsДа (с XP)Нет (нужна установка)
Встроенный клиент macOSДаНет (нужна установка)
Встроенный клиент iOSДаНет (App Store)
Встроенный клиент AndroidДа (до Android 12)Нет (Play Store)
Корпоративный MDMЛегко настроить через GPOТребует дополнительных шагов
Скорость100–300 Мбит/с300–900 Мбит/с
OverheadВыше (двойная инкапсуляция)Минимальный
NAT traversalNAT-T (UDP 4500)Нативная (UDP)
Конфигурация на сервереСложнее (IPsec + L2TP + PPP)Проще

Вывод: используйте L2TP/IPsec когда нужно подключить устройства без установки дополнительного ПО, в корпоративной среде с GPO, или когда WireGuard заблокирован (DPI).

Как работает L2TP/IPsec

Протокол работает в два уровня:

  1. IPsec (Internet Protocol Security) — создаёт зашифрованный туннель между клиентом и сервером. Используется ESP (Encapsulating Security Payload) для шифрования. За NAT работает через NAT-T (NAT Traversal, UDP порт 4500).

  2. L2TP (Layer 2 Tunneling Protocol) — работает поверх IPsec, создавая PPP-сессию внутри зашифрованного туннеля. Через PPP передаются логин/пароль, назначаются IP-адреса, маршруты и DNS.

Порты и протоколы, которые нужно открыть:

Протокол/ПортНазначение
UDP 500IKE (Internet Key Exchange) — согласование IPsec
UDP 4500NAT-T (NAT Traversal) — IPsec через NAT
UDP 1701L2TP (внутри IPsec-туннеля, но для прямых подключений)
IP protocol 50ESP (Encapsulating Security Payload)

Настройка

Шаг 1. Создание пула адресов для VPN-клиентов

VPN-клиенты получат IP-адреса из отдельного пула. Используем подсеть, не пересекающуюся с LAN:

[admin@MikroTik] >
# Пул адресов для VPN-клиентов
/ip/pool/add name=pool-vpn-l2tp ranges=10.10.10.10-10.10.10.254

Шаг 2. PPP Profile

Создаём профиль, определяющий параметры PPP-сессии:

[admin@MikroTik] >
/ppp/profile/add \
  name=l2tp-profile \
  local-address=10.10.10.1 \
  remote-address=pool-vpn-l2tp \
  dns-server=10.10.10.1 \
  use-encryption=required \
  use-compression=no \
  change-tcp-mss=yes

Параметр local-address=10.10.10.1 — это IP-адрес MikroTik в VPN-подсети (шлюз для клиентов). dns-server можно указать как IP роутера (если на нём работает DNS) или внешний (8.8.8.8).

Шаг 3. Создание пользователей (PPP Secrets)

[admin@MikroTik] >
# Пользователь для удалённого сотрудника
/ppp/secret/add \
  name=user1 \
  password="C0mplexP@ssw0rd!" \
  service=l2tp \
  profile=l2tp-profile \
  comment="Иванов — ноутбук"

# Ещё пользователь
/ppp/secret/add \
  name=user2 \
  password="An0therStr0ng#Key" \
  service=l2tp \
  profile=l2tp-profile \
  comment="Петров — телефон"

# Пользователь с фиксированным IP
/ppp/secret/add \
  name=admin-vpn \
  password="Adm1nVPN!2024" \
  service=l2tp \
  profile=l2tp-profile \
  remote-address=10.10.10.2 \
  comment="Админ — фиксированный IP"

Шаг 4. Настройка IPsec

Создаём IPsec profile, proposal и peer для L2TP:

[admin@MikroTik] >
# IPsec Profile (Phase 1 — IKE)
/ip/ipsec/profile/add \
  name=l2tp-ipsec-profile \
  hash-algorithm=sha256 \
  enc-algorithm=aes-256 \
  dh-group=modp2048,modp1024 \
  lifetime=1d \
  dpd-interval=120s \
  dpd-maximum-failures=5 \
  nat-traversal=yes

# IPsec Proposal (Phase 2 — ESP)
/ip/ipsec/proposal/add \
  name=l2tp-ipsec-proposal \
  auth-algorithms=sha256 \
  enc-algorithms=aes-256-cbc \
  lifetime=8h \
  pfs-group=modp2048

# IPsec Peer (принимаем подключения от любого клиента)
/ip/ipsec/peer/add \
  name=l2tp-peer \
  exchange-mode=main \
  profile=l2tp-ipsec-profile \
  passive=yes \
  send-initial-contact=yes

# IPsec Identity (Pre-Shared Key)
/ip/ipsec/identity/add \
  peer=l2tp-peer \
  auth-method=pre-shared-key \
  secret="MyIPsecPSK!2024" \
  match-by=certificate \
  generate-policy=port-strict \
  policy-template-group=default

# Проверяем
/ip/ipsec/peer/print
/ip/ipsec/identity/print

Важно: secret — это Pre-Shared Key (PSK), общий ключ, который вводится на всех клиентах. Он отличается от пароля пользователя PPP. Используйте длинный и сложный PSK.

Шаг 5. Включение L2TP Server

[admin@MikroTik] >
/interface/l2tp-server/server/set \
  enabled=yes \
  default-profile=l2tp-profile \
  use-ipsec=required \
  ipsec-secret="MyIPsecPSK!2024" \
  caller-id-type=ip-address \
  max-mtu=1400 \
  max-mru=1400 \
  authentication=mschap2 \
  keepalive-timeout=30

Параметры:

ПараметрЗначениеОписание
use-ipsecrequiredПринимать только IPsec-зашифрованные подключения
ipsec-secretPSKТот же Pre-Shared Key, что в IPsec identity
authenticationmschap2Протокол аутентификации (совместим со всеми клиентами)
max-mtu/mru1400Уменьшенный MTU для предотвращения фрагментации
keepalive-timeout30Таймаут keepalive в секундах

Шаг 6. Настройка Firewall

Открываем необходимые порты:

[admin@MikroTik] >
# IKE (IPsec Phase 1)
/ip/firewall/filter/add \
  chain=input \
  protocol=udp \
  dst-port=500 \
  action=accept \
  comment="L2TP/IPsec: IKE" \
  place-before=0

# NAT-T (IPsec через NAT)
/ip/firewall/filter/add \
  chain=input \
  protocol=udp \
  dst-port=4500 \
  action=accept \
  comment="L2TP/IPsec: NAT-T" \
  place-before=1

# L2TP
/ip/firewall/filter/add \
  chain=input \
  protocol=udp \
  dst-port=1701 \
  action=accept \
  comment="L2TP/IPsec: L2TP" \
  place-before=2

# IPsec ESP
/ip/firewall/filter/add \
  chain=input \
  protocol=ipsec-esp \
  action=accept \
  comment="L2TP/IPsec: ESP" \
  place-before=3

# Разрешаем forward из VPN-подсети в LAN
/ip/firewall/filter/add \
  chain=forward \
  src-address=10.10.10.0/24 \
  dst-address=192.168.88.0/24 \
  action=accept \
  comment="VPN to LAN forward"

# Разрешаем forward из LAN в VPN
/ip/firewall/filter/add \
  chain=forward \
  src-address=192.168.88.0/24 \
  dst-address=10.10.10.0/24 \
  action=accept \
  comment="LAN to VPN forward"

Если VPN-клиенты должны выходить в интернет через MikroTik, добавьте NAT:

[admin@MikroTik] >
# Masquerade для VPN-клиентов (доступ в интернет)
/ip/firewall/nat/add \
  chain=srcnat \
  src-address=10.10.10.0/24 \
  out-interface-list=WAN \
  action=masquerade \
  comment="NAT for VPN clients"

Шаг 7. Обход IPsec policy для NAT

Если у вас уже есть masquerade-правило для всего трафика, IPsec-трафик может некорректно NAT-ироваться. Нужно исключить L2TP-трафик:

[admin@MikroTik] >
# Проверяем существующее NAT-правило
/ip/firewall/nat/print where action=masquerade

# Добавляем RAW-правило для исключения IPsec из NAT
# Или корректируем существующее masquerade, добавив исключение:
/ip/firewall/nat/add \
  chain=srcnat \
  src-address=10.10.10.0/24 \
  dst-address=192.168.88.0/24 \
  action=accept \
  comment="No NAT for VPN-to-LAN" \
  place-before=0

Подключение клиентов

Windows 10/11

Никакого дополнительного ПО не нужно. Настройка через Параметры:

  1. Параметры > Сеть и Интернет > VPN > Добавить VPN-подключение
  2. Заполните:
    • Поставщик VPN: Windows (встроенный)
    • Имя подключения: Office VPN
    • Имя или адрес сервера: vpn.example.com (или IP-адрес MikroTik)
    • Тип VPN: L2TP/IPsec с предварительным ключом
    • Общий ключ: MyIPsecPSK!2024 (IPsec PSK)
    • Тип данных для входа: Имя пользователя и пароль
    • Имя пользователя: user1
    • Пароль: C0mplexP@ssw0rd!
  3. Нажмите Сохранить

Для Windows 10/11 за NAT (домашний роутер) может потребоваться правка реестра:

[admin@MikroTik] >
# Запустите от имени администратора
reg add HKLM\SYSTEM\CurrentControlSet\Services\PolicyAgent /v AssumeUDPEncapsulationContextOnSendRule /t REG_DWORD /d 2 /f

# Перезагрузите компьютер

Это включает NAT-T для Windows VPN-клиента. Без этой правки подключение через NAT может не работать.

Также через PowerShell можно настроить VPN:

powershell
Add-VpnConnection -Name "Office VPN" `
  -ServerAddress "vpn.example.com" `
  -TunnelType L2tp `
  -L2tpPsk "MyIPsecPSK!2024" `
  -AuthenticationMethod MSChapv2 `
  -EncryptionLevel Required `
  -Force

# Для split-tunneling (только офисный трафик через VPN):
Add-VpnConnectionRoute -ConnectionName "Office VPN" -DestinationPrefix "192.168.88.0/24"
Set-VpnConnection -Name "Office VPN" -SplitTunneling $true

macOS

  1. Системные настройки > Сеть > + (добавить интерфейс)
  2. Интерфейс: VPN, Тип VPN: L2TP over IPSec
  3. Адрес сервера: vpn.example.com
  4. Имя учётной записи: user1
  5. Настройки аутентификации:
    • Пароль: C0mplexP@ssw0rd!
    • Shared Secret (общий ключ): MyIPsecPSK!2024
  6. Дополнительно > Отправлять весь трафик через VPN (если нужен full tunnel)
  7. Подключить

iOS / iPadOS

  1. Настройки > Основные > VPN и управление устройством > VPN > Добавить конфигурацию VPN
  2. Тип: L2TP
  3. Описание: Office VPN
  4. Сервер: vpn.example.com
  5. Учётная запись: user1
  6. Пароль: C0mplexP@ssw0rd!
  7. Общий ключ: MyIPsecPSK!2024
  8. Готово, затем включить переключатель VPN

Android

В Android 12+ Google удалил встроенный L2TP/IPsec клиент. Для новых версий Android используйте strongSwan (бесплатное приложение из Play Store) или рассмотрите IKEv2.

Для Android 11 и ниже:

  1. Настройки > Сеть > VPN > +
  2. Тип: L2TP/IPSec PSK
  3. Адрес сервера, имя пользователя, пароль, общий ключ (PSK) — как выше

Site-to-Site L2TP/IPsec

Для соединения двух офисов через L2TP/IPsec настройте L2TP-клиент на удалённом роутере:

На удалённом MikroTik (офис B):

[admin@MikroTik] >
# L2TP клиент
/interface/l2tp-client/add \
  name=l2tp-to-hq \
  connect-to=203.0.113.1 \
  user=site-b \
  password="S1teB_P@ssw0rd!" \
  use-ipsec=yes \
  ipsec-secret="MyIPsecPSK!2024" \
  allow-fast-path=yes \
  add-default-route=no \
  disabled=no

# Маршрут в сеть главного офиса
/ip/route/add dst-address=192.168.88.0/24 gateway=l2tp-to-hq

# Если нужно — masquerade для клиентов офиса B
/ip/firewall/nat/add \
  chain=srcnat \
  src-address=192.168.20.0/24 \
  dst-address=192.168.88.0/24 \
  out-interface=l2tp-to-hq \
  action=accept \
  comment="No NAT for site-to-site"

На MikroTik главного офиса (добавляем пользователя):

[admin@MikroTik] >
/ppp/secret/add \
  name=site-b \
  password="S1teB_P@ssw0rd!" \
  service=l2tp \
  profile=l2tp-profile \
  remote-address=10.10.10.3 \
  routes="192.168.20.0/24 10.10.10.3" \
  comment="Офис B — site-to-site"

Параметр routes автоматически добавит маршрут 192.168.20.0/24 через 10.10.10.3 при подключении офиса B.

Проверка

На MikroTik (сервер)

[admin@MikroTik] >
# Статус L2TP-сервера
/interface/l2tp-server/server/print

# Активные подключения
/interface/l2tp-server/print where running=yes

# Подробно — с IP, uptime, трафиком
/interface/l2tp-server/print detail where running=yes

# Активные IPsec SA (Security Associations)
/ip/ipsec/active-peers/print
/ip/ipsec/installed-sa/print

# Статистика IPsec
/ip/ipsec/statistics/print

# Логи VPN-подключений
/log/print where topics~"l2tp"
/log/print where topics~"ipsec"

# Пинг VPN-клиента
/ping 10.10.10.10

Проверка с клиента

После подключения VPN на клиенте проверьте:

[admin@MikroTik] >
# Windows
ipconfig /all
# Должен появиться адаптер с IP 10.10.10.x

ping 10.10.10.1
# Пинг шлюза VPN

ping 192.168.88.1
# Пинг LAN MikroTik (если разрешён forward)

tracert 192.168.88.1
# Маршрут должен идти через 10.10.10.1

Типичные ошибки

1. Windows: "Попытка L2TP-подключения не удалась из-за ошибки на уровне безопасности"

Симптом: ошибка 789 или 809 при подключении с Windows.

Причина: клиент находится за NAT, а Windows по умолчанию не поддерживает IPsec NAT-T.

Решение: добавить ключ реестра (см. раздел Windows выше):

code
reg add HKLM\SYSTEM\CurrentControlSet\Services\PolicyAgent /v AssumeUDPEncapsulationContextOnSendRule /t REG_DWORD /d 2 /f

Перезагрузите компьютер после изменения реестра.

2. Подключение устанавливается, но нет доступа к LAN

Симптом: VPN подключён, IP получен, но ping до 192.168.88.x не проходит.

Причина: отсутствуют правила forward в firewall, или masquerade мешает.

Решение:

[admin@MikroTik] >
# Проверяем правила forward
/ip/firewall/filter/print where chain=forward

# Добавляем разрешение VPN <-> LAN (если не добавлено)
/ip/firewall/filter/add chain=forward src-address=10.10.10.0/24 dst-address=192.168.88.0/24 action=accept place-before=0
/ip/firewall/filter/add chain=forward src-address=192.168.88.0/24 dst-address=10.10.10.0/24 action=accept place-before=1

# Проверяем, что masquerade не NAT-ит VPN-трафик
/ip/firewall/nat/print

3. Double NAT — клиент за NAT и сервер за NAT

Симптом: подключение зависает на этапе "Проверка имени и пароля".

Причина: MikroTik находится за другим NAT (роутер провайдера).

Решение: на внешнем роутере пробросьте порты:

  • UDP 500 -> IP MikroTik
  • UDP 4500 -> IP MikroTik
  • UDP 1701 -> IP MikroTik (опционально)

Если проброс невозможен — переведите роутер провайдера в режим моста (bridge mode).

4. Низкая скорость — MTU/MSS проблемы

Симптом: подключение работает, но скорость значительно ниже ожидаемой, крупные файлы не скачиваются.

Причина: L2TP/IPsec добавляет значительный overhead (40–80 байт). При MTU 1500 полезная нагрузка может превышать MTU туннеля, вызывая фрагментацию.

Решение:

[admin@MikroTik] >
# Уменьшаем MTU на L2TP-сервере
/interface/l2tp-server/server/set max-mtu=1400 max-mru=1400

# Включаем MSS clamping в firewall
/ip/firewall/mangle/add \
  chain=forward \
  protocol=tcp \
  tcp-flags=syn \
  in-interface-list=all \
  action=change-mss \
  new-mss=clamp-to-pmtu \
  passthrough=yes \
  comment="MSS clamping for VPN"

Для диагностики MTU:

[admin@MikroTik] >
# С клиента (Windows) — ищем максимальный MTU без фрагментации
ping 192.168.88.1 -f -l 1372
# Уменьшайте число, пока ping не заработает
# Рабочий MTU = число + 28 (IP+ICMP headers)

5. IPsec Phase 1 не проходит — "no proposal chosen"

Симптом: в логах MikroTik ошибка "phase1 negotiation failed: no proposal chosen".

Причина: параметры шифрования на клиенте и сервере не совпадают.

Решение: убедитесь, что profile содержит алгоритмы, поддерживаемые клиентом:

[admin@MikroTik] >
# Для максимальной совместимости:
/ip/ipsec/profile/set l2tp-ipsec-profile \
  hash-algorithm=sha256,sha1 \
  enc-algorithm=aes-256,aes-128 \
  dh-group=modp2048,modp1024

/ip/ipsec/proposal/set l2tp-ipsec-proposal \
  auth-algorithms=sha256,sha1 \
  enc-algorithms=aes-256-cbc,aes-128-cbc \
  pfs-group=modp2048,none

Windows 10 по умолчанию поддерживает AES-256 + SHA-256 + DH Group 2 (modp1024). Для более строгих параметров может потребоваться настройка через PowerShell или GPO.

6. Не более одного подключения из одного NAT

Симптом: второй клиент из той же сети (за одним NAT) не может подключиться.

Причина: два IPsec-сессии с одного внешнего IP конфликтуют по IKE cookie.

Решение: убедитесь, что caller-id-type=ip-address установлен (по умолчанию в RouterOS 7):

[admin@MikroTik] >
/interface/l2tp-server/server/set caller-id-type=ip-address

Также проверьте, что NAT-T работает (UDP 4500). Некоторые старые NAT-роутеры некорректно обрабатывают множественные IPsec-сессии.

7. macOS: подключение обрывается через 1 час

Симптом: VPN отключается ровно через 60 минут.

Причина: рассогласование IPsec lifetime между macOS и MikroTik.

Решение:

[admin@MikroTik] >
# Установите lifetime Phase 1 = 24h и Phase 2 = 8h
/ip/ipsec/profile/set l2tp-ipsec-profile lifetime=1d
/ip/ipsec/proposal/set l2tp-ipsec-proposal lifetime=8h

# Включите DPD для обнаружения разрывов
/ip/ipsec/profile/set l2tp-ipsec-profile dpd-interval=120s dpd-maximum-failures=5

Безопасность

Рекомендации по усилению безопасности L2TP/IPsec:

[admin@MikroTik] >
# 1. Используйте сложный PSK (не менее 20 символов)
# 2. Используйте сложные пароли пользователей
# 3. Ограничьте количество подключений per user
/ppp/secret/set [find name=user1] limit-bytes-out=10G

# 4. Логирование подключений
/system/logging/add topics=l2tp,ipsec action=memory

# 5. Fail2ban — блокировка при множественных неудачных попытках
# (RouterOS не имеет встроенного fail2ban, но можно мониторить логи)

# 6. Регулярная смена PSK и паролей
# 7. Используйте RADIUS для централизованной аутентификации в крупных сетях

Итоговая конфигурация

[admin@MikroTik] >
# === L2TP/IPsec Server — полная конфигурация ===

# Пул адресов
/ip/pool/add name=pool-vpn-l2tp ranges=10.10.10.10-10.10.10.254

# PPP Profile
/ppp/profile/add name=l2tp-profile local-address=10.10.10.1 remote-address=pool-vpn-l2tp dns-server=10.10.10.1 use-encryption=required change-tcp-mss=yes

# Пользователи
/ppp/secret/add name=user1 password="C0mplexP@ssw0rd!" service=l2tp profile=l2tp-profile
/ppp/secret/add name=user2 password="An0therStr0ng#Key" service=l2tp profile=l2tp-profile

# IPsec
/ip/ipsec/profile/add name=l2tp-ipsec-profile hash-algorithm=sha256 enc-algorithm=aes-256 dh-group=modp2048,modp1024 lifetime=1d nat-traversal=yes
/ip/ipsec/proposal/add name=l2tp-ipsec-proposal auth-algorithms=sha256 enc-algorithms=aes-256-cbc lifetime=8h pfs-group=modp2048

# L2TP Server
/interface/l2tp-server/server/set enabled=yes default-profile=l2tp-profile use-ipsec=required ipsec-secret="MyIPsecPSK!2024" max-mtu=1400 max-mru=1400 authentication=mschap2

# Firewall
/ip/firewall/filter/add chain=input protocol=udp dst-port=500 action=accept comment="IKE" place-before=0
/ip/firewall/filter/add chain=input protocol=udp dst-port=4500 action=accept comment="NAT-T" place-before=1
/ip/firewall/filter/add chain=input protocol=udp dst-port=1701 action=accept comment="L2TP" place-before=2
/ip/firewall/filter/add chain=input protocol=ipsec-esp action=accept comment="ESP" place-before=3
/ip/firewall/filter/add chain=forward src-address=10.10.10.0/24 dst-address=192.168.88.0/24 action=accept comment="VPN->LAN"
/ip/firewall/filter/add chain=forward src-address=192.168.88.0/24 dst-address=10.10.10.0/24 action=accept comment="LAN->VPN"

# NAT для VPN-клиентов (интернет)
/ip/firewall/nat/add chain=srcnat src-address=10.10.10.0/24 out-interface-list=WAN action=masquerade comment="NAT VPN"
# Исключение NAT для VPN<->LAN
/ip/firewall/nat/add chain=srcnat src-address=10.10.10.0/24 dst-address=192.168.88.0/24 action=accept place-before=0

Эта конфигурация обеспечивает работающий L2TP/IPsec сервер, совместимый с встроенными VPN-клиентами Windows, macOS и iOS без установки дополнительного программного обеспечения.

[admin@MikroTik] >
# Пул адресов для VPN-клиентов
/ip/pool/add name=pool-vpn-l2tp ranges=10.10.10.10-10.10.10.254
/ppp/profile/add \
  name=l2tp-profile \
  local-address=10.10.10.1 \
  remote-address=pool-vpn-l2tp \
  dns-server=10.10.10.1 \
  use-encryption=required \
  use-compression=no \
  change-tcp-mss=yes
# Пользователь для удалённого сотрудника
/ppp/secret/add \
  name=user1 \
  password="C0mplexP@ssw0rd!" \
  service=l2tp \
  profile=l2tp-profile \
  comment="Иванов — ноутбук"

# Ещё пользователь
/ppp/secret/add \
  name=user2 \
  password="An0therStr0ng#Key" \
  service=l2tp \
  profile=l2tp-profile \
  comment="Петров — телефон"

# Пользователь с фиксированным IP
/ppp/secret/add \
  name=admin-vpn \
  password="Adm1nVPN!2024" \
  service=l2tp \
  profile=l2tp-profile \
  remote-address=10.10.10.2 \
  comment="Админ — фиксированный IP"
# IPsec Profile (Phase 1 — IKE)
/ip/ipsec/profile/add \
  name=l2tp-ipsec-profile \
  hash-algorithm=sha256 \
  enc-algorithm=aes-256 \
  dh-group=modp2048,modp1024 \
  lifetime=1d \
  dpd-interval=120s \
  dpd-maximum-failures=5 \
  nat-traversal=yes

# IPsec Proposal (Phase 2 — ESP)
/ip/ipsec/proposal/add \
  name=l2tp-ipsec-proposal \
  auth-algorithms=sha256 \
  enc-algorithms=aes-256-cbc \
  lifetime=8h \
  pfs-group=modp2048

# IPsec Peer (принимаем подключения от любого клиента)
/ip/ipsec/peer/add \
  name=l2tp-peer \
  exchange-mode=main \
  profile=l2tp-ipsec-profile \
  passive=yes \
  send-initial-contact=yes

# IPsec Identity (Pre-Shared Key)
/ip/ipsec/identity/add \
  peer=l2tp-peer \
  auth-method=pre-shared-key \
  secret="MyIPsecPSK!2024" \
  match-by=certificate \
  generate-policy=port-strict \
  policy-template-group=default

# Проверяем
/ip/ipsec/peer/print
/ip/ipsec/identity/print
/interface/l2tp-server/server/set \
  enabled=yes \
  default-profile=l2tp-profile \
  use-ipsec=required \
  ipsec-secret="MyIPsecPSK!2024" \
  caller-id-type=ip-address \
  max-mtu=1400 \
  max-mru=1400 \
  authentication=mschap2 \
  keepalive-timeout=30
# IKE (IPsec Phase 1)
/ip/firewall/filter/add \
  chain=input \
  protocol=udp \
  dst-port=500 \
  action=accept \
  comment="L2TP/IPsec: IKE" \
  place-before=0

# NAT-T (IPsec через NAT)
/ip/firewall/filter/add \
  chain=input \
  protocol=udp \
  dst-port=4500 \
  action=accept \
  comment="L2TP/IPsec: NAT-T" \
  place-before=1

# L2TP
/ip/firewall/filter/add \
  chain=input \
  protocol=udp \
  dst-port=1701 \
  action=accept \
  comment="L2TP/IPsec: L2TP" \
  place-before=2

# IPsec ESP
/ip/firewall/filter/add \
  chain=input \
  protocol=ipsec-esp \
  action=accept \
  comment="L2TP/IPsec: ESP" \
  place-before=3

# Разрешаем forward из VPN-подсети в LAN
/ip/firewall/filter/add \
  chain=forward \
  src-address=10.10.10.0/24 \
  dst-address=192.168.88.0/24 \
  action=accept \
  comment="VPN to LAN forward"

# Разрешаем forward из LAN в VPN
/ip/firewall/filter/add \
  chain=forward \
  src-address=192.168.88.0/24 \
  dst-address=10.10.10.0/24 \
  action=accept \
  comment="LAN to VPN forward"
# Masquerade для VPN-клиентов (доступ в интернет)
/ip/firewall/nat/add \
  chain=srcnat \
  src-address=10.10.10.0/24 \
  out-interface-list=WAN \
  action=masquerade \
  comment="NAT for VPN clients"
# Проверяем существующее NAT-правило
/ip/firewall/nat/print where action=masquerade

# Добавляем RAW-правило для исключения IPsec из NAT
# Или корректируем существующее masquerade, добавив исключение:
/ip/firewall/nat/add \
  chain=srcnat \
  src-address=10.10.10.0/24 \
  dst-address=192.168.88.0/24 \
  action=accept \
  comment="No NAT for VPN-to-LAN" \
  place-before=0
# Запустите от имени администратора
reg add HKLM\SYSTEM\CurrentControlSet\Services\PolicyAgent /v AssumeUDPEncapsulationContextOnSendRule /t REG_DWORD /d 2 /f

# Перезагрузите компьютер
#### macOS

1. **Системные настройки** > **Сеть** > **+** (добавить интерфейс)
2. Интерфейс: **VPN**, Тип VPN: **L2TP over IPSec**
3. Адрес сервера: **vpn.example.com**
4. Имя учётной записи: **user1**
5. **Настройки аутентификации**:
   - Пароль: **C0mplexP@ssw0rd!**
   - Shared Secret (общий ключ): **MyIPsecPSK!2024**
6. **Дополнительно** > **Отправлять весь трафик через VPN** (если нужен full tunnel)
7. **Подключить**

#### iOS / iPadOS

1. **Настройки** > **Основные** > **VPN и управление устройством** > **VPN** > **Добавить конфигурацию VPN**
2. Тип: **L2TP**
3. Описание: **Office VPN**
4. Сервер: **vpn.example.com**
5. Учётная запись: **user1**
6. Пароль: **C0mplexP@ssw0rd!**
7. Общий ключ: **MyIPsecPSK!2024**
8. **Готово**, затем включить переключатель VPN

#### Android

В Android 12+ Google удалил встроенный L2TP/IPsec клиент. Для новых версий Android используйте strongSwan (бесплатное приложение из Play Store) или рассмотрите IKEv2.

Для Android 11 и ниже:
1. **Настройки** > **Сеть** > **VPN** > **+**
2. Тип: **L2TP/IPSec PSK**
3. Адрес сервера, имя пользователя, пароль, общий ключ (PSK) — как выше

### Site-to-Site L2TP/IPsec

Для соединения двух офисов через L2TP/IPsec настройте L2TP-клиент на удалённом роутере:

**На удалённом MikroTik (офис B):**
**На MikroTik главного офиса (добавляем пользователя):**
Параметр `routes` автоматически добавит маршрут `192.168.20.0/24` через `10.10.10.3` при подключении офиса B.

### Проверка

#### На MikroTik (сервер)
#### Проверка с клиента

После подключения VPN на клиенте проверьте:
### Типичные ошибки

#### 1. Windows: "Попытка L2TP-подключения не удалась из-за ошибки на уровне безопасности"

**Симптом**: ошибка 789 или 809 при подключении с Windows.

**Причина**: клиент находится за NAT, а Windows по умолчанию не поддерживает IPsec NAT-T.

**Решение**: добавить ключ реестра (см. раздел Windows выше):
Перезагрузите компьютер после изменения реестра.

#### 2. Подключение устанавливается, но нет доступа к LAN

**Симптом**: VPN подключён, IP получен, но ping до 192.168.88.x не проходит.

**Причина**: отсутствуют правила forward в firewall, или masquerade мешает.

**Решение**:
#### 3. Double NAT — клиент за NAT и сервер за NAT

**Симптом**: подключение зависает на этапе "Проверка имени и пароля".

**Причина**: MikroTik находится за другим NAT (роутер провайдера).

**Решение**: на внешнем роутере пробросьте порты:

- UDP 500 -> IP MikroTik
- UDP 4500 -> IP MikroTik
- UDP 1701 -> IP MikroTik (опционально)

Если проброс невозможен — переведите роутер провайдера в режим моста (bridge mode).

#### 4. Низкая скорость — MTU/MSS проблемы

**Симптом**: подключение работает, но скорость значительно ниже ожидаемой, крупные файлы не скачиваются.

**Причина**: L2TP/IPsec добавляет значительный overhead (40–80 байт). При MTU 1500 полезная нагрузка может превышать MTU туннеля, вызывая фрагментацию.

**Решение**:
Для диагностики MTU:
#### 5. IPsec Phase 1 не проходит — "no proposal chosen"

**Симптом**: в логах MikroTik ошибка "phase1 negotiation failed: no proposal chosen".

**Причина**: параметры шифрования на клиенте и сервере не совпадают.

**Решение**: убедитесь, что profile содержит алгоритмы, поддерживаемые клиентом:
Windows 10 по умолчанию поддерживает AES-256 + SHA-256 + DH Group 2 (modp1024). Для более строгих параметров может потребоваться настройка через PowerShell или GPO.

#### 6. Не более одного подключения из одного NAT

**Симптом**: второй клиент из той же сети (за одним NAT) не может подключиться.

**Причина**: два IPsec-сессии с одного внешнего IP конфликтуют по IKE cookie.

**Решение**: убедитесь, что `caller-id-type=ip-address` установлен (по умолчанию в RouterOS 7):
Также проверьте, что NAT-T работает (UDP 4500). Некоторые старые NAT-роутеры некорректно обрабатывают множественные IPsec-сессии.

#### 7. macOS: подключение обрывается через 1 час

**Симптом**: VPN отключается ровно через 60 минут.

**Причина**: рассогласование IPsec lifetime между macOS и MikroTik.

**Решение**:
### Безопасность

Рекомендации по усилению безопасности L2TP/IPsec:
### Итоговая конфигурация
VPN / L2TP/IPsec VPN на MikroTik — настройка сервера и клиентов