Настройка vpn на роутере микротик

mikrotik-vpn-client-001.pngС ростом значения интернета в нашей повседневной жизни все более востребованными становятся различные сетевые технологии. Если раньше VPN был преимущественно уделом крупных организаций, то сегодня он используется чуть ли не в каждой сети, действительно, сотрудники стали мобильными и удаленный доступ к ресурсам сети уже не блажь, а насущная необходимость. Настройка роутера Mikrotik как VPN-клиента вопрос, на первый взгляд, простой, но есть некоторые не очевидные моменты, которые мы разберем в данной статье.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

В прошлых материалах мы уже коротко рассматривали типы VPN и обращали внимание на неоднозначность используемой терминологии, традиционно термином VPN называют клиент-серверные соединения, где кроме туннельного протокола применяются вспомогательные технологии для установления соединения и контроля его состояния, аутентификации пользователя, согласования параметров подключения и т.д. и т.п. Одним из таких протоколов является PPP.

В рамках данной статьи мы будем рассматривать варианты настройки Mikrotik именно в качестве клиента для поддерживаемых типов VPN-серверов, оставив за кадром туннельные подключения (GRE, IP-IP, EoIP и т.д.). Для работы с этим типом соединений используется специальный раздел PPP, на закладке Interfaces которого можно добавить сетевой интерфейс для нужного типа VPN-клиента. Поддерживаются PPTP, L2TP, SSTP и OpenVPN подключения. Также в списке присутствуют устаревший PPP и PPPoE, который используется для организации доступа в интернет, в данном контексте эти протоколы интереса не представляют.

mikrotik-vpn-client-002.pngТакже аналогичные действия можно выполнить и в разделе Interfaces, никакой разницы откуда вы будете добавлять сетевой интерфейс нет. Но не будем спешить и перейдем на закладку Profiles, где находятся профили используемые при коммутируемых подключениях. По умолчанию созданы два профиля: default и default-encryption, в которых содержатся некоторые настройки для подключения. Почему некоторые? Потому что большинство опций подключения задаются сервером и клиент должен применять именно их, иначе подключение будет невозможным. Поэтому если вы заглянете в эти профили, то увидите, что большинство настроек там не активно.

mikrotik-vpn-client-003.pngЕдинственным различием двух профилей является опция Use Encryption, которая в default-encryption установлена в положение yes и требует обязательного шифрования подключения. Данная опция игнорируется протоколами SSTP и OpenVPN, которые всегда используют шифрованные подключения.

Означает ли это, что если мы выберем профиль default, то ваше соединение не будет шифроваться? Нет, если сервер использует шифрование и не допускает небезопасных подключений, то ваше соединение также будет зашифровано. Но вот если сервер разрешает небезопасные подключения, то клиент вполне может подключиться без шифрования, таким образом можно осуществить атаку с подменой сервера, когда вы получите незашифрованное подключение и не будете знать об этом. Поэтому если вам явно требуется шифрование канала всегда выбирайте профиль default-encryption.

Мы не советуем менять настройки в стандартных профилях, если вам нужно явно задать иные настройки подключения, то создайте собственный профиль. Также учтите, что опция Use Compression игнорируется для OpenVPN соединений, которые в реализации от Mikrotik не могут использовать сжатие трафика.

PPTP-клиент

Пожалуй, это самый простой в настройке тип соединений. Несмотря на то, что используемое в PPTP шифрование не является надежным, этот протокол продолжает широко использоваться благодаря низким накладным расходам и высокой скорости работы, например, для доступа в интернет.

Для настройки PPTP клиента добавьте интерфейс типа PPTP Client и перейдите на закладку Dial Out, где расположены сетевые настройки.

mikrotik-vpn-client-004.pngНастроек немного, и они просты. В поле Connect To укажите FQDN или IP-адрес VPN-сервера, в поля User и Password — имя пользователя и пароль. В Profile выбирается в зависимости от необходимости шифрования нужный профиль. В самом низу рядом с опцией Allow (разрешить) указаны допустимые к использованию протоколы аутентификации, на сегодня безопасным считается только MS-CHAP v2 и следует использовать по возможности только его. Однако помните, что используемый протокол аутентификации должен поддерживаться сервером, в противном случае установить связь вы не сможете.

Опция Keepalive Timeout указывает время переподключения соединения в случае обрыва связи. Бытует мнение, что лучше делать это значение поменьше, мол быстрее будет переподключаться туннель. Но это не так, во-первых, при неполадках на сервере вы будете активно забивать канал и нагружать сервер служебным трафиком, а во-вторых, при кратковременных перебоях связи короткое время будет вызывать переподключение с обрывом всех соединений в канале, а большее значение позволит сохранить туннель. Особенно это актуально для мобильного интернета или беспроводных каналов.

Опция Add Default Route создаст маршрут по умолчанию через туннель, т.е. направит туда весь исходящий трафик, указывайте ее только в том случае, если данный туннель основной способ доступа в интернет.

Никаких иных особенностей и подводных камней здесь нет и если вы правильно указали настройки, то клиент должен будет без проблем подключиться к серверу.

L2TP-клиент

Говоря про L2TP, обычно подразумевают L2TP/IPsec, потому как без шифрования данный протокол в корпоративной среде не используется. Но есть и исключения, некоторые провайдеры, например, Билайн, используют чистый L2TP без шифрования. В этом случае настройки подключения будут выглядеть так:

mikrotik-vpn-client-005.pngОбратите внимание на используемый профиль — default, так как соединение не зашифрованное, с профилем default-encryption вы не сможете подключиться к серверу провайдера. Add Default Route ставим только если это основное соединение с интернет. Также имеет смысл использовать опцию Allow Fast Path, для разгрузки CPU, особенно на младших моделях, но учтите, что с данной опцией соединение может работать неустойчиво, в таком случае ее придется отключить.

Для работы с L2TP/IPsec настройки будут немного иные, во-первых, используем профиль default-encryption и включаем использование IPsec установкой флага Use IPsec, при этом становится активным поле IPsec Secret, куда вводим предварительный ключ.

mikrotik-vpn-client-006.pngОпция Allow Fast Path при использовании IPsec игнорируется и в ее установке нет никакого смысла, так же не забывайте про опцию Add Default Route, в большинстве корпоративных сценариев устанавливать ее не следует.

Вроде бы тоже ничего сложного в настройках L2TP/IPsec нет, но если вы попытаетесь подключиться к Windows Server, то у вас ничего не получится. В чем же дело? А дело в настройках IPsес, перейдем в IP — IPsec — Proposal и откроем настройку по умолчанию. Proposal или предложение IPsec содержит список алгоритмов защиты канала, которые устройство предлагает для установления соединения. Понятно, что для успешного установления канала поддерживаемые методы защиты должны совпадать.

mikrotik-vpn-client-007.pngВ предложении IPsec по умолчанию обращаем внимание на опцию PFS Group, она отвечает за применение технологии совершенной прямой секретности (Perfect forward secrecy, PFS), которая предусматривает создание уникальных сессионных ключей по алгоритму Диффи-Хеллмана, что делает невозможным расшифровку перехваченного IPsec трафика даже при наличии долговременных ключей (в данном случае предварительного ключа).

Windows Server по умолчанию не поддерживает совершенную прямую секретность, поэтому PFS Group нужно выставить в состояние none, после чего соединение успешно установится.

Обратите внимание, что в данном случае мы изменили настройку по умолчанию, но в данном случае это оправдано. Настройки IPsec достаточно сложны и вряд-ли человек не имеющий опыта работы с данной технологией сможет все правильно настроить с первого раза. Но это изменение следует учитывать при создании других соединений, использующих IPsec и приводить настройки с обоих сторон к общему виду.

Хотя более правильным является создание своего предложения (Proposal) и политики (Police) для каждого соединения, но эта тема далеко выходит за рамки статьи.

SSTP-клиент

Мы не будем останавливаться на уже описанных нами опциях, которые общие для всех видов коммутируемых подключений, а сосредоточимся на новых, свойственных именно этому типу VPN. SSTP относится к отдельной подгруппе SSL VPN, которые используют трафик практически не отличимый от HTTPS, что серьезно затрудняет выявление и блокирование таких туннелей.

На что следует обратить внимание при настройке? Давайте сначала посмотрим на окно настроек:

mikrotik-vpn-client-008.pngКак видим, появилась опция Port, где мы можем указать порт подключения, по умолчанию это 443, но можно использовать и любой иной, если 443 порт занят, например, веб-сервером. Также SSTP может прекрасно работать через прокси, в этом случае вам потребуется указать адрес прокси-сервера и используемый им порт в опциях Proxy и Proxy Port.

Также вспоминаем, что SSTP всегда использует шифрование канала, поэтому оно будет работать вне зависимости от выбранного профиля, в данном случае default и default-encryption будут работать одинаково.

Теперь перейдем к специфичным для протокола настройкам, которые мы обвели зеленой рамкой. Поле Certificate используется для указания клиентского сертификата в том случае, если сервер использует аутентификацию по сертификатам, в этом случае его потребуется загрузить на устройство и импортировать в разделе System — Certificates. Во всех остальных случаях в поле должно стоять none.

TLS Version указывает на допустимые к использованию версии TLS, однако это определяется сервером, но следует стараться использовать только протокол TLS 1.2, что позволяет исключить атаки с понижением протокола.

Опция Verify Server Certificate не является обязательной, но позволяет проверить подлинность сервера, исключая атаки типа человек посередине, для этого потребуется импортировать на Mikrotik сертификат центра сертификации (СА) выдавшего сертификат серверу.

Опция Verify Server Address From Certificate позволяет убедиться, что IP-адрес подключения соответствует адресу для имени, указанного в сертификате. Также не является обязательной, но позволяет дополнительно убедиться, что подключаетесь вы именно к тому серверу.

Установка флага в поле PFS включает совершенную прямую секретность, но эта опция должна поддерживаться со стороны сервера.

OpenVPN-клиент

Реализация OpenVPN в Mikrotik вызывает много нареканий, так как сводит на нет все сильные стороны данной технологии и делает ощутимыми слабые. OVPN-клиент не поддерживает сжатие данных и работу по протоколу UDP, если первое не столь значимо на современных каналах, то OpenVPN поверх TCP имеет очень большие накладные расходы и вызывает как повышенную нагрузку на оборудование, так и плохую утилизацию канала. Поэтому от использования OpenVPN на Mikrotik по возможности следует отказаться.

Обычно комплект для подключения OpenVPN клиента составляют сертификат СA, сертификат и закрытый ключ клиента, конфигурационный файл. Нам понадобятся только сертификат и ключ клиента, а если мы хотим проверять подлинность сервера, то еще и сертификат CA, но он не является обязательным для настройки подключения.

Прежде всего загрузим сертификаты и ключи на Mikrotik, затем перейдем в System — Certificates и импортируем сертификат клиента. Он появится в списке сертификатов и напротив него будет буква T, что обозначает trusted, т.е. устройство доверяет этому сертификату. Затем импортируем ключ, здесь важно соблюдать именно эту последовательность, сначала сертификат, потом ключ.

mikrotik-vpn-client-009.pngПосле успешного импорта ключа флаги сменятся на KT, где буква K обозначает наличие закрытого ключа для сертификата. Затем аналогичным образом импортируем сертификат CA сервера, импорт ключа для данного сертификата не нужен. Закрытый ключ CA является самой большой тайной и должен хранится с соблюдением всех мер предосторожности и не при каких обстоятельствах не должен покидать узел СA (центра сертификации).

mikrotik-vpn-client-010.png

Теперь рассмотрим поближе окно настроек подключения, адрес подключения и порт не должны вызвать затруднений, а вот остальные опции нуждаются в пояснении, значимые мы выделили зеленой рамкой.

mikrotik-vpn-client-011.pngНо сначала коснемся опций User и Profile. Первая используется только в случае аутентификации на сервере по имени и паролю, большинство OpenVPN серверов такой тип аутентификации не используют и в этом поле вы можете написать все что угодно, просто оно должно быть заполнено. Профиль также не имеет значения, так как OpenVPN всегда шифрует канал, а опцию сжатия игнорирует.

Mode задает режим работы канала, в терминах OpenVPN ip — это tun (L3), а ethernet — это tap (L2), следует помнить, что режим работы определяется сервером. В поле Certificate укажите импортированный сертификат клиента. Опции Auth и Cipher указывают на используемые сервером криптографические алгоритмы для аутентификации и шифрования, если вы укажете отличные от указанных в конфигурации сервера — то соединение установить не удастся. Если алгоритм аутентификации явно не указан в конфигурации сервера, то по умолчанию используется SHA1.

При настройке OpenVPN клиента на Mikrotik следует помнить, что сервер должен поддерживать соединения по протоколу TCP, без сжатия и TLS-аутентификации, в противном случае подключиться к серверу не удастся.

Опция Verify Server Certificate позволяет проверить подлинность сертификата сервера, что защищает от атак типа человек посередине, но требует импорта сертификата CA сервера.

Маршрутизация

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

mikrotik-vpn-client-012.pngВ данном примере мы отправляем все пакеты к сети 192.168.200.0/24 через L2TP-подключение l2tp-out1. Если вы понимаете основы маршрутизации, то указание правильных маршрутов для вас не составит труда.

Отдельного внимания заслуживает опция Pref. Source, которая не является обязательной, но ее следует указывать, если роутер обслуживает несколько сетей, в ней указывается адрес, с которого роутер будет посылать пакеты по указанному маршруту. Без ее указания доступ роутера к ресурсам удаленных сетей может оказаться невозможным (как и удаленных сетей к нему), на работу клиентов в сетях это не влияет. В качестве значения следует указать адрес, принадлежащий той сети, к которой имеется маршрут с противоположной стороны (т.е. сети за сервером).

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Пожалуй самой востребованной функцией после 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 уроков можно посмотреть бесплатно, оставив заявку на странице курса.

Время на прочтение
3 мин

Количество просмотров 132K

В этом пошаговом руководстве я расскажу, как настроить Mikrotik, чтобы запрещённые сайты автоматом открывались через этот VPN и вы могли избежать танцев с бубнами: один раз настроил и все работает.

В качестве VPN я выбрал SoftEther: он настолько же прост в настройке как и RRAS и такой же быстрый. На стороне VPN сервера включил Secure NAT, других настроек не проводилось.

В качестве альтернативы рассматривал RRAS, но Mikrotik не умеет с ним работать.  Соединение устанавливается, VPN работает, но поддерживать соединение без постоянных реконнектов и ошибок в логе Mikrotik не умеет.

Настройка производилась на примере RB3011UiAS-RM на прошивке версии 6.46.11.
Теперь по порядку, что и зачем.

1. Устанавливаем VPN соединение

В качестве VPN решения был выбран, конечно, SoftEther, L2TP с предварительным ключом. Такого уровня безопасности достаточно кому угодно, потому что ключ знает только роутер и его владелец.

Переходим в раздел interfaces. Сначала добавляем новый интерфейс, а потом вводим ip, логин, пароль и общий ключ в интерфейс. Жмем ок.

То же самое командой:

/interface l2tp-client
name="LD8" connect-to=45.134.254.112 user="Administrator" password="PASSWORD" profile=default-encryption use-ipsec=yes ipsec-secret="vpn"

SoftEther заработает без изменения ipsec proposals и ipsec profiles, их настройку не рассматриваем, но скриншоты своих профилей, на всякий случай, автор оставил.

Для RRAS в IPsec Proposals достаточно изменить PFS Group на none.

Теперь нужно встать за NAT этого VPN сервера. Для этого нам нужно перейти в IP > Firewall > NAT.

Тут включаем masquerade для конкретного, или всех PPP интерфейсов. Роутер автора подключен сразу к трём VPN’ам, поэтому сделал так:

То же самое командой:

/ip firewall nat
chain=srcnat action=masquerade out-interface=all-ppp

2. Добавляем правила в Mangle

Первым делом хочется, конечно, защитить все самое ценное и беззащитное, а именно DNS и HTTP трафик. Начнем с HTTP.

Переходим в IP → Firewall → Mangle и создаем новое правило.

В правиле, Chain выбираем Prerouting.

Если перед роутером стоит Smart SFP или еще один роутер, и вы хотите к нему подключаться по веб интерфейсу, в поле Dst. Address нужно ввести его IP адрес или подсеть и поставить знак отрицания, чтобы не применять Mangle к адресу или к этой подсети. У автора стоит SFP GPON ONU в режиме бриджа, таким образом автор сохранил возможность подключения к его вебморде.

По умолчанию Mangle будет применять свое правило ко всем NAT State’ам, это сделает проброс порта по вашему белому IP невозможным, поэтому в Connection NAT State ставим галочку на dstnat и знак отрицания. Это позволит нам отправлять по сети исходящий трафик через VPN, но все еще прокидывать порты через свой белый IP.

Далее на вкладке Action выбираем mark routing, обзываем New Routing Mark так, чтобы было в дальнейшем нам понятно и едем дальше.

То же самое командой:

/ip firewall mangle
add chain=prerouting action=mark-routing new-routing-mark=HTTP passthrough=no connection-nat-state=!dstnat protocol=tcp dst-address=!192.168.1.1 dst-port=80

Теперь переходим к защите DNS. В данном случае нужно создать два правила. Одно для роутера, другое для устройств подключенных к роутеру.

Если вы пользуетесь встроенным в роутер DNS, что делает и автор, его нужно тоже защитить. Поэтому для первого правила, как и выше мы выбираем chain prerouting, для второго же нужно выбрать output.

Output это цепь которые использует сам роутер для запросов с помощью своего функционала. Тут все по аналогии с HTTP, протокол UDP, порт 53.

То же самое командами:

/ip firewall mangle
add chain=prerouting action=mark-routing new-routing-mark=DNS passthrough=no protocol=udp
add chain=output action=mark-routing new-routing-mark=DNS-Router passthrough=no protocol=udp dst-port=53

3. Строим маршрут через VPN

Переходим в IP → Routes и создаем новые маршруты.

Маршрут для маршрутизации HTTP по VPN. Указываем название наших VPN интерфейсов и выбираем Routing Mark.

На этом этапе вы уже почувствовали, как ваш оператор перестал встраивать рекламу в ваш HTTP трафик.

То же самое командой:

/ip route
add dst-address=0.0.0.0/0 gateway=LD8 routing-mark=HTTP distance=2 comment=HTTP

Ровно так же будут выглядеть правила для защиты DNS, просто выбираем нужную метку:

Тут вы ощутили, как ваши DNS запросы перестали прослушивать. То же самое командами:

/ip route
add dst-address=0.0.0.0/0 gateway=LD8 routing-mark=DNS distance=1 comment=DNS
add dst-address=0.0.0.0/0 gateway=LD8 routing-mark=DNS-Router distance=1 comment=DNS-Router

Ну под конец, разблокируем Rutracker. Вся подсеть принадлежит ему, поэтому указана подсеть.

Вот настолько было просто вернуть себе интернет. Команда:

/ip route
add dst-address=195.82.146.0/24 gateway=LD8 distance=1 comment=Rutracker.Org

Ровно этим же способом, что и с рутрекером вы можете прокладывать маршруты корпоративных ресурсов и других заблокированных сайтов.

Автор надеется, что вы оцените удобство захода на рутрекер и корпоративный портал в одно и тоже время не снимая свитер.

MikroTik производят профессиональное сетевое оборудование с возможностью тонкой настройки. Поэтому для VPN-сервера или клиента маршрутизаторы этой фирмы подходят просто отлично.

Выбор протокола для VPN

В этой статье мы рассмотрим два наиболее популярных протокола: PPPoE и PPtP.

PPtP чаще всего используется для удалённого доступа к корпоративной сети. К его преимуществам относят простоту настройки и стабильность. Среди минусов — сравнительно слабая система защиты, наличие изъянов в безопасности, невозможность использовать динамические IP-адреса. Настройку PPtP можно представить в виде простой последовательности:

  1. Создание сервера на маршрутизаторе.
  2. Создание и подключение профилей пользователей.
  3. Запись исключений для файервола.

PPPoE — протокол, популярный среди провайдеров интернета. Он отличается хорошей масштабируемостью (вы без особого труда сможете расширить сеть), стабильностью, устойчивостью к атакам, использующим уязвимости протокола ARP. При подключении на PPPoE можно использовать динамические адреса и не прописывать IP каждому конечному узлу сети. Минус РРРоЕ — более сложный процесс подключения.

MikroTik также поддерживают протоколы L2TP, OpenVPN, IPSec. Но они встречаются реже и настраиваются сложнее, поэтому их касаться в этой статье, ориентированной на начинающих, не будем.

Настройка VPN на MikroTik

Маршрутизаторы MikroTik настраиваются через утилиту WinBox, которая доступна для скачивания на официальном сайте. Поэтому перед началом работы скачайте и установите её.

Сайт MikroTik

Нажав на кнопку Winbox, вы увидите список версий, доступных для скачивания

Сервер PPtP

Для начала включим сам сервер:

  1. Откройте Winbox и выберите раздел PPP.
  2. Выберите в верху окна вкладку Interface.
  3. Чуть ниже вы найдёте кнопку PPTP Server. Нажмите её.
  4. У вас откроется окно настроек сервера. Поставьте галочку напротив строки Enabled — это включит сервер с протоколом PPtP.
  5. Теперь перейдём к его настройке. Установите максимальные значения MTU и MRU на 1460.
  6. Снимите галочки с рар и chap.
  7. Установите галочки напротив mschap1 и mschap2.

    PPtP сервер

    Так должно выглядеть окошко настроенного сервера PPtP

  8. Нажмите Apply, затем OK.

Теперь добавим пользователей, которые смогут пользоваться нашим зашифрованным туннелем:

  1. Не выходим из PPP.
  2. Переходим на вкладку Secrets.
  3. Слева вверху видим плюсик. Он нам и нужен — нажимаем.
  4. Откроется окно создания пользователей. Первые две строки — логин и ключ для будущего юзера. Именно их нужно будет вводить потом при подключении к маршрутизатору, поэтому лучше сразу запишите их.
  5. В третьей строке (Service) выбираем протокол. В нашем случае — PPtP.
  6. Профиль оставьте default.
  7. Далее нужно вписать два IP-адреса. В строке Local мы указываем адрес нашего MikroTik — то есть сервера. В строке Remote — IP пользовательского компьютера, который планируем подключать.

    Добавление пользователя

    В каждом окошке вы создаёте нового пользователя, поэтому действия придётся повторить, если вы хотите подключить больше одного

  8. Нажимаем Apply, затем OK.

Мы создали нашего первого пользователя! Если вы хотите подключить больше пользователей, то снова повторите шаги с 2 по 7, вводя новые имя, пароль и remote-адрес.

Теперь пришло время добавить исключения в Firewall, чтобы обеспечить подключение. Нам нужно добавить правило, чтобы открыть порт. Для этого:

  1. Выберите раздел IP.
  2. Перейдите на вкладку Firewall.
  3. Найдите кнопку Filter Rules.
  4. Справа вверху вы увидите красный плюсик. Нажмите его — так мы создадим новое правило.
  5. В новом окошке убедитесь, что находитесь на вкладке General.
  6. В первое поле (Chain) введите input.
  7. В поле Protocol выберите 6 (tcp).
  8. В Dst. Port пропишите 1723 — это и есть номер нужного порта.

    Создание правила

    Мы сделали правило, которое откроет 1723 порт

  9. Нажмите Apply. Закрывать окошко пока не надо.
  10. Перейдите на вкладку Action. Выберите в выпадающем списке пункт accept.
  11. Нажмите Apply, затем ОК.

Теперь нужно добавить разрешение на использование протокола GRE:

  1. Ещё раз нажмите на красный плюсик, чтобы создать новое правило.
  2. Заполните первую строку как input
  3. В поле Protocol из выпадающего списка выберите протокол gre (пусть вас не смущает строчное написание).
  4. Поле Dst.Port оставьте пустым. Нажмите Apply.
  5. Перейдите на вкладку Action и выберите accept из выпадающего списка.
  6. Apply — OK.

Создав правила, перетяните их в самый верх списка на вкладке Filter Rules, иначе они будут подавляться другими правилами.

На этом настройка VPN-сервера на протоколе PPtP завершена.

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

Для настройки PPPoE мы также будем использовать Winbox:

  1. Перейдите в раздел PPP, откройте пункт Profiles.
  2. Нажмите красный плюсик в углу окна.
  3. В открывшемся окне на вкладке General введите произвольное название профиля, укажите IP-адрес сервера (то есть маршрутизатора) и поставьте флажок Yes в разделе Change TSP MSS.

    Создать профиль

    Корректировка MSS обеспечивает правильное открытие сайтов

  4. На вкладке Protocols поставьте все флажки, кроме последнего, в позицию no. Это улучшит производительность сервера. Последний флажок (Use Encryption) установите в положение yes.

    Протоколы

    Шифрование (Encryption) лучше оставить включённым, потому что в противном случае VPN-соединение становится не таким защищённым

  5. Перейдём на вкладку Limits. Из выпадающего списка выберите желаемое ограничение скорости. Флажок в разделе Only One указывает, смогут ли два и более пользователей подключиться по одной паре «логин-пароль». Если вы этого хотите, поставьте no.

    Лимиты

    На этой вкладке мы вводим ограничения на использование нашего сервера

  6. Нажмите Apply, затем OK.

Мы создали профиль сервера, теперь пришло время добавить пользователей, которые смогут к нему подключаться:

  1. Как и в прошлый раз, идём в раздел РРР, переходим на вкладку Secrets и нажимаем на красный плюсик.
  2. Заполнять форму теперь нужно чуть по-другому. В первых двух полях укажите имя и пароль для будущего юзера.
  3. В поле Service выберите рррое.
  4. В поле Profile выберите профиль, который мы только что создали.
  5. Адрес маршрутизатора вводить не нужно. В строке Remote введите IP устройства-клиента.

    Пользователи PPPoE

    Как и прежде, для создания нескольких пользователей проделайте этот алгоритм нужное количество раз

  6. Нажмите Apply, OK.

Теперь привяжем интерфейс маршрутизатора к профилю:

  1. В разделе РРР находим кнопку PPPoE Servers.
  2. В поле Default Profile выбираем из выпадающего списка настроенный ранее профиль.
  3. В поле Interface выбираем интерфейс маршрутизатора. Это физический порт, к которому подсоединяют устройства-клиенты. Его номер можно посмотреть на корпусе.
  4. В поле Keepalive Timeout рекомендуется поставить 30 секунд, но при малой пропускной способности туннеля или слабом сервере стоит установить 40–50 секунд.

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

    Последние четыре галочки можно оставить, но продвинутые пользователи для улучшения работоспособности могут снять ненужные им

  5. Apply, OK.

Если вы создавали локальный сервер без доступа в интернет, то на этом настройка закончена. Если же вас интересует доступ к глобальной сети, то нужно также настроить NAT:

  1. Перейдите в раздел IP.
  2. Выберите пункт Firewall.
  3. Нажмите на красный плюсик. Мы создаём новое правило.
  4. В поле Chain пропишите srcnat.
  5. В поле Src.Address мы укажем диапазон адресов. Прописывается он так: 10.1.0.0/16.
  6. В поле Dst.Address вначале вводим восклицательный знак, а затем 10.0.0.0/8. Это тоже диапазон адресов, а не конкретный IP.

    NAT

    NAT обеспечит вам защищённый доступ в интернет

  7. Переходим на вкладку Action и выбираем из выпадающего меню masquerade.
  8. Apply, OK.

Теперь ваш сервер готов к работе в глобальной сети.

Настройка маршрутизатора как клиента сервера

Если же наш маршрутизатор будет использоваться не в качестве сервера, а в качестве его клиента, подключение осуществляем следующим образом:

  1. В Winbox открываем раздел РРР.
  2. В нём выбираем пункт Interface.
  3. Находим строку «PPPoE-клиент» и нажимаем на плюсик.
  4. В открывшемся окне настроек в последней строке выбираем тот интерфейс, через который маршрутизатор подключён к серверу. Больше на вкладке General ничего не меняем.

    Подключение клиента

    Значения MTU и MRU оставляем нетронутыми

  5. Переходим на вторую вкладку — Dial.
  6. Вводим логин в поле User и пароль в поле Password.
  7. Ставим галочку Use Peer DNS.
  8. Снимаем галочку Dial on Demand.
  9. В разделе Allow вы увидите четыре галочки: pap, chap, mschap1 и mschap2. Их нужно выставить так же, как они стоят на сервере.

    Настройка подключения клиента

    Логин и пароль вы можете уточнить у владельца сервера

  10. Как обычно, нажимаем Apply, а затем ОК.

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

  • Распечатать

Оцените статью:

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1

(3 голоса, среднее: 4.7 из 5)

Поделитесь с друзьями!

В этот раз я расскажу как настроить VPN L2TP сервер, т.к. он обеспечивает более высокий уровень безопасности но и более требователен к ресурсам системы, а также поддерживается не всем оборудованием, например, только самыми последними версиями Andriod на 100%, по крайней мере, мне не попадались современные телефоны которые его не поддерживают. Основной плюс данной стемы это:
а) Использование тоннеля передачи данных (тунелирование).
б) Защита передаваемых данных с помощью IPsec.

Чтобы было понятнее, мы создадим отдельную подсеть для клиентов подключающихся через L2TP, а оттуда уже настроим маршрутизацию туда куда нам нужно.
Для начала создадим диапазон IP адресов для подключающихся клиентов, мы не будем выдавать каждому пользователю персональный IP адрес, а автоматизируем этот процесс и будем выдавать из пула свободных адресов.
Переходим в IP -> Pool мы создадим пул на 20 IP адресов. Назовем его l2tp_pool чтобы было понятно за что он отвечает.

В результате у нас есть 2 пула адресов, первый используется, у меня, для локальной сети, а второй для L2TP клиентов.

Создаем профиль нашего L2TP сервера
переходим в PPP -> Profiles
В настройках профиля указываем:

Имя профиля: L2TP-server ( чтобы было понятно за что он отвечает)
Local adrdress: 192.168.10.1 начало диапазона IP адресов
Remote Address: l2tp_pool указываем название пула адресов который мы создали ранее
Change TCP MSS: yes

(Все что менялось выделено синим!)


Переходим в вкладку Protocols
Use MPLS: yes
Use Compressiaon: no
Use VJ Compressiaon: no
Use Encription: yes

(Все что менялось выделено синим!)

Переходим во вкладку Limits
Там все оставляем по умолчанию и в строке Only one оставляем default

Создаем пользователя, переходим в PPP -> Secrets

Где указываем имя пользователя, пароль, указываем сервис к которому этот пользователь будет применен L2TP, а также профиль с которым будет работать наш L2TP сервер, мы его создали ранее (L2TP-server)

нам остается включить L2TP сервер, переходим в PPP -> Interface нажимаем кнопку L2TP server

Все сто менялось выделено красным!
Где:
Включаем сам сервер L2TP (ставим галку)
Включаем профиль, который мы создали ранее L2TP-server
Убираем все протоколы, оставляем mschap2 (остальные протоколы уже давно и успешно взломаны!)
Ставим галку Use IPsec
Придумываем IPsec Secret: по сути это парольная фраза, которая едина для всех.

Нам с остается создать правила для фаерволла, чтобы мы могли достучаться до нашего L2TP сервера.
Переходим в IP -> Firewall -> Filter Rules
необходимо создать разрешающее правило для следующих портов и протоколов:
Протокол: UDP
Разрешаем порты: 1701,500,4500
В качестве In.Interface указываем тот что подключен к интернет


Также добавляем правило разрешающее ipcec
протокол: ipsec-esp
В качестве In.Interface указываем тот что подключен к интернет

Почти все готово, но если мы подключимся к нашему L2TP серверу, то не сможем выйти в интернет т.к. не создано разрешающее правило, переходим во вкладку NAT
Создаем новое правило
Chain: snat (т.к. NAT это у нас источник пакетов)
Src. Address: 192.168.10.0/24 (указываем подсеть которая у нас используется для выдачи IP адресов клиентам L2TP сервера)
Out.Inerface указываем интерфейс который у нас подключен к интернет.

переходим во вкладку Action и в строке Action указываем маскарадинг

Вот теперь все готово, нам осталось настроить VPN подключение, в Windows оно делается штатными средствами,
но есть нюанс.

Настраиваем соединение с vpn сервером

Создаем стандартное VPN подключение, в нем указываем протокол L2TP/IPsec, чтобы система не переберала все доступные протоколы, а подключалась сразу по нужному.
Указываем, разрешить следующие протоколы, ставим галку MS-CHAP v2

Нам необходимо нажать кнопку: Дополнительные параметры и там указываем парольную фразу, которую мы придумали при создании в строке IPsec Secret

Вот теперь точно все, подключаемся и пользуемся.

Дополнение

Если есть необходимость изменить настройки шифрования, то нам необходимо перейти в IP -> IPsec во вкладку Proposals и там выставить необходимые виды шифрования

Также в этом разделе можно добавлять свои ключи или сгенерировать, хотя я не готов гарантировать что роутер сможет обеспечить высокий уровень энтропии при генерации ключей, так что генерировать лучше на чем-то другом, а сюда их уже импортировать
В общем данный роутер, позволяет настроить систему довольно гибко исходя из ваших задач.

В процессе использования также выплыл один баг. Если вы подключены по L2TP то при попытке подключиться к маршрутизатору через Winbox система пишет что не правильный логин/пароль, а вот при подключении через PPTP такой проблемы не наблюдается. Как эту тему побороть, я пока не выяснил, если разберусь обязательно отпишусь.
О том что еще можно настроить на MikroTik

  • Настройка wds на роутере xiaomi
  • Настройка vpn для роутера asus rt
  • Настройка vpn в роутере snr
  • Настройка vpn через роутер asus
  • Настройка vpn на роутере асус