Сегодня расскажу как настроил L2TP на Микротике с авторизацией через Active Directory (AD). Расскажу про 2 схемы реализации доступа к сетям( чуть-чуть про безопасность).
Конечно вы скажите что таких статей куча( пример, пример 2), но я сделал небольшую автоматизацию для пользователей, читайте далее....
Начнём с описания схемы
Пользователи подключаются к Mikrotik, лучше конечно Mikrotik с аппаратной поддержкой IPsec, это такие модели, как RB730Gr3 или RB4011 или CCR1009, авторизовываясь через AD, для этого нам и потребуется RAIDUS, а далее пользователь должен попадать в сеть для доступа в терминальный сервер( в нашем случаем только в сеть 192.168.10.0/24 vlan 20).
Пользователю запрещено подключаться к нам в сеть и сеть серверов( см. самый последний скриншот).
![](https://habrastorage.org/getpro/habr/upload_files/0af/12d/b1a/0af12db1ac9758f76c813e06a1e013f2.png)
Начнём создания сети, создаём pool ip которые будем раздавать нашим клиентам
![Создаём пул для нашей VPN сети Создаём пул для нашей VPN сети](https://habrastorage.org/getpro/habr/upload_files/0ac/9a2/788/0ac9a2788afddff2ebd2de8b63588576.png)
Вот такой диапазон я выбрал, вы же можете взять любой из частных:
![вот такой диапазон я выбрал вот такой диапазон я выбрал](https://habrastorage.org/getpro/habr/upload_files/2bd/c19/ced/2bdc19ced6ab20b7a2af14f6853b6909.png)
Далее создаём PPP профиль IP->PPP->Profiles, DNS я указал -это тоже ip этого микротика, вы можете исходя из этого примера указать 172.16.45.1( это потом нам пригодится), указываем, имя, адрес нашего микротика 172.16.45.1 и выбираем наш только что созданный пул.
Change TCP MSS - yes
Use UPnP можно выбрать no
![](https://habrastorage.org/getpro/habr/upload_files/1ce/ac7/11d/1ceac711ded01cafa0be136c5281a1cc.png)
во вкладке протоколы убираем возможность использования IPv6 (если она у вас есть)
"В PPP Profile оставили Encryption, Compression в default - привет MPPE внутри IPsec", нам этого не надо, поэтому включаем.
![](https://habrastorage.org/getpro/habr/upload_files/b29/a69/7ce/b29a697ce338513d62cb7c1c159dca3e.png)
После того как создали профиль возвращаемся в назад и включаем L2TP Server, указываем, всё как на рисунке, только между вторым и третьим шагом нужно выбрать наш только что созданный профиль.
На третьем шаге включаем использование шифрования, что бы наши данные если и смогу перехватить, то не смогли бы расшифровать. на четвёртом шаге указываем наш ключ IPsec (чем длиннее, тем лучше)
"Pre Shared Key для IKE AUTH должен быть не менее 32 символов и создан с энтропией не менее 256 бит.
IKE Aggressive exchange необходимо запретить для избегания Offline Dictionary Attack на ваш PSK."
![](https://habrastorage.org/getpro/habr/upload_files/70b/664/3bb/70b6643bb237476e2a68cddac1ad31ca.png)
Called ID Type у меня указано ip address, а так же я чуть позже поставил галочку одна сессия на хост (но если работает из под NAT, то больше чем 1 клиент всё равно не подключится)
в Default-Profile указываем наш профиль см. рисунок
![](https://habrastorage.org/getpro/habr/upload_files/2cb/bff/0bd/2cbbff0bdb62f28d2b98e9bb3a31a20f.png)
"Если вы не уменьшите MTU до fail-safe 1400, то будет выполняться fragmentation after encapsulation, а это приводит к низкой производительности IPsec туннеля.
То есть мы инкапсулируем IP пакет в PPP кадр, далее в L2TP пакет, далее в UDP, потом в ESP, потом если повезёт сразу в IP, если нет снова в UDP и потом в IP, последний этап потребует выполнить фрагментацию поскольку итоговый размер UDP/ESP будет превышать MTU."
Очевидно, что причина этого - сложный путь обработки трафика, который полностью ложится на плечи CPU. Можно ли этого как-либо избежать? Можно, в RouterOS v6 для этого появилась новая технология - Fast Path (быстрый путь), которая позволяет направить трафик по быстрому пути, без обработки ядром ОС, что позволяет существенно снизить нагрузку на систему.
Основная мысль, положенная в основу этой технологии такова, что пакеты уже установленных соединений, а также тех участков передачи трафика, где не требуется фильтрация и контроль, можно отправить по быстрому пути, тем самым разгружая процессор и ускоряя передачу данных. Fast Path - это расширение драйвера интерфейса, которое позволяет ему напрямую взаимодействовать с некоторыми подсистемами RouterOS и пропускать остальные.
Авторизовывать пользователей мы будем через Windows Active Directory, для этого нам потребуется Radius, переходим
IP->PPP->Secrets и как указано на рисунке включаем Radius аутентификацию
![включаем Radius аутентификацию включаем Radius аутентификацию](https://habrastorage.org/getpro/habr/upload_files/07e/79d/087/07e79d087e5d6db52761161662941a3c.png)
Далее нам потребуется настроить работу Radius, начнём со стороны Микротик, как показано на рисунке ниже, радиус будет использоваться только для PPP соединений,
указываем ip нашего сервера с развёрнутой службой NPS на Windows Server, в нашем случае это 192.168.10.2
Придумываем ключ для работы Radius ( взаимодействия Mikrotik и NPS) это не тот ключ, что мы придумывали IPsec
Source IP address of the packets sent to RADIUS server оставляем 0.0.0.0/0
![](https://habrastorage.org/getpro/habr/upload_files/195/bbe/202/195bbe20239e49c1353f8d6b7cd29c49.png)
2. Настройка Windows Server
Для начала добавим новую роль, это "Сервер политики сети" (NPS), требуется для разворачивания Radius сервера, пошаговая инструкция ниже.
![](https://habrastorage.org/getpro/habr/upload_files/868/230/d53/868230d53184fa6be188ccd5080ef7c4.png)
![](https://habrastorage.org/getpro/habr/upload_files/814/328/6e6/8143286e6b74d92f9e9fae2390a0436c.png)
![](https://habrastorage.org/getpro/habr/upload_files/8fb/f4c/0ec/8fbf4c0ecf451b453d313f962caae337.png)
А так же нам потребуется пакет администрирования CMAK
![включаем CMAK включаем CMAK](https://habrastorage.org/getpro/habr/upload_files/066/aa8/78c/066aa878cfb0014b0410675a8f9b4b01.png)
Запускаем NPS,
![](https://habrastorage.org/getpro/habr/upload_files/80e/dd2/724/80edd2724ba471606cb64081855b6544.png)
Регистрируем сервер а Active Directory
![](https://habrastorage.org/getpro/habr/upload_files/3f1/4ba/f42/3f14baf4207f6620bcde877ae9c99912.png)
Если работаем с Mikrotik, то достаточно оставить только порты 1812 и 1813
![](https://habrastorage.org/getpro/habr/upload_files/308/a91/865/308a918651eb015c2a92b1f728ea333b.png)
Создаём RADIUS клиента
![](https://habrastorage.org/getpro/habr/upload_files/c1d/f95/67b/c1df9567b8eb54bfb8471192ee10c660.png)
В нашем случае, это будет Mikrotik, указываем его ip адрес, у нас это шлюз, в пунктах 3,4 (см. рисунок) указываем секретную фразу которую будем использовать для подключения клиента
![](https://habrastorage.org/getpro/habr/upload_files/a79/b3d/cf2/a79b3dcf2e44d65b121bc497746319e2.png)
Идём на контроллер AD, создаём группу доступа к VPN, добавляем в неё пользователей, кто будет иметь доступ к подключению.
![](https://habrastorage.org/getpro/habr/upload_files/66b/a41/295/66ba412954f28fd289eeb13fbc25c6a4.png)
Вернёмся в NPS.
Идём в "Политики->Сетевые политики", создаём новую
![](https://habrastorage.org/getpro/habr/upload_files/2f2/d8f/88a/2f2d8f88aa4c6d7a303ce49533214af3.png)
![](https://habrastorage.org/getpro/habr/upload_files/138/df4/f31/138df4f3141490ffd388bad27c1dca76.png)
Указываем в политиках, что пускать будем конкретную группу.
![](https://habrastorage.org/getpro/habr/upload_files/7ed/85c/785/7ed85c7859ef8fc45be82ef24633aace.png)
![](https://habrastorage.org/getpro/habr/upload_files/a28/e9a/b3a/a28e9ab3a0c2d9ddb27762800a199d27.png)
Указываем нормальное имя клиента, что бы боты не подключались
![](https://habrastorage.org/getpro/habr/upload_files/354/ba8/1d5/354ba81d5f9dcff2cc4017e51e60e1e3.png)
![](https://habrastorage.org/getpro/habr/upload_files/a2b/b28/948/a2bb28948f5b6303e57da654a1706de3.png)
Проверка подлинности будет MS-CHAP-v2, EAP- сертификаты не используем, кто хочет может развернуть центр сертификации и выдавать сертификаты, но это совсем другая история...
![](https://habrastorage.org/getpro/habr/upload_files/d21/9e7/d0c/d219e7d0c5f499b4e974e79a9da0f373.png)
![](https://habrastorage.org/getpro/habr/upload_files/5db/274/b78/5db274b78c9a05f39389b8c35c96fa68.png)
![](https://habrastorage.org/getpro/habr/upload_files/6e1/7f8/aa8/6e17f8aa841534bbe85efdaa71113507.png)
![](https://habrastorage.org/getpro/habr/upload_files/9fb/754/013/9fb754013b309c6581cf9100e7d0c736.png)
Создаём политику запросов
![](https://habrastorage.org/getpro/habr/upload_files/d39/d92/e64/d39d92e645ac23d1a8c6ebde5860ddc9.png)
Ограничим работу VPN по дням недели и времени суток( нечего нас ломать пока мы спим)
![](https://habrastorage.org/getpro/habr/upload_files/264/ac9/139/264ac913975203f7b3ee4e9147353275.png)
я запретил работу с 1 ночи до 5 утра и в воскресенье
![](https://habrastorage.org/getpro/habr/upload_files/31c/f4f/65b/31cf4f65b851a858ebd2a35561f54ab0.png)
![](https://habrastorage.org/getpro/habr/upload_files/0ab/3b0/fcb/0ab3b0fcbc424c3dd23206d73b9dc0a3.png)
3. Настройка клиентского пакета через CMAK
учтите если требуется создание пакета для 32-bit систем, то потребуется установить CMAK на машинке 32bit и на ней проделать те же самые манипуляции
Далее пошаговые скриншоты по созданию пакета
![](https://habrastorage.org/getpro/habr/upload_files/6cc/9ff/854/6cc9ff8541dd9b1fd3840e5ae3815838.png)
![указываем более позднюю windows указываем более позднюю windows](https://habrastorage.org/getpro/habr/upload_files/5c3/311/1d4/5c33111d4986843a36665d4389d51f86.png)
![создаём новый профиль создаём новый профиль](https://habrastorage.org/getpro/habr/upload_files/be6/5cb/f7b/be65cbf7bbcb472942fd107dea723684.png)
![имя службы лучше называть названием организации так будет наглядней для юзера имя службы лучше называть названием организации так будет наглядней для юзера](https://habrastorage.org/getpro/habr/upload_files/6dd/b6c/01e/6ddb6c01ea232cecbb84fa79c16ac889.png)
![т.к. ip может поменяться, лучше указывайте доменное имя, прописать cname или A запись не составит труда т.к. ip может поменяться, лучше указывайте доменное имя, прописать cname или A запись не составит труда](https://habrastorage.org/getpro/habr/upload_files/aaa/b0f/420/aaab0f420c16f148db79191794982901.png)
![IPv6 мне тяжелова-то поэтому мы его не используем IPv6 мне тяжелова-то поэтому мы его не используем](https://habrastorage.org/getpro/habr/upload_files/09e/8b9/2e4/09e8b92e4eda7999573bd73cd2b5cf69.png)
![указываем стратеги VPN - L2TP, у меня не правильно выбрано!, указываем стратеги VPN - L2TP, у меня не правильно выбрано!,](https://habrastorage.org/getpro/habr/upload_files/9dc/864/e19/9dc864e193004a936fe0cbc30520b066.png)
заходим в настройки
![интернет мы через себя раздавать не будем, поэтому галочку снимаем интернет мы через себя раздавать не будем, поэтому галочку снимаем](https://habrastorage.org/getpro/habr/upload_files/b3f/37f/1c4/b3f37f1c4e076265bec8866d01405cdc.png)
Указываем IPsec ключ в раздел и "общий ключ" тот что из раздела настройки Mikrotik (см.выше)
Придумываем ПИН-код для запуска данного приложения, этот пин мы будем сообщать пользователю вместо длинного пароля IPsec. У меня пин это что-то не сложное например:
#You2021Company!, где YouCompany название вашей компании.
![](https://habrastorage.org/getpro/habr/upload_files/351/3f0/77c/3513f077ccec8a40eb33ece723bc6a26.png)
![](https://habrastorage.org/getpro/habr/upload_files/254/95e/e55/25495ee552b80bd4078cfbf9dc2581ab.png)
![](https://habrastorage.org/getpro/habr/upload_files/cb6/d20/ff6/cb6d20ff692898d304c0f5e2773ac027.png)
И вот тут как раз та заковырочка, здесь мы указываем "батничек" с маршрутом, что бы пользователь прозрачно попадал и работал с той сетью, которую мы хотим ему предоставить.
![](https://habrastorage.org/getpro/habr/upload_files/649/2f3/5fb/6492f35fb3e12229540ea908ddb543ce.png)
Вот что указано в нашем route.bat
![](https://habrastorage.org/getpro/habr/upload_files/2a2/41d/28c/2a241d28cdfc3aa75e3066e468145865.png)
![](https://habrastorage.org/getpro/habr/upload_files/cac/6fb/087/cac6fb087963868d565bd12545c1951b.png)
![](https://habrastorage.org/getpro/habr/upload_files/f69/83b/79e/f6983b79e0c2d1c21583b1880eb31d90.png)
Если хотите, то можно забрендировать, под стиль компании, указать логитип
![](https://habrastorage.org/getpro/habr/upload_files/206/3e2/57c/2063e257c2128a49ec76f8cbe37d34ff.png)
Указываем файл-соглашение для пользователя (что-то пугающее, что бы свои пароли никому не разглашали!)
![](https://habrastorage.org/getpro/habr/upload_files/254/5a5/2f1/2545a52f1c4b7e418892ec36fa19cede.png)
По данному пути у нас создаётся рабочий пакет, запаковываем его в zip и закидываем к себе на сайт, и всех пользователей направляем туда, а так же на сайте можно сделать инструкцию, что бы пользователь мог определить нужен ему 32 или 64битный пакет.
![](https://habrastorage.org/getpro/habr/upload_files/c8a/d83/157/c8ad831573f5a9849de26174c3f34174.png)
Настройка Firewall
Создаём правило в Микротике
![](https://habrastorage.org/getpro/habr/upload_files/df9/371/d98/df9371d98da16b5b40a65b3a883dea2f.png)
![](https://habrastorage.org/getpro/habr/upload_files/940/396/735/940396735033ae75033f0b91aae65074.png)
![](https://habrastorage.org/getpro/habr/upload_files/0b0/1b1/8c4/0b01b18c48348ba3cb910ca71949e88b.png)
Исключение из NAT L2TP клиентов через ipsec:out не требуется, это актуально только для транзитного трафика и чистого IPsec. Поскольку XFRM lookup выполняется после SNAT, для L2TP клиентов RD выполняется раньше чем SNAT, а после инкапсуляции L2TP в ESP, трафик порождается локально и в SNAT не попадает."
![В основном правиле s-nat или маскарадинга (у кого настроен частный случай) указываем что мы "НЕ НАТИМ"! В основном правиле s-nat или маскарадинга (у кого настроен частный случай) указываем что мы "НЕ НАТИМ"!](https://habrastorage.org/getpro/habr/upload_files/695/521/17e/69552117e4555b93e53a51c0fb0c42fd.png)
Запрещаем взаимодействие сете между собой ip->firewall->вкладка rules, ставим значение действий "drop".
![](https://habrastorage.org/getpro/habr/upload_files/76e/d56/331/76ed56331670ea34e1f90424c38f38a7.png)
![](https://habrastorage.org/getpro/habr/upload_files/0a2/a35/60f/0a2a3560f8f068cd90a5c76799b46796.png)
Вот и всё, теперь можно проверять, закидываем пользователя в доменную группу, скачиваем zip пакет, устанавливаем и пробуем авторизоваться.
Использовал следующие публикации:
https://xn----7sba7aachdbqfnhtigrl.xn--j1amh/nastrojka-mikrotik-ipsec-vpn-tunnel-mezhdu-ofisami/
спасибо@zanswer за продуктивную критику, всё что рекомендовали-исправил
Комментарии (5)
shaytan
22.06.2022 10:47Было-бы интереснее выдавать клиенту адрес и маршрут/ы согласно членству в определённой группе.
Babaka-BY
22.06.2022 17:47В зависимости от членства в группе к пользовтелю применяется соотвествующий vpn профиль с адресом или пулом адресов.
А вот маршруты приедтся выдавать общие, а в файровле уже ограничивать.
sigmatik
Спасибо. А можно теперь такую же инструкцию только для Астра Линукс ? ????
сложные времена требуют сложных решений