Статьи

Mikrotik Настройка OVPN

Mikrotik Настройка OVPN

Хочу сразу сообщить, что в отличие от Linux серверов, OpenVPN на Mikrotik не поддерживает UDP транспорт и компрессию lzo. Но, тем не менее, все остальные функции, включая TCP транспорт, L2/L3 туннели и т.д., полностью работают.

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

1.Настраиваем PKI
Создаем сертификат CA

/certificate add name=CA country="RU" state="SU" locality="Chelyabinsk" organization="IT System & Service" unit="" common-name="CA" key-size=4096 days-valid=365 key-usage=crl-sign,key-cert-sign
/certificate sign CA ca-crl-host=55.55.55.55 name="CA"
Сертификат сервера
/certificate add name=SRV country="RU" state="SU" locality="Chelyabinsk" organization="IT System & Service" unit="" common-name="SRV" key-size=4096 days-valid=365 key-usage=digital-signature,key-encipherment,tls-server
/certificate sign SRV ca=CA name="SRV"
Шаблон для сертификатов клиентов
/certificate add name=CL country="RU" state="SU" locality="Chelyabinsk" organization="IT System & Service" unit="" common-name="CL" key-size=4096 days-valid=365 key-usage=tls-client
Создадим сертификат для первого клиента:
/certificate add name=CL1 copy-from="CL" common-name="CL1"
/certificate sign CL1 ca="CA" name="CL1"
Сертификат второго и последующих клиентов:
/certificate add name=CL${название клиента} copy-from="CL${название клиента}" common-name="client-${название клиента}"

где:

/certificate sign CL${название клиента} ca="CA" name="client-${название клиента}"

где:

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

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

/certificate issued-revoke ${название сертификата}

где:

2.Настройка OVPN сервера
Задаем пул-адресов для OVPN-клиентов

/ip pool add name=ovpn-pool ranges=10.127.3.210-10.127.3.230
Создаем PPP-профиль для OVPN-сервера
/ppp profile add name=ovpn-clients local-address=10.127.3.1 remote-address=ovpn-pool dns=10.17.2.172 use-ipv6=no
Включаем OVPN-сервер

На Mikrotik сервер OVPN можно настроить в режиме tun («ip» в ROS), а можно в режиме tap («ethernet» в ROS). Режим tun — обычный туннель. Режим tap — эмуляция полноценного ethernet, в частности в режиме tap клиентов можно объединить в режим моста и они будут прекрасно друг друга видеть.

Мы же будем настраивать наш Mikrotik в режиме tun. Добавлю парочку картинок, смотрим на рисунок ниже.

mikrotik-nastroika-ovpn-1.png

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

mikrotik-nastroika-ovpn-2.png

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

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

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

Экспорт сертификатов клиентов:
/certificate export-certificate CL${название клиента} export-passphrase=pa55w0rd

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

Далее извлекаем полученные файлы сертификатов и ключей из микротика любым удобным способом - можно просто "перетянуть" их из winbox'а, можно скачать посредством ftp или с помощью scp

Настройка Windows-клиента
  1. Получаем OVPN-дистрибутив с openvpn.net.
  2. Устанавливаем, все опции оставляем по-умолчанию, в том числе tap-интерфейс, который понадобится для любого режима настройки.
  3. Идём в OpenVPN\config (по-умолчанию C:\Program Files\OpenVPN\config) и создаём там файл client.ovpn
  4. Создаём конфигурацию клиента.

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

client
dev tun
proto tcp-client
remote 55.55.55.55 1194
tls-client
tls-cipher TLS-RSA-WITH-AES-256-CBC-SHA
cipher AES-256-CBC
auth SHA1
remote-cert-tls server
resolv-retry infinite
nobind
persist-key
persist-tun
auth-user-pass user-pwd.txt
askpass pass.txt
auth-nocache
verb 3
route 192.168.1.0 255.255.255.0
route-delay 5

<ca>
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
</ca>

<cert>
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
</cert>

<key>
-----BEGIN ENCRYPTED PRIVATE KEY-----

-----END ENCRYPTED PRIVATE KEY-----
</key>


Примечание №1: для применения параметров маршрутизации, прописанных в конфиге, сам сервис OVPN, или же OVPN GUI должны быть запущены с правами администратора.
Примечание №2: auth-user-pass user-pwd.txt - тут записаны логин и пароль пользователя. Первая строчка - логин, вторая - пароль.
Примечание №3: askpass pass.txt - тут записан пароль, указанный при экспорте закрытого ключа (в данном примере в этом файле будет записано значение pa55w0rd)

Примечание №4:в полях <ca>,<cert>,<key> между -----BEGIN ...-----END находится содержимое соответствующих сертификатов.


Возврат к списку