VPN для удаленного доступа сотрудников в офис с помощью Mikrotik

Это не полноценный гайд по настройке, а некоторые важные моменты, которые мне встретились и решение которых было тем или иным образом найдено. Сознательно не рассматривается OpenVPN на базе Mikrotik — а именно L2TP-туннели. OpenVPN в микротике — штука специфическая, и требует установки дополнительного ПО на стороне клиента(что иногда — недоступно), а L2TP-VPN-подключение — настраивается штатными средствами Windows

Сама настройка — несложная, опишу ее в конце статьи кратко. А тут отмечу пару моментов, которые мне показалось важным отметить

Создание Secrets сразу с заданным IP под конкретных клиентов.

Задавайте им сразу конкретный IP-адрес в поле Remote address. Однозначная связь удаленного клиента и его VPN-IP-адреса позволит в дальнейшем чуть более четко понимать кто именно обращается на офисные ресурсы

Используйте IpSec.

В последних прошивках это делается буквально одной галкой при настройке — а надежность все же существенно выше

Настройте fail2ban для кулхацкеров.

Я отлавливаю неудачные подключения в цепочке Output по вхождению строки M=bad в поле Content на вкладке Advanced (посмотрите на внутренности пакета которым L2TP сервер сообщает о неудачном подключении). далее перебрасываю в цепочку, где уже работает стандартная ступенчатая блокировка, которую сто тыщ раз уже везде описали как настраивать (кратко: по очереди добавлять адрес в динамические листы, и если число попыток превысит порог — добавлять в полный банлист). Единственный нюанс, т.к. отлов злодеев идет в цепочке Output то работа идет не с src-address а с dst-address, ну надеюсь это и так понятно.

add action=jump chain=output comment="Jump to L2TP-Brutforce" content="M=bad" jump-target=L2TP_Brutforce log=yes log-prefix=L2TP_

Маршрутизация удаленных клиентов.

  • Классовая маршрутизация: тут нужно понимать, что при подключении типовым VPN-клиентом в Windows маршрут все таки передается, но он передается — классовый, т.е. основанный на классе выделенной сети под VPN-клиенты. Например, если вы выделили клиентам сеть 192.168.200.200/27 то у клиента все таки БУДЕТ создан маршрут при подключении к VPN, причем на ВСЮ сеть 192.168.200.0/24 (т.е. в соответствии с ее классом). А зная это можно сделать ход конем и либо
    • выделить в существующей сети часть адресов под VPN-клиентов (например из сети 192.168.200.00/24 откусить кусочек 192.168.200.200/27 под VPN клиентов, выдавать им эти адреса при подключении и они будут прекрасно ходить в вашу локальную сеть. Важный момент: не забыть при этом настроить режим proxy-arp на офисном Bridge, иначе работать не будет (т.к. несмотря на одинаковые адреса — физически хотсы будут в разных широковещательных доменах и без Proxy-arp — они просто не смогут узнать нужный MAC-адрес :))
    • либо перевести сеть в офисе — классом повыше (172.16.0.0/16 или 10.0.0.0/8), и тогда маршрут будет еще более общий — сразу целиком на 172.16.0.0/16
  • Постоянный маршрут на клиенте: прописать у клиента сразу готовый маршрут в нужную сеть, чтобы подключаясь к VPN он имел в постоянной таблице маршрутизации готовый маршрут в офисную сеть и не имел никаких проблем. Это хороший вариант, но при добавлении маршрута нужно помнит про то, что обязательно нужно указывать ID VPN-интерфейса, иначе маршрут будет работать на первого же переподключения. ID интерфейса можно посмотреть через ту же самую команду route print — там в начале есть табличка всех активных интерфейсов с их ID

Важный нюанс адресации сетей

Всегда следует выбирать адресацию в офисной сети — отличающуюся от типовых настроек 192.168.1.0/24 192.168.0.0/24 192.168.88.0/24 , иначе вы рискуете столкнуться с ситуацией, когда

  • В офисе есть хост на который нужно подключаться удаленно (напрмиер сервер терминалов с адресом 192.168.1.10)
  • Клиент подключается из домашней сети где также настроена сеть 192.168.1.0/24
  • Получается конфликт, его компьютер будет иметь два маршрута до хоста, причем один из них — Direct connect, в итоге связь работать не будет.

Чтобы решить такую проблему можно сделать так

  • Выделять VPN-клиентам «недефолтную» сеть, например 192.168.200.0/24
  • Задавать им очень «узкие» статические маршруты на Windows-клиентах, например route add 192.168.1.10 mask 255.255.255.255 192.168.200.1 IF 55 -p (здесь не забываем что нужно указывать параметр IF (ID интерфейса) иначе после реконнекта маршрут работать больше не будет)

В такой ситуации, даже если у клиента будет дома сеть 192.168.1./24, то у него локальная связь нарушится только с одним хостом — 192.168.1.15. Ущерб есть — но он минимизирован.

Краткий лист настроек L2TP-Сервера на Mikrotik

Указываю только те параметры которые отличаются от default на прошивке 6.47.10 Long term с примером реальных значений

  • IP-Pool-Add
    • Name (vpn_pool)
    • Addresses (192.168.200.100-192.168.200.254)
  • PPP-Profiles-Add
    • Name (l2tp-profile)
    • Local Address (192.168.200.1)
    • RemoteAddress (vpn_pool)
    • Change TCP MSS (yes)
  • PPP-Secrets-Add
    • Name (User1)
    • password (12345678)
    • Service (l2tp-profile)
    • Local Address (192.168.200.1)
    • RemoteAddress (192.168.200.101)
  • PPP-L2TP Server
    • Enable (поставить галочку)
    • Default profile (l2tp profile)
    • Authentication (mschap2 only!!)
    • Use IPsec (yes)
    • IPSec password (12345678)

Краткий лист настроек VPN на стороне Windows-клиента (ОС: Windows 10)

  • ПУСК — ПАРАМЕТРЫ — СЕТЬ и ИНТЕРНЕТ — VPN — Добавить VPN подключение
  • Поставщик услуг (Встроенный)
  • Имя подключения (Office-VPN)
  • имя или адрес сервера (vpn.mycompany,ru)
  • Имя пользователя (User1)
  • Пароль (12345678)
  • Запомнить мои данные для входа (ДА)

Далее из этого же раздела «ПУСК — ПАРАМЕТРЫ — СЕТЬ и ИНТЕРНЕТ — VPN» подключение можно сразу попасть в «Настройка параметров адаптера»(ссылка справа сверху), найти там созданный WAN Miniport адаптер и зайти в его свойства

  • Свойства — Безопасность — Дополнительные параметры (указать ключ L2TP 12345678)
  • Свойства — Безопасность — Hfphtibnm cktle.obt ghjnjrjks (MS-CHAP v2 only!!)
  • Свойства — Сеть — IP Версии 4 — Свойства — Дополнительно — Убрать галку «Использовать основной шлюз в удаленной сети»

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Post Navigation

Яндекс.Метрика