Зачем нужен L2TP/IPsec и как он работает
L2TP/IPsec — это комбинация двух протоколов, которая обеспечивает безопасное туннелирование трафика через интернет. L2TP (Layer 2 Tunneling Protocol) отвечает за создание самого туннеля и передачу данных, но не шифрует их. IPsec (Internet Protocol Security) добавляет шифрование и проверку целостности, защищая данные от перехвата и модификации.
В связке L2TP/IPsec данные сначала инкапсулируются в PPP-кадр, затем оборачиваются в L2TP и, наконец, защищаются с помощью IPsec ESP (Encapsulating Security Payload). Этот двухуровневый подход обеспечивает высокий уровень безопасности и совместимость с большинством современных устройств и операционных систем без установки дополнительного программного обеспечения.
Процесс установки соединения состоит из двух фаз. На первой фазе (IKE Phase 1) стороны согласовывают параметры шифрования и аутентифицируют друг друга с помощью предварительного общего ключа (Pre-Shared Key, PSK). На второй фазе (IKE Phase 2) внутри защищенного канала устанавливается сам туннель L2TP. Если любой из этапов завершится ошибкой — из-за несовпадения ключа, несовместимости алгоритмов или блокировки портов — соединение не будет установлено.
MikroTik RouterOS поддерживает L2TP/IPsec "из коробки", что делает его удобным выбором для организации VPN-сервера или клиента. В отличие от OpenVPN, который в MikroTik работает только по TCP и не поддерживает UDP, L2TP/IPsec работает по UDP и обеспечивает более высокую производительность. Кроме того, L2TP/IPsec не требует установки сторонних клиентов на устройства пользователей, так как поддержка встроена в Windows, macOS, Android и iOS.
Подготовка к настройке: что нужно знать
Перед началом настройки важно убедиться, что у вас есть:
- Роутер MikroTik с установленной RouterOS (v6 или v7).
- Доступ к устройству через WinBox, WebFig или SSH.
- Статический публичный IP-адрес или стабильное DNS-имя для сервера (желательно, но не обязательно).
- Зарезервированный диапазон IP-адресов для VPN-клиентов, который не пересекается с вашей локальной сетью.
Также рекомендуется сделать резервную копию конфигурации перед внесением изменений, особенно если вы работаете с рабочим маршрутизатором. Неправильно настроенные политики IPsec или правила firewall могут заблокировать доступ к устройству.
Важно понимать, что L2TP/IPsec использует несколько портов и протоколов, которые должны быть открыты в firewall:
- UDP 1701 — для L2TP.
- UDP 500 — для IKE (обмен ключами IPsec).
- UDP 4500 — для NAT-T (прохождение IPsec через NAT).
- Протокол 50 (ESP) — для шифрованного трафика IPsec.
Если вы планируете использовать L2TP/IPsec для подключения удаленных сотрудников, убедитесь, что на сервере настроен хотя бы один пользователь с логином и паролем. Для объединения двух офисов (site-to-site) потребуется настроить L2TP-клиент на удаленном роутере.
Создание IP-пула и PPP-профиля
Первый шаг в настройке L2TP/IPsec сервера — создание пула IP-адресов, из которого клиенты будут получать адреса в VPN-сети. Это делается в разделе IP → Pool.
- Откройте меню IP и выберите Pool.
- Нажмите кнопку Add (+).
- В поле Name введите, например,
vpn-pool. - В поле Addresses укажите диапазон, например,
10.10.5.2-10.10.5.100. - Нажмите OK.
Затем создайте PPP-профиль, который определит параметры подключения для клиентов. Перейдите в PPP → Profiles.
- Нажмите Add (+).
- В поле Name введите
l2tp-profile. - В поле Local Address укажите IP-адрес, который будет назначен серверу в VPN-сети (например,
10.10.5.1). - В поле Remote Address выберите созданный пул
vpn-pool. - При необходимости настройте DNS-серверы, которые будут передаваться клиентам (например,
8.8.8.8и1.1.1.1). - Нажмите OK.
Эти настройки определяют, какие адреса будут использовать клиенты и как будет выглядеть VPN-подсеть. Важно, чтобы выбранный диапазон не пересекался с вашей основной локальной сетью, иначе возникнут конфликты маршрутизации.
Включение L2TP-сервера и настройка IPsec
После создания пула и профиля необходимо включить сам L2TP-сервер. Перейдите в PPP → Interface и нажмите кнопку L2TP Server.
В открывшемся окне:
- Установите флажок Enabled.
- В поле Default Profile выберите созданный профиль
l2tp-profile. - В поле Use IPsec выберите Require — это заставит всех клиентов использовать IPsec. Если выбрать Yes, IPsec будет использоваться, но не обязателен (для тестовых сред).
- В поле IPsec Secret введите сложный предварительный общий ключ (PSK). Он должен быть одинаковым на всех клиентах. Используйте длинную случайную строку, например,
kX9#mP2$vL5@nQ8!. - Нажмите Apply.
Также рекомендуется изменить MTU (Maximum Transmission Unit) на значение 1200. Это уменьшает размер пакетов и помогает избежать проблем с фрагментацией, особенно при прохождении через разные сети и провайдеров. В некоторых источниках советуют устанавливать MTU 1200 для повышения стабильности соединения.
В разделе Authentication оставьте только MS-CHAPv2 — это наиболее безопасный метод аутентификации. Методы MS-CHAPv1, CHAP и PAP считаются устаревшими и небезопасными, поэтому их следует отключить.
Создание пользователей PPP (Secrets)
Для аутентификации клиентов необходимо создать учетные записи в разделе PPP → Secrets. Каждый пользователь получит свой логин и пароль для подключения к VPN.
- Перейдите в PPP → Secrets.
- Нажмите кнопку Add (+).
- В поле Name введите логин, например,
user1. - В поле Password введите надежный пароль. Не используйте простые пароли вроде
123456— это критично для безопасности. - В поле Local Address укажите IP-адрес сервера в VPN-сети (например,
10.10.5.1). - В поле Remote Address укажите конкретный IP-адрес для этого пользователя (например,
10.10.5.2). Если вы хотите, чтобы адрес назначался автоматически из пула, оставьте это поле пустым. - В поле Profile выберите созданный профиль
l2tp-profile(если он не выбран автоматически). - Добавьте комментарий для удобства (например, отдел или должность сотрудника).
- Нажмите OK.
Вы можете создать несколько пользователей, повторяя эти шаги. Для каждого пользователя можно задать свой статический IP-адрес, что удобно для доступа к определенным ресурсам по IP. Однако если адресов в пуле недостаточно, лучше использовать динамическое назначение.
Настройка правил firewall для L2TP/IPsec
Чтобы клиенты могли подключиться к серверу, необходимо разрешить входящий трафик для L2TP и IPsec в firewall. Без этих правил соединение будет блокироваться, даже если все остальные настройки выполнены верно.
Перейдите в IP → Firewall → Filter Rules и создайте следующие правила в цепочке input:
- Разрешить L2TP (UDP 1701):
- Chain:
input - Protocol:
udp - Dst. Port:
1701 - In. Interface: укажите интерфейс, через который приходят VPN-подключения (например,
ether1) - Action:
accept - Comment:
L2TP
- Разрешить IKE (UDP 500) и NAT-T (UDP 4500):
- Chain:
input - Protocol:
udp - Dst. Port:
500,4500 - In. Interface: тот же интерфейс
- Action:
accept - Comment:
IPsec IKE
- Разрешить ESP (протокол 50):
- Chain:
input - Protocol:
50(ESP) - In. Interface: тот же интерфейс
- Action:
accept - Comment:
IPsec ESP
Важно разместить эти правила выше любых запрещающих правил, иначе они могут быть заблокированы. Для удобства можно включить отображение комментариев в отдельной колонке (Settings → Inline Comments) и перетащить созданные правила вверх списка.
Также убедитесь, что в цепочке forward разрешен трафик между VPN-интерфейсом и локальной сетью, если вы хотите, чтобы клиенты имели доступ к внутренним ресурсам.
Настройка L2TP/IPsec клиента на MikroTik
Если вы хотите подключить удаленный офис к центральному серверу, на удаленном роутере MikroTik необходимо настроить L2TP-клиент. Это позволит объединить две локальные сети через VPN.
- Перейдите в PPP → Interface и нажмите кнопку Add (+), выберите L2TP Client.
- В поле Name введите имя интерфейса, например,
l2tp-out1. - В поле Connect To укажите IP-адрес или DNS-имя сервера VPN.
- В поле User введите логин пользователя, созданного на сервере.
- В поле Password введите пароль.
- В поле Profile выберите профиль, если требуется (можно оставить default).
- На вкладке IPsec установите флажок Use IPsec и введите тот же IPsec Secret, что и на сервере.
- Нажмите OK.
После создания интерфейса необходимо добавить статический маршрут, чтобы клиенты локальной сети знали, как достичь удаленной сети. Перейдите в IP → Routes и добавьте маршрут:
- Dst. Address: удаленная подсеть (например,
10.30.1.0/24) - Gateway: IP-адрес L2TP-интерфейса (например,
10.10.5.1)
Аналогичный маршрут нужно добавить и на сервере, чтобы его локальные клиенты могли обращаться к сети удаленного офиса.
Если вы используете L2TP/IPsec для подключения удаленных сотрудников, настройка клиента на их устройствах (Windows, macOS, Android, iOS) обычно сводится к вводу IP-адреса сервера, логина, пароля и общего ключа IPsec. В Windows, например, нужно выбрать тип VPN "L2TP/IPsec с общим ключом" и указать ключ.
Проверка подключения и устранение неполадок
После настройки сервера и клиента важно проверить, что VPN работает корректно. На сервере MikroTik вы можете увидеть активные подключения в разделе PPP → Active Connections. Если подключение установлено, в списке появится интерфейс с IP-адресом клиента.
На клиентском устройстве (например, Windows) попробуйте подключиться к VPN. Если соединение не устанавливается, проверьте следующие моменты:
- Убедитесь, что на сервере открыты все необходимые порты (UDP 1701, 500, 4500 и протокол ESP).
- Проверьте, что IPsec Secret совпадает на сервере и клиенте.
- Убедитесь, что логин и пароль пользователя введены правильно.
- Проверьте, что метод аутентификации на сервере поддерживается клиентом (MS-CHAPv2 должен быть включен).
- Если клиент находится за NAT, убедитесь, что NAT-T работает (UDP 4500). В некоторых случаях может потребоваться изменить настройки реестра Windows для NAT-T.
- Проверьте, что MTU не слишком велик. Если возникают проблемы с фрагментацией, уменьшите MTU на сервере (например, до 1200).
Если вы используете бесплатную лицензию MikroTik (уровень Free), скорость VPN будет ограничена 1 Мбит/с. Чтобы снять это ограничение, необходимо обновить лицензию до уровня P1 (платно, около $45, но предоставляется бесплатно на 2 недели). После обновления скорость интерфейсов увеличивается до 1 Гбит/с. Если вы не планируете обновлять RouterOS, уровень P1 будет достаточен.
Сравнение L2TP/IPsec с другими VPN-протоколами в MikroTik
MikroTik поддерживает несколько VPN-протоколов, и выбор подходящего зависит от ваших задач. Вот краткое сравнение:
- PPTP — устаревший протокол, который легко взламывается. Использовать его не рекомендуется, особенно если важна безопасность. Он поддерживается из коробки Windows и Android, но из-за слабой защиты лучше отказаться от него.
- OpenVPN — очень гибкий и безопасный протокол, но в MikroTik он работает только по TCP, что снижает производительность. Также не поддерживается сжатие заголовков. Если вам нужен OpenVPN, лучше использовать его на отдельном сервере, а не на MikroTik.
- SSTP — протокол от Microsoft, использует SSL 3.0 и порт 443, что помогает обходить фаерволы. Однако в MikroTik он очень требователен к ресурсам процессора и на слабых устройствах будет работать медленно.
- GRE и EoIP — это туннели уровня 2/3, которые не обеспечивают шифрование. Они подходят для объединения офисов, когда требуется максимальная скорость, но безопасность не критична. EoIP — проприетарный протокол MikroTik, который работает на уровне 2 и передает Ethernet-фреймы.
L2TP/IPsec является оптимальным выбором для большинства сценариев благодаря простоте настройки, надежному шифрованию и широкой совместимости. Он поддерживается практически всеми устройствами без установки дополнительного ПО и подходит как для подключения удаленных сотрудников, так и для объединения офисов.
Советы по безопасности и производительности
При настройке L2TP/IPsec важно следовать рекомендациям по безопасности, чтобы защитить вашу сеть от несанкционированного доступа.
- Используйте сложный IPsec Secret (PSK). Он должен быть длинным и случайным, например, сгенерированным с помощью генератора паролей.
- Создавайте надежные пароли для пользователей VPN. Не используйте простые комбинации, такие как
123456илиqwerty. - Ограничьте количество попыток подключения, чтобы предотвратить brute-force атаки. В MikroTik можно настроить ограничение по IP-адресам или использовать модуль fail2ban (если доступен).
- Регулярно обновляйте RouterOS до последней версии, чтобы получать исправления безопасности.
- Если VPN используется для доступа к корпоративным ресурсам, настройте firewall таким образом, чтобы разрешать только необходимый трафик.
- Для повышения производительности убедитесь, что на роутере достаточно ресурсов (CPU, RAM). L2TP/IPsec требует вычислительных мощностей для шифрования, поэтому на слабых устройствах скорость может быть ниже.
- Рассмотрите возможность использования аппаратного ускорения шифрования, если ваш MikroTik его поддерживает (например, модели с AES-NI).
Также полезно настроить мониторинг активных подключений и журналирование, чтобы быстро обнаруживать подозрительную активность. В RouterOS можно включить логирование для PPP и IPsec в разделе System → Logging.
Вопросы и ответы
Какие порты нужно открыть для L2TP/IPsec на MikroTik?
Для работы L2TP/IPsec необходимо открыть следующие порты и протоколы в firewall (цепочка input): UDP 1701 (L2TP), UDP 500 (IKE), UDP 4500 (NAT-T) и протокол 50 (ESP). Без этих правил входящие VPN-подключения будут блокироваться.
Почему скорость VPN ограничена 1 Мбит/с на MikroTik?
Это связано с бесплатной лицензией RouterOS (уровень Free), которая ограничивает скорость всех интерфейсов до 1 Мбит/с. Чтобы снять ограничение, необходимо обновить лицензию до уровня P1 (платно, около $45, но предоставляется бесплатно на 2 недели). После обновления скорость увеличивается до 1 Гбит/с.
Какой метод аутентификации лучше использовать для L2TP на MikroTik?
Рекомендуется использовать только MS-CHAPv2, так как MS-CHAPv1, CHAP и PAP считаются устаревшими и небезопасными. MS-CHAPv2 обеспечивает более надежную защиту паролей при передаче.
Можно ли использовать L2TP/IPsec для объединения двух офисов?
Да, L2TP/IPsec подходит для site-to-site подключений. Для этого на одном роутере настраивается L2TP-сервер, а на другом — L2TP-клиент. После установки соединения добавляются статические маршруты для обмена трафиком между локальными сетями.
Что делать, если VPN-подключение не устанавливается?
Проверьте: 1) открыты ли порты UDP 1701, 500, 4500 и протокол ESP в firewall; 2) совпадает ли IPsec Secret на сервере и клиенте; 3) правильность логина и пароля; 4) включен ли MS-CHAPv2; 5) не блокирует ли NAT-T (UDP 4500). Также попробуйте уменьшить MTU до 1200 на сервере.
Нужно ли устанавливать дополнительное ПО на клиентские устройства для L2TP/IPsec?
Нет, L2TP/IPsec поддерживается встроенными средствами большинства операционных систем: Windows, macOS, Android, iOS. Достаточно указать IP-адрес сервера, логин, пароль и общий ключ IPsec.
Чем L2TP/IPsec отличается от OpenVPN на MikroTik?
L2TP/IPsec работает по UDP и обеспечивает более высокую производительность, а OpenVPN в MikroTik работает только по TCP, что снижает скорость. L2TP/IPsec не требует установки клиентского ПО, в то время как OpenVPN обычно требует установки приложения. Однако OpenVPN более гибкий в настройке, например, позволяет пушить маршруты клиентам.