Главная Гаджети Openvpn client mikrotik настройка firewall. Имеет огромный функционал.

Openvpn client mikrotik настройка firewall. Имеет огромный функционал.

Настройка MikroTik в качестве OVPN-сервера с использованием клиентских сертификатов и списка отзыва

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

С внедрением встроенного в ROS PKI:

  • можем выдавать и отзывать сертификаты конкретно на микротике, по другому нам придётся после каждого отзыва вручную обновлять crl на нём
  • — случайное удаление с микротика CA-сертификата, применяемого для подписи и отзыва сертификатов — фатально, импорт ранее выгруженных сертификата и ключа CA не поможет, а предстоящее внедрение будет может быть только с внедрением openssl и ручной загрузкой crl после каждого отзыва (естественно, если у вас есть животрепещущий бэкап всего этого)
  • если мы бэкапим весь конфиг микротика, то совместно с ним бэкапится и CA
  • защищены от недочета первого варианта
  • — в случае openssl нужно вручную загружать crl на микротик после каждого отозванного сертификата
  • в случае Windows server PKI на теоретическом уровне можно воплотить проверку подлинности через механизм SCEP, но пока не инспектировал
  • — в случае Windows server PKI нужен домен, без него этот самый PKI работать не будет

Настраиваем OVPN-сервер на ROS

Настройка PKI

/certificate add name=template-CA country=»» state=»» locality=»» organization=»» unit=»» common-name=»test-CA» key-size=4096 days-valid=3650 key-usage=crl-sign,key-cert-sign

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

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

/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’у этого сервера.

/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

/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. Сертификат второго и следующих клиентов:

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

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

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

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

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

Сделаем пул адресов. Спектр в каком клиенты будут получать ip-адресы. Заходим IP Pool и добавляем новый

Дальше сделаем профиль для наших VPN клиентов.

Употребляется для опции схожих характеристик для нескольких клиентов.

Заходим в PPP Profiles и добавляем новый

Также есть дополнительные достойные внимания функции:

Вкладка Protocol Use Encryption. Использовать шифрование. Ставим yes Use Compression. Использовать сжатие. Ставим No. Есть смысл использовать только если у вас низкоскоростной канал связи. Но нагрузка на микропроцессор будет больше.

Вкладка Limits Only One. Сразу с одним логином и паролем, который мы укажем дальше. Можно будет подключатся к серверу только один раз, для 1-го клиента.

Тут необходимо придумать Имя, Пароль, также указать наш сервис ovpn и профиль ovpn, который мы сделали

openvpn, client, mikrotik, настройка

PPP Interface и жмем OVPN Server

Отмечаем галочкой Enabled Port. порт меняем по мере надобности, либо оставляем по дефолту Mode. Режим работы. ethernet. tap. ip. tun Default Profile. Указываем профиль который мы сделали Certificate. Выбираем наш сертификат сервера Require Client Certificate. Включаем проверку клиентских сертификатов сервером. Auth. Оставляем только sha1 Cipher. Шифр. Оставляем aes 256

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

Загрузим на устройство наши сертификаты.

Открываем Files жмём Upload

openvpn, client, mikrotik, настройка

System Certificates

Для начала импортируем CA сертификат

Хотя CA сертификат для опции OpenVPN клиента на Mikrotik роутере не нужен. Нужен только клиентский сертификат. Но пусть будет на всякий случай.

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

Флаги около импортированых сертификатов должны быть как у меня(LAT для CA и KT для клиентского сертификата).

Connect To. IP адресок либо доменное имя нашего VPN сервера Port. Порт Mode. Режим работы User. Юзер Password. Пароль Profile. Профиль Certificate. Импортированный сертификат клиента Auth. sha1 Cipher. aes 256 Use Peer DNS. Внедрение DNS сервера Add Default Route. Использовать как маршрут по дефлоту

Проверяем доступность VPN сервера. Для этого открываем терминал на клиенте и запускаем пинг на сервер. В нашем случае это 10.1.1.1

Если пинг есть, то клиент подключился к серверу.

Part 2: OpenVPN Client configuration in Windows OS

OpenVPN.net provides OpenVPN client software for all the operating systems. You can visit to download page and download your OpenVPN client that is matched with your system requirement. I am using Windows 7, 64-bit operating system. So, I have downloaded Installer (64-bit), Windows Vista and later package. At the time of this article, the OpenVPN client version was 2.3.18.

After downloading, install OpenVPN client in your operating system following the instruction. Installation process is as simple as installing other software in Windows operating system.

After OpenVPN client installation, go to configuration file location (by default: C:\Program Files\OpenVPN\config or C:\Program Files (x86)\OpenVPN\config depending on your operating system) and follow my below steps to configure OpenVPN client.

MikroTik OpenVPN is an amazing VPN solution. IT provides a secure and encrypted VPN tunnel across public network. Unlike PPTP and L2TP VPN Services which are poorly designed and can easily be blocked, OpenVPN can highly be customized and even can be run on so popular TCP Port 443. So, OpenVPN cannot easily be blocked. OpenVPN uses SSL/TLS Certificates. So, OpenVPN Tunnel is a trusted tunnel to send and receive data across public network. OpenVPN is a site to site VPN technology in nature even in NAT network. But MikroTik OpenVPN has limitation to use PPP username and password although a site to site VPN does not require username and password.

The goal of this article is to configure an OpenVPN Server on so popular TCP Port 443 in MikroTik Router and configure OpenVPN Client in Windows Operating System so that a Windows user can connect to a remote office network and can be able to access remote network resources (Servers, Printers etc.) across public network safely.

MikroTik OpenVPN Server Configuration with Windows Client

To configure OpenVPN Server in MikroTik Router on TCP Port 443, we are following the below network diagram.

MikroTik OpenVPN Network Diagram

In this network, MikroTik Router (RouterOS v6.46) is connected to internet through ether1 interface having IP address 117.58.247.198/30. In your network, this IP address should be replaced with public IP address. MikroTik Router’s ether2 interface is connected to local network having IP network 10.10.11.0/24. We will configure OpenVPN server in this router and OpenVPN client in a Windows Operating System. After OpenVPN Server and Client configuration, the router will create a virtual interface (OpenVPN Tunnel) across public network where VPN Gateway IP address will be 192.168.2.1 and Client machine will get an IP Address within 192.168.2.0/24 IP Block. We will also declare route in OpenVPN Client so that connected VPN user can access resources of OpenVPN server’s network.

OpenVPN Server and Client Configuration

We will now start OpenVPN Server and Client configuration. Complete OpenVPN configuration can be divided into two parts.

Part 1: OpenVPN Server Configuration in MikroTik Router

According to the network diagram, MikroTik Router is our OpenVPN Server. So, we will enable and configure OpenVPN Server in MikroTik Router. It is assumed that your WAN and LAN networks are working without any issue.

Complete MikroTik OpenVPN Server configuration can be divided into the following three steps.

  • Step 1: Creating TLS Certificate for OpenVPN Server and Client
  • Step 2: Enabling and Configuring OpenVPN Server
  • Step 3: Creating OpenVPN Users

Step 1: Creating TLS Certificate for OpenVPN Server and Client

OpenVPN server and client configuration requires TLS certificate because OpenVPN uses TLS certificate for secure communication. MikroTik RouterOS v6 gives ability to create, store and manage certificates in certificate store. So, we will create required OpenVPN certificate from our RouterOS. OpenVPN Server and Client require three types of certificates:

The following steps will show how to create CA certificate in MikroTik RouterOS.

  • From Winbox, go to System Certificates menu item and click on Certificates tab and then click on PLUS SIGN New Certificate window will appear.
  • Put your CA certificate name (for example: CA) in Name input field. Also put a certificate common name (for example: CA) in Common Name input field.
  • You will find some optional fields in General tab. You can fill those if you wish. All fields are self-defined.
  • Click on Key Usage tab and uncheck all checkboxes except crl sign and key cert. sign checkboxes.
  • Click on Apply button and then click on Sign button. Sign window will appear now.
  • Your created CA certificate template will appear in Certificate dropdown menu. Select your newly created certificate template if it is not selected.
  • Put MikroTik Router’s WAN IP address (example: 117.58.247.198) in CA CRL Host input field.
  • Click on Sign button. Your Signed certificate will be created within few seconds.
  • Click on OK button to close New Certificate window.
  • If newly created CA certificate does not show T flag or Trusted property shows no, double click on your CA certificate and click on Trusted checkbox located at the bottom of General tab and then click on Apply and OK button.

Creating CA Certificate

CA certificate has been created successfully. Now we will create server certificate.

Creating Server Certificate

The following steps will show how to create server certificate in MikroTik RouterOS.

  • Click on PLUS SIGN again. New Certificate window will appear.
  • Put your server certificate name (for example: Server) in Name input field. Also put a certificate common name (for example: Server) in Common Name input field.
  • If you have put any optional field in CA certificate, put them here also.
  • Click on Key Usage tab and uncheck all checkboxes except digital signature, key encipherment and tls server checkboxes.
  • Click on Apply button and then click on Sign button. Sign window will appear now.
  • Your newly created Server certificate template will appear in certificate dropdown menu. Select newly created certificate template if it is not selected.
  • Also select CA certificate from CA dropdown menu.
  • Click on Sign button. Your Signed certificate will be created within few seconds.
  • Click on OK button to close New Certificate window.
  • If newly created server certificate does not show T flag or Trusted property shows no, double click on your server certificate and click on Trusted checkbox located at the bottom of General tab and then click on Apply and OK button.

Creating Server Certificate

Server certificate has been created successfully. Now we will create client certificate.

Creating Client Certificate

The following steps will show how to create client certificate in MikroTik RouterOS.

  • Click on PLUS SIGN again. New Certificate window will appear.
  • Put your client certificate name (for example: Client) in Name input field. Also put a certificate common name (for example: Client) in Common Name input field.
  • If you put any optional field in CA certificate, put them here also.
  • Click on Key Usage tab and uncheck all checkboxes except tls client checkbox.
  • Click on Apply button and then click on Sign button. Sign window will appear now.
  • Your newly created Client certificate template will appear in certificate dropdown menu. Select your newly created certificate template if it is not selected.
  • Also select CA certificate from CA dropdown menu.
  • Click on Sign button. Your Signed certificate will be created within few seconds.
  • Click on OK button to close New Certificate window.
  • Client certificate does not require T flag.

Creating Client Certificate

Client certificate has been created successfully. Created and signed CA, Server and Client certificates will look like the following image in Certificates window.

CA, Server and Client Certificate

After creating and signing CA, Server and Client certificates, we will now export CA and Client certificates because OpenVPN client will use these certificates.

Exporting CA and Client Certificates

OpenVPN server will use Server certificate from MikroTik RouterOS Certificate store. But client certificate has to supply to the OpenVPN client. So, we need to export client certificate as well as CA certificate from RouterOS certificate store. The following steps will show how to export CA certificate and Client certificate from MikroTik certificate store.

Сертификаты Mikrotik

Те, кто эксплуатирует устройства Mikrotik знают их несколько «расслабленное» отношение к сертификатам. Так для работы служб www-ssl, openvpn и, в некоторых случаях, аутентификации peer-ов IPSEc не требуется наличие в сертификате тех или иных Usage полей. Mikrotik вполне позволит сконфигурировать OpenVPN сервер с сертификатом, в котором не будет отмечено Usage: digitalSignature и keyEncipherment

Однако устройства Ubiquiti относятся к сертификатам значительно более строго, и при попытке соединения с OpenVPN сервером устройства проверяют соответствие сертификата сервера сконфигурированному CA сертификату, а также наличие в сертификате сервера разрешенного применения digitalSignature и keyEncipherment (по документации OpenVPN ещё требуется атрибут keyAgreement, но в моем случае все заработало и без него).

Таким образом первый шаг – проверка и экспорт сертификатов с Mikrotik

Выяснить, какой сертификат использует OpenVPN сервер

В нашем случае используется сертификат “router-tls”

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

Наличие в Key usage digitalSignature и keyEncipherment

Название сертификата CA (ca=router-ca)

ID ключа CA (akid=e5c220ab170145b0fc22c7cccca3ce6ed9bc51c6)

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

Наличие в Key Usage key-cert-sign и crl-sign

SKID данного сертификата должен быть тем же что и AKID сертификата сервера OpenVPN

Настройки Ubiquiti

Устройства Ubiquiti обладают красивым веб-интеейсом, однако его функционал местами сильно ограничен. Так, например создание OpenVPN клиентов реализовано настолько нетривиально, что проще все настройки делать через SSH используя CLI

Одной из приятных особенностей Ubiquiti является использование вполне честного Linux-а в качестве ОС и возможности переключится из CLI маршрутизатора в обыкновенный bash командой “sudo su” в CLI маршрутизатора

Для создания соединения потребуется выполнить следующее:

Скопировать файл с сертификатом CA на маршрутизатор

Создать файл конфигурации OpenVPN с маршрутами до центра управления

Добавить туннель в группу портов LAN для обеспечения удаленного управления

создаем файлы

Большинство руководств найденных в сети предлагают держать файлы конфигураций для туннелей в директории /config/auth

С помощью scp копируем файл сертификата CA на Ubiquiti, заходим на маршрутизатор по ssh и оказываемся в CLI маршрутизатора:

Мы в домашней директории. Файл с сертификатом должен быть здесь. Скопируем его в рекомендованное место:

В директории /config/auth создадим файл конфигурации OpenVPN

В данном файле мы описываем клиента, подключающегося по протоколу TCP к серверу ovpn.example.com. На сервере должен быть сертификат, подписанный сертификатом CA из файла /config/auth/router-ca.crt. Авторизация проводится по логину паролю из файла /config/auth/ovpn_auth.txt

При успешном соединении добавляется маршрут на сеть 10.10.50.0/24 (сеть центра управления)

В файле /config/auth/ovpn_auth.txt первая строка – логин, вторая – пароль пользователя. Если все сделано правильно, то в директории /config/auth должно оказаться 3 файла:

настраиваем туннель через CLI

Возвращаемся в CLI маршрутизатора из bash (CTRL-D) и переходим в режим редактирования конфигурации

Далее описываем параметры нашего соединения:

если все сделано правильно и маршрутизатор не ругнулся, добавляем интеейс vtun0 к LAN-портам

С этого момента статус соединения можно посмотреть в веб-интеейсе (в разделе Dashboard) и маршрутизатор должен управляться из центра управления

Настройка OpenVPN в связке Mikrotik/Ubuntu

В любой компании, где существует более одного офиса, рано или поздно возникает необходимость в объединении этих самых офисов. Многие провайдеры предлагают такие услуги, но попросят за это денег, да и кто знает, что там творится на стороне провайдера? Поэтому сделаем все сами, и рассмотрим вариант объединения с помощью Mikrotik RB750, Ubuntu и OpenVPN.

Почему Mikrotik?

Дело в нативной поддержке, простоте настройки, более стабильном поведении, низких (в сравнении) пингах и множестве других приятных фич, которые предоставляет RB750. Сторонние прошивки вроде tomato или dd-wrt были исключены из рассмотрения, т.к. были (и остаются) сомнения в их стабильности. Тестировался также Asus WL-520GU, но пинги были на 20-30 мс выше.

Итак, поехали.

На сервере в центральном офисе, стоит Ubuntu. Установка openvpn на нем выглядит следующим образом.

Все нюансы настройки заключались в файле конфигурации openvpn на сервере, по итогу он получился таким (комментировал лишь существенные моменты, описание остальных параметров конфига есть в манах, инете, example конфигах и проч.):

/etc/openvpn/.CCD/client1

Теперь Mikrotik

Настройку опишу с самого начала, в том числе организацию свича, настройку адресов, маршрутов, DHCP и проч. Заходим в веб-интеейс роутера, качаем winbox. Запускаем winbox(возможно подключение как по IP, так и по MAC), открываем new terminal, и пишем следующее(achtung, сброс конфигурации роутера): system reset-configuration Подключаемся ко второму порту микротика, запускаем все тот же winbox, и на появившийся запрос клацаем remove config Организуем свич на портах 2-5, порт 1 будет выступать в роли WAN порта. Для этого у всех интеейсов 3-5 указываем мастер порт ether2: В меню IP-Adresses назначаем IP lan интеейса Добавим гейт для выхода в инет в меню IP-Routes (гейтом в данном конкретном случае выступает DSL модем с адресом 10.100.0.1) Обратим внимание, что 10.100.0.0 — адресация между роутером и модемом DSL, через который он ходит в инет, а 10.0.141.0 — сеть VPN. Настроить DNS можно тут IP-DNS, а DHCP в меню IP-DHCP Server-DHCP setup, указав параметры пула. Всю нашу внутреннюю подсеть задвинем за NAT, для этого настроим маскарадинг. Переходим IP-Firewall-NAT и добавляем правило по аналогии:

Счастье близко

openvpn, client, mikrotik, настройка

Осталось скопировать корневой сертификат(ca.crt) и клиентские сертификат и ключ(client1.crt, client1.key), которые мы сгенерировали в процессе установки/настройки сервера. На микротике выбираем меню Files, и видим окно с файловой системой роутера. Именно сюда нужно положить наши ключи, работает drag-n-drop. Чтобы роутер знал о наличии у него сертификатов, их нужно импортировать через System-Certifates добавляем ca.crt, client1.crt, client1.key, клиентский ключ автоматом станет «Decrypted». Непосредственно соединение OpenVPN создается в меню Interfaces, при нажатии на красный плюс увидим OVPN Client в выпадающем списке. На вкладке Dial Out укажем адрес нашего сервера, порт, клиентский сертификат и типы шифрования.

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

Повышает управляемость бизнеса.

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

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM SIM-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.

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

Некоторые руководства в сети предполагают создание ключей и сертификатов при помощи сторонних утилит, например, Easy-RSA, мы же будем использовать собственные средства Mikrotik. Перейдем в System — Certificate и создадим новый корневой сертификат нашего центра сертификации (CA).

openvpn, client, mikrotik, настройка

Обязательные поля отмечены нами красным, это Name и Common Name — ca. размер ключа — Key Size — 2048. и срок действия — Days Valid — 3650 или 10 лет, для локального центра сертификации это вполне оправдано. Выделенные зеленым поля содержат информацию о владельце сертификата и к заполнению не обязательны, но их заполнение является правилом хорошего тона и при наличии большого количества сертификатов позволяет быстро понять, что это за сертификат и кому он принадлежит.

Затем перейдем на закладку 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.

Для выпуска сертификата в консоли выполните:

/ certificate add name=ovpn- server country= «RU» state= «31» locality= «BEL» organization= «Interface LLC» unit= «IT» common-name= «ovpn-server» key-size= 2048 days-valid= 3650 key-usage=digital-signature,key-encipherment,tls- server sign ovpn- server ca= «ca»

Теперь создадим клиентские сертификаты, в полях Name и Common Name на закладке General указываем имя сертификата, его следует давать осмысленно, чтобы всегда можно было определить какому клиенту принадлежит сертификат. Также следует подумать над сроком действия сертификата. если клиентом будет роутер в удаленном офисе, то можно также выпустить сертификат на 10 лет, а вот если клиентом будет ноутбук сотрудника на испытательном сроке, то лучше выдать его на срок испытательного срока. Выпустить новый сертификат не представляет проблемы, в то время как не отозванный вовремя сертификат может привести к несанкционированному доступу и утечке данных.

На вкладке Key Usage указываем только tls-client и также подписываем сертификат ключом нашего CA. Можно сразу выпустить все необходимые клиентские сертификаты, можно создавать из по мере необходимости.

Получение клиентского сертификата в консоли:

/ certificate add name= mikrotik country= «RU» state= «31» locality= «BEL» organization= «Interface LLC» unit= «IT» common-name= «mikrotik» key-size= 2048 days-valid= 365 key-usage=tls- client sign mikrotik ca= «ca»

Обратите внимание, в данном случае мы выпустили сертификат со сроком действия в 1 год: days-valid=365.

Если все сделано правильно, то у вас будут следующие сертификаты, обратите внимание, что корневой сертификат должен иметь флаги KLAT, остальные KI:

Для использования на клиента нам необходимо экспортировать закрытый ключ и сертификат клиента, а также корневой сертификат центра сертификации. Удобнее всего использовать для этого формат PKCS12, который содержит все необходимые компоненты в одном файле (сертификат, ключ и сертификат CA). Для этого щелкните на нужном сертификате правой кнопкой и выберите Export. в открывшемся окне укажите формат Type — PKCS12 и парольную фразу для экспорта (минимум 8 символов) в поле Export Passphrase. Без указания пароля закрытые ключи выгружены не будут, и вы не сможете использовать такой сертификат для клиента.

/ certificate export- certificate mikrotik type= pkcs12 export-passphrase= 12345678

В данном случае мы использовали парольную фразу 12345678. Экспортированные сертификаты можно скачать в разделе Files.

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

Настройка 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 AuthenticationAccounting. где должен стоять флаг Accounting :

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

Здесь же создадим учетные записи для клиентов. Особенностью реализации 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 следует выбирать шифры только из этого семейства, однако чем сильнее шифр — тем больше он нагружает оборудование.

openvpn, client, mikrotik, настройка

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

/ 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

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

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

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

Далее импортируем их. Для этого используем меню WinBox: System. Certificates. выбор сертификата. кнопка Import.

После этого в окне Certificate List добавятся две записи: публичного сертификата CA и сертификата OpenVPN сервера. В первом столбце записи сертификата сервера должны стоять две буквы. KR. Если вы видите там что-то другое, попробуйте еще раз импортировать файл ключа (.key).

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

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

Создаем 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. если ставим галку, то сервер при подключении проверяет сертификат клиента. Если нет. то не проверяет, и настройка клиента при этом упрощается.

openvpn, client, mikrotik, настройка

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

Идем: 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. прописываем название интеейса, на который идет входящий трафик.

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

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

Если мы не используем клиентские сертификаты (в настройках сервера не отмечали галочкой пункт require-client-certificate), то настроить клиент OpenVPN будет быстрее и проще. Нам не нужно будет копировать сертификаты для клиента, только создать в меню PPP. Interfaces новую запись OVPN Client и и на вкладке Dial Out прописать:

  • адрес OpenVPN сервера (поле Connect To),
  • логин и пароль пользователя (поля User и Password),
  • порт соединения,
  • тип аутентификации и шифрования (поля Auth и Cipher).

Настройка второго роутера Микротик как клиента OpenVPN

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

После этого поочередно импортируем их, используя меню System – Certificates. выбор сертификата. кнопка Import.

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

Далее настраиваем соединение, практически так же, как и в случае без сертификатов. С оздаем в меню PPP. Interfaces новую запись OVPN Client и и на вкладке Dial Out прописываем:

How to create VPN server on Mikrotik with OpenVPN ( Client to Site )

  • адрес OpenVPN сервера (поле Connect To),
  • логин и пароль пользователя (поля User и Password),
  • порт соединения,
  • наименование сертификата,
  • тип аутентификации и шифрования (поля Auth и Cipher).

openvpn, client, mikrotik, настройка

Все, осталось проверить, поднялось ли соединение.

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

Копируем ранее созданные нами файлы ca.crt, client.crt, client.key из папки C:\Program Files\OpenVPN\easy-rsa\keys в каталог C:\Program Files\OpenVPN\config.

Создаем здесь же обычный текстовый файл, который сохраняем как auth.cfg (обратите внимание, меняем и расширение тоже).

Открываем файл auth.cfg для редактирования в блокноте и вписываем в него 2 строки: первую.логин пользователя, вторую. пароль, которые мы задали на сервере. Сохраняем файл.

Создаем еще один текстовый файл, который сохраняем как client.ovpn (включая смену расширения).

Файл client.ovpn редактируем следующим образом:

  • proto tcp-client
  • remote 123.123.123.123# здесь внешний адрес нашего роутера MikroTik
  • dev tap
  • nobind persist-key
  • tls-client
  • ca ca.crt#указываем имя CA сертификата
  • cert client.crt#указываем имя сертификата клиента
  • key client.key# указываем имя файла-ключа для клиента
  • ping 10
  • verb 3 # чем выше этот параметр. тем выше уровень логирования
  • ns-cert-type server
  • cipher AES-256-CBC
  • auth SHA1
  • pull
  • auth-user-pass auth.cfg# здесь имя файла с логином-паролем пользователя
  • route-method exe
  • route-delay 2
  • route 192.168.1.0 255.255.255.0 172.21.108.1# эта строка задает маршрут, здесь 172.21.108.1. адрес микротика из PPP-профиля, а 192.168.1.0 255.255.255.0. сеть и маска сети.

Файл сохраняем. Запускаем OpenVPN GUI (исполняемый файл лежит в папке C:\Program Files\OpenVPN\bin)