С версии 7.15 в микротике OpenVPN стал более мнее похож на человеческий. И хотя все равно остались нюансы, характерные для Mikrotik-way, но им уже можно пользоваться чтобы настроить ВПН для небольшого офиса. Ниже чеклист по настройке
Сразу оговорюсь что настройки по дефолту не очень удобны ни пользователям ни администратору, поэтому слегка их модифицируем
Сделаем так:
- соединение будет требовать сертификат. Он будет у нас один (если очень хочется можно и для каждого сделать свой, но кмк это чрезмерно. В крайнем случае — выпускать сертификат для особых случаев или групп пользователей)
- при подключении OpenVPN клиент будет просить пароль пользователя (его можно сохранить чтобы кажджый раз не вводить)
- По этим пользователям и ведем учет подключений, блокируем-разблокируем и тд
- Сначала нужно проверить время и убедиться что настроен синк по NTP. Правильное время — очень важно для корректности работы TLS
- Создаем сертификаты
- CA (3650 дней, crl sign, Key cert sign, подписать без указывания CA, CRL = 127.0.0.1
- ovpn-server (3649 дней, digital signature, key encipherment, tls server, подписать указав CA = нашему CA )
- ovpn-client (3648 дней, tls client, подписать указав CA = нашему CA )
- Создаем пул адресов для OpenVPN клиентов (например ovpn_pool). лучше конкретный пул, не подсеткой, например 172.30.1.10-172.30.1.100
- Создаем PPP профиль
- name: ovpn’profile
- LocalAddress: 172.30.1.1
- RemoteAddress: ovpn_pool
- Создаем секреты для пользователей. Для каждого пользователя свой секрет. Аутентификация будет по ним, сертификат напомню — один на всех
- Создаем PPP-OVPNServer указав
- DefaultProfile: ovpn
- Certificate: ovpn-server
- authentication: sha256, sha512
- chipher: aes-256-gcm
- require client certificate: YES
- protocol: udp
- маршруты
- или push route = 10.100.100.0 255.255.255.0 10.100.101.1 9 (Network, MASK, GW, metric) (тут делаем пуш роута на нашу офисную сеть, подставьте свою, чтобы клиенты подключившись понимали куда идти)
- или Redirect gateway=def1 если мы будем выступать полноценным VPN сервером маршрутизирующим трафик наружу
- Экспортируем СА серт без указания пароля в формате PEM (выгрузится только публичный ключ)
- Экспортируем клиентский серт с указанием паролем в формате PEM (выгрузится два ключа, приватный и публичный)
- Забираем из файлов экспортированный приватный ключ клиента и с помощью Openssl убираем из него требование пароля (расшифровываем) командами
- openssl.exe rsa -in C:\Soft\encrypted.key -noout -text # сначала проверим что ключ читается норм
openssl.exe rsa -in C:\Soft\encrypted.key -out C:\Soft\decrypted.key # расшифровываем ключ и пересохраняем его. если после ввода пароля видим содержимое — все ок
- openssl.exe rsa -in C:\Soft\encrypted.key -noout -text # сначала проверим что ключ читается норм
- Загружаем расшифрованный decrypted.key (не требующий пароля ключ) назад в микротик и использйем его при экспорте настроек ovpn. PPP—OvpnServer — export .ovpn
- Конфигфайл забираем на клиентский комп и подсовываем клиенту
- При подключении потребуется логин-пароль. Можно сохранить чтоб потом не вводить каджый раз
- Не забываем про правила файрвола
- входящие на 1194\UDP
- форвард между овпн—пулом и основной сетью (если впн до внутренних ресурсов)
- ИЛИ
- маскарадинг между овпн-пулом и интернетом (если выпускаем клиентов наружу)
