Mikrotik openvpn server windows client настройка

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

mikrotik-openvpn-server-000.pngOpenVPN является одной из самых популярных технологий для построения VPN-сетей и это вполне справедливо, данный продукт сочетает в себе безопасность с простой настройкой и мощными возможностями конфигурирования и управления сетью. В роутерах Mikrotik возможности OpenVPN существенно ограничены, что требует серьезно взвесить все за и против перед развертыванием, тем не менее в ряде случаев настройка OpenVPN выглядит оправданной и сегодня мы расскажем как это сделать.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Подготовка роутера

OpenVPN, как и любой другой использующий SSL-шифрование продукт, чувствителен к расхождению времени между клиентом и сервером. Поэтому в первую очередь правильно настроим время на Mikrotik. Прежде всего откроем System — Clock и установим правильное значение часового пояса, его автоматическое определение лучше отключить.

mikrotik-openvpn-server-001.pngВ консоли это можно сделать командой:

/system clock
set time-zone-autodetect=no time-zone-name=Europe/Moscow

В качестве параметра опции time-zone-name следует указать наименование вашего часового пояса согласно tz database.

Затем установим пакет NTP, для этого вам потребуется скачать с официального сайта архив Extra packages для вашей архитектуры и версии RouterOS, оттуда следует извлечь пакет ntp и поместить его на роутер, для установки достаточно перезагрузить устройство.

mikrotik-openvpn-server-002.pngПосле чего перейдем в System — NTP Client, включим его и укажем адреса NTP-серверов, в нашем случае это сервера из пула ru.pool.ntp.org.

mikrotik-openvpn-server-003.pngВ командной строке это можно сделать так:

/system ntp client
set enabled=yes primary-ntp=185.209.85.222 secondary-ntp=37.139.41.250

Обратите внимание, что вместо доменных имен серверов следует указать их IP, имейте ввиду, что адреса pool.ntp.org указывают на случайно выбранные из пула сервера, которые меняются каждый час, поэтому полученные вами адреса могут отличаться от указанных нами.

Аналогичные манипуляции следует выполнить на всех роутерах-участниках VPN-сети. Для ПК и других устройств-клиентов также следует настроить синхронизацию времени.

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

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

mikrotik-openvpn-server-004.pngОбязательные поля отмечены нами красным, это Name и Common Nameca, размер ключа — Key Size2048, и срок действия — Days Valid3650 или 10 лет, для локального центра сертификации это вполне оправдано. Выделенные зеленым поля содержат информацию о владельце сертификата и к заполнению не обязательны, но их заполнение является правилом хорошего тона и при наличии большого количества сертификатов позволяет быстро понять, что это за сертификат и кому он принадлежит.

Затем перейдем на закладку Key Usage и укажем только crl sign и key cert. sign и нажмем кнопку Apply, теперь подпишем сертификат нажав Sign. В появившемся окне заполним поле CA CRL Host адресом локальной петли — 127.0.0.1, после чего нажимаем Start и дожидаемся окончания подписи сертификата.

mikrotik-openvpn-server-005.pngЭти же действия в консоли:

/certificate 
add name=ca country="RU" state="31" locality="BEL" organization="Interface LLC" unit="IT" common-name="ca" key-size=2048 days-valid=3650 key-usage=crl-sign,key-cert-sign
sign ca ca-crl-host=127.0.0.1

Следующим создадим сертификат и закрытый ключ сервера. Закладка General нового сертификата заполняется аналогично, только в полях Name и Common Name указываем ovpn-server (можете выбрать на собственное усмотрение). На вкладке Key Usage укажите digital-signature, key-encipherment и tls-server. Затем подпишем сертификат ключом нашего CA, для этого в поле CA выберите только что созданный нами сертификат ca.

mikrotik-openvpn-server-006.pngДля выпуска сертификата в консоли выполните:

/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. Можно сразу выпустить все необходимые клиентские сертификаты, можно создавать из по мере необходимости.

mikrotik-openvpn-server-007.png

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

/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:

mikrotik-openvpn-server-008.png

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

mikrotik-openvpn-server-009.png

Либо используйте команды:

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

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

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

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

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

mikrotik-openvpn-server-011.pngЭти же действия в консоли:

/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 сети, что и диапазон пула адресов.

mikrotik-openvpn-server-012.pngБыстро создать профиль в терминале:

/ppp profile
add local-address=10.8.8.1 name=ovpn remote-address=ovpn_pool0

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

mikrotik-openvpn-server-013.pngХотя гораздо быстрее выполнить команду:

/ppp aaa
set accounting=yes

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

mikrotik-openvpn-server-014.png

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

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

mikrotik-openvpn-server-015.pngВ терминале эти же действия выполняются командами:

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

mikrotik-openvpn-server-016.png

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

/ip firewall filter
add action=accept chain=input dst-port=1194 protocol=tcp

Данное правило должно располагаться выше запрещающего в цепочке INPUT.

mikrotik-openvpn-server-017.pngНа этом настройка OpenVPN сервера на базе роутера Mikrotik закончена.

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

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

mikrotik-openvpn-server-018.pngВ консоли выполните:

/certificate
import file-name=mikrotik.p12 passphrase=12345678

В результате у вас появятся два сертификата: сертификат клиента с закрытым ключом, о чем говорит флаг KT, и корневой сертификат удостоверяющего центра с флагом LAT (K — означает наличие ключа). Запомним наименование сертификатов, либо переименуем их.

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

mikrotik-openvpn-server-020.pngВ терминале следует выполнить:

/interface ovpn-client
add certificate=mikrotik.p12_0 cipher=aes256 connect-to=192.168.3.115 name=ovpn-out1 password=123 user=mikrotik

Если все было сделано правильно, то соединение будет установлено сразу как вы создадите интерфейс.

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

mikrotik-openvpn-server-021.pngЛибо выполните команду:

/ip route
add distance=1 dst-address=192.168.186.0/24 gateway=ovpn-out1

Теперь перейдем на сервер и посмотрим каким образом выглядит подключение данного клиента. Как видим, был создан динамический интерфейс ovpn-mikrotik, настраивать маршрутизацию с таким интерфейсом нельзя, так как маршрут «сломается» при отключении клиента.

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

mikrotik-openvpn-server-023.pngЭто же можно сделать командой:

/interface ovpn-server
add name=ovpn-mikrotik user=mikrotik

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

mikrotik-openvpn-server-024.pngВ терминале следует выполнить:

/ip route
add distance=1 dst-address=192.168.111.0/24 gateway=ovpn-mikrotik

После чего можем проверить связь. Узлы различных сетей должны видеть друг друга.

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

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

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

win10
123

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

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

12345678

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

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

client
dev tun
proto tcp

Адрес и порт сервера:

remote 192.168.3.115 1194

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

persist-key
persist-tun

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

ca ca.crt
cert client.crt
key client.key

единственной строкой:

pkcs12 C:\OpenVPN\keys\win10.p12

где укажем путь к нашему файлу сертификатов в формате PKCS12.

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

auth-user-pass C:\OpenVPN\auth.cfg
askpass C:\OpenVPN\keypass.cfg

Проверим наличие опции:

remote-cert-tls server

и закомментируем:

#tls-auth ta.key 1

Сразу добавим маршрут к сети за сервером:

route 192.168.186.0 255.255.255.0 10.8.8.1

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

cipher AES-256-CBC

и отключим сжатие:

#comp-lzo

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

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

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

user nobody
group nogroup

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

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Overview

The OpenVPN security model is based on SSL, the industry standard for secure communications via the internet. OpenVPN implements OSI layer 2 or 3 secure network extensions using the SSL/TLS protocol. 

Introduction

OpenVPN has been ported to various platforms, including Linux and Windows, and its configuration is likewise on each of these systems, so it makes it easier to support and maintain. OpenVPN can run over User Datagram Protocol (UDP) or Transmission Control Protocol (TCP) transports, multiplexing created SSL tunnels on a single TCP/UDP port. OpenVPN is one of the few VPN protocols that can make use of a proxy, which might be handy sometimes.

Limitations

Currently, unsupported OpenVPN features:

  • LZO compression
  • TLS authentication
  • authentication without username/password

OpenVPN username is limited to 27 characters and the password to 233 characters.

OVPN Client

Property Description
add-default-route (yes | no; Default: no) Whether to add OVPN remote address as a default route.
auth (md5 | sha1; Default: sha1) Allowed authentication methods.
certificate (string | none; Default: none) Name of the client certificate
cipher (aes128 | aes192 | aes256 | blowfish128; Default: blowfish128) Allowed ciphers.
comment (string; Default: ) Descriptive name of an item
connect-to (IP; Default: ) Remote address of the OVPN server.
disabled (yes | no; Default: yes) Whether the interface is disabled or not. By default it is disabled.
mac-address (MAC; Default: ) Mac address of OVPN interface. Will be automatically generated if not specified.
max-mtu (integer; Default: 1500) Maximum Transmission Unit. Max packet size that the OVPN interface will be able to send without packet fragmentation.
mode (ip | ethernet; Default: ip) Layer3 or layer2 tunnel mode (alternatively tun, tap)
name (string; Default: ) Descriptive name of the interface.
password (string; Default: «») Password used for authentication.
port (integer; Default: 1194) Port to connect to.
profile (name; Default: default) Specifies which PPP profile configuration will be used when establishing the tunnel.
protocol (tcp | udp; Default: tcp) indicates the protocol to use when connecting with the remote endpoint.
verify-server-certificate (yes | no; Default: no)

Checks the certificates CN or SAN against the «connect-to» parameter. The IP or hostname must be present in the server’s certificate.

tls-version (any | only-1.2; Default: any) Specifies which TLS versions to allow
use-peer-dns (yes | no; Default: no) Whether to add DNS servers provided by the OVPN server to IP/DNS configuration.

route-nopull (yes | no; Default: no)

Specifies whether to allow the OVPN server to add routes to the OVPN client instance routing table.
user (string; Default: ) User name used for authentication.

OVPN Server

An interface is created for each tunnel established to the given server. There are two types of interfaces in the OVPN server’s configuration

  • Static interfaces are added administratively if there is a need to reference the particular interface name (in firewall rules or elsewhere) created for the particular user.
  • Dynamic interfaces are added to this list automatically whenever a user is connected and its username does not match any existing static entry (or in case the entry is active already, as there can not be two separate tunnel interfaces referenced by the same name).

Dynamic interfaces appear when a user connects and disappear once the user disconnects, so it is impossible to reference the tunnel created for that use in router configuration (for example, in the firewall), so if you need a persistent rule for that user, create a static entry for him/her. Otherwise, it is safe to use dynamic configuration.

In both cases PPP users must be configured properly — static entries do not replace PPP configuration.

Properties

Property Description
auth (sha1 | md5; Default: sha1,md5) Authentication methods that the server will accept.
certificate (name | none; Default: none) Name of the certificate that the OVPN server will use.
cipher (aes128 | aes192 | aes256 | blowfish128; Default: aes128,blowfish128) Allowed ciphers.
default-profile (name; Default: default) Default profile to use.
enabled (yes | no; Default: no) Defines whether the OVPN server is enabled or not.
protocol (tcp | udp; Default: tcp) indicates the protocol to use when connecting with the remote endpoint.
keepalive-timeout (integer | disabled; Default: 60) Defines the time period (in seconds) after which the router is starting to send keepalive packets every second. If no traffic and no keepalive responses have come for that period of time (i.e. 2 * keepalive-timeout), not responding client is proclaimed disconnected
mac-address (MAC; Default: ) Automatically generated MAC address of the server.
max-mtu (integer; Default: 1500) Maximum Transmission Unit. Max packet size that the OVPN interface will be able to send without packet fragmentation.
mode (ip | ethernet; Default: ip) Layer3 or layer2 tunnel mode (alternatively tun, tap)
netmask (integer; Default: 24) Subnet mask to be applied to the client.
port (integer; Default: 1194) Port to run the server on.
require-client-certificate (yes | no; Default: no) If set to yes, then the server checks whether the client’s certificate belongs to the same certificate chain.
redirect-gateway (def1 | disabled | ipv6; Default: disabled

Specifies what kind of routes the OVPN client must add to the routing table. 

def1 – Use this flag to override the default gateway by using 0.0.0.0/1 and 128.0.0.0/1 rather than 0.0.0.0/0. This has the benefit of overriding but not wiping out the original default gateway.
disabled — Do not send redirect-gateway flags to the OVPN client.
ipv6 — Redirect IPv6 routing into the tunnel on the client side. This works similarly to the def1 flag, that is, more specific IPv6 routes are added (2000::/4 and 3000::/4), covering the whole IPv6 unicast space.

enable-tun-ipv6 (yes | no; Default: no)

Specifies if IPv6 IP tunneling mode should be possible with this OVPN server.

ipv6-prefix-len (integer; Default: 64)

Length of IPv6 prefix for IPv6 address which will be used when generating OVPN interface on the server side.

tun-server-ipv6 (IPv6 prefix; Default: ::)

IPv6 prefix address which will be used when generating the OVPN interface on the server side.

It is very important that the date on the router is within the range of the installed certificate’s date of expiration. To overcome any certificate verification problems, enable NTP date synchronization on both the server and the client.

Example

Setup Overview

Assume that Office public IP address is 2.2.2.2 and we want two remote OVPN clients to have access to 10.5.8.20 and 192.168.55.0/24 networks behind the office gateway. 

Creating Certificates

All certificates can be created on the RouterOS server using the certificate manager. See example >>.

For the simplest setup, you need only an OVPN server certificate.

Server Config

The first step is to create an IP pool from which client addresses will be assigned and some users.

/ip pool add name=ovpn-pool range=192.168.77.2-192.168.77.254

/ppp profile add name=ovpn local-address=192.168.77.1 remote-address=ovpn-pool
/ppp secret
add name=client1 password=123 profile=ovpn
add name=client2 password=234 profile=ovpn

Assume that the server certificate is already created and named «server» 

/interface ovpn-server server set enabled=yes certificate=server

Client Config

Since RouterOS does not support route-push you need to add manually which networks you want to access over the tunnel. 

/interface ovpn-client
add name=ovpn-client1 connect-to=2.2.2.2 user=client1 password=123 disabled=no
/ip route 
add dst-address=10.5.8.20 gateway=ovpn-client1
add dst-address=192.168.55.0/24 gateway=ovpn-client1
/ip firewall nat add chain=srcnat action=masquerade out-interface=ovpn-client1

Обновлено Обновлено: 09.02.2021
Опубликовано Опубликовано: 06.02.2020

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

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

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

Настройка времени на Mikrotik
Создание сертификатов
    Средствами Mikrotik
    На компьютере с Windows
Настройка сервера VPN
    Создание пула адресов
    Настройка профиля
    Создание пользователя
    Включение OpenVPN
    Настройка брандмауэра
Настройка клиента
    Создание сертификатов
    Установка и настройка OpenVPN
Доступ в Интернет через VPN-сервер

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

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

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

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

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

/system ntp client

set enabled=yes primary-ntp=[:resolve time.nist.gov] secondary-ntp=[:resolve time.windows.com]

* в данном примере мы активируем синхронизацию времени с серверами time.nist.gov и time.windows.com.

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

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

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

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

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 FilesOpenVPNeasy-rsa создаем файл vars.bat со следующим содержимым:

set «PATH=%PATH%;%ProgramFiles%OpenVPNbin»
set HOME=%ProgramFiles%OpenVPNeasy-rsa
set KEY_CONFIG=openssl-1.0.0.cnf
set KEY_DIR=keys
set KEY_SIZE=2048
set KEY_COUNTRY=RU
set KEY_PROVINCE=Sankt-Petersburg
set KEY_CITY=Sankt-Petersburg
set KEY_ORG=Organization
set KEY_EMAIL=master@dmosk.ru
set KEY_CN=DMOSK
set KEY_OU=DMOSK
set KEY_NAME=server.domain.ru
set PKCS11_MODULE_PATH=DMOSK
set PKCS11_PIN=12345678

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

  • 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 FilesOpenVPNeasy-rsa создаем каталог keys — в нем будут создаваться сертификаты.

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

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

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

cd %ProgramFiles%OpenVPNeasy-rsa

Запускаем vars.bat:

vars.bat

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

clean-all.bat

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

vars.bat

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

build-ca.bat

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

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

build-key-server.bat server

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

Готово — в каталоге C:Program FilesOpenVPNeasy-rsakeys мы найдем 3 сертификата — ca.crt, server.crt. server.key:

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

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

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

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

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

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

Переходим в SystemCertificates:

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

Кликаем по Import:

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

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

  1. ca.crt
  2. server.crt
  3. server.key

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

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

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

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

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

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

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

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

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

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

* где Name просто указывает название для идентификации пула (openvpn); Addresses — стартовый и конечный адреса, которые будет назначаться клиентам при подключении к VPN. В данном примере мы указываем последовательность от 176.16.10.10176.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 и нам нужно открыть данный порт на фаерволе. Переходим в раздел IPFirewall:

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

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

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

* мы должны выбрать для ChainInput, указать протокол (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.crtclient1.keyca.crt.

Способ 2. На Windows

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

cd %ProgramFiles%OpenVPNeasy-rsa

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

vars.bat

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

build-key.bat client1

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

Теперь из папки keys копируем файлы client1.crtclient1.keyca.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 — адрес маршрута для доступа к локальной сети, которая находится за роутером и куда нужно пустить пользователей.

* подробнее опции описаны в инструкции Настройка OpenVPN клиента.

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

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

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

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

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

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

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

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

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


auth-user-pass auth.txt

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

username
password

* где 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

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

vi /etc/openvpn/client.conf

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, в конфигурационном файле клиента добавим:

route 0.0.0.0 0.0.0.0

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

VPN (Virtual Private Network) technology provides a secure and encrypted tunnel across a public network. So, a private network user can send and receive data to any remote private network through VPN tunnel as if his/her network device was directly connected to that private network.

MikroTik OpenVPN Server provides a secure and encrypted tunnel across public network for transporting IP traffic using PPP. OpenVPN uses SSL Certificates. So, OpenVPN Tunnel is a trusted tunnel to send and receive data across public network. MikroTik OpenVPN Server can be applied in two methods.

  • Connecting remote workstation/client: In this method, OpenVPN client software installed any operating system such as Windows can communicate with MikroTik OpenVPN server through OpenVPN tunnel whenever required and can access remote private network as if it was directly connected to the remote private network.
  • Site to Site OpenVPN: This method is also known as VPN between routers. In this method, an OpenVPN client supported router always establishes an OpenVPN tunnel with MikroTik OpenVPN Server. So, private networks of these routers can communicate with each other as if they were directly connected to the same router.

The goal of this article is to connect a remote client using OpenVPN Tunnel across public network. So, in this article I will only show how to configure MikroTik OpenVPN Server for connecting a remote workstation/client (Windows Client).

Network Diagram

To configure a MikroTik OpenVPN Tunnel for connecting a remote workstation/client, I am following a network diagram like below image.

OpenVPN Remote Office Network
OpenVPN Remote Office Network

In this network, MikroTik Router (RouterOS v6.38.1) is connected to internet through ether1 interface having IP address 192.168.30.2/30. In your real 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 after OpenVPN configuration the router will create a virtual interface (OpenVPN Tunnel) across public network whose IP address will be 10.10.11.1. On the other hand, a remote laptop (workstation/client) is connected to internet and wants to connect to our OpenVPN server for accessing local network resources. We will configure OpenVPN client in this laptop and after establishing an OpenVPN Tunnel across public network, this laptop will get a MikroTik Router’s local IP 10.10.11.10 and will be able to access MikroTik Router’s private network.

MikroTik OpenVPN Server Configuration

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

  • Part 1: OpenVPN Server Configuration in MikroTik Router
  • Part 2: OpenVPN Client Configuration in Windows OS

Part 1: OpenVPN Server Configuration in MikroTik Router

According to our network diagram, MikroTik Router is our OpenVPN Server. So, we will setup and configure OpenVPN Server in MikroTik Router. Complete MikroTik RouterOS configuration for OpenVPN Server can be divided into five steps.

  • Step 1: MikroTik Router basic configuration
  • Step 2: Creating SSL certificate for OpenVPN server and client
  • Step 3: OpenVPN Server configuration
  • Step 4: PPP Secret creation for OpenVPN client
  • Step 5: Enabling Proxy ARP on LAN interface

Step 1: MikroTik Router basic configuration

In MikroTik Router basic configuration, we will assign WAN, LAN and DNS IP and perform NAT and Route configuration. The following steps will show how to do these topics in your RouterOS.

  • Login to MikroTik RouterOS using winbox and go to IP > Addresses. In Address List window, click on PLUS SIGN (+). In New Address window, put WAN IP address (192.168.30.2/30) in Address input field and choose WAN interface (ether1) from Interface dropdown menu and click on Apply and OK button. Click on PLUS SIGN again and put LAN IP (10.10.11.1/24) in Address input field and choose LAN interface (ether2) from Interface dropdown menu and click on Apply and OK button.
  • Go to IP > DNS and put DNS servers IP (8.8.8.8 or 8.8.4.4) in Servers input field and click on Apply and OK button.
  • Go to IP > Firewall and click on NAT tab and then click on PLUS SIGN (+). Under General tab, choose srcnat from Chain dropdown menu and click on Action tab and then choose masquerade from Action dropdown menu. Click on Apply and OK button.
  • Go to IP > Routes and click on PLUS SIGN (+). In New Route window, click on Gateway input field and put WAN Gateway address (192.168.30.1) in Gateway input field and click on Apply and OK button.

Basic RouterOS configuration has been completed. Now we will Create SSL certificate for OpenVPN server and client.

Step 2: Creating SSL certificate for OpenVPN Server and Client

OpenVPN server and client configuration requires SSL certificate because OpenVPN uses SSL certificate for secure communication. MikroTik RouterOS version 6 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 configuration requires three types of certificates:

  1. CA (Certification Authority) certificate
  2. Server certificate and
  3. Client certificate

Creating CA certificate

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

  • Go to System > Certificates menu item from winbox 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 if you wish. All fields are self-defined.
  • Click on Key Usage tab and uncheck all checkboxes except crl sign and key cert. sign
  • Click on Apply button and then click on Sign button. Sign window will appear now.
  • Your newly created 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 (192.168.30.2) in CA CRL Host input field.
  • Click on Sign button. Your Sign 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 value, 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.

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 for CA certificate, put them here also.
  • Click on Key Usage tab and uncheck all checkboxes except digital signature, key encipherment and tls server
  • Click on Apply button and then click on Sign button. Sign window will appear now.
  • Your newly server created 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 Sign 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 value, 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.

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 have put any optional field for CA certificate, put them here also.
  • Click on Key Usage tab and uncheck all checkboxes except tls client
  • 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 Sign certificate will be created within few seconds.
  • Click on OK button to close New Certificate window.
  • Client certificate does not require T flag.

Client certificate has been created successfully. Now we will export CA and Client certificates so that OpenVPN client can use this certificate.

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.

  • Click twice on your CA certificate and then click on Export button from right button panel. Export window will appear.
  • Choose your CA certificate from Certificate dropdown menu.
  • Click on Export button now. Your CA certificate will be exported and Export window will be closed. Your exported CA certificate will be stored in File List.
  • Again, click on Export button from right button panel and choose your client certificate from Certificate dropdown menu.
  • Put a password in Export Passphrase input field. The password must be at least 8 characters and this password has to provide when OpenVPN client will be connected.
  • Click on Export button now. Your client certificate and key file will be exported in File List.
  • Now click on Files menu from winbox left menu panel. You will find two certificate file (.crt) and one key (.key) are exported here.
  • Drag and Drop these three files in a folder on your Desktop. We will use these files when OpenVPN client will be configured.

Creating SSL certificate for OpenVPN server and client has been completed. Now we will configure our OpenVPN Server in MikroTik Router.

Step 3: OpenVPN Server Configuration in MikroTik Router

After creating SSL certificate, we are now eligible to enable OpenVPN Server in MikroTik Router. The following steps will show how to enable OpenVPN Server in your MikroTik Router with proper configuration.

  • Click on PPP menu item from winbox and then click on Interface tab.
  • Click on OVPN Server button. OVPN Server window will appear.
  • Click on Enabled checkbox.
  • From Certificate dropdown menu, choose server certificate that we created before. Also click on Require Client Certificate checkbox.
  • From Auth. Panel, uncheck all checkboxes except sha1.
  • From Cipher panel, uncheck all checkboxes except aes 256.
  • Now click on Apply and OK button.

OpenVPN Server is now running in MikroTik Router. Now we will create OpenVPN user who will be connected to this server.

Step 4: PPP Secret creation for OpenVPN client

After OpenVPN Server setup, we need to create OpenVPN user who will be connected to OpenVPN Server. OpenVPN Server uses PPP user for authentication. So, we will now create PPP secret (username and password) for OpenVPN client. The following steps will show how to create PPP secret in MikroTik Router.

  • Click on PPP menu item from winbox and then click on Secrets tab.
  • Click on PLUS SIGN (+). New PPP Secret window will appear.
  • Put username (For example: sayeed) in Name input and password in Password input field. This username and password will be required at the time of OpenVPN client configuration.
  • Choose ovpn from Service dropdown menu.
  • Put the gateway IP (10.10.11.1) in Local Address input field and put a LAN IP (10.10.11.10) that will be assigned in client workstation when this user will be connected, in Remote Address input field.
  • Click on Apply and OK button.

PPP user who will be connected from remote client machine has been created. At this point, if the user gets connected from the remote client machine and try to ping any workstation from the remote machine, the ping will time out because the remote client is unable to get ARPs from workstations. The solution is to set up proxy-arp on the LAN interface.

Step 4: Enabling Proxy ARP on LAN Interface

The following steps will show how to enable proxy-arp on the LAN interface.

  • Click on Interfacesmenu item from winbox and then click on interface tab.
  • Click twice on your LAN interface (ether2). Interface property window will appear.
  • Under General tab, choose proxy-arp from ARP dropdown menu.
  • Click Apply and OK button.

After enabling proxy-arp, the remote client can successfully reach all workstations in the local network behind the router.

MikroTik OpenVPN Server is now completely ready to accept OpenVPN client. So, we will now configure OpenVPN client in Windows Operating System.

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 FilesOpenVPNconfig or C:Program Files (x86)OpenVPNconfig depending on your operating system) and follow my below steps to configure OpenVPN client.

  • Create a file having (.ovpn) extension (for example: client.ovpn) and copy and paste below property and its value in this file and then save your file.

    #Template client.ovpnclient

    dev tun

    proto tcp-client

    remote 192.168.30.2

    port 1194

    nobind

    persist-key

    persist-tun

    tls-client

    remote-cert-tls server

    ca ca.crt

    cert client.crt

    key client.key

    verb 4

    mute 10

    cipher AES-256-CBC

    auth SHA1

    auth-user-pass secret

    auth-nocache

    Here, change remote IP Address according to your MikroTik WAN IP.

  • Now copy and paste your exported CA and Client certificate files that you saved in your Desktop by dragging and dropping from MikroTik File List, in this location and rename CA file as ca.crt, client certificate file as client.crt and key file as client.key because we have used these names in our configuration file.
  • Create another file named secret (because we have put auth-user-pass file is secret) without any extension and put OpenVPN PPP username at first line and password in second line and then save this file.
  • Now run OpenVPN client software. You will find a new icon in your Taskbar or System tray like below image.OpenVPN client icon
  • Click mouse right button on this icon and then click Connect option. OpenVPN Connection window will appear and it will ask to put your client certificate password that you have entered at the time of client certificate exportation.

If you put correct password and if everything is OK, your OpenVPN client will be connected and an OpenVPN tunnel will be created between OpenVPN client and server.To check your configuration, do a ping request to any remote network workstation or server. If everything is OK, your ping request will be success.

If you face any confusion to follow above steps properly, watch my video about MikroTik OpenVPN Server Configuration with Windows Client carefully. I hope it will reduce your any confusion.

MikroTik OpenVPN Server configuration with Windows Client has been explained in this article. I hope you will be able to configure your OpenVPN Server and Client if you follow the explanation carefully. However, if you face any confusion to follow above steps properly, feel free to discuss in comment or contact with me from Contact page. I will try my best to stay with you.

10 доводов в пользу Asterisk

Распространяется бесплатно.

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

Безопасен в использовании.

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

Надежен в эксплуатации.

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

Гибкий в настройке.

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

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

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

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

Снижает расходы на связь.

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

В данной инструкции я покажу настройку между двумя 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 и расширены автором на основе опыта . Подробно читайте ниже.

Содержание

  1. Настройка OpenVPN по логину и паролю
  2. Создание сертификата центра сертификации
  3. Создание сертификата сервера OpenVPN
  4. Конфигурирование сервера
  5. Настройка Firewall
  6. Конфигурирование клиента
  7. Настройка OpenVPN по сертификату
  8. Настройка сервера
  9. Настройка клиента
  10. 89 вопросов по настройке MikroTik

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

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

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

На московском роутере открываем System — Certificates.
Импорт ключей OpenVPN

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Указываем уникальные имя и Common Name.

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

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

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

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

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

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

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

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

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

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

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

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

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

Protocols:

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

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

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

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

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

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

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

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

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

Apply и Ok.

Настройка Firewall

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

Добавляем правило.
Создание правила Firewall для PPTP

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

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

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

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

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

Открываем Dial Out и заполняем обязательные параметры.
Параметры OVPN Client интерфейса

Сохраняем и открываем вкладку Status.
Статус OVPN Client интерфейса по сертификату

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Далее импортируем CA.
Импорт сертификата CA OpenVPN

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

Соединение установилось.
Статус OVPN Client интерфейса по сертификату

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

А вот и не все! Упустили важную вещь – список отзыва. Так как наш клиент использует DNS 8.8.8.8, есть вероятность, что Google понятия не имеет какой IP адрес скрывается за доменным именем crl-ovpn.ru – его мы указывали, когда создавали сертификат для CA. Нужно это быстро исправить. На клиенте в IP – DNS создаем статическую A запись.
Создание статической A записи в DNS Mikrotik

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

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

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

Понравилась статья? Поделить с друзьями:
  • Mikrotik l2tp server windows 10 client
  • Migwiz windows 7 что это за программа
  • Migrate os to ssd windows 7 32 bit торрент
  • Migrate os to ssd windows 10 samsung
  • Migrate os to ssd windows 10 free