Настройка OpenVPN Mikrotik

Появилась задача настройки openvpn mikrotik
Немного изучив вопрос оказалось что достаточно удобное решение
OpenVPN позволяет работать со всех видов операционных систем Windows/Linux/Os x, а так же мобильных Android/iOS
Начнем настройку

Теория

Для работы OpenVPN необходимы сертификаты

  • Сертификат удостоверяющего центра CA
  • Сертфикат сервера OpenVPN
  • Сертфикат клиента OpenVPN
  • Пул адресов для OpenVPN клиентов
  • Имена и пароли пользователей

Практика

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

Подготовка

Обязательно проверьте установку времени
Если время будет не совпадать, то будут возникать ошибки подключения
Установить можно руками, или настроить NTP client
Настроим NTP
Код просто выделяет. Открываем консоль и щелкаем вставить. После последней строки нажать enter.

/system clock
set time-zone-name=Europe/Moscow
/system ntp client
set enabled=yes server-dns-names=time.google.com,0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org,3.pool.ntp.org

Скрипт

Создается сертификат удостоверяющего центра
Создается сертификат сервера, подписывается сертификатом удостоверяющего центра
Создается сертификат пользователя, подписывается сертификатом удостоверяющего центра
Сертификаты сервера и пользователя экспортируются, сертификат клиента под паролем 12345678, иначе он не экспортируется.
Создается интерфейс 172.20.245.1 и пул 172.20.245.100-172.20.245.200 для работы OpenVPN сервера, после чего запускается сервер
Создается тестовый пользователь 001 с паролем 0102030405

Установить скрипт можно просто скопировав текст и построчно запустив в терминале
Все сразу не выйдет так как долго генерируются сертификаты
Лучше сделать это через меню скриптов
Создать новый скрип, вставить текст. Нажать Apply ( сохранить ) Нажать выполнение Run Script.
Результат выполнения можно наблюдать по логам, или добавить опцию перезагрузки в конце

# Сертификаты
/certificate add name="openvpn-ca" country="ru" state="saint-petersburg" locality="saint-petersburg" organization="openvpn" unit="ou" common-name="openvpn-ca" key-size=4096 days-valid=9999 key-usage=crl-sign,key-cert-sign
/certificate add name="openvpn-srv" country="ru" state="saint-petersburg" locality="saint-petersburg" organization="openvpn" unit="ou" common-name="openvpn-srv" key-size=4096 days-valid=9999 key-usage=digital-signature,key-encipherment,tls-server
/certificate add name="openvpn-client-template" country="ru" state="saint-petersburg" locality="saint-petersburg" organization="openvpn" unit="ou" common-name="openvpn-client-template" key-size=4096 days-valid=9999 key-usage=tls-client
/certificate add name="openvpn-client-1" copy-from="openvpn-client" common-name="openvpn-client-1"

# Подписываем
/certificate sign openvpn-ca ca-crl-host=127.0.0.1
/certificate sign openvpn-srv ca="openvpn-ca"
/certificate sign openvpn-client-1 ca="openvpn-ca"

# Экспортируем
/certificate export-certificate openvpn-ca
/certificate export-certificate openvpn-client-1 export-passphrase=12345678

# Сам сервер
/ppp aaa set accounting=yes
/interface bridge add name=openvpn-bridge arp=enabled
/ip pool add name=openvpn-pool ranges=172.20.245.100-172.20.245.200
/ppp profile add name=openvpn-server local-address=172.20.245.1 remote-address=openvpn-pool
/interface ovpn-server server set auth=sha1 cipher=aes256 default-profile=openvpn-server mode=ip netmask=24 require-client-certificate=yes certificate=openvpn-srv enabled=yes
/ip firewall filter add action=accept chain=input comment="OpenVPN" dst-port=1194 protocol=tcp in-interface-list=WAN

# Пользователь
/ppp secret add name="001" password="0102030405" service=ovpn profile="openvpn-server"

Опционально

# Перезагружаемся
/system reboot

Недочеты

Переместить правило OpenVPN в firewall в начало, желательно на первое место. После работы скрипта правило создается в конце, после всех блокировок

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

Путей много
Часто используют несколько файлов, а именно файл конфигурации, файл учетной записи пользователя, и файлы сертификатов. Самый простой все эти файлы объединить в один файл конфигурации, и использовать на всех клиентах, как на мобильных, так и на ПК.

Выгружаем сертификаты

Качаем 3 файла в папку

Создаем файл конфигурации

В файл конфигурации nopas_openvpn.ovpn необходимо поместить содержимое файлов сертификатов, а так же прописать маршрут до сети. В случае дефолтоной настройки сеть 192.168.88.0
Так же на мобильных клиентах возникает ошибка при запросе пароля сертификата клиента 12345678, может это поправят потом, но в данный момент это так, поэтому сбросим его

openssl rsa -in cert_export_openvpn-client-1.key -out nopas.key

Теперь содержимое сертификатов необходимо вставить в нужные секции

<ca></ca> - cert_export_openvpn-ca.crt
<cert></cert> - cert_export_openvpn-client-1.crt
<key></key> - cert_export_openvpn-client-1.key

remote 92.68.0.101 1194 – внешний адрес и порт роутера Mikrotik
route 192.168.88.0 255.255.255.0 172.20.245.1 – маршрут до рабочей сети

nopas_openvpn.ovpn

client
dev tun
proto tcp
remote 92.68.0.101 1194
resolv-retry infinite
nobind
persist-key
persist-tun
cipher AES-256-CBC
remote-cert-tls server
auth-user-pass
verb 3
route-delay 5
route 192.168.88.0 255.255.255.0 172.20.245.1
<ca>
-----BEGIN CERTIFICATE-----
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
aw8Pcpl74sMOLkE=
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
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
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----
</key>

Рассмотрим вкратце подключение клиента

Linux

sudo -s
apt install openvpn
openvpn --config nopas_openvpn.ovpn

Windows

Скчать дистрибутив в зависимотсти от системы
https://openvpn.net/community-downloads/
Установить
Скачать файл настройки nopas_openvpn.ovpn
Переместить его в папку
C:\Program Files\OpenVPN\config
Запустить OpenVPN GUI. Рядом с часами появится подключение. Щелкнуть на него правой кнопкой — подключиться
Ввести имя и пароль, щелкнув галочку запомнить

OSx

https://tunnelblick.net/downloads.html

iOS

https://apps.apple.com/ru/app/openvpn-connect/id590379981

Android

https://play.google.com/store/apps/details?id=net.openvpn.openvpn&hl=ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *