- Настройка OpenVPN на роутерах Mikrotik
- Подготовка
- Настройка OpenVPN на роутерах Mikrotik. Генерация сертификатов
- Настройка OpenVPN на роутерах Mikrotik
- Для знающих:
- Настройка OpenVPN на роутерах Mikrotik. Подключение
- Возможные проблемы
- Записки IT специалиста
- Настройка OpenVPN-сервера на роутерах Mikrotik
- Подготовка роутера
- Создание ключей и сертификатов
- Настройка OpenVPN сервера
- Настройка OpenVPN клиента на роутере Mikrotik
- Настройка стандартного клиента OpenVPN на ПК
- Дополнительные материалы:
- Mikrotik
- The Dude
Настройка OpenVPN на роутерах Mikrotik
В сегодняшней статье мы рассмотрим настройку OpenVPN сервера на роутере Mikrotik, а также подключимся через данный VPN к серверу внутри локальной сети нашего Mikrotik.
Предупреждение! У вас должен быть белый, неважно статический или динамический IP адрес, чтобы VPN сервер работал, иначе вы к нему не сможете подключиться из внешней сети!
Mikrotik hAP ac^2 в качестве роутера-сервера, виртуальную машину с Windows 8.1 для генерации сертификатов, ноутбук с Windows 11 и другой сетью для тестирования соединения с установленным OpenVPN Connect (Сеть: 100МБит/с), сервер на Linux Debian для тестирования подключения внутри локальной сети по протоколу SSH, внешний канал со статическим внешним IP адресом (адресом, к которому можно подключиться из Интернета) и скоростью 400МБит/с.
Подготовка
Переходим на сайт для скачивания OpenVPN тык
Скачиваем версию 2.4.11 от 21 апреля 2021г. Почему не последнюю? На последней имеются проблемы с генерацией сертификатов и их совместимостью с Mikrotik (при тестировании выдавало ошибку авторизации). Поэтому воспользуемся достаточно свежей версией, но в которой для генерации сертификатов используется EasyRSA 2, а не 3. На безопасность это никак не влияет, останется такой же уровень, зато мы получаем идеальную совместимость.
При установке отмечаем галочку на EasyRSA 2, в остальном вполне обычный процесс установки. Только при установке TAP драйвера Windows может выдать уведомление о том, что устройство недоверенное и требуется подтверждение установки драйвера, в данном случае ставим галочку на доверять производителю и установить.
Настройка OpenVPN на роутерах Mikrotik. Генерация сертификатов
После установки открываем командную строку от имени администратора, там вводим команду cd C:\Program Files\OpenVPN\easy-rsa
И также в проводнике переходим в данную директорию.
Затем открываем блокнот и вписываем данный текст:
set «PATH=%PATH%;%ProgramFiles%\OpenVPN\bin»
set HOME=%ProgramFiles%\OpenVPN\easy-rsa
set KEY_CONFIG=openssl-1.0.0.cnf
set KEY_DIR=keys
set KEY_SIZE=1024
set KEY_COUNTRY=RU
set KEY_PROVINCE=Saint-Petersburg
set KEY_CITY=Saint-Petersburg
set KEY_ORG=YODO-ORG
set KEY_EMAIL=vpn@yodo.im
set KEY_CN=YODO
set KEY_OU=VPN
set KEY_NAME=x.x.x.x
set PKCS11_MODULE_PATH=VPN
set PKCS11_PIN=12345678
Где x.x.x.x — Ваш внешний IP адрес. (можно узнать на 2ip.ru)
KEY_SIZE можно указать и 2048, тогда подключение будет более безопасное, но и нагрузка будет выше из-за шифрования, поэтому пока оставим 1024.
KEY_CN — имя указанное в сертификате или имя/домен/IP сервера.
KEY_OU — Подразделение организации, в данном случае можно указать просто VPN
KEY_NAME — произвольное имя, мы укажем просто IP для сертификата сервера, для клиента соответственно имя клиента.
KEY_EMAIL — почта администратора сервера (укажем несуществующую для примера)
Сохраняем как vars.bat на рабочем столе (в проводнике выберите тип файла «все файлы» и напишите в имя файла vars.bat) и перемещаем в вышеуказанную директорию (требуются права администратора). Готовый файл: тык
Переходим к командной строке (CMD). Вписываем там vars.bat, выполняем. Затем clean-all.bat, потом ещё раз vars.bat.
Далее создадим корневой сертификат командой build-ca.bat
Поскольку переменные у нас уже заданы, просто везде нажимаем ENTER, где это требуется.
Затем создадим сертификат для сервера командой build-key-server.bat server где server — название файла сертификата
Процедура аналогичная, только в Common Name можно указать уже другое значение, например Mikrotik. Также запрос пароля пропускаем нажатием ENTER, затем соглашаемся на подпись сертификата нажав y и ENTER.
Для клиента все аналогично, Common Name и Name укажем Client1. Всё аналогично тому, что выше, только команда build-key.bat client1 где client1 — имя файла сертификата. Таких можно делать много, указывая Client2, свои имена и т.д, в зависимости от того, сколько сертификатов требуется.
Настройка OpenVPN на роутерах Mikrotik
Теперь открываем winbox, подключаемся к нашему Mikrotik. Открываем files и перемещаем файлы ca.crt server.crt и server.key, потом импортируем их в System>Certificates в заданной последовательности. Пароль указывать не нужно.
Поскольку я создаю VPN, чтобы подключаться к своей же локальной сети, поэтому не буду выделять отдельный пул, а воспользуюсь адресным пространством моего общего DHCP сервера. Для этого уже есть стандартный профиль default. Заходим в PPP>Profiles. Открываем профиль default и сверяемся с данными. Локальный адрес — шлюз, сам Mikrotik. У меня в локальной сети используется подсеть 172.16.0.0/24 (256 адресов), шлюз в данном случае 172.16.0.1
Удаленный адрес — пул DHCP сервера, в данном случае он выбран как DHCP. Клиент получит адрес по-типу 172.16.0.25
Для знающих:
Также у меня есть отдельная подсеть для других VPN подключений, но она для совершенно других целей и для изоляции от моей локальной сети. Там используется адресное пространство 10.0.0.0/26 (64 адреса, используется 50 из них), что также относится к пространству локальных сетей, как и 192.168.0.0/16 (65 536) и 172.16.0.0/12 (1 048 576) (а также полная для 10.0.0.0/8 (16 777 216 )). Продолжаем настройку.
Теперь перейдем в PPP>OVPN Server, выставляем параметры как на скриншоте и нажимаем Apply.
Режим IP — это Tun (сетевой туннель, сетевой уровень в модели OSI) в OpenVPN, рекомендую использовать его.
Теперь перейдем в PPP>Secrets, создаем учетную запись, выставляем параметры как на скриншоте. Дополнительно можем выделить статический локальный IP адрес клиенту в Remote Address, например 172.16.0.25 в моем случае.
Затем создадим конфигурационный файл для подключения, обратите внимание, где замазано — там должен быть Ваш внешний IP адрес.
Также обратите внимание на cipher, там стоит none, т.е без шифрования. Хоть роутер и имеет аппаратное обеспечение для шифрования, но нагрузку оказывает достаточно сильную всё равно. Возможны также варианты AES-128-CBC AES-192-CBC AES-256-CBC в зависимости от необходимой мощности шифрования.
client
dev tun
proto tcp
remote x.x.x.x 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
keepalive 10 120
verb 3
remote-cert-tls server
cipher none
auth-user-pass auth.txt
route 0.0.0.0 0.0.0.0
redirect-gateway def1
в auth.txt у нас будут храниться данные, указанные в Secrets в Mikrotik. На первой строчке файла должен находиться логин, на второй пароль и никак иначе.
Настройка OpenVPN на роутерах Mikrotik. Подключение
Теперь копируем файлы ca.crt client1.crt client1.key на клиентский ПК (в данном случае ноутбук), создаем auth.txt и вписываем необходимые данные. Все должно находиться в 1й директории. Затем скачиваем OpenVPN Connect тык
Установка предельно проста, поэтому в пояснении не нуждается.
После установки и принятия соглашения нажимаем файл, потом выбираем наш конфиг. После этого подключение происходит автоматически.
Как видим — указанный пользователь в Secrets, IP адрес из диапазона DHCP.
Теперь главное — сделаю Ping до своего сервера (который упоминался в начале статьи как сервер на Debian), чтобы проверить, есть ли к нему доступ и доходят ли пакеты, а затем попытаюсь подключиться по SSH до этапа ввода пароля. Всё проходит успешно.
Как видим — доступ есть. Теперь сделаем Speedtest, посмотрим какую скорость выдает данная конфигурация. Также учтем, что Wi-Fi в ноутбуке может выдавать в среднем 50МБит в секунду, несмотря на 5ГГц сеть. Сеть используется не моя, поэтому мы заходим полностью с внешнего канала.
Неплохой результат, нагрузка на роутер достигала 25% (что для 4х ядер и без шифрования многовато, когда в обычном использовании при 400МБит не выше 8%).
Возможные проблемы
Ошибка Time Out в логах, если у вас IP адрес не внешний (зачастую). В таком случае обратитесь к Вашему провайдеру для того, чтобы подключить услугу внешний/статический IP адрес. Стоимость
150руб в месяц. Других проблем, если вы делали всё четко по инструкции быть не должно.
Источник
Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
- Главная
- Настройка OpenVPN-сервера на роутерах Mikrotik
Настройка OpenVPN-сервера на роутерах Mikrotik
Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор — официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.
Подготовка роутера
OpenVPN, как и любой другой использующий SSL-шифрование продукт, чувствителен к расхождению времени между клиентом и сервером. Поэтому в первую очередь правильно настроим время на Mikrotik. Прежде всего откроем System — Clock и установим правильное значение часового пояса, его автоматическое определение лучше отключить.
В качестве параметра опции time-zone-name следует указать наименование вашего часового пояса согласно tz database.
Затем установим пакет NTP, для этого вам потребуется скачать с официального сайта архив Extra packages для вашей архитектуры и версии RouterOS, оттуда следует извлечь пакет ntp и поместить его на роутер, для установки достаточно перезагрузить устройство.
Обратите внимание, что вместо доменных имен серверов следует указать их IP, имейте ввиду, что адреса pool.ntp.org указывают на случайно выбранные из пула сервера, которые меняются каждый час, поэтому полученные вами адреса могут отличаться от указанных нами.
Аналогичные манипуляции следует выполнить на всех роутерах-участниках VPN-сети. Для ПК и других устройств-клиентов также следует настроить синхронизацию времени.
Создание ключей и сертификатов
Некоторые руководства в сети предполагают создание ключей и сертификатов при помощи сторонних утилит, например, Easy-RSA, мы же будем использовать собственные средства Mikrotik. Перейдем в System — Certificate и создадим новый корневой сертификат нашего центра сертификации (CA).
Затем перейдем на закладку Key Usage и укажем только crl sign и key cert. sign и нажмем кнопку Apply, теперь подпишем сертификат нажав Sign. В появившемся окне заполним поле CA CRL Host адресом локальной петли — 127.0.0.1, после чего нажимаем Start и дожидаемся окончания подписи сертификата.
Следующим создадим сертификат и закрытый ключ сервера. Закладка General нового сертификата заполняется аналогично, только в полях Name и Common Name указываем ovpn-server (можете выбрать на собственное усмотрение). На вкладке Key Usage укажите digital-signature, key-encipherment и tls-server. Затем подпишем сертификат ключом нашего CA, для этого в поле CA выберите только что созданный нами сертификат ca.
Теперь создадим клиентские сертификаты, в полях Name и Common Name на закладке General указываем имя сертификата, его следует давать осмысленно, чтобы всегда можно было определить какому клиенту принадлежит сертификат. Также следует подумать над сроком действия сертификата, если клиентом будет роутер в удаленном офисе, то можно также выпустить сертификат на 10 лет, а вот если клиентом будет ноутбук сотрудника на испытательном сроке, то лучше выдать его на срок испытательного срока. Выпустить новый сертификат не представляет проблемы, в то время как не отозванный вовремя сертификат может привести к несанкционированному доступу и утечке данных.
На вкладке Key Usage указываем только tls-client и также подписываем сертификат ключом нашего CA. Можно сразу выпустить все необходимые клиентские сертификаты, можно создавать из по мере необходимости.
Получение клиентского сертификата в консоли:
Обратите внимание, в данном случае мы выпустили сертификат со сроком действия в 1 год: days-valid=365.
Если все сделано правильно, то у вас будут следующие сертификаты, обратите внимание, что корневой сертификат должен иметь флаги KLAT, остальные KI:
Для использования на клиента нам необходимо экспортировать закрытый ключ и сертификат клиента, а также корневой сертификат центра сертификации. Удобнее всего использовать для этого формат PKCS12, который содержит все необходимые компоненты в одном файле (сертификат, ключ и сертификат CA). Для этого щелкните на нужном сертификате правой кнопкой и выберите Export, в открывшемся окне укажите формат Type — PKCS12 и парольную фразу для экспорта (минимум 8 символов) в поле Export Passphrase. Без указания пароля закрытые ключи выгружены не будут, и вы не сможете использовать такой сертификат для клиента.
Либо используйте команды:
В данном случае мы использовали парольную фразу 12345678. Экспортированные сертификаты можно скачать в разделе Files.
Настройка OpenVPN сервера
Начнем с создания пула адресов для выдачи OpenVPN клиентам, так как назначать адреса вручную во втором десятилетии 21 века — дурной тон. Для этого перейдем в IP — Pool и создадим новый пул: Name — ovpn_pool0 — произвольное имя пула, Addresses — 10.8.8.100-10.8.8.199 — диапазон адресов для выдачи клиентов, также можете выбрать по собственному усмотрению.
Теперь перейдем в PPP — Profiles и создадим новый профиль. Укажем его имя Name — ovpn, локальный и удаленный адреса: Local Address — 10.8.8.1, Remote Address — ovpn_pool0. На всякий случай напомним, что локальный адрес должен принадлежать той-же /24 сети, что и диапазон пула адресов.
Затем перейдем в PPP — Secrets и убедимся, что включена аутентификация по пользователю. Для этого нажмем PPP Authentication&Accounting, где должен стоять флаг Accounting:
Здесь же создадим учетные записи для клиентов. Особенностью реализации OpenVPN в RouterOS 6 является обязательное использование аутентификации по имени и паролю. При создании учетной записи указываем ее имя — Name, рекомендуем дать ей то же самое имя, которое вы использовали при создании сертификата, чтобы избежать путаницы. Password — пароль, так как основная аутентификация производится по сертификату особых требований к нему нет. Service — какие службы могут использовать данную учетную запись — ограничиваем только OpenVPN выбрав ovpn, затем указываем созданный нами профиль Profile — ovpn.
В терминале для создания учетной записи выполните:
В данном случае мы создали запись для пользователя mikrotik с паролем 123.
После создания пользователей перейдем в PPP — Interface и нажмем на кнопку OVPN Server, в открывшемся окне включим службу установив флаг Enabled, Default Profile — ovpn, в поле Certificate укажем созданный нами сертификат сервера. Для дополнительной безопасности включим Require Client Certificate, в этом случае сервер будет проверять сертификат клиента на принадлежность к цепочке сертификатов локального CA. Затем укажем параметры шифрования: Auth — безальтернативно sha1, Cipher — здесь есть возможность выбора, для роутеров с аппаратной поддержкой AES следует выбирать шифры только из этого семейства, однако чем сильнее шифр — тем больше он нагружает оборудование.
Также не забудьте разрешить входящие подключения к вашему OpenVPN серверу. Откроем IP — Firewall и добавим правило: Chain — input, Protocol — tcp, Dst. Port — 1194. Действие можно не указывать, так как по умолчанию применяется accept.
В терминале выполните:
Данное правило должно располагаться выше запрещающего в цепочке INPUT.
Настройка OpenVPN клиента на роутере Mikrotik
Прежде всего закачаем на устройство файл сертификатов в формате PKCS12, который мы экспортировали на сервере. Для этого перейдем в System — Certificate и воспользуемся кнопкой Import, в открывшемся окне укажем файл сертификата и парольную фразу, которую мы установили при экспорте.
В результате у вас появятся два сертификата: сертификат клиента с закрытым ключом, о чем говорит флаг KT, и корневой сертификат удостоверяющего центра с флагом LAT (K — означает наличие ключа). Запомним наименование сертификатов, либо переименуем их.
Если все было сделано правильно, то соединение будет установлено сразу как вы создадите интерфейс.
Чтобы клиенты сети за клиентом имели доступ в сеть за сервером и наоборот необходимо настроить маршрутизацию. Перейдем в IP — Routes и добавим новый маршрут. В поле Dst. Address укажем сеть за сервером, в нашем случае это 192.168.186.0/24, в поле Gateway укажем интерфейс нашего OpenVPN подключения — ovpn-out1.
Теперь перейдем на сервер и посмотрим каким образом выглядит подключение данного клиента. Как видим, был создан динамический интерфейс ovpn-mikrotik, настраивать маршрутизацию с таким интерфейсом нельзя, так как маршрут «сломается» при отключении клиента.
После чего можно добавить на сервере маршрут к сети за клиентом, настройки здесь аналогичные, Dst. Address — сеть за клиентом, Gateway — интерфейс OpenVPN подключения. В нашем случае 192.168.111.0/24 — сеть за клиентом.
После чего можем проверить связь. Узлы различных сетей должны видеть друг друга.
Настройка стандартного клиента OpenVPN на ПК
Немного изменим задачу, будем считать, что у нас есть ноутбук сотрудника с установленным клиентом OpenVPN, которому необходимо обеспечить доступ в корпоративную сеть через OpenVPN сервер на роутере Mikrotik. Будем считать, что OpenVPN установлен в C:\OpenVPN, а для хранения ключей используется директория C:\OpenVPN\keys.
Прежде всего разместим файл сертификатов в формате PKCS12 в директории для хранения ключей, а также создадим файл с учетными данными C:\OpenVPN\auth.cfg и разместим в нем в разных строках логин и пароль:
Где win10 — имя пользователя, 123 — пароль которые мы задали для этой учетной записи на сервере.
Теперь создадим файл C:\OpenVPN\keypass.cfg в котором разместим парольную фразу для сертификата:
За основу конфигурационного файла мы примем стандартный шаблон client.ovpn, который расположен в C:\OpenVPN\sample-config. Его следует скопировать C:\OpenVPN\config, ниже будут приведены только ключевые опции, а также те, которые мы изменяем или добавляем.
Укажем, что у это клиент, тип туннеля — tun и протокол tcp:
Адрес и порт сервера:
Убедимся в наличии опций:
Затем заменим весь блок с указанием путей к ключам и сертификатам:
где укажем путь к нашему файлу сертификатов в формате PKCS12.
Ниже добавим две строки с указанием, где брать учетные данные для дополнительной аутентификации и парольную фразу:
Проверим наличие опции:
Сразу добавим маршрут к сети за сервером:
Укажем выбранный нами на сервере шифр:
и отключим сжатие:
Теперь можно пробовать подключаться. Если все сделано правильно, то клиент подключится к серверу и ему будут доступны ресурсы сети за сервером. Никаких дополнительных настроек на сервере производить не нужно.
Если за данным ПК у вас находится сеть и нужно обеспечить связь между сетями, то нужно выполнить настройки на сервере аналогичные предыдущей части: создать интерфейс для подключения клиента и добавить маршрут для сети за клиентом. На клиентском ПК не забудьте включить службу маршрутизации.
Данная инструкция также полностью подходит для ПК на Linux, вам потребуется только откорректировать пути в конфигурационном файле и раскомментировать в нем опции:
Как видим, настройка OpenVPN сервера на роутерах Mikrotik достаточно проста, но требует учитывать особенности и ограничения реализации этой технологии в RouterOS.
Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор — официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.
Дополнительные материалы:
Mikrotik
The Dude
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
Источник