Настройка VPN Mikrotik OpenVPN, как настроить Опен ВПН через Микротик

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

Роутеры Mikrotik позволяют настроить различные варианты VPN сервисов. В данной инструкции мы рассмотрим как проводится настройка VPN на MikroTik OpenVPN.

Введение

Сразу хочу обратить внимание, что эта статья будет скорее обзорной, нежели передачей реального опыта, так как сам я чаще всего использую в качестве vpn сервера openvpn. Тем не менее с vpn в микротик тоже приходилось сталкиваться. Настраивал как pptp сервера для подключения удаленных клиентов, так и l2tp для объединения двух и более микротиков в общую приватную сеть. В основном по дефолту, не вникая в тонкости настроек.

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

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

Варианты vpn сервера в микротике

С вариантами vpn сервера в микротике все сложно. В том плане, что есть много реализаций vpn, которую не так просто выбрать, если не разбираешься детально в сетевых технологиях. Я не сильно в них разбираюсь, но как мне кажется, немного улавливаю суть. Постараюсь вам объяснить своими словами, в чем отличия.

Существуют 2 принципиально разных решения для организации соединений между двумя микротиками и внешними абонентами:

  1. Создание l2 туннеля типа site-to-site с помощью EOIP Tunnel. Самый простой и быстрый способ объединить два микротика. Если не будет использовано шифрование, то получатся  самые быстрые vpn подключения. Необходимы выделенные белые ip адреса на обоих устройствах. Такие соединения используют для объединения офисов или филиалов по vpn. В общем случае не работает через NAT. Сюда так же добавлю GRE Tunnel, хотя он работает в l3 и использует маршрутизацию, но работает так же по принципу site-to-site.
  2. VPN соединения уровня l3 на технологии Клиент-Сервер, типа PPTP, L2TP, SSTP, OpenVPN. Такие соединения используются как для объединения офисов, так и для подключения удаленных сотрудников. Достаточно только одного белого ip адреса на стороне сервера для создания vpn соединений. Работает через NAT.

Расскажу немного подробнее о каждом из типов vpn соединений отдельно.

  • GRE Tunnel — использует простой протокол gre для построения базового незащищенного site-to-site VPN. Разработан компанией CISCO. Позволяет инкапсулировать пакеты различного типа внутри ip туннелей. Простыми словами вот что он делает. Берет ваши данные со всеми заголовками, упаковывает в пакет, передает по интернету  на другой конец, где этот пакет обратно разбирается на исходные данные. Для конечных пользователей сети все это выглядит, как-будто они общаются через локальную сеть.
  • EOIP Tunnel — Ethernet over IP — это проприетарный протокол MikroTik RouterOS, который создает туннель Ethernet между двумя маршрутизаторами поверх IP-соединения. Для передачи данных использует GRE протокол. Принципиальное отличие eoip tunnnel в том, что он работает в l2 и передает напрямую фреймы, тогда как gre tunnel оперирует пакетами и использует маршрутизацию. Надеюсь правильно объяснил и не соврал. Для чего mikrotik решили создать свою реализацию туннеля через gre протокол, не знаю. Возможно, похожих решений просто нет, вот они и придумали свою реализацию.
  • PPTP — туннельный протокол типа точка-точка (Point-to-Point Tunneling Protocol). Для работы использует GRE протокол, поддерживает шифрование. В свое время pptp обрел большую популярность из-за того, что его из коробки поддерживала Windows начиная с версии 95. На сегодняшний день pptp использовать не рекомендуется, так как он очень легко взламывается. Из дампа трафика за короткое время (несколько часов) достается ключ шифрования и расшифровывается весь трафик. Возможно, с этим как-то можно бороться, используя разные протоколы шифрования, но я не разбирался подробно с этой темой. Для себя решил, что pptp можно использовать как самое простое решение там, где нет повышенных требований к безопасности и расшифровка трафика, если таковая и случится, не принесет никаких проблем. PPTP поддерживает из коробки не только Windows но и Android, что очень удобно. Настраивается очень просто.
  • L2TP — Layer 2 Tunneling Protocol. Несмотря на то, что в названии указано l2, реально в ip сети он работает на сеансовом уровне, то есть l3. Использует в работе udp порт 1701. Может работать не только в IP сетях. Из коробки, как и pptp, поддерживает аутентификацию пользователей. Сам по себе не обеспечивает шифрование. Для шифрования трафика может использовать ipsec, который считается очень безопасным и не имеет серьезных уязвимостей. В настоящее время поддерживается практически всеми устройствами и системами из коробки, как и pptp. Настраивать не сильно сложнее. В общем случае, для организации vpn рекомендую использовать именно этот тип шифрованного тоннеля.
  • OpenVPN — это очень популярная реализация шифрованных соединений. Главное достоинство — гибкость настроек. К примеру, очень крутая возможность openvnp — пушить маршруты напрямую клиенту при подключении. Я долгое время использовал openvpn серверы. Когда первый раз понадобилось передать клиенту pptp маршрут, никак не мог понять, как это настроить. Оказалось, что никак, он это просто не умеет. Пришлось настраивать сторонними инструментами. К сожалению, по непонятным причинам, в mikrotik openvpn не поддерживает протокол udp, что очень сужает возможности использования этого vpn сервера. По tcp он работает гораздо медленнее, чем по udp. Так же не работает сжатие заголовков пакетов. Так что в общем случае использовать openvpn сервер в микротик не имеет смысла, если только он не нужен вам по каким-то конкретным причинам.
  • SSTP — Протокол безопасного туннелирования сокетов (Secure Socket Tunneling Protocol) – был представлен Microsoft в Windows Vista SP1. Основной плюс в том, что он интегрирован в Windows, может использовать 443 порт, что иногда помогает обходить фаерволы. Считается очень безопасным, использует SSL 3.0. Из минусов, насколько я знаю, в микротике очень требователен к ресурсам процессора. На слабеньких железках будет выдавать самую низкую скорость по сравнению со всеми остальными соединениями по vpn. По этой причине я его не буду рассматривать в своем обзоре совсем.

Из всего написанного можно сделать такой вывод. В общем случае лучше всего в микротике использовать vpn на базе l2tp + ipsec. Основные причины:

  1. Простота и удобство настройки.
  2. Надежное шифрование.
  3. Поддержка l2tp соединений практически всеми современными устройствами и системами. Нет необходимости ставить дополнительное программное обеспечение.
  4. Подходит как для объединения офисов, так и для удаленных сотрудников — site-to-site и client-to-site подключения.

Если вам нужно максимальное быстродействие без шифрования, то стройте соединения между сетями или офисами с помощью EOIP Tunnel — фирменной разработки компании Mikrotik.

Дальше я покажу, как настроить все описанные туннели, кроме SSTP и произведу замеры скорости для сравнения. Мой тестовый стенд из двух Mikrotik RB951G-2hnD будет иметь следующие настройки.

m-server имя микротика, выступающего в роли сервера
m-remote имя микротика, выступающего в роли удаленного маршрутизатора
192.168.13.1 WAN ip адрес на m-server
192.168.13.197 WAN ip адрес на m-remote
10.20.1.0/24 локальная сеть за m-server
10.30.1.0/24 локальная сеть за m-remote
10.10.5.1-10.10.5.100 vpn сеть

Приступим к настройке и тестированию vpn соединений в mikrotik.

Что нужно знать до установки OpenVPN на Mikrotik

Чтобы полноценно использовать OpenVPN-сервер на Mikrotik, вам нужно обновить версию прошивки до версии 7.1 и выше.

В Mikrotik OpenVPN немного урезан. Главные особенности:

  1. нет поддержки UDP. Только TCP Добавили в стабильной версии RouterOS 7.1. Есть проблемы в работе.;
  2. нет LZO-компрессии;

Предварительная подготовка устройства

Для начала необходимо убедиться, что время устройстве установлено верно, раздел System -> Clock. При необходимости настраиваем синхронизацию часов устройства, как это сделать описано в статье: Настройка маршрутизатора MikroTik с нуля, раздел Настройка синхронизации времени.

Часовой пояс

Первым делом устанавливаем правильный часовой пояс. Для этого нужно перейти в System — Clock и указать часовой пояс.

Через консоль:

system clock set time-zone-autodetect=no time-zone-name=Asia/Omsk

Синхронизация времени

Указываем NTP-сервера для синхронизации времени:

Сами адреса можно взять отсюда – www.ntp-servers.net

В примере используются эти:

88.147.254.232 88.147.254.230Через консоль это будет выглядеть так:

system ntp client set enabled=yes primary-ntp=88.147.254.232 secondary-ntp=88.147.254.230

Создаем сертификаты для OpenVPN

Сертификаты мы можем создать несколькими способами. Разберем два — на роутере Mikrotik и с помощью утилиты на компьютере с Windows.

Способ 1. На Mikrotik’е.

Проще и быстрее всего сгенерировать сертификаты на самом роутере.

  • Открываем терминал и создаем последовательность для центра сертификации:

> /certificate add name=template-ca country=»RU» state=»Sankt-Petersburg» locality=»Sankt-Petersburg» organization=»Organization» unit=»DMOSK» common-name=»CA» key-size=2048 days-valid=3650 key-usage=crl-sign,key-cert-sign

> /certificate sign template-ca ca-crl-host=127.0.0.1 name=»ca»

* первая команда создает файл-шаблон запроса, на основе которого мы генерируем сертификаты второй командой. В шаблоне мы указываем опции для сертификата — так как сам сертификат самоподписанный, можно указать любые значения и это никак не отразится на его использовании (стоит только указать корректные значения для стойкости шифрования key-size и срока действия сертификата days-valid).

  • Генерируем сертификат сервера OpenVPN:

> /certificate add name=template-server country=»RU» state=»Sankt-Petersburg» locality=»Sankt-Petersburg» organization=»Organization» unit=»DMOSK» common-name=»SERVER» key-size=2048 days-valid=3650 key-usage=digital-signature,key-encipherment,tls-server

> /certificate sign template-server ca=»ca» name=»server»

* как и в примере выше, мы сначала создали файл запроса и на его основе — сам сертификат. В качестве центра сертификации мы указываем созданный ранее сертификат ca.

Способ 2. На Windows.

Если по каким-либо причинам нам не подходим первый способ создания сертификатов (например, нужны особые опции, которые не поддерживаются роутером), воспользуемся способом, описанным ниже.

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

Генерация сертификатов для OpenVPN

Сертификаты для сервера и клиента можно создать средствами самого OpenVPN (Easy-RSA), а можно с помощью ресурса CAcert.org. Рассмотрим создание самоподписанных сертификатов посредством Easy-RSA.

Скачиваем и устанавливаем OpenVPN.

Идем на официальный сайт http://openvpn.net/ и скачиваем версию ПО, которая подходит для нашей системы.


Далее устанавливаем OpenVPN, галочки можно снять только с неважных пунктов (например, добавление ярлыка программы на панель быстрого доступа и в меню Пуск, ассоциации файлов).

Редактируем параметры easy-rsa OpenVPN.

После установки идем в папку с программой, в каталог easy-rsa

и открываем с помощью блокнота файл vars.bat.sample, редактируем его.

Если мы создаем дубликат папки easy-rsa (а в этом есть смысл) и работаем в нем, то необходимо отредактировать строку, прописав в ней новый путь к папке:

set HOME=%ProgramFiles%\OpenVPN\easy-rsa

Значение строки set KEY_SIZE=1024 можно поменять на 2048 (как сказано в комментариях в файле — если вы параноик), но учтите, что производительность уменьшится.

Далее редактируем следующие строки, проставляя в них актуальные для себя значения (пустыми параметры оставлять нельзя):

set KEY_COUNTRY=UAset KEY_PROVINCE=Harkiv
set KEY_CITY=Harkiv
set KEY_ORG=OpenVPN
set KEY_EMAIL=admin@lantorg.com
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=lantorg
set PKCS11_MODULE_PATH=changeme
set PKCS11_PIN=1234

Последние два параметра можно не менять.

После чего сохраняем файл под именем vars.bat.

Если при сохранении vars.bat в этом же каталоге система выдает ошибку:

то сохраните файл вначале на рабочем столе, а потом перенесите в этот каталог.

Выполняем генерацию сертификатов для OpenVPN под MikroTik.

Работаем в командной строке Windows (cmd), запустив ее от имени администратора.

Переходим в нужный каталог: cd «C:\Program Files\OpenVPN\easy-rsa»

Набираем команду vars и жмем энтер.

Набираем команду clean-all и жмем энтер.

Если мы видим надпись, как на изображении — «Скопировано файлов — 1.», значит, все сделано правильно.

Набираем команду build-ca. Программа начинает генерацию публичного сертификата OpenVPN и запрашивает у нас значения параметров. Если на вопрос в командной строке мы просто жмем энтер, то программа подставляет значения по умолчанию, которые мы вписали в файл vars.bat. Останавливаемся, когда снова появляется строка C:\Program Files\OpenVPN\easy-rsa.

Даем команду на генерацию сертификата сервера OpenVPN для MikroTik: build-key-server имя_сертификата. В нашем случае пишем

build-key-server server, на вопрос «Sign the certificate?» отвечаем y, точно также на вопрос «1 out of 1 certificate requests certified, commit?», на остальные просто жмем энтер.

Даем команду на генерацию сертификата клиента — build-key client. Имя сертификата (Common Name) должно быть уникальным и не совпадать с другими сертификатами. Поэтому на этот вопрос отвечаем — client. Здесь также в конце появятся два вопроса, как в предыдущем пункте, и мы тоже отвечаем на них — y.

Все, теперь в папке C:\Program Files\OpenVPN\easy-rsa\keys лежат все созданные ключи и сертификаты OpenVPN.

Установка сертификатов OpenVPN и настройка сервера на MikroTik

Из созданных нами сертификатов и ключей нас интересуют 3 файла:

  • ca.crt,
  • server.crt,
  • server.key.

Импортируем сертификаты OpenVPN в ОС MikroTik.

Заходим с помощью WinBox на роутер Микротик, на котором мы будем поднимать OpenVPN сервер. Копируем 3 вышеуказанных файла из папки, где они лежат, и вставляем с помощью меню: Files — Paste.

Далее импортируем их. Для этого используем меню WinBox: System — Certificates — выбор сертификата — кнопка Import. Импорт производим в следующем порядке: ca.crt => server.crt => server.key.
После этого в окне Certificate List добавятся две записи: публичного сертификата CA и сертификата OpenVPN сервера. В первом столбце записи сертификата сервера должны стоять две буквы — KR. Если вы видите там что-то другое, попробуйте еще раз импортировать файл ключа (*.key).


Создаем PPP-профиль на роутере MikroTik.

Если подключение по VPN-тоннелю будет разрешено с нескольких IP-адресов, нам нужно создать их пул. Идем в IP -> Pool, создаем его и присваиваем имя.

Если подключение по тоннелю будет производиться с одного  IP-адреса, то пропускаем этот момент.

Создаем PPP-профиль. Для этого идем: PPP — Profiles. Добавляем его кнопкой +.В поля вписываем:

  • имя профиля,
  • Local Address — адрес роутера Микротик, к которому будут подключаться клиенты. Он должен лежать в одой подсети с Remote Address
  • Remote Address- здесь пишем либо один IP-адрес клиента, либо имя ранее созданного пула адресов.

Остальные настройки не трогаем.

Настраиваем сервер OpenVPN на роутере MikroTik.

Идем в меню PPP- Interface — OVPN Server.

  • Активируем его, поставив галочку в пункте Enabled.
  • В поле mode оставляем IP (IP-туннелирование по умолчанию) или выставляем ethernet (режим сетевого моста), это L3 и L2 соответственно. Чаще всего используется IP.
  • Default Profile — выбираем профиль, который мы создали ранее.
  • Certificate — сертификат сервера.
  • require-client-certificate — если ставим галку, то сервер при подключении проверяет сертификат клиента. Если нет — то не проверяет, и настройка клиента при этом упрощается.

Создаем и настраиваем пользователя.

Идем: PPP — Secrets и добавляем пользователя. Тут все просто: имя, пароль, сервис и профиль.

Необходимо также в настройках клиента предусмотреть синхронизацию времени с сервером. Вначале убеждаемся, что у нас выставлена правильная тайм-зона (меню System — Clock). Далее идем в меню System — SNTP Client и прописываем адрес NTP сервера (на скриншоте указан локальный, но можно взять любой, к примеру 85.21.78.91).

Настраиваем разрешающее правило фаерволла.

Идем IP — Firewall — Filter Rules и разрешаем трафик на порт OpenVPN:

  • В поле Chain ставим input.
  • Protocol — 6(tcp).
  • Dst. Port — 1194.
  • In. Interface — прописываем название интерфейса, на который идет входящий трафик.

Активируем правило на вкладке Action:

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

Экспортируем сертификат пользователя

Для экспорта клиентских сертификатов лучше всего использовать формат PKCS12, так как в результате вы получите 1 файл, который проще передать пользователю. Если нужно настроить подключение на телефонах с Android или IOS, то лучше экспортировать в формате PEM, так как далее нужно будет объединять сертификаты в конфигурационный файл.

Если использовать «устаревший» формат PEM, то будет 2 файла:

  • user1.crt – открытая часть ключа пользователя;
  • user1.key – закрытая часть ключа пользователя.

К ним нужно будет экспортировать корневой сертификат ca.crt. Без него работать не будет.

При формате PKCS12 файл всего один. Разница между PKCS12 и PEM только в удобстве.

При экспорте обязательно указываем 8-значный пароль и имя файла. Если этого не сделать, в файл при экспорте не добавится закрытая часть ключа и пользоваться будет невозможно.

Через консоль с паролем 12345678:

certificate export-certificate user1 type=pkcs12 export-passphrase=12345678

Конфигурирование сервера

Но для начала создадим профиль. PPP – Profiles – жмем +.

Перед нами открывается окно нового профайла. В строке «Name» задаем понятное нам имя. В строке Local Address указываем IP адрес Mikrotik в VPN. Я указываю 172.16.25.1. Т.е. при подключении клиента автоматически присвоится именно это адрес.

Далее переключаем:

  • Change TCP MSS в yes.
  • Use UPnP переключаем в no.

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

Protocols:

  • no для Use MPLS;
  • yes для Use Compression;
  • yes для Use Encryption.

Далее в Limits ставим no для Only One. Остальные настройки можно не задавать. К примеру, если бы нам нужно было ограничить скорость клиента внутри тоннеля, то нас интересовала вкладка Queue – но это совсем другая история.

Теперь можно сохранять. Жмем Apply и OK. В списке должен появиться наш созданный профиль.

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

Задаем произвольные логин и пароль. Выбираем Service – ovpn, Profile – General-OVPN, Remote Address – 172.16.25.2 т.к. я планирую подключать одного пользователя (рекомендую использовать привязку по IP если хотите гибко управлять Firewall в отношении каждого пользователя). Если вам нужно больше одного, то необходимо создать DHCP Pool. Apply и Ok.

Открываем PPP – Interfaces – OPENV Server.

  • Ставим галочку Enable;
  • Задаем порт (не забываем, что это TCP);
  • Mode – ip;
  • Default Profile – созданный ранее профайл General-OVPN;
  • Certificate – сертификат сервера ServerOVPN;
  • Cipher – aes256.

Apply и Ok.

Настройка Firewall

Далее нужно разрешить OpenVPN трафик на роутере.

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

Action – accept.

Сохраняем и переходим к клиентской части.

Конфигурирование клиента

Подключаемся к питерскому роутеру и в PPP создаем новый интерфейс OVPN Client.

Задаем имя интерфейса.

Открываем Dial Out и заполняем обязательные параметры.

Сохраняем и открываем вкладку Status.

Здесь мы видим статус подключено, шифрование и время жизни соединения. Вы спросите, а где же IP адрес клиента? Он по каким-то причинам не отображается в окне статуса интерфейса, зато есть в IP-Address. Возможно, ошибка, в данной прошивке. Попробуем проверить доступность московского роутера через VPN.

Ping-и идут, а значит с соединением все хорошо.

Настройка OpenVPN на Mikrotik

После создания сертификатов, можно переходить к настройке самого микротика.

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

Начнем с создания пула адресов для выдачи OpenVPN клиентам, так как назначать адреса вручную во втором десятилетии 21 века — дурной тон. Для этого перейдем в IP — Pool и создадим новый пул: Name — ovpn_pool0 — произвольное имя пула, Addresses — 10.8.8.100-10.8.8.199 — диапазон адресов для выдачи клиентов, также можете выбрать по собственному усмотрению.


Эти же действия в консоли:

/ip pool
add name=ovpn_pool0 ranges=10.8.8.100-10.8.8.199Теперь перейдем в PPP — Profiles и создадим новый профиль. Укажем его имя Name — ovpn, локальный и удаленный адреса: Local Address — 10.8.8.1, Remote Address — ovpn_pool0. На всякий случай напомним, что локальный адрес должен принадлежать той-же /24 сети, что и диапазон пула адресов.


Быстро создать профиль в терминале:

/ppp profile
add local-address=10.8.8.1 name=ovpn remote-address=ovpn_pool0Затем перейдем в PPP — Secrets и убедимся, что включена аутентификация по пользователю. Для этого нажмем PPP Authentication&Accounting, где должен стоять флаг Accounting:


Хотя гораздо быстрее выполнить команду:

/ppp aaa
set accounting=yesЗдесь же создадим учетные записи для клиентов. Особенностью реализации OpenVPN в RouterOS 6 является обязательное использование аутентификации по имени и паролю. При создании учетной записи указываем ее имя — Name, рекомендуем дать ей то же самое имя, которое вы использовали при создании сертификата, чтобы избежать путаницы. Password — пароль, так как основная аутентификация производится по сертификату особых требований к нему нет. Service — какие службы могут использовать данную учетную запись — ограничиваем только OpenVPN выбрав ovpn, затем указываем созданный нами профиль Profile — ovpn.

В терминале для создания учетной записи выполните:

/ppp secret
add name=mikrotik password=123 profile=ovpn service=ovpnВ данном случае мы создали запись для пользователя mikrotik с паролем 123.

После создания пользователей перейдем в PPP — Interface и нажмем на кнопку OVPN Server, в открывшемся окне включим службу установив флаг Enabled, Default Profile — ovpn, в поле Certificate укажем созданный нами сертификат сервера. Для дополнительной безопасности включим Require Client Certificate, в этом случае сервер будет проверять сертификат клиента на принадлежность к цепочке сертификатов локального CA. Затем укажем параметры шифрования: Auth — безальтернативно sha1, Cipher — здесь есть возможность выбора, для роутеров с аппаратной поддержкой AES следует выбирать шифры только из этого семейства, однако чем сильнее шифр — тем больше он нагружает оборудование.


В терминале эти же действия выполняются командами:

/interface ovpn-server server
set auth=sha1 certificate=ovpn-server cipher=aes256 default-profile=ovpn enabled=yes require-client-certificate=yesТакже не забудьте разрешить входящие подключения к вашему OpenVPN серверу. Откроем IP — Firewall и добавим правило: Chain — input, Protocol — tcp, Dst. Port — 1194. Действие можно не указывать, так как по умолчанию применяется accept.

В терминале выполните:

/ip firewall filter
add action=accept chain=input dst-port=1194 protocol=tcpДанное правило должно располагаться выше запрещающего в цепочке INPUT.


На этом настройка OpenVPN сервера на базе роутера Mikrotik закончена.

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

Прежде всего закачаем на устройство файл сертификатов в формате PKCS12, который мы экспортировали на сервере. Для этого перейдем в System — Certificate и воспользуемся кнопкой Import, в открывшемся окне укажем файл сертификата и парольную фразу, которую мы установили при экспорте.


В консоли выполните:

/certificate
import file-name=mikrotik.p12 passphrase=12345678В результате у вас появятся два сертификата: сертификат клиента с закрытым ключом, о чем говорит флаг KT, и корневой сертификат удостоверяющего центра с флагом LAT (K — означает наличие ключа). Запомним наименование сертификатов, либо переименуем их.


Затем перейдем в PPP — Interface и создадим новый интерфейс типа OVPN Сlient. В поле Connect To указываем адрес или FQDN-имя вашего OpenVPN сервера, Port — 1194, Mode — ip. Ниже указываем учетные данные, созданные для этого пользователя на сервере в полях User и Password, еще ниже указываем параметры шифрования: Auth — sha1, Cipher — аналогично тому, что вы указали на сервере. В поле Certificate выберите сертификат клиента, флаг Verify Server Certificate следует снять.


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

/interface ovpn-client
add certificate=mikrotik.p12_0 cipher=aes256 connect-to=192.168.3.115 name=ovpn-out1 password=123 user=mikrotikЕсли все было сделано правильно, то соединение будет установлено сразу как вы создадите интерфейс.

Чтобы клиенты сети за клиентом имели доступ в сеть за сервером и наоборот необходимо настроить маршрутизацию. Перейдем в IP — Routes и добавим новый маршрут. В поле Dst. Address укажем сеть за сервером, в нашем случае это 192.168.186.0/24, в поле Gateway укажем интерфейс нашего OpenVPN подключения — ovpn-out1.


Либо выполните команду:

/ip route
add distance=1 dst-address=192.168.186.0/24 gateway=ovpn-out1Теперь перейдем на сервер и посмотрим каким образом выглядит подключение данного клиента. Как видим, был создан динамический интерфейс ovpn-mikrotik, настраивать маршрутизацию с таким интерфейсом нельзя, так как маршрут «сломается» при отключении клиента.


Поэтому создадим для этого клиента постоянный интерфейс. Перейдем в Interfaces и создадим новый интерфейс типа OVPN Server Binding. В настройках укажем имя, рекомендуется давать интерфейсам понятные имена, Name — ovpn-mikrotik, в поле User — укажем пользователя, подключение которого будет привязано к этому интерфейсу — mikrotik.


Это же можно сделать командой:

/interface ovpn-server
add name=ovpn-mikrotik user=mikrotikПосле чего можно добавить на сервере маршрут к сети за клиентом, настройки здесь аналогичные, Dst. Address — сеть за клиентом, Gateway — интерфейс OpenVPN подключения. В нашем случае 192.168.111.0/24 — сеть за клиентом.


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

/ip route
add distance=1 dst-address=192.168.111.0/24 gateway=ovpn-mikrotikПосле чего можем проверить связь. Узлы различных сетей должны видеть друг друга.

Настройка стандартного клиента OpenVPN на ПК

Немного изменим задачу, будем считать, что у нас есть ноутбук сотрудника с установленным клиентом OpenVPN, которому необходимо обеспечить доступ в корпоративную сеть через OpenVPN сервер на роутере Mikrotik. Будем считать, что OpenVPN установлен в C:\OpenVPN, а для хранения ключей используется директория C:\OpenVPN\keys.

Прежде всего разместим файл сертификатов в формате PKCS12 в директории для хранения ключей, а также создадим файл с учетными данными C:\OpenVPN\auth.cfg и разместим в нем в разных строках логин и пароль:

win10
123Где win10 — имя пользователя, 123 — пароль которые мы задали для этой учетной записи на сервере.

Теперь создадим файл C:\OpenVPN\keypass.cfg в котором разместим парольную фразу для сертификата:

12345678За основу конфигурационного файла мы примем стандартный шаблон client.ovpn, который расположен в C:\OpenVPN\sample-config. Его следует скопировать C:\OpenVPN\config, ниже будут приведены только ключевые опции, а также те, которые мы изменяем или добавляем.

Укажем, что у это клиент, тип туннеля — tun и протокол tcp:

client
dev tun
proto tcpАдрес и порт сервера:

remote 192.168.3.115 1194Убедимся в наличии опций:

persist-key
persist-tunЗатем заменим весь блок с указанием путей к ключам и сертификатам:

ca ca.crt
cert client.crt
key client.keyединственной строкой:

pkcs12 C:\\OpenVPN\\keys\\win10.p12где укажем путь к нашему файлу сертификатов в формате PKCS12.

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

auth-user-pass C:\\OpenVPN\\auth.cfg
askpass C:\\OpenVPN\\keypass.cfgПроверим наличие опции:

remote-cert-tls serverи закомментируем:

#tls-auth ta.key 1Сразу добавим маршрут к сети за сервером:

route 192.168.186.0 255.255.255.0 10.8.8.1Укажем выбранный нами на сервере шифр:

cipher AES-256-CBCи отключим сжатие:

#comp-lzoТеперь можно пробовать подключаться. Если все сделано правильно, то клиент подключится к серверу и ему будут доступны ресурсы сети за сервером. Никаких дополнительных настроек на сервере производить не нужно.

Если за данным ПК у вас находится сеть и нужно обеспечить связь между сетями, то нужно выполнить настройки на сервере аналогичные предыдущей части: создать интерфейс для подключения клиента и добавить маршрут для сети за клиентом. На клиентском ПК не забудьте включить службу маршрутизации.

Данная инструкция также полностью подходит для ПК на Linux, вам потребуется только откорректировать пути в конфигурационном файле и раскомментировать в нем опции:

user nobody
group nogroup

Как видим, настройка OpenVPN сервера на роутерах Mikrotik достаточно проста, но требует учитывать особенности и ограничения реализации этой технологии в RouterOS.

Доступ в Интернет через VPN-сервер

Если нам нужно, чтобы все запросы, в том числе, к Интернет проходили через сервер VPN, в конфигурационном файле клиента добавим:

route 0.0.0.0 0.0.0.0

Переподключаемся к серверу VPN.

Проблемы

duplicate packet, dropping : using encoding — AES-256-CBC/SHA1 TCP connection established from 109.125.24.30 duplicate packet, dropping

Сама фраза в log`ах duplicate packet, dropping не является ошибкой, если при этом происходит подключение.

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

Источники

  • https://serveradmin.ru/nastrojka-vpn-openvpn-l2tp-ipsec-server-v-mikrotik/
  • https://adminway.ru/podnimaem-na-mikrotik-openvpn-server
  • https://stupidhouse.ru/node/37/
  • https://www.dmosk.ru/miniinstruktions.php?mini=vpnserver-mikrotik
  • https://lantorg.com/article/nastrojka-vpn-cherez-mikrotik-openvpn
  • https://mikrotiklab.ru/nastrojka/artga-openvpn.html
  • https://interface31.ru/tech_it/2020/01/nastroyka-openvpn-servera-na-routerah-mikrotik.html

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: