Mikrotik openvpn client настройка android

Поднимаем на Mikrotik OpenVPN сервер

OpenVPN — это одна из самых современных технологий VPN на сегодняшний день. Основное достоинство OpenVPN — это бесперебойная работа вне зависимости от качества канала интернет и заблокированных портов провайдерских маршрутизаторов. OpenVPN это своего рода «танк», который работает несмотря ни на что.

Поднимем сервер OpenVPN на маршрутизаторе Mikrotik любой модели. Самое главное, чтобы была RouterOS.

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

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

  1. нет поддержки UDP . Только TCP ;
  2. нет LZO -компрессии;

По слухам, разработчики Mikrotik не хотят добавлять эти пункты, так как компания настаивает на использовании SSTP . По другим слухам UDP и LZO добавят в RouterOS 7.x.

Установка сервера OpenVPN на Mikrotik

Подготовка Mikrotik

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

Часовой пояс

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

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

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

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

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

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

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

Нам нужно создать минимум 3 сертификата:

  1. самоподписанный корневой сертификат для центра сертификации;
  2. сертификат для нашего роутера Mikrotik, который выступает OpenVPN-сервером;
  3. сертификат для клиента.

Для клиентов можно выпустить требуемое количество сертификатов.

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

Корневой сертификат CA

Создаем корневой сертификат для нашего центра сертификации. Переходим в System — Certificate

  • Name и Common Name — название, которое обычно именуется ca;
  • Country, State, Locality, Organization — это произвольные поля, которые заполняются для удобства опознавания сертификатов в будущем;
  • Days Valid — это время действия сертификата. Ставим 3650 дней = 10 лет.

На вкладке Key Usage отмечаем только:

Нажимаем кнопку Apply и затем Sign. В поле CA CRL Host указываем сами на себя – 127.0.0.1. Для запуска генерации сертификата, кликаем на Start. После окончания закрываем все окна.

Сертификат для OpenVPN сервера Mikrotik

Создание всех сертификатов очень похожи между собой. Для сертификата сервера OpenVPN Mikrotik, в полях Name и Common Name указываем ovpn-serv, а на вкладке Key Usage выбираем:

  • digital signature;
  • key encipherment;
  • tls server.

Нажимаем кнопку Apply и затем Sign. В поле CA выбираем – ca. Для запуска генерации сертификата, кликаем на Start. После окончания закрываем все окна.

Сертификат для клиента

Настало время выпускать клиентские сертификаты. Процедура та же самая. На вкладке Key Usage выбираем:

Нажимаем кнопку Apply и затем Sign. В поле CA выбираем – ca. Для запуска генерации сертификата, кликаем на Start. После окончания закрываем все окна.

В результате у нас должно получиться минимум 3 сертификата:

Если у Вас будет больше клиентов, то сертификатов будет больше.

Можно выпустить 1 клиентский сертификат и раздать всем пользователям OpenVPN сервера на Mikrotik. Это будет работать, но так делать не нужно. В случае, если Вам нужно будет отозвать один из клиентских сертификатов для уволенного сотрудника, то сделать это будет невозможно. У вас останется возможность только заблокировать учетную запись.

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

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

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

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

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

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

Читайте также:  Переплетенная с тобой андроид

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

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

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

Назначаем IP-адреса для OpenVPN

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

Диапазон адресов

Для автоматической выдачи адресов vpn-клиентам достаточно создать pool-адресов. Для этого переходим в раздел IP — Pool .

Статические адреса

В исключительных случаях нужно выдать статический IP-адрес. Сделать это можно в разделе PPP — Secret при создании пользователей:

  • Local Address — адрес Mikrotik;
  • Remote Address — статический адрес клиента.

Более подробнее о создании пользователей пойдет ниже.

Создаем профиль пользователей

Профили в Mikrotik позволяют облегчить дальнейшее добавление пользователей. В профиле можно указать общие параметры для всех пользователей. Это избавит от необходимости указывать одни и те же данные для каждого пользователя отдельно.

В разделе PPP — Secret переходим на вкладку Profiles и создаем новый профиль.

На вкладке General:

  • Name — название профиля;
  • Local Address — адрес Mirotik;
  • Remote Address — созданный ранее pool для OpenVPN. Если подразумевается использовать статические IP, то поле оставляем незаполненным;
  • Bridge — выбираем мост сети;
  • Change TCP MSS = yes — автоматическая подстройка размера MSS ;
  • Use UPnP = no — автоматическая настройка сетевых устройств;

На вкладке Protocols:

  • Use MPLS = yes — передача пакетов с помощью меток. В теории ускоряет прохождение пакетов между маршрутизаторами;
  • Use Compression = yes — компрессия Mikrotik;
  • Use Encryption = yes — базовое щифрование.

На вкладке Limits:

  • Only One = yes — указываем для монопольного входа пользователей.

Создаем пользователей

В разделе PPP — Secret нужно включить возможность аутентификации по пользователю. Для этого кликаем на кнопку PPP Authentication&Accounting и проверяем, чтобы была установлена галочка напротив Accounting.

Делаем через консоль:

После этого можно приступать к созданию пользователей:

  • Name — имя клиента (только латинские буквы и цифры, спец. символы не всегда работают корректно);
  • Password — пароль. Пароль, после создания пользователя, будет скрыт звездочками, но есть способ узнать пароль MikroTik;
  • Service = ovpn — сервис, указав который ограничиваем возможность подключения только к OpenVPN;
  • Profile = ovpn — созданный ранее профиль;
  • Remote Address — статический адрес. Если это не требуется, оставляем поле пустым.

Тоже самое можно сделать через консоль:

Запуск OpenVPN-сервера

В разделе PPP — Interface кликаем на кнопке OVPN Server и настраиваем как на скриншоте:

  • Default Profile = ovpn — созданный профиль;
  • Certificate = ovpn-serv — выбираем сертификат, который создавали для сервера;
  • Require Client Certificate — обязательное наличие сертификата при авторизации;
  • Auth = sha1 — хеширование пароля при его первой передаче по незащищенному каналу при аутентификации;
  • Cipher = aes 256 — шифрование передачи данных.

И не забываем поставить галочку напротив Enabled, чтобы включить сервер.

Открываем порт для OpenVPN

В разделе IP — Firewall на первой вкладке Filter Rules добавляем новое правило:

  • Chain = input — так как мы хотим дать доступ извне к самому маршрутизатору, то выбираем цепочку input;
  • Protocol = 6 (tcp) — протокол TCP , так как только этот протокол поддерживает Mikrotik для OpenVPN;
  • Dst.Port = 1194 — удаленный порт, который будет открыт на маршрутизаторе.

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

Более подробнее о настройке клиентов на разных ОС можно прочитать здесь:

Проблемы

duplicate packet, dropping

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

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

Источник

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

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

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

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

Сертификаты

Корневой сертификат. Для генерации сертификатов воспользуемся встроенными средствами устройства. Раздел System -> Certificates , создаем новый корневой сертификат (CA), поля Name , Common Name и Days Valid обязательны для заполнения. Размер ключа (Key Size) на ваше усмотрение.

Переходим на вкладку Key Usage , оставляем только crl sign и key cert. sign . Нажимаем кнопку Apply .

Не закрывая окна сертификата нажимаем кнопку Sign для его подписания. В открывшемся окне подписания сертификата в поле CA CRL Host пишем loopback адрес 127.0.0.1 , нажимаем кнопку Start .

Читайте также:  Что делать если бесконечная загрузка андроид

В консоли команда будет выглядеть так:

После подписания, в списке, сертификат будет иметь атрибуты KLAT (K — Private key, L — crl, A — Authority, T — Trusted).

Сертификат сервера. Создаем сертификат OpenVPN сервера. Процедура аналогична выпуску корневого сертификата.

Переходим на вкладку Key Usage , выбираем digital signature , key encipherment и tls server . Нажимаем кнопку Apply .

Не закрывая окна сертификата нажимаем кнопку Sign для его подписания. В открывшемся окне подписания сертификата в поле CA выбираем созданный ранее корневой сертификат (CA), нажимаем кнопку Start .

В консоли команда будет выглядеть так:

После подписания, в списке, сертификат будет иметь атрибуты KI (K — Private key, I — Issued).

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

При создании пользовательских сертификатов указываем максимально понятное имя для упрощения его идентификации в будущем.

Переходим на вкладку Key Usage , выбираем tls client . Нажимаем кнопку Apply .

Не закрывая окна сертификата нажимаем кнопку Sign для его подписания. В открывшемся окне подписания сертификата в поле CA выбираем созданный ранее корневой сертификат (CA), нажимаем кнопку Start .

В консоли команда будет выглядеть так:

После подписания, в списке, сертификат будет иметь атрибуты KI (K — Private key, I — Issued).

Экспорт сертификатов. Экспортируем корневой сертификат, правой клавишей на сертификате -> Export .

Тип ( Type ) выбираем PEM , поскольку для корневого сертификата закрытый ключ не экспортируется, то Export Passphrase не указываем. Export .

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

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

Во второй команде указан параметр export-passphrase=»1234567890″ — это пароль для доступа к закрытому ключу сертификата.

Файлы экспортированных сертификатов и закрытых ключей можно теперь скачать из раздела Files .

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

Создаем новый пул адресов для VPN клиентов, адресацию пула и диапазон задаем произвольно, но первый адрес будет задействован сервером OpenVPN поэтому в пул он попадать не должен. Пул создаем в IP -> Pool -> + , либо из консоли:

Создаем новый PPP профиль, в поле Local Address указываем адрес OpenVPN сервера, в поле Remote Address указываем созданный ранее пул адресов. PPP -> Profiles -> + , либо из консоли:

OpenVPN в устройствах MikroTik требуется обязательная аутентификация по пользователю и паролю. Создаем пользователей OpenVPN, в поле Service указываем, что пользователь может аутентифицироваться только на сервере OpenVPN, в поле Profile указываем созданный ранее профиль PPP. Создаваемые пользователи никак не привязаны к выданным сертификатам, в связке они образуют подобие двухфакторной авторизации. Пользователи создаются в разделе PPP -> Secrets -> + , либо из консоли:

Включаем сервис OpenVPN Server, PPP -> Interface -> OVPN Server . В настройка выбираем:

  • Enable — включаем сервис.
  • Port — по умолчанию используется порт 1194. Если с доступом на этом порту возникают проблемы, то его можно сменить на более распространенный, например, 443, если он не используется другими сервисами.
  • Mode — оставляем по умолчанию ip , это режим работы на уровне layer3 модели osi, в OpenVPN это режим tun. Если к серверу OpenVPN будут подключаться конечные устройства (компьютеры, планшеты, телефоны), то выбираем его.
  • Default Profile — выбираем созданный ранее профиль PPP.
  • Certificate — выбираем созданный ранее сертификат сервера.
  • Require Client Certificate — включаем обязательную проверку пользовательского сертификата.
  • Auth — sha1.
  • Chipher — blowfish 128.

Сохраняем настройки OpenVPN Server.

Включение OpenVPN сервера из консоли:

Настройка Firewall

В IP -> Firewall добавляем разрешающее правило для входящих подключений на порт сервера OpenVPN на интерфейсах, смотрящих в сеть интернет. Не забываем расположить правило выше запрещающих. В консоли добавление правила будет выглядеть так:

где: lst-if-WAN — список WAN интерфейсов, раздел Interfaces -> Interface List .

Для межсетевых экранов, работающих по схеме: закрыть всё, разрешить только необходимое, придется настроить хождение трафика.

Читайте также:  Узнать координаты своего андроид

1. Трафик до MikroTik и обратно:

Если необходимо, что бы трафик ходил между клиентами OpenVPN, то в обоих предыдущих правилах меняем src-address и dst-address, вместо 10.10.10.1/32 указываем 10.10.10.0/24, где 10.10.10.0/24 подсеть из адресного пространства которой раздаются адреса для OpenVPN клиентов.

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

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

2. Трафик между подсетью OpenVPN и домашней/рабочей подсетью:

Цепочки input и output описаны для доступа к маршрутизатору, если доступ к маршрутизатору по данному адресу не нужен, то эти правила не добавляем, либо ограничиваемся списками.

Цепочки forward предоставляют полный доступ клиентам, подключенным к OpenVPN, в сеть 192.168.10.0/24, кроме адреса маршрутизатора, для доступа к нему задействована цепочка input и output . Обратное правило разрешает полный доступ устройствам из сети 192.168.10.0/24 полный доступ к устройствам в сети OpenVPN. Для ограничения доступа рекомендуется использовать списки.

3. Доступ в интернет для клиентов OpenVPN:

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

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

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

На клиентском устройстве MikroTik в раздел Files копируем экспортированные ранее корневой и клиентский сертификаты + закрытый ключ к клиентскому сертификату.

Импортируем сертификаты в разделе System -> Certificates -> Import . Корневой сертификат выгружался без закрытого ключа, Passphrase для него не указываем.

Импортируем сертификат клиента, не забываем указать Passphrase указанный при экспорте сертификата.

Импортируем закрытый ключ к клиентскому сертификату, так же указываем Passphrase .

Импорт сертификатов из командной строки:

Создаем новое подключение в PPP -> Interface -> + -> OVPN Client . В настройках указываем:

  • Connect To — адрес OpenVPN сервера, к которому необходимо подключиться.
  • Port — как установлено в настройках сервера.
  • Mode — как установлено в настройках сервера.
  • User — имя пользователя, созданного на сервере.
  • Password — пароль пользователя.
  • Profile — default.
  • Certificate — созданный ранее сертификат клиента.
  • Verify Server Certificate — проверка сертификата сервера, включаем.
  • Auth — как в настройках сервера. Для нашей конфигурации sha1.
  • Cipher — как в настройках сервера. Для нашей конфигурации blowfish128.
  • Add Defaul Route — добавление маршрута по умолчанию определяется поставленными задачами.

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

Скачиваем OpenVPN Connect с официального сайта. Создаем новую папку, в которую складываем экспортированные ранее корневой и клиентский сертификаты + закрытый ключ к клиентскому сертификату. В этой же папке создаем файлы auth.cfg и config.ovpn (для удобства лучше называть файл настроек .ovpn по имени пользователя, для которого создается конфигурация, например, для нашего тестового пользователя назвать файл mi9tpro.ovpn ). В итоге в созданной папке должно быть 5 файлов:

  1. Корневой сертификат
  2. Сертификат клиента
  3. Закрытый ключ к клиентскому сертификату
  4. Файл auth.cfg
  5. Файл config.ovpn

Текстовым редактором открываем файл auth.cfg, первой строчкой пишем имя пользователя, созданного на сервере OpenVPN, второй строчкой пароль. Для нашей тестовой конфигурации будет так:

Текстовым редактором открываем файл config.ovpn , вносим настройки клиента:

openvpn_server_address — адрес вашего OpenVPN сервера

ca.crt — Корневой сертификат

client.crt — Сертификат клиента

client.key — Закрытый ключ

Устанавливаем и запускаем программу OpenVPN Connect. В разделе Import Profile выбираем File -> Browse .

Выбираем файл config.ovpn . Вносим последние настройки, понятное имя профиля, и пароль для расшифровки закрытого ключа (по желанию). Нажимаем кнопку Add .

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

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

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

Из Play Market скачивается приложение OpenVPN. Интерфейс и настройки такие же, как и у программы OpenVPN Connect для Windows. Ранее была проблема, что файл приватного ключа должен был быть заранее расшифрован, но похоже, что эта проблема уже решена.

Поиск проблем

При возникновении проблем с подключением, на стороне MikroTik добавляем вывод логов OpenVPN, System -> Logging -> Rules -> + ovpn , открываем вкладку Log и изучаем.

Отзыв сертификатов

Отзыв сертификатов производится в System -> Certificates , выбирается нужный сертификат кнопка Revoke .

Источник

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