Пожалуй самой востребованной функцией после 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.
Теперь сохраняем профиль и переходим к настройке сервера. Естественно, подразумевается что сервером 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.
В дальнейшем именно эти данные будут использованны для аутентификации на нашем VPN сервере. Помимо логина и пароля, здесь для каждого пользователя можно указать к какому сервису данный пользователь будет иметь доступ (Service), указать локальный и клиентский IP адрес (Local/Remote address), добавить маршрут (Routes) и установить ограничения (Limit *).
PPTP — самый простой тип VPN как с точки зрения конфигурации, так и защищённости. Считается наиболее производительным за счёт отсутствия вменяемого шифрования, однако это очень древний протокол, который стоит использовать только в крайнем случае.
L2TP — промышленный стандарт среди VPN. В связке с IPsec используется повсеместно всевозможными банками, ритейл сетями и прочими крупными компаниями. Требует дополнительных ресурсов за счёт шифрования, однако считается одним из наиболее защищённых. Из минусов здесь только один IPsec пароль. Это значит, что все пользователи этого VPN сервера будут использовать один IPsec пароль при разных паролях аутентификации. Из рекомендаций пожалуй самые очевидные — включить IPsec и отключить chap и pap, чтобы пароли не летали в открытом или плохо шифрованном виде.
OpenVPN — на мой взгляд это самый достойный протокол, который обеспечит идеальный баланс скорости, защиты данных и надежности. Собственно говоря, именно этот протокол стоит использовать и именно он используется в качестве основного всевозможными VPN-сервисами. Для работы этого протокола, на обеих сторонах (клиент-сервер) используются (опционально) SSL сертификаты, которые нам необходимо сгенерировать. Для начала генерируем корневой сертификат (УЦ).
Рекомендуется указывать 127.0.0.1 для корневого сертификата, однако любой действующий IP адрес на данном MikroTik’е тоже подойдёт. По завершению процесса в поле Progress
появится надпись done
. После её появления, закрываем все окошки. Вообще, стоит заполнять все реквизиты SSL сертификата, но мы здесь чуток поленимся 😉 .
Теперь переходим к созданию сертификата OpenVPN сервера и клиента. Процесс аналогичен предыдущему, за исключением пары пунктов. Здесь мы указываем не IP хоста, а корневой сертификат УЦ (CA) и естественно другое (уникальное) имя создаваемого сертификата.
После того как все сертификаты созданы, нужно экспортировать корневой сертификат и сертификат+ключ всех клиентов. Важно! Корневой сертификат в отличие от клиентских экспортируется без закрытого ключа, поэтому поле Export Passphrase оставляем пустым. В то же время, все пароли у ключей клиентских сертификатов должны быть разными (уникальными) и не совпадать с паролями этих клиентов. Эти пароли необходимо запомнить/записать!!! Экспортированные сертификаты можно найти в файлах на локальном диске.
Справившись с сертификатами, переходим к настройке OpenVPN сервера. Здесь выбираем сертификат OpenVPN сервера, указываем на необходимость клиентского сертификата и выбираем способы шифрования.
Так выглядит конфигурация VPN сервера в MikroTik для наиболее популярных протоколов. Естественно, чтобы не углубляться в подробности, здесь опущено много параметров, поэтому если возникают вопросы по какому-то из них, не стесняемся, оставляем комментарии, задаём вопросы.
Настройка клиента
Теперь рассмотрим настройки клиентов применительно к каждому протоколу. Аналогично серверу, начнём по мере возрастания сложности. Напомню, что на клиенте так же как и на сервере необходимо создать профиль VPN, в котором в отличие от сервера поля Local Address
и Remote Address
не заполняются, а пул не создаётся.
PPTP — в поле Connect To вводим IP адрес или доменное имя нашего сервера. Далее логин, пароль, профиль и тип шифрования пароля. Жмём Apply, получаем результат. Как только увидели в нижней части окна running и Status: connected, можем переходить к использованию.
L2TP — от предыдущего отличается только опциями IPsec, поэтому действуем по аналогии.
OpenVPN — как и сервер, требует в нашей конфигурации SSL, поэтому импортируем экспортированные с сервера сертификаты и ключ. Для начала загружаем их в систему.
Теперь загруженные сертификаты необходимо импортировать в систему. Для закрытого ключа используем ранее введённый на сервере пароль.
Выполнив эти нехитрые действия, можем переходить к настройке OpenVPN клиента. Аналогично предыдущим, за исключением поля выбора сертификата и типа аутентификации. Если вдруг не получилось с первого раза, напомню про поле Local Address
в профиле на сервере.
Вот собственно и всё, теперь можно использовать VPN как душе угодно! Если вдруг возникли сложности, вопросы или предложения, пишем в форме для комментариев ниже, именно благодаря вашим комментариям я выбираю наиболее актуальные для вас темы, ну а пока, буду делать следующий рецепт как «готовить» MikroTik.
Друзья, для тех, кто хочет стать настоящим профи, я рекомендую пройти Онлайн-курс по MikroTik на русском от нашего коллеги Дмитрия Скромнова. Здесь можно изучить MikroTik и RouterOS самостоятельно по курсу «Настройка оборудования MikroTik». Курс основан на официальной программе MTCNA, но содержит больше информации. Это 162 видеоурока и большая практическая задача, разбитая на 45 лабораторных работ. Время на изучение неограниченно – все материалы передаются бессрочно и их можно пересматривать сколько нужно. Первые 25 уроков можно посмотреть бесплатно, оставив заявку на странице курса.
Спасибо! Все очень подробно разжевано.
А можно попросить Вас сделать подобную инструкцию для новичков по настройке firewall-а в MikroTik.
Здравствуйте! Да, это тема следующих статей.
Настраиваю по вашим рекомендациям РРТР клиент. Ничегоьне работает, такое впечатление, что не хватает маршрута либо правила пропускающегоьтрафик интернета через созданное vpn соединение
За инструкцию спасибо. А что если с двух сторон находится разное оборудование. С одной стороны Mikrotik а с другой TP-Link TL-ER6120. Как настроить LAN-to-LAN, и возможно ли это вообще? Нужно, чтоб две удалённые друг от друга локальные сети видели друг друга.
Здравствуйте. Если вы используете одинаковые типы тоннелей с двух сторон, то вендор не имеет значения. Если вам необходимо построить связность сетей (не устройств) на втором уровне, то вам нужен EoIP (MikroTik)^ если на третьем, то при условии того, что адресация в этих сетях разная, достаточно будет статической маршрутизации.
Можно ли указать конкретный ip или диапазон внешних адресов для ovpn клиента, с которого ему разрешено подключаться.
Здравствуйте!
В явном виде нет, но вы можете создать статический маршрут для конкретного соединения. Т.е. Ваш клиент подключается к удалённому серверу 192.0.2.1, а вы указываете что всё что идёт на 192.0.2.1, идёт через шлюз [конкретный IP Вашего маршрутизатора].
Всё по полочкам! Респект! Только не понял каким должно быть содержание полей «Address list» и «Interface list» при настройке нового PPP профиля?
Здравствуйте!
Это те листы, в которые будут добавляться новые соединения. Строго говоря, вы создаёте новые или выбираете имеющиеся адрес/интерфейс листы, в которые будут добавлены новые соединения использующие данный профиль.
Здравствуйте. Все же не понятно, где создается «Address list». В статье не указано. Подскажите, пожалуйста. Заранее спасибо.
Здравствуйте!
IP -> Firewall -> Address lists (вкладка)
Но! В случае с профилем, он сам создаёт эти адрес листы. Просто введите имя адрес листа которое считаете нужным, если у Вас не создано ни одного адрес листа.
Подскажите, а можно каким-то образом управлять скоростью соединений. надо объединить несколько офисов в одну сеть. В каждой точке имеется какой-то канал в инет (предположим 20 мб/с). Возможно ли сделать так, чтоб 10 резервировалось под нужды впн, остальное для работы в интернет (чтоб пользователи, работающие в интернет не забили канал для объединения сетей)?
Можно ограничить для группы
Спасибо большое за ваши статьи! Я купил MikroTik и дома настроил всё по вашим мануалам. Интернет «летает» даже быстрее, чем на старом роутере Asus.
шикарная статья. можно такую на новую версию микротика?
Здравствуйте!
«Важно!!! Для OpenVPN, в профиле, поле Local Address не должно быть пустым! …»
Подскажите, а вслучает настройки профиля для l2tp, что прописывать в
«Local Address»
Здравствуйте! Используйте везде пулы.
Здравствуйте!
«используйте везде пулы». Пожалуй в во всех VPNах на MikroTik, волшебная часть настроек, — это маршруты. При правильной сетевой адресации(сеть класса b) в VPN , маршруты в MikroTik строятся автоматом. Это верно?
Здравствуйте! Маршрут для клиента создаётся автоматически.
Здравствуйте!
L2tp-ipsec, сервер на Mikrotik CHR. Клиенты на windows 10 цепляются и висят сколько нужно, берут инет и из шлюза vpn и от своего поставщика, как скажем, все хорошо. А вот клиенты на android, с разными версиями этого android, все отваливаются минут 10, 30 работы и готово.
Надеюсь найдете времени подсказать решение.
Спасибо!
Здравствуйте! Без логов сказать сложно. На первый взгляд выглядит как отключение по таймауту. Если в логах есть строка содержащая «hungup» то скорее всего так и есть. В любом случае, без детального анализа логов сказать будет сложно.
Добрый день!
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
вот такая история.
Бывает подольше висит.
Попробуйте увеличить «Keepalive timeout». Но судя по тому что клиент перестаёт отвечать — это похоже на то что либо он потерял соединение с сетью либо отключил соединение по таймауту не оповестив об этом сервер.
Ещё советую посмотреть в /ip ipsec proposal
Там можно поэкспериментировать с алгоритмами шифрования и аутентификации. Опять же Lifetime поднять…
А вообще пробовали отключать IPsec? И в момент дисконектов устройств, они остаются в сети? Может дисконнекту VPN предшествовал дисконнект Wi-Fi?
Спасибо!
…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
…вот фрагмент ночного отключения.
Не могу настроить l2tp для подключения с винды10. Сможете подсказать что делаю не так? Все проверил уже…
Здравствуйте!
Нужно вывод следующих команд на MikroTik (выполняется в терминале устройства):
/ppp expo
/interface l2tp-server expo
И покажите что вы делаете в Win
!!! Уберите логины+пароли перед публикацией !!!
…Lifetime попробую увеличить.
..иземенение параметра Lifetime не решает проблему отключения android клиентов. В нашем случае.
Спасибо за статью, а можете подсказать, какие сервисы VPN работают с микротик? Хотел купить роутер и подписаться на protonvpn, но вычитал, что они несовместимы. Спасибо!
Здравствуйте! Рад что пригодилась статья. По поводу сторонних сервисов, к сожалению не подскажу. Я бы взял VPS и поднял на нём свой VPN.
День добрый! Настроил OVPN между двумя микротиками. По вашей статье. Соединение устанавливается. Трафик идёт между сетями микротиков. Если посмотреть статус соединения, например на клиенте, то строки Lcal address и Remote — пустые. Со стороны сервера так же. Так должно быть
Здравствуйте. Да, это нормально, так как OpenVPN функционирует иначе и по своей сути, не вписывается в стандартную модель PPP. Поэтому локальный и удаленный адреса на вкладке состояния интерфейса в Winbox, отображается пустыми. Если же вы перейдёте в IP->Adresses, то увидите динамически назначенный адрес, как и динамический маршрут в IP->Routes.
Хочу gjyznm как поднять свой vpn сервер mikrotik
Здравствуйте! Прочитайте внимательно статью, там всё написаною
Хочу купить как поднять свой vpn сервер mikrotik
В данной статье описано как это сделать.
Где узнать про как поднять свой vpn сервер mikrotik
Читате статью
Все работает. Супер появилась задача впн только для одного порта (интерфейса). Как можно реализовать ?
Смотрю давно нет статей в блоге, может напишите статейку про то, как реализуется openvpn client в mikritik при помощи консольных команд на основе udp трафика. Как проверить, что трафик идет именно по UDP, а не по TCP через VPN?
Я сам все это уже сделал, НО есть проблема, подключение по wi-fi иногда отваливается, и еще скачет нагрузка на процессоре аж до 100% (на микротике).
Может я что не так настроил, вот хочется посмотреть, как это делает опытный ( не побоюсь этого слова =) ) специалист, а не дилетант в виде меня…