Зачем нужен VPN-сервер на MikroTik и почему L2TP/IPsec
MikroTik — популярный бренд маршрутизаторов, который часто используют для организации удаленного доступа к локальной сети. Настройка VPN-сервера на MikroTik позволяет сотрудникам подключаться к офисной сети из дома или в дороге, а также объединять несколько офисов в единое защищенное пространство. Среди множества протоколов VPN особое место занимает связка L2TP и IPsec. L2TP отвечает за создание туннеля и передачу данных, а IPsec обеспечивает шифрование и аутентификацию. Такая комбинация считается оптимальной для MikroTik по нескольким причинам: она поддерживается практически всеми современными операционными системами без установки дополнительного ПО, обеспечивает надежное шифрование и проста в настройке. В отличие от PPTP, который устарел и легко взламывается, L2TP/IPsec не имеет серьезных уязвимостей. OpenVPN, хотя и гибок, в MikroTik работает только по TCP, что снижает производительность. Поэтому L2TP/IPsec — лучший выбор для большинства сценариев.
Подготовка: что нужно знать перед настройкой
Перед началом настройки убедитесь, что ваш MikroTik имеет белый публичный IP-адрес на WAN-интерфейсе. Если провайдер использует NAT или CGNAT, внешние подключения к VPN-серверу будут невозможны без дополнительных настроек. Также проверьте, что порты 500, 1701 и 4500 (UDP) не блокируются провайдером. Для работы L2TP/IPsec необходимо открыть эти порты на межсетевом экране. Обновите прошивку RouterOS до последней стабильной версии. В версиях до 6.18 существовал баг с применением default policy template, который мог вызывать ошибки подключения. Используйте WinBox или веб-интерфейс для настройки. В статье мы будем использовать WinBox, так как он предоставляет удобный графический интерфейс. Также рекомендуется выделить отдельный пул IP-адресов для VPN-клиентов, например, 192.168.112.0/24, чтобы не смешивать их с основной локальной сетью.
Создание пула IP-адресов и профиля PPP
Первый шаг — создание пула адресов, из которого VPN-клиенты будут получать IP-адреса. В WinBox перейдите в раздел IP → Pool и нажмите кнопку «+». Задайте имя, например, vpn_pool, и диапазон адресов, например, 192.168.112.1-192.168.112.10. Если планируется много клиентов, увеличьте диапазон. Далее создайте профиль PPP: PPP → Profiles → «+». В поле Name укажите l2tp_profile. В поле Local Address выберите созданный пул или укажите IP-адрес самого роутера (например, 192.168.88.1). В поле Remote Address также выберите vpn_pool. Включите опцию Change TCP MSS, чтобы избежать проблем с фрагментацией пакетов. В поле DNS Server можно указать адрес DNS-сервера вашей локальной сети, если клиентам нужен доступ к внутренним ресурсам по именам. Остальные параметры можно оставить по умолчанию. Профиль определяет параметры соединения, такие как MTU, MRU, методы аутентификации и таймауты.
Создание пользователя VPN в PPP Secrets
Для аутентификации клиентов необходимо создать учетные записи. Перейдите в PPP → Secrets и нажмите «+». В поле Name укажите имя пользователя, например, vpn_user1. В поле Password задайте надежный пароль. В поле Service выберите l2tp. В поле Profile укажите созданный ранее профиль l2tp_profile. Если нужно ограничить время сессии или разрешить только одно подключение, настройте параметры Limits. Также можно указать конкретный IP-адрес для клиента в поле Remote Address, если требуется статический адрес. После создания пользователя он сможет подключаться к VPN-серверу. Важно использовать сложные пароли, так как возможен перебор. Рекомендуется регулярно менять пароли и следить за логами попыток входа.
Включение L2TP-сервера и настройка IPsec
Теперь включим сам L2TP-сервер. В WinBox перейдите в PPP → L2TP Server. Установите флажок Enabled. В поле MTU/MRU укажите 1450 (стандартное значение для L2TP). Keepalive Timeout оставьте 30. В поле Default Profile выберите l2tp_profile. В поле Authentication отметьте mschap2 (рекомендуется) или другие методы. Включите опцию Use IPSec и в поле IPSec Secret введите предварительный ключ (pre-shared key), например, tumba-yumba-setebryaki. Этот ключ не является паролем пользователя, он используется для шифрования IPsec. После включения Use IPSec MikroTik автоматически создаст динамический пир в IP → IPSec → Peers. Далее настройте параметры IPsec. Перейдите в IP → IPSec → Peers. Если пир создан автоматически, отредактируйте его: Address: 0.0.0.0/0, Port: 500, Auth Method: pre-shared key, Secret: тот же ключ, что и в L2TP Server, Exchange Mode: main-l2tp, NAT Traversal: yes, Proposal Check: obey. В разделе IP → IPSec → Proposals настройте алгоритмы шифрования. По умолчанию используется aes-256 cbc, sha1, modp1024. Эти параметры должны поддерживаться клиентами. Для совместимости с Windows можно оставить значения по умолчанию.
Настройка firewall для доступа к VPN-серверу
Чтобы внешние клиенты могли подключиться, необходимо разрешить входящий трафик на порты L2TP и IPsec. В WinBox перейдите в IP → Firewall → Filter Rules. Добавьте правило в цепочке input: Protocol: udp, Dst. Port: 1701,500,4500, In. Interface: ваш WAN-интерфейс (например, ether1). Действие: accept. Добавьте второе правило: Protocol: ipsec-esp, In. Interface: WAN, действие: accept. Эти правила должны быть в начале списка, до любых блокирующих правил. Если у вас политика по умолчанию для forward — drop, добавьте правило, разрешающее трафик из VPN-пула в локальную сеть: chain=forward, src-address=192.168.112.0/24, out-interface=bridge-local, action=accept. Это позволит VPN-клиентам обращаться к ресурсам локальной сети. Также может потребоваться включить proxy-arp на внутреннем интерфейсе, если клиенты не могут получить доступ к внутренним ресурсам. Для этого в Interfaces → bridge-local в поле ARP выберите proxy-arp.
Подключение клиентов: Windows, Android, iOS
После настройки сервера можно подключаться с различных устройств. Для Windows: Панель управления → Центр управления сетями и общим доступом → Настройка нового подключения → Подключение к рабочему месту → Использовать мое подключение к интернету (VPN). Введите IP-адрес или имя сервера, имя пользователя и пароль. Затем откройте свойства созданного подключения, перейдите на вкладку «Безопасность», выберите тип VPN: L2TP/IPsec, в дополнительных параметрах укажите предварительный ключ. В группе «Проверка подлинности» оставьте только CHAP v2 (MSCHAPv2). Для Android: Настройки → Сеть → VPN → Добавить VPN. Укажите тип L2TP/IPsec PSK, адрес сервера, ключ IPsec, имя пользователя и пароль. Для iOS: Настройки → Основные → VPN → Добавить конфигурацию. Выберите тип L2TP/IPsec, введите сервер, учетные данные и секрет. После подключения клиент получит IP-адрес из пула и сможет обращаться к ресурсам локальной сети.
Проверка и диагностика подключения
После настройки проверьте, что VPN-соединение устанавливается. На сервере в разделе PPP → Active Connections вы должны увидеть активное соединение. В IP → Addresses появится адрес клиента. Если подключение не удается, проверьте логи: IP → Firewall → Log, а также System → Log. Типичные проблемы: неверный предварительный ключ, неправильные порты, блокировка провайдером, проблемы с NAT. Если клиент находится за NAT, убедитесь, что включен NAT Traversal (NAT-T) на сервере. Также проверьте, что правила firewall стоят в начале списка. Если клиент не может получить доступ к внутренним ресурсам, проверьте маршруты и proxy-arp. На клиенте убедитесь, что не используется «Использовать основной шлюз в удаленной сети», если это вызывает конфликт с доступом в интернет.
Типичные ошибки и способы их решения
Одна из частых проблем — невозможность подключения из-за обновлений Windows. Например, обновление KB5009543 (начало 2022 года) нарушало работу L2TP/IPsec. Решение — удалить это обновление. Также бывает, что несколько клиентов из одной локальной сети (за NAT) не могут одновременно подключиться к серверу. Это ограничение реализации L2TP/IPsec в MikroTik: через один NAT может работать только одно соединение. Если клиент подключается только из локальной сети, но не извне, проверьте, не блокирует ли провайдер порты или не использует ли CGNAT. Также убедитесь, что на WAN-интерфейсе нет блокирующих правил firewall. Если клиент подключается, но не видит внутренние ресурсы, включите proxy-arp на bridge-local. Если интернет пропадает после подключения, снимите галочку «Использовать основной шлюз в удаленной сети» на клиенте.
Безопасность VPN-сервера: рекомендации
Использование паролей для аутентификации удобно, но создает риск перебора. Рекомендуется использовать длинные сложные пароли, а также настроить автоматическую блокировку IP-адресов после нескольких неудачных попыток входа. В MikroTik можно создать скрипт, который анализирует логи и добавляет адреса в address-list для блокировки. Также регулярно обновляйте RouterOS до последней стабильной версии, чтобы исправить известные уязвимости. Для более высокой безопасности рассмотрите использование IKEv2 с сертификатами вместо паролей. Это исключает перебор и повышает защиту. Не используйте PPTP, так как он легко взламывается. Также следите за логами на предмет подозрительной активности. Если VPN-сервер используется для доступа к критическим ресурсам, ограничьте доступ по IP-адресам клиентов или используйте двухфакторную аутентификацию.
Вопросы и ответы
Какие порты нужно открыть для L2TP/IPsec VPN на MikroTik?
Для работы L2TP/IPsec необходимо открыть UDP-порты 500 (IKE), 1701 (L2TP) и 4500 (IPsec NAT-T), а также разрешить протокол IPsec-ESP. В MikroTik добавьте правила firewall в цепочке input: разрешить UDP на порты 1701, 500, 4500 и разрешить протокол ipsec-esp. Убедитесь, что эти правила находятся в начале списка фильтров.
Почему не удается подключиться к VPN-серверу MikroTik из внешней сети?
Причины могут быть разными: провайдер блокирует порты 500/1701/4500, используется CGNAT (серый IP), неправильно настроен firewall на MikroTik, или на промежуточном устройстве (например, терминале провайдера) не проброшены порты. Проверьте, что у вас белый публичный IP, и что пакеты доходят до MikroTik (смотрите счетчики firewall). Также убедитесь, что правила firewall разрешают входящие подключения.
Можно ли подключить несколько клиентов из одной локальной сети к L2TP/IPsec серверу MikroTik?
Встроенная реализация L2TP/IPsec в MikroTik имеет ограничение: через один NAT может быть установлено только одно L2TP/IPsec-соединение. Это связано с особенностями работы IPsec. Если несколько клиентов находятся за одним NAT, они не смогут одновременно подключиться. Для обхода можно использовать другие протоколы, например, OpenVPN или WireGuard, которые лучше работают через NAT.
Что делать, если после подключения к VPN пропадает интернет на клиенте?
Скорее всего, включена опция «Использовать основной шлюз в удаленной сети» в настройках VPN-подключения. Снимите эту галочку, чтобы маршрут по умолчанию остался на локальном шлюзе. Тогда доступ в интернет будет идти через обычное подключение, а VPN будет использоваться только для доступа к удаленной сети. Если нужно, чтобы весь трафик шел через VPN, оставьте галочку, но тогда убедитесь, что на сервере настроен NAT для клиентов.
Какой протокол VPN лучше выбрать на MikroTik: L2TP/IPsec или OpenVPN?
L2TP/IPsec — оптимальный выбор для большинства случаев: он поддерживается всеми ОС без дополнительного ПО, обеспечивает надежное шифрование и прост в настройке. OpenVPN в MikroTik работает только по TCP, что снижает производительность, и требует установки клиентского ПО. Если нужна максимальная производительность и нет требований к шифрованию, можно использовать EoIP или GRE. Но для безопасного удаленного доступа L2TP/IPsec — лучший вариант.
Как повысить безопасность VPN-сервера на MikroTik?
Используйте длинные сложные пароли для пользователей, регулярно меняйте их. Настройте блокировку IP-адресов после нескольких неудачных попыток входа (например, скриптом). Обновляйте RouterOS до последней стабильной версии. Рассмотрите переход на IKEv2 с сертификатами вместо паролей. Ограничьте доступ по IP-адресам клиентов, если это возможно. Следите за логами на предмет подозрительной активности.
Что такое предварительный ключ (IPsec Secret) и чем он отличается от пароля пользователя?
Предварительный ключ (pre-shared key) используется для аутентификации IPsec-туннеля. Он задается на сервере в настройках L2TP Server (Use IPSec → IPSec Secret) и должен быть указан на клиенте в дополнительных параметрах VPN-подключения. Это не пароль пользователя — пароль вводится при подключении для аутентификации в PPP. Ключ защищает сам туннель, а пароль — доступ к серверу. Оба параметра обязательны.