MikroTik настройка для начинающих. Часть 3 — Настройка VPN в MikroTik

Пожалуй самой востребованной функцией после Wi-Fi в MikroTik’ах является VPN. Вообще данный сервис набирает особые обороты в последнее время для построения частных защищённых сетей или для получения доступа к ресурсам Интернет с другого IP адреса. К примеру определённые Интернет ресурсы в некоторых странах блокируют доступ с IP адресов из других стран, или из за того, что провайдер использует общий IP адрес, некоторые ресурсы блокируют доступ, по причине большого количества запросов с одного IP, воспринимая это как атаку. В решении всех этих проблем нам поможет VPN. Для начала разберёмся что это, как работает и какие виды VPN существуют.

Предидущие статьи:
MikroTik настройка для начинающих. Часть 1 — Настройка интернет в MikroTik
MikroTik настройка для начинающих. Часть 2 — Настройка Wi-Fi в MikroTik

 

Следующие статьи:
MikroTik настройка для начинающих. Часть 4 — Интернет для детей в MikroTik

 

Настройка VPN в MikroTik (PPTP, L2TP, OpenVPN)

Существует три наиболее часто используемых протокола VPN — это PPTP, L2TP и OpenVPN. Не углубляясь в технические особенности каждого (всё есть на Вики и повторяться не имеет смысла), нам для понимания принципа нужно знать одну простую вещь. VPN — это тоннель точка-точка. Т.е. это то, что позволяет соединить одно устройство с другим через сеть Интернет, создав при этом прямой изолированный тоннель между данными устройствами. Настроить VPN в MikroTik достаточно просто. Всё что нам потребуется для этого знать — это данные для подключения к удалённому VPN серверу и используемый протокол. Как всегда три простых шага.

 
 

Русскоязычный онлайн-курс по MikroTik от нашего коллеги Дмитрия Скромнова. Здесь можно изучить MikroTik и RouterOS самостоятельно по курсу «Настройка оборудования MikroTik». Курс основан на официальной программе MTCNA, но содержит больше информации. Это 162 видеоурока и большая практическая задача, разбитая на 45 лабораторных работ. Время на изучение неограниченно – все материалы передаются бессрочно и их можно пересматривать сколько нужно. Первые 25 уроков можно посмотреть бесплатно, оставив заявку на странице курса.

Настройка профиля

Конечно, можно использовать предустановленный профиль, но тогда не будет полного понимания конфигурации, да и не все протоколы смогут работать с профилем по умолчанию. В независимости от типа VPN, сконфигурированный профиль понадобится и на сервере и на клиенте, за исключением того, что на клиенте поля Local Address и Remote Address не заполняются, соответственно пул создавать не нужно. Никаких специфических настроек мы вносить не будем, единственное что я рекомендую делать — это создавать адрес лист и интерфейс лист для VPN, изменять TCP MSS (бывает очень полезно если у вас PPPoE) и использовать UPnP. Эти нехитрые опции в дальнейшем могут пригодиться.

Для начала создадим список интерфейсов с именем My-VPN-IFs, и пул адресов (на сервере) с именем VPN-pool1 как это сделать, можно прочитать в первой и второй части. Теперь переходим к настройке профиля. Здесь мы указываем имя профиля, имя пула адресов, имя списка адресов, выбираем ранее созданный список интерфейсов и указываем DNS серверы. В качестве DNS можно указать локальный адрес вашего MikroTik’а если у вас присутствуют локальные доменные имена или иные статические записи DNS.

Настройка PPP профиля в MikroTik
Настройка PPP профиля в MikroTik

Теперь сохраняем профиль и переходим к настройке сервера. Естественно, подразумевается что сервером VPN выступает один MikroTik, а клиентом другой.

Важно!!! Для OpenVPN, в профиле, поле Local Address не должно быть пустым! Здесь необходимо указать IP из той же сети что и указанный пул, но при этом этот адрес не должен входить в указанный пул. Проще говоря, если мы используем сеть 10.0.3.0/24, из которой используется пул 10.0.3.10-10.0.3.100, то локальный адрес должен быть в промежутке между 10.0.3.1-10.0.3.9 или 10.0.3.101-10.0.3.254.

 
 

Настройка сервера

Сложность Настройки VPN сервера в MikroTik напрямую зависит от выбранного протокола. Рассмотрим каждый, в порядке возрастания сложности, предварительно создав пользователя(ей) для аутентификации на нашем сервере. Данная конфигурация идентична для всех типов VPN.

Настройка PPP пользователя в MikroTik
Настройка PPP пользователя в MikroTik

В дальнейшем именно эти данные будут использованны для аутентификации на нашем VPN сервере. Помимо логина и пароля, здесь для каждого пользователя можно указать к какому сервису данный пользователь будет иметь доступ (Service), указать локальный и клиентский IP адрес (Local/Remote address), добавить маршрут (Routes) и установить ограничения (Limit *).

PPTP — самый простой тип VPN как с точки зрения конфигурации, так и защищённости. Считается наиболее производительным за счёт отсутствия вменяемого шифрования, однако это очень древний протокол, который стоит использовать только в крайнем случае.

Настройка PPTP сервера в MikroTik
Настройка PPTP сервера в MikroTik

L2TP — промышленный стандарт среди VPN. В связке с IPsec используется повсеместно всевозможными банками, ритейл сетями и прочими крупными компаниями. Требует дополнительных ресурсов за счёт шифрования, однако считается одним из наиболее защищённых. Из минусов здесь только один IPsec пароль. Это значит, что все пользователи этого VPN сервера будут использовать один IPsec пароль при разных паролях аутентификации. Из рекомендаций пожалуй самые очевидные — включить IPsec и отключить chap и pap, чтобы пароли не летали в открытом или плохо шифрованном виде.

Настройка L2TP сервера в MikroTik
Настройка L2TP сервера в MikroTik

OpenVPN — на мой взгляд это самый достойный протокол, который обеспечит идеальный баланс скорости, защиты данных и надежности. Собственно говоря, именно этот протокол стоит использовать и именно он используется в качестве основного всевозможными VPN-сервисами. Для работы этого протокола, на обеих сторонах (клиент-сервер) используются (опционально) SSL сертификаты, которые нам необходимо сгенерировать. Для начала генерируем корневой сертификат (УЦ).

Создание SSL сертификата в MikroTik
Создание SSL сертификата в MikroTik
Создание CA SSL сертификата в MikroTik
Создание CA SSL сертификата в MikroTik

Рекомендуется указывать 127.0.0.1 для корневого сертификата, однако любой действующий IP адрес на данном MikroTik’е тоже подойдёт. По завершению процесса в поле Progress появится надпись done. После её появления, закрываем все окошки. Вообще, стоит заполнять все реквизиты SSL сертификата, но мы здесь чуток поленимся 😉 .
Теперь переходим к созданию сертификата OpenVPN сервера и клиента. Процесс аналогичен предыдущему, за исключением пары пунктов. Здесь мы указываем не IP хоста, а корневой сертификат УЦ (CA) и естественно другое (уникальное) имя создаваемого сертификата.

Создание OVPN SSL сертификата в MikroTik
Создание OVPN SSL сертификата в MikroTik
 Создание клиентского OVPN SSL сертификата в MikroTik
Создание клиентского OVPN SSL сертификата в MikroTik

После того как все сертификаты созданы, нужно экспортировать корневой сертификат и сертификат+ключ всех клиентов. Важно! Корневой сертификат в отличие от клиентских экспортируется без закрытого ключа, поэтому поле Export Passphrase оставляем пустым. В то же время, все пароли у ключей клиентских сертификатов должны быть разными (уникальными) и не совпадать с паролями этих клиентов. Эти пароли необходимо запомнить/записать!!! Экспортированные сертификаты можно найти в файлах на локальном диске.

Экспорт CA SSL сертификата в MikroTik
Экспорт CA SSL сертификата в MikroTik
Экспорт SSL сертификата в MikroTik
Экспорт SSL сертификата в MikroTik
Экспортированные SSL сертификаты в MikroTik
Экспортированные SSL сертификаты в MikroTik

Справившись с сертификатами, переходим к настройке OpenVPN сервера. Здесь выбираем сертификат OpenVPN сервера, указываем на необходимость клиентского сертификата и выбираем способы шифрования.

Настройка OVPN сервера в MikroTik
Настройка OVPN сервера в MikroTik

Так выглядит конфигурация VPN сервера в MikroTik для наиболее популярных протоколов. Естественно, чтобы не углубляться в подробности, здесь опущено много параметров, поэтому если возникают вопросы по какому-то из них, не стесняемся, оставляем комментарии, задаём вопросы.

 
 

Настройка клиента

Теперь рассмотрим настройки клиентов применительно к каждому протоколу. Аналогично серверу, начнём по мере возрастания сложности. Напомню, что на клиенте так же как и на сервере необходимо создать профиль VPN, в котором в отличие от сервера поля Local Address и Remote Address не заполняются, а пул не создаётся.

PPTP — в поле Connect To вводим IP адрес или доменное имя нашего сервера. Далее логин, пароль, профиль и тип шифрования пароля. Жмём Apply, получаем результат. Как только увидели в нижней части окна running и Status: connected, можем переходить к использованию.

Настройка PPTP клиента в MikroTik
Настройка PPTP клиента в MikroTik

L2TP — от предыдущего отличается только опциями IPsec, поэтому действуем по аналогии.

Настройка L2TP клиента в MikroTik
Настройка L2TP клиента в MikroTik

OpenVPN — как и сервер, требует в нашей конфигурации SSL, поэтому импортируем экспортированные с сервера сертификаты и ключ. Для начала загружаем их в систему.

Импорт SSL сертификатов в MikroTik
Импорт SSL сертификатов в MikroTik

Теперь загруженные сертификаты необходимо импортировать в систему. Для закрытого ключа используем ранее введённый на сервере пароль.

Импорт корневого SSL сертификата в MikroTik
Импорт корневого SSL сертификата в MikroTik
Импорт клиентского SSL сертификата в MikroTik
Импорт клиентского SSL сертификата в MikroTik
Импорт закрытого ключа сертификата в MikroTik
Импорт закрытого ключа сертификата в MikroTik

Выполнив эти нехитрые действия, можем переходить к настройке OpenVPN клиента. Аналогично предыдущим, за исключением поля выбора сертификата и типа аутентификации. Если вдруг не получилось с первого раза, напомню про поле Local Address в профиле на сервере.

Настройка OpenVPN клиента в MikroTik
Настройка OpenVPN клиента в MikroTik

Вот собственно и всё, теперь можно использовать VPN как душе угодно! Если вдруг возникли сложности, вопросы или предложения, пишем в форме для комментариев ниже, именно благодаря вашим комментариям я выбираю наиболее актуальные для вас темы, ну а пока, буду делать следующий рецепт как «готовить» MikroTik.

Друзья, для тех, кто хочет стать настоящим профи, я рекомендую пройти Онлайн-курс по MikroTik на русском от нашего коллеги Дмитрия Скромнова. Здесь можно изучить MikroTik и RouterOS самостоятельно по курсу «Настройка оборудования MikroTik». Курс основан на официальной программе MTCNA, но содержит больше информации. Это 162 видеоурока и большая практическая задача, разбитая на 45 лабораторных работ. Время на изучение неограниченно – все материалы передаются бессрочно и их можно пересматривать сколько нужно. Первые 25 уроков можно посмотреть бесплатно, оставив заявку на странице курса.

MikroTik настройка для начинающих. Часть 3 — Настройка VPN в MikroTik

40 мыслей о “MikroTik настройка для начинающих. Часть 3 — Настройка VPN в MikroTik

  • 19.11.2018 в 22:59
    Permalink

    Спасибо! Все очень подробно разжевано.
    А можно попросить Вас сделать подобную инструкцию для новичков по настройке firewall-а в MikroTik.

    Ответить
    • 20.11.2018 в 01:27
      Permalink

      Здравствуйте! Да, это тема следующих статей.

      Ответить
      • 07.02.2024 в 13:45
        Permalink

        Настраиваю по вашим рекомендациям РРТР клиент. Ничегоьне работает, такое впечатление, что не хватает маршрута либо правила пропускающегоьтрафик интернета через созданное vpn соединение

        Ответить
  • 17.01.2019 в 15:02
    Permalink

    За инструкцию спасибо. А что если с двух сторон находится разное оборудование. С одной стороны Mikrotik а с другой TP-Link TL-ER6120. Как настроить LAN-to-LAN, и возможно ли это вообще? Нужно, чтоб две удалённые друг от друга локальные сети видели друг друга.

    Ответить
    • 17.01.2019 в 18:04
      Permalink

      Здравствуйте. Если вы используете одинаковые типы тоннелей с двух сторон, то вендор не имеет значения. Если вам необходимо построить связность сетей (не устройств) на втором уровне, то вам нужен EoIP (MikroTik)^ если на третьем, то при условии того, что адресация в этих сетях разная, достаточно будет статической маршрутизации.

      Ответить
  • 05.06.2019 в 11:04
    Permalink

    Можно ли указать конкретный ip или диапазон внешних адресов для ovpn клиента, с которого ему разрешено подключаться.

    Ответить
    • 05.06.2019 в 14:13
      Permalink

      Здравствуйте!
      В явном виде нет, но вы можете создать статический маршрут для конкретного соединения. Т.е. Ваш клиент подключается к удалённому серверу 192.0.2.1, а вы указываете что всё что идёт на 192.0.2.1, идёт через шлюз [конкретный IP Вашего маршрутизатора].

      Ответить
  • 03.07.2019 в 00:01
    Permalink

    Всё по полочкам! Респект! Только не понял каким должно быть содержание полей «Address list» и «Interface list» при настройке нового PPP профиля?

    Ответить
    • 03.07.2019 в 10:15
      Permalink

      Здравствуйте!
      Это те листы, в которые будут добавляться новые соединения. Строго говоря, вы создаёте новые или выбираете имеющиеся адрес/интерфейс листы, в которые будут добавлены новые соединения использующие данный профиль.

      Ответить
      • 06.09.2021 в 16:30
        Permalink

        Здравствуйте. Все же не понятно, где создается «Address list». В статье не указано. Подскажите, пожалуйста. Заранее спасибо.

        Ответить
        • 06.09.2021 в 18:22
          Permalink

          Здравствуйте!
          IP -> Firewall -> Address lists (вкладка)

          Но! В случае с профилем, он сам создаёт эти адрес листы. Просто введите имя адрес листа которое считаете нужным, если у Вас не создано ни одного адрес листа.

          Ответить
  • 04.07.2019 в 00:33
    Permalink

    Подскажите, а можно каким-то образом управлять скоростью соединений. надо объединить несколько офисов в одну сеть. В каждой точке имеется какой-то канал в инет (предположим 20 мб/с). Возможно ли сделать так, чтоб 10 резервировалось под нужды впн, остальное для работы в интернет (чтоб пользователи, работающие в интернет не забили канал для объединения сетей)?

    Ответить
    • 17.08.2019 в 21:11
      Permalink

      Можно ограничить для группы

      Ответить
  • 17.08.2019 в 21:10
    Permalink

    Спасибо большое за ваши статьи! Я купил MikroTik и дома настроил всё по вашим мануалам. Интернет «летает» даже быстрее, чем на старом роутере Asus.

    Ответить
  • 29.10.2019 в 01:57
    Permalink

    шикарная статья. можно такую на новую версию микротика?

    Ответить
  • 21.11.2019 в 13:19
    Permalink

    Здравствуйте!
    «Важно!!! Для OpenVPN, в профиле, поле Local Address не должно быть пустым! …»
    Подскажите, а вслучает настройки профиля для l2tp, что прописывать в
    «Local Address»

    Ответить
    • 21.11.2019 в 16:57
      Permalink

      Здравствуйте! Используйте везде пулы.

      Ответить
      • 22.11.2019 в 10:37
        Permalink

        Здравствуйте!
        «используйте везде пулы». Пожалуй в во всех VPNах на MikroTik, волшебная часть настроек, — это маршруты. При правильной сетевой адресации(сеть класса b) в VPN , маршруты в MikroTik строятся автоматом. Это верно?

        Ответить
        • 23.11.2019 в 12:07
          Permalink

          Здравствуйте! Маршрут для клиента создаётся автоматически.

          Ответить
  • 22.11.2019 в 10:44
    Permalink

    Здравствуйте!
    L2tp-ipsec, сервер на Mikrotik CHR. Клиенты на windows 10 цепляются и висят сколько нужно, берут инет и из шлюза vpn и от своего поставщика, как скажем, все хорошо. А вот клиенты на android, с разными версиями этого android, все отваливаются минут 10, 30 работы и готово.
    Надеюсь найдете времени подсказать решение.
    Спасибо!

    Ответить
    • 23.11.2019 в 12:14
      Permalink

      Здравствуйте! Без логов сказать сложно. На первый взгляд выглядит как отключение по таймауту. Если в логах есть строка содержащая «hungup» то скорее всего так и есть. В любом случае, без детального анализа логов сказать будет сложно.

      Ответить
      • 24.11.2019 в 14:10
        Permalink

        Добрый день!
        12:10:48 l2tp,ppp,info dMb: connected
        13:34:49 l2tp,ppp,info dMb: terminating… — peer is not responding
        13:34:49 l2tp,ppp,info,account ddMob logged out,
        13:34:49 l2tp,ppp,info dMb: disconnected
        вот такая история.
        Бывает подольше висит.

        Ответить
        • 24.11.2019 в 16:44
          Permalink

          Попробуйте увеличить «Keepalive timeout». Но судя по тому что клиент перестаёт отвечать — это похоже на то что либо он потерял соединение с сетью либо отключил соединение по таймауту не оповестив об этом сервер.
          Ещё советую посмотреть в /ip ipsec proposal
          Там можно поэкспериментировать с алгоритмами шифрования и аутентификации. Опять же Lifetime поднять…
          А вообще пробовали отключать IPsec? И в момент дисконектов устройств, они остаются в сети? Может дисконнекту VPN предшествовал дисконнект Wi-Fi?

          Ответить
          • 24.11.2019 в 17:04
            Permalink

            Спасибо!
            …android подключен через мобильного оператора. Сначала рвется соединение на MT, на андроид продолжает висеть l2tp значек соединения, но данные не ходят. Приходится переподключать.
            ..04:26:34 ipsec,info purging ISAKMP-SA xx.x.xxx.xx(serv)[4500]xxx.xxx.xx.xxx(client)[2017]
            04:26:34 ipsec,info ISAKMP-SA deleted xx.x.xxx.xx(serv)[4500]-xxx.xxx.xx.xxx(client)[2017] spi:xx…:xx… rekey:1
            04:39:43 l2tp,info first L2TP UDP packet received from 146.88.240.4
            04:43:00 l2tp,ppp,info dMb: terminating… — peer is not responding
            04:43:00 l2tp,ppp,info,account dMb logged out
            04:43:00 l2tp,ppp,info dMb: disconnected
            …вот фрагмент ночного отключения.

    • 04.03.2020 в 23:45
      Permalink

      Не могу настроить l2tp для подключения с винды10. Сможете подсказать что делаю не так? Все проверил уже…

      Ответить
      • 05.03.2020 в 03:22
        Permalink

        Здравствуйте!
        Нужно вывод следующих команд на MikroTik (выполняется в терминале устройства):

        /ppp expo

        /interface l2tp-server expo

        И покажите что вы делаете в Win

        !!! Уберите логины+пароли перед публикацией !!!

        Ответить
  • 24.11.2019 в 17:05
    Permalink

    …Lifetime попробую увеличить.

    Ответить
    • 25.11.2019 в 11:30
      Permalink

      ..иземенение параметра Lifetime не решает проблему отключения android клиентов. В нашем случае.

      Ответить
  • 12.03.2020 в 07:21
    Permalink

    Спасибо за статью, а можете подсказать, какие сервисы VPN работают с микротик? Хотел купить роутер и подписаться на protonvpn, но вычитал, что они несовместимы. Спасибо!

    Ответить
    • 12.03.2020 в 16:24
      Permalink

      Здравствуйте! Рад что пригодилась статья. По поводу сторонних сервисов, к сожалению не подскажу. Я бы взял VPS и поднял на нём свой VPN.

      Ответить
  • 01.08.2020 в 19:14
    Permalink

    День добрый! Настроил OVPN между двумя микротиками. По вашей статье. Соединение устанавливается. Трафик идёт между сетями микротиков. Если посмотреть статус соединения, например на клиенте, то строки Lcal address и Remote — пустые. Со стороны сервера так же. Так должно быть

    Ответить
    • 02.08.2020 в 05:17
      Permalink

      Здравствуйте. Да, это нормально, так как OpenVPN функционирует иначе и по своей сути, не вписывается в стандартную модель PPP. Поэтому локальный и удаленный адреса на вкладке состояния интерфейса в Winbox, отображается пустыми. Если же вы перейдёте в IP->Adresses, то увидите динамически назначенный адрес, как и динамический маршрут в IP->Routes.

      Ответить
    • 20.02.2022 в 19:22
      Permalink

      Здравствуйте! Прочитайте внимательно статью, там всё написаною

      Ответить
    • 18.06.2022 в 15:31
      Permalink

      В данной статье описано как это сделать.

      Ответить
  • 10.05.2023 в 23:04
    Permalink

    Все работает. Супер появилась задача впн только для одного порта (интерфейса). Как можно реализовать ?

    Ответить
  • 09.09.2024 в 17:31
    Permalink

    Смотрю давно нет статей в блоге, может напишите статейку про то, как реализуется openvpn client в mikritik при помощи консольных команд на основе udp трафика. Как проверить, что трафик идет именно по UDP, а не по TCP через VPN?

    Я сам все это уже сделал, НО есть проблема, подключение по wi-fi иногда отваливается, и еще скачет нагрузка на процессоре аж до 100% (на микротике).

    Может я что не так настроил, вот хочется посмотреть, как это делает опытный ( не побоюсь этого слова =) ) специалист, а не дилетант в виде меня…

    Ответить

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.