Openvpn mikrotik настройка клиента windows

Обновлено: 03.07.2024

Примечание: ca-crl-host= — обязательный параметр, иначе список отзыва не будет создан; полный путь к списку отзыва будет указан в параметрах сертификата, графа "[1]Точка распределения списка отзыва (CRL)"; в принципе, можно указать любой из ip-адресов нашего микротика, тот что укажем — и будет прописан в сертификате. Доменные имена параметром не поддерживаются, к сожалению.

1.2. Сертификат сервера:

/certificate add name=template-SRV country="" state="" locality="" organization="" unit="" common-name="test-srv-OVPN" key-size=4096 days-valid=1095 key-usage=digital-signature,key-encipherment,tls-server

/certificate sign template-SRV ca="test-CA" name="test-srv-OVPN"

Примечание: для сертификата сервера key-usage лучше не менять, почему так — описано здесь (а если очень хотим поменять — то там же написано что нужно прописать в конфиге клиента для этого).

Примечание: в отличие от SSTP — OVPN не проверяет соответствие common-name сертификата сервера fqdn'у этого сервера.

1.3. Шаблон для сертификатов клиентов:

/certificate add name=template-CL country="" state="" locality="" organization="" unit="" common-name="test-client-ovpn-template" key-size=4096 days-valid=365 key-usage=tls-client

1.3.1 Сертификат первого клиента:

/certificate add name=template-CL-to-issue copy-from="template-CL" common-name="test-client-ovpn-1"

/certificate sign template-CL-to-issue ca="test-CA" name="test-client-ovpn-1"

1.3.2. Сертификат второго и последующих клиентов:

См. п. 3.1, но меняем значение параметров.

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

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

1.4 В будущем, для отзыва сертификатов используем команду:

certificate issued-revoke %cert-name%

Где %cert-name% — поле name= подписанного сертификата, то есть отображаемое PKI микротика.

2. Настройка OVPN сервера

Примечание: можно настроить в режиме tun («ip» в ROS), а можно в режиме tap («ethernet» в ROS). Режим tun — обычный туннель. Режим tap — эмуляция полноценного ethernet, в частности в режиме tap клиентов можно объединить в режим моста и они будут прекрасно друг друга видеть. В теории в режиме tap можно запустить DHCP-сервер, но в текущей версии ROS это не реализовано.

2tun. Режим tun

2tun.1. Задаём пул адресов для OVPN-клиентов (можно задать непосредственно в PPP-profile):

/ip pool add name=OVPN_srv_pool ranges=192.168.100.2-192.168.254

2tun.2. Создаём PPP-profile для OVPN-сервера:

/ppp profile add name=OVPN_server local-address=192.168.100.1 remote-address=OVPN_srv_pool

Опционально! Остальные параметры по вашему вкусу и в соответствии с вашими целями. Например: dns=192.168.100.1 use-ipv6=no

2tun.3. Настраиваем режим аутентификации пользователей:

/ppp aaa set accounting=yes

2tun.4. Добавляем пользователей:

/ppp secret add name=test-user-1 password=P@ssword1 service=ovpn profile=OVPN_server

/ppp secret add name=test-user-2 password=P@ssword2 service=ovpn profile=OVPN_server

2tun.5. Включаем OVPN-сервер:

/interface ovpn-server server set auth=sha1 cipher=blowfish128 default-profile=OVPN_server mode=ip netmask=24 require-client-certificate=yes certificate=test-srv-OVPN enabled=yes

2tap. Режим tap

2tap.1. Задаём пул адресов для OVPN-клиентов (можно задать непосредственно в PPP-profile):

/ip pool add name=OVPN_srv_pool ranges=192.168.100.2-192.168.254

2tap.1+. Создаём мост для OVPN-подключений:

/interface bridge add name=OVPN_bridge arp=enabled

Примечание: IP для моста назначать совершенно не обязательно, он и так имеется в PPP-profile (кроме того если указать адрес для моста, но не указать local-address= в PPP-profile, то клиент не подключится).

Примечание: arp должен быть включён, иначе клиенты друг-друга не увидят.

2tun.2. Создаём PPP-profile для OVPN-сервера:

/ppp profile add name=OVPN_server local-address=192.168.100.1 remote-address=OVPN_srv_pool bridge=OVPN_bridge

Опционально! Остальные параметры по вашему вкусу и в соответствии с вашими целями. Например: dns=192.168.100.1 use-ipv6=no

2tap.3. Настраиваем режим аутентификации пользователей:

/ppp aaa set accounting=yes

2tap.4. Добавляем пользователей:

/ppp secret add name=test-user-1 password=P@ssword1 service=ovpn profile=OVPN_server

/ppp secret add name=test-user-2 password=P@ssword2 service=ovpn profile=OVPN_server

2tap.5. Включаем OVPN-сервер:

/interface ovpn-server server set auth=sha1 cipher=blowfish128 default-profile=OVPN_server mode=ethernet netmask=24 require-client-certificate=yes certificate=test-srv-OVPN enabled=yes

Примечания для обоих режимов:

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

2. RADIUS-аутентификацию я не рассматриваю просто потому, что не тестировал. Могу лишь предположить, что работать она будет только для username/password, а сертификаты будут всё так же проверяться на микротике.

3. Следите за тем, что бы пул адресов соответствовал подсети, указываемой в настройках OVPN-сервера. ROS'овский OVPN-сервер не будет разбираться принадлежат ли одной сети local-address= сервера и назначаемый из пула адрес клиента, более того, если, к примеру, использовать маску 29, а в качестве пула прописать ranges=192.168.100.0/29, клиенту может быть в лёгкую назначен броадкастовый 192.168.100.7, как это было у меня. Точно такая же ситуация может возникнуть, если указанный пул больше, чем подразумевает маска — только проблема выявится не сразу, а чуть погодя.

3. Экспорт сертификатов для настройки клиентов

3.1. Экспорт сертификата CA:

/certificate export-certificate test-CA export-passphrase=""

Примечание: Нам нужен только сам сертификат, закрытый ключ НЕ нужен, поэтому параметр export-passphrase="" должен быть пустым.

3.2. Экспорт сертификатов клиентов:

/certificate export-certificate test-client-ovpn-1 export-passphrase=private-key-password1

/certificate export-certificate test-client-ovpn-2 export-passphrase=private-key-password2

Примечание: export-passphrase= — обязательный параметр для экспорта закрытых ключей; используем для каждого клиента свой пароль; НЕ используем тот же самый пароль, который указывали в пунктах 2.4 для пользователей!

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

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

Содержимое client.ovpn с небольшими комментариями

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

Примечание: список большинства параметров здесь но он несколько устаревший.

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

1 Импорт сертификатов

1.1 Кладём в микротик файл сертификата CA и файл сертификата и файл ключа клиента любым удобным способом

1.2 Импортируем сертификат CA

/certificate import file-name=cert_export_test-CA.crt passphrase=""

1.3 Импортируем сертификат и ключ клиента

/certificate import file-name=cert_export_test-client-ovpn-1.crt passphrase=""

/certificate import file-name=cert_export_test-client-ovpn-1.key passphrase=private-key-password1

2. Настраиваем клиент

/interface ovpn-client add name=OVPN_client connect-to= port=1194 mode= user=test-user-1 password=P@ssword1 profile=default certificate=cert_32 auth=sha1 cipher=blowfish128 add-default-route= disabled=no

Значения в <> указываете в соответствии с предыдущими настройками и вашими потребностями.

Для экспериментов использовалось следующее оборудование и ПО:

RouterBoard 2011UiAS-2HnD с RouterOS 6.32.2 на борту — 2 шт., один в качестве сервера, другой в качестве клиента; оба служат пограничными шлюзами — дома и на работе.

Ноутбук с Windows 10 Pro x64 на боту — 1 шт., в качестве клиента; служит для работы и в качестве лаборатории.

В данной инструкции я покажу настройку между двумя Mikrotik OpenVPN Server и Client. Будем делать аутентификацию без сертификата и с ним. Конфигурация с сертификатами требует большой подготовки и ответственности, так как нам нужно всегда думать о сохранности, актуальности и списке отзыва, но не оспоримый плюс — это высокая безопасность. Правилом хорошего тона будет постоянный экспорт сертификатов из роутера на внешнее хранилище, жесткий диск.

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

Так же OpenVPN на RouterOS v6 не поддерживает следующее:

  • UDP протокол, т.е. необходимо использовать исключительно TCP;
  • LZO сжатие;
  • TLS аутентификация;
  • Аутентификация без имени пользователя и пароля;

Лабораторная топология сети

Схема сети представлена ниже.

Приняв во внимание вышеописанные ограничения и особенности приступим к настройке.
Мы находимся справа внизу в офисе SPB (Office-SPB).
Вводные данные:

  • Office-SPB сервер;
  • Office-Moscow клиент;
  • NetworkCore выполняет роль провайдера, он будет заниматься обычной маршрутизацией;
  • Office-Moscow ether1 смотрит в интернет 172.16.10.2/24;
  • Office-SPB ether1 смотрит в интернет 172.16.11.2/24;
  • Office-Moscow имеет bridge “General-Bridge” в локальной сети 192.168.11.1/24;
  • Office-SPB имеет bridge “General-Bridge” в локальной сети 192.168.10.1/24;
  • IP ПК в локальной сети Office-Moscow 192.168.11.2;
  • IP ПК в локальной сети Office-SPB 192.168.10.2;
  • Адресация в VPN сети 172.16.25.0/24;
  • Версии RouterOS 6.46.2.
Если вы хотите углубить свои знания по работе с роутерами MikroTik, то наша команда рекомендует пройти курсы которые сделаны на основе MikroTik Certified Network Associate и расширены автором на основе опыта . Подробно читайте ниже.

Настройка OpenVPN по логину и паролю

Первым делом проверим доступность через интернет. Я отправлю ping запросы с обоих роутеров, чтобы убедиться, что они друг друга видят. В реальной жизни один из них должен иметь белый (публичный) IP, а именно тот, кто будет выполнять роль сервера.

Тестирование связи между устройствами
Создание сертификата центра сертификации

В данном разделе находятся все сертификаты на Mikrotik. Для настройки сервера нам необходимо сделать следующее:

  • Создать сертификат центра сертификации;
  • Создать сертификат сервера.

Нажимаем плюс и задаем параметры согласно скриншоту:

  • Name – имя в списке Mikrotik;
  • Country, Sate, Locality, Organization, Unit – произвольные поля для заполнения;
  • Common Name – самое важное. Указываем уникальное имя;
  • Key Size – длина ключа. Выбирается в выпадающем списке;
  • Days Valid – срок годности.

Задаем параметры сертификата центра сертификации

На данный момент мы создали шаблон.

Подписание! Обращаю внимание, что мы будем создавать самоподписанный корневой сертификат центра сертификации.

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

Меню шаблона сертификата OpenVPN Mikrotik



В открывшемся окне выбираем CA. Обязательно указываем CA CRL Host – список отзыва, можно указать доменное имя.

Сертификат центра сертификации OVPN микротике

Нажимаем Start и ждем окончания процесса.

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

Открываем Certificates и нажимаем на плюс.

Параметры сертификата сервера OVPN Mikrotik

Открываем Key Usage, снимаем галочки с:

  • crl sign;
  • data encipherment;
  • key sert sign;
  • ставим галочку на tls server.

Параметры OpenVPN Server шаблона

Сохраняем. Переходим к подписанию.


Выбираем сертификат в списке. В контекстном меню нам нужен Sign. В Certificate выбираем шаблон ServerOVPN, в CA самоподписанный корневой сертификат. Start.

Свойства сертификата сервера OVPN 4

В списке видим, что наш шаблон превратился в полноценный сертификат. Можем открыть его свойства.

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

Создание профиля OpenVPN

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

Параметры профиля OpenVPN

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

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

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

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

Параметры профиля OpenVPN Server

Параметры профиля OpenVPN onle one

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

Профайл OpenVPN Mikrotik

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

Создание пользователя OVPN

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

Параметры пользователя OpenVPN

Задаем произвольные логин и пароль. Выбираем 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.

Параметры OpenVPN сервер по пользователю и паролю

Настройка Firewall


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

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

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

Параметры правила фаервола OVPN - accept

Action – accept.

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

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

Создание OpenVPN Client интерфейса

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

Имя OpenVPN Client интерфейса

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

Параметры OVPN Client интерфейса

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

Статус OVPN Client интерфейса по сертификату

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

Проверка соединения OVPN по сертификату

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

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

Настройка OpenVPN по сертификату

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

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

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

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

Параметры OpenVPN Client шаблона

Key Usage. Обязательно ставим галочку на tls client.

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

Сохраняем изменения и нажимаем Copy. Выбираем наш шаблон для пользователей и создаём копию. В Common Name уникальное имя. Далее нажимаем Apply и Sign.

Генерация пользовательского сертификата OpenVPN

В открывшемся окне по аналогии с предыдущих примеров выбираем корневой сертификат и жмем Start.


Далее нужно экспортировать и импортировать ключи на клиентский Mikrotik. Выбираем в списке и жмем Export.

Экспорт ключей OVPN Mikrotik

Для того чтобы выгрузить открытый и закрытый ключи, вбиваем пароль в поле Export Passphrase. Export.

Экспорт открытого ключа CA

Далее нужно экспортировать открытую часть CA.

Копирование ключей OpenVPN Mikrotik

Переходим в Files, выбираем 3 созданных файла и перетаскиваем на рабочий стол.

Проверять клиентские сертификаты OVPN при подключении

В настройках OVPN Server выставим чтобы проверялись клиентские сертификаты при подключении.

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

Копирование ключей OpenVPN Mikrotik на клиента

После экспорта и копирования ключей подключимся к питерскому роутеру. Открываем Files и переносим с рабочего стола 2 файла скопированных ранее.

Импорт ключей OpenVPN

Переходим в Certificates и импортируем открытый и закрытый ключи.

Импорт открытого ключа OpenVPN

В выпадающем списке выбираем открытый ключ и вписываем пароль. Import.


Тоже самое с закрытым ключом.

Импорт сертификата CA OpenVPN

Далее импортируем CA.

Настройка клиенского интерфейса OpenVPN по сертификату

Открываем ранее созданный OVPN Client интерфейс, выбираем импортированный сертификат и требуем проверку серверного.

Статус OVPN Client интерфейса по сертификату

Соединение установилось.

Проверка соединения OVPN по сертификату

Проверим его.

На этом все, мы рассмотрели настройку OpenVPN (OVPN) между двумя роутерами микротик, один из них выступал в роли сервера а второй в роли клиента. Если у вас остались вопросы задавайте их в комментариях или нашей группе Телеграмм.

89 вопросов по настройке MikroTik

Вы хорошо разбираетесь в Микротиках? Или впервые недавно столкнулись с этим оборудованием и не знаете, с какой стороны к нему подступиться? В обоих случаях вы найдете для себя полезную информацию в курсе «Настройка оборудования MikroTik». 162 видеоурока, большая лабораторная работа и 89 вопросов, на каждый из которых вы будете знать ответ. Подробности и доступ к началу курса бесплатно тут.

Бывают случаи, когда необходимо настроить удалённый доступ на mikrotik или даже на несколько.
Особенно это актуально, если вы обслуживаете несколько объектов и нет возможности физически постоянно присутствовать возле оборудования.
В этом статье мы разберём, как настроить OpenVPN сервер на mikrotik, а также клиенты на mikrotik и компьютере под управлением Windows.

Для работы нам понадобится Белый IP адрес (он и будет адресом сервера в наших настройках) для доступа к серверу из интернета и сертификаты безопасности.

Краткий план данной статьи:

Создание сертификатов и ключей OpenVPN

1) Скачаем программу OpenVPN с официального сайта.

OpenVPN страница сайта

2) Устанавливаем, выбрав все галочки.

EasyRSA Certificate Management Scripts нам обязательно понадобится для генерации ключей и сертификатов.

Openvpn Установка

3) Указываем путь. В дальнейшем он нам понадобится. В нашем случае используем стандартный C:\Program Files\OpenVPN

4) После установки заходим в C:\Program files\OpenVPN\easy-rsa

Открываем vars.bat (если его нет, то vars.bat.sample) блокнотом или NotePad++ и редактируем его.

5) Отредактируем файл openssl-1.0.0.cnf
Так же открываем с помощью блокнота или notepad++

Запуск командной строки с правами администратора

7) Поочередно выполняем следующие три команды:
cd C:\Program files\OpenVPN\easy-rsa
vars
clean-all

easy-rsa vars clean-all

В папке C:\Program files\OpenVPN\easy-rsa появится папка keys с двумя файлами index.txt и serial.

easy-rsa 2 файла в папке с ключами

Нажимаем Enter, пока не закончатся вопросы.
Вы увидите в командной строке путь C:\Program files\OpenVPN\easy-rsa

Генерируем ключ центра сертификации

Нет смысла менять заданные значения. Вы ранее прописали эти параметры в файле vars.bat

На вопросы Sign the certificate? и 1 out of 1 certificate requests certified, commit? отвечаем нажатием Y

12) Генерация сертификатов окончена.
В папке C:\Program files\OpenVPN\easy-rsa\keys можно увидеть следующие файлы:

 Генерация сертификатов окончена. Список готовых файлов

Сертификаты для сервера и клиентов готовы.

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

Подключимся к Mikrotik с помощью программы Winbox.
Загрузим 3 файла: ca.crt, server.crt, server.key
Для этого в меню нажмём Files и перетащим их из папки C:\Program files\OpenVPN\easy-rsa\keys

Загрузим в микротик ca.crt, server.crt, server.key

Импортируем в микротик сертификаты

После импорта появятся две записи:

После импорта появятся сертификаты

14) Создадим пул адресов для VPN клиентов:

Добавим пул адресов

15) Создадим PPP профиль.

Микротик профиль PPP

Создаём на микротике сервер openvpn

Микротик пользователь для подключения VPN

Создадим 2 пользователя:

ovpn_user1 для клиента на компьютере

ovpn_mikrotik1 для клиента на Mikrotik

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

Настройка фаервола для VPN микротика

Сервер настроен, теперь приступим к настройке VPN клиентов.

Настройка VPN клиента на компьютере под управлением Windows

19) Копируем в папку C:\Program files\OpenVPN\config\

из C:\Program files\OpenVPN\easy-rsa\keys следующие файлы
ca.crt, client.crt, client.key.

из C:\Program files\OpenVPN\simple-config\
client.ovpn

Создадим текстовый файл pass, где укажем логин и пароль от созданного VPN клиента на сервере.
В нашем случае это ovpn_user1

Запускаем OpenVPN и подключаемся.

Подключение к OpenVPN

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

Удачное подключение к VPN, получен IP

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

Имея настроенный OpenVPN сервер, можно настроить доступ на Mikrotik даже там, где нет белого IP адреса.

22) Подключимся к Mikrotik с помощью программы Winbox.
Загрузим 2 файла: client.crt, client.key

Для этого в меню нажмём Files и перетащим их из папки C:\Program files\OpenVPN\easy-rsa\keys

Импорт в микротик клиентского ключа и сертификата

Нажимаем ОК

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

Микротик статус VPN подключения в консоле

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

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

  • Генерирование сертификатов.
  • Настройка сервера OpenVPN.
  • Тестовое подключение к серверу.

Подключение к Mikrotik осуществим при помощи Winbox, однако ход настройки через веб-интерфейс аналогичен.

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

Для правильной работы роутера с сертификатами, необходимо корректно настроенное время. Переходим в System - Clock:

Переходим в System - Clock

Проверяем правильность установки времени и часового пояса.

Если время задано неправильно, выбираем подходящий часовой пояс. После переходим в терминал и задаем настройки для сервера, с которым мы будем синхронизировать время:

/system ntp client

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

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

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

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

> /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).

2. Генерируем сертификат сервера 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-install для нашей операционной системы, например, Windows 7 или 10:

Загрузка OpenVPN клиента

Запускаем установку клиента - снимаем все галочки, оставляем EasyRSA 2 Certificate Management Scripts:

Установка клиента OpenVPN

Завершаем установку. После чего в папке C:\Program Files\OpenVPN\easy-rsa создаем файл vars.bat со следующим содержимым:

* где для нас имеют значение:

  • HOME оставляем, если не меняли путь установки программы по умолчанию.
  • KEY_DIR — каталог, куда будут генерироваться сертификаты.
  • KEY_CONFIG может быть разным — его лучше посмотреть в файле vars.bat.sample или по названию соответствующего файла в папке easy-rsa.
  • KEY_NAME желательно, чтобы соответствовал полному имени VPN-сервера; остальные опции можно заполнить произвольно.
  • опции KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, KEY_EMAIL, KEY_CN, KEY_OU — атрибуты для сертификата. Их можно оставить, как в данном примере или задать свои собственные.

В этой же папке C:\Program Files\OpenVPN\easy-rsa создаем каталог keys — в нем будут создаваться сертификаты.

Запускаем командную строку от имени администратора:

Запускаем командную строку от администратора, чтобы сгенерировать сертификат

Переходим в каталог easy-rsa:

Чистим каталоги от устаревшей информации:

Снова запускаем vars.bat (после clean переопределяются некоторые переменные):

Теперь генерируем последовательность центра сертификации:

На все запросы нажимаем Enter (по умолчанию, будут подставлены значения, которые мы указали в файле vars.bat).

Генерируем сертификат для сервера:

* где server — имя сертификата; на все запросы нажимаем Enter. В конце подтверждаем два раза корректность информации вводом y.

Готово — в каталоге C:\Program Files\OpenVPN\easy-rsa\keys мы найдем 3 сертификата — ca.crt, server.crt. server.key:

Запускаем командную строку от администратора, чтобы сгенерировать сертификат

Их мы будем использовать для настройки OpenVPN.

Импорт сертификатов

Заходим в настройки роутера - переходим в раздел Files - кликаем по Upload и выбираем наши 3 сертификата:

Загрузка сертификатов на Mikrotik

Кликаем по OK. Нужные нам файлы окажутся на роутере.

Переходим в System - Certificates:

Переходим к сертификатам в микротике

Кликаем по Import:

Импортируем сертификаты в микротик

. и по очереди импортируем:

* импорт делаем именно в такой последовательности.

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

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

1. Создаем пул IP-адресов

Пул адресов нужен для выдачи клиентам сетевых адресов. Для его настройки переходим в IP - Pool:

Переходим в IP - Pool

Переходим к добавлению нового пула:

Добавляем новый пул

Введем настройки для нашего пула:

Настройка пула адресов для OpenVPN

* где Name просто указывает название для идентификации пула (openvpn); Addresses — стартовый и конечный адреса, которые будет назначаться клиентам при подключении к VPN. В данном примере мы указываем последовательность от 176.16.10.10-176.16.10.250.

2. Создание профиля

В профиле мы задаем настройки IP-адреса интерфейса для VPN и ранее созданный пул.

Переходим в PPP - открываем вкладку Profiles - создаем новый профиль - указываем название для профиля, IP-адрес сервера VPN и пул, из которого будут выдаваться IP-адреса клиентам - OK:

Создание профиля для OpenVPN

* как видим, мы указали название профиля profile-openvpn, выбрали наш пул openvpn и назначили адрес 176.16.10.1 для сервера.

3. Создание пользователя

Для каждого, кто будет подключаться к VPN необходимо создать свою учетную запись. В том же PPP переходим на вкладку Secrets - создаем нового пользователя - задаем ему имя, пароль, указываем сервис ovpn и выбираем профиль, из которого пользователю будет назначен адрес при подключении - нажимаем OK:

Создание пользователя для аутентификации на OpenVPN

* мы создадим учетную запись client1 для сервиса ovpn и профиля, созданного нами ранее.

4. Включаем и настраиваем сервер OpenVPN

Для включение сервиса OpenVPN в том же PPP переходим на вкладку Interface - кликаем по кнопке OVPN Server - включаем сервис (Enabled) и задаем настройки - кликаем по OK:

Включение OpenVPN на Mikrotik

* в данном примере примененные настройки пометились синим цветом. Мы указали профиль для PPP (profile-openvpn), выбрали сертификат сервера (server), включили требование клиентского сертификата (Require Client Certificate) и расширили число алгоритмов для шифрования.

5. Настройка брандмауэра

Мы активировали наш сервер OVPN на порту 1194 и нам нужно открыть данный порт на фаерволе. Переходим в раздел IP - Firewall:

Переходим к настройке брандмауэра

На вкладке Filter Rules создаем новое правило:

Настройка правила на брандмауэре для разрешения порта 1194

* мы должны выбрать для Chain — Input, указать протокол (tcp) и задать порт, на котором слушает сервер OpenVPN (1194).

По умолчанию для создаваемых правил, действие задано на разрешение, поэтому просто сохраняем правило, нажав OK. После создания правила перетягиваем его мышкой наверх (выше запрещающих правил).

OpenVPN сервер готов к работе.

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

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

1. Создание сертификатов для клиента

Ранее мы рассмотрели 2 способа создания сертификатов для сервера — рассмотрим также два способа и для клиентов.

Способ 1. С помощью консоли на Mikrotik

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

/certificate add name=template-clients country="RU" state="Sankt-Petersburg" locality="Sankt-Petersburg" organization="Organization" unit="DMOSK" common-name="clients-template" key-size=2048 days-valid=3650 key-usage=tls-client

Теперь создадим сертификат для первого клиента:

/certificate add name=template-client-to-issue copy-from="template-clients" common-name="client1"

/certificate sign template-client-to-issue ca="ca" name="client1"

* принцип, во многом, схож с процессом создания ключенй для сервера.

Для создания сертификата второго клиента вводим:

/certificate add name=template-client-to-issue copy-from="template-clients" common-name="client2"

/certificate sign template-client-to-issue ca="ca" name="client2"

После экспортируем сертификаты:

/certificate export-certificate ca export-passphrase=""

/certificate export-certificate client1 export-passphrase=12345678

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

Теперь переходим в раздел Files и скачиваем сертификат для ca и клиентов:

Загрузка экспортированных сертификатов

После переименовываем их в client1.crt, client1.key, ca.crt.

Способ 2. На Windows

Снова запускаем от администратора командную строку. Переходим в каталог easy-rsa:

Запустим скрипт vars.bat:

Создадим сертификат для первого пользователя:

* на все запросы наживаем Enter, кроме Common Name — в данном поле вводим имя клиента (в нашем случае, просто client1). В конце подтверждаем введенную информацию — y.
** На каждого клиента нужно сгенерировать свой сертификат, в противном случае, могут быть проблемы идентификации клиентов с последующей выдачей одинаковых IP.

Теперь из папки keys копируем файлы client1.crt, client1.key, ca.crt и переносим их на клиентский компьютер.

2. Установка и настройка OpenVPN

Рассмотрим конфигурирование клиента для Windows и Linux. Подробнее процесс описан в статье Настройка OpenVPN клиента — в ней можно найти подробное описание опций настройки, а также пример конфигурирования клиента на Android.

Windows

Заходим на сайт OpenVPN и переходим на страницу загрузки. Скачиваем openvpn-install для нашей операционной системы:

Загрузка OpenVPN клиента

Запускаем установку клиента - оставляем галочки, как есть. Продолжаем установку и дожидаемся ее окончания.

Открываем текстовый редактор и создаем конфиг:

client
dev tun
proto tcp
remote xxx.xxx.xxx.xxx 1194
auth-nocache
ca ca.crt
cert client1.crt
key client1.key
remote-cert-tls server
cipher AES-256-CBC
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
auth-nocache
auth-user-pass
route 192.168.0.0 255.255.255.0

* в данном конфиге нас интересуют опции:

  • remote — адрес нашего VPN-сервера;
  • cert и key — имена файлов с сертификатами;
  • route — адрес маршрута для доступа к локальной сети, которая находится за роутером и куда нужно пустить пользователей.

Сохраняем файл с настройками в каталоге C:\Program Files\OpenVPN\config (или другом, где установлен клиент). В этот же каталог поместим наши сертификаты.

Запускаем OpenVPN GUI от имени администратора — в правом нижнем углу появится иконка программы:

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

Кликаем по ней правой кнопкой мыши и выбираем Подключиться:

Подключаемся к OpenVPN серверу

Программа попросит нас авторизоваться — вводим логин и пароль, созданные ранее на роутере (client1); после мы должны будем ввести пароль для сертификата — вводим тот, что использовали при выгрузке.

Дожидаемся подключения — значок должен стать зеленым:

Подключенный к серверу клиент OpenVPN

Если мы хотим запускать клиента без пароля (без необходимости его вводить), в конфиге правим опцию auth-user-pass на:

Создаем текстовый файл auth.txt в той же папке, где находится файл конфигурации со следующим содержимым:

* где username — логин пользователя, а password — пароль.

Linux

Приведем примеры установки клиента для систем на базе deb и RPM.

а) на deb (Debian, Ubuntu, Mint):

apt-get install openvpn

б) на RPM (Red Hat, CentOS, Fedora):

yum install epel-release

yum install openvpn

После установки клиента создаем конфигурационный файл:

client
dev tun
proto tcp
remote xxx.xxx.xxx.xxx 1194
auth-nocache
ca ca.crt
cert client1.crt
key client1.key
remote-cert-tls server
cipher AES-256-CBC
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
auth-nocache
auth-user-pass
route 192.168.0.0 255.255.255.0

Также в каталог /etc/openvpn копируем сертификаты.

openvpn --config /etc/openvpn/client.conf

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

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

Читайте также: