Статията има за цел да представи MikroTik RouterOS като OpenVPN сървър и настройка на OpenVPN клиент под Windows. Не пропускайте видео демонстрацията в края на статията за повече технически детайли по изпълнение на конфигурацията!
Конфигурацията е разпределена в три етапа:
- Етап 1. Генериране и подписване (self-signed certificate) на сертификати чрез /certificates в RouterOS
- Етап 2. Конфигурация на MikroTik RouterOS – подготовка и конфигуриране на OpenVPN сървъра
- Етап 3. Инсталация и конфигурация на OpenVPN клиент под Windows.
Етап 1. Генериране и подписване (self-signed certificate) на сертификати чрез /certificates в RouterOS
Създайте:
- Certificate authority (CA) темплейт (CA-tpl) с валидност 10 години и създайте CA certificate:
/certificate add name=CA-tpl country=“BG“ state=“BG“ locality=“Sofia“ organization=“UNIBIT“ unit=“MA“ common-name=“CA“ key-size=4096 days-valid=3650 key-usage=crl-sign,key-cert-sign
/certificate sign CA-tpl ca-crl-host=127.0.0.1 name=“CA“ - Сървърен темплейт (SERVER-tpl) с валидност 10 години и го подпишете като сървърен серификат (SERVER):
/certificate add name=SERVER-tpl country=“BG“ state=“BG“ locality=“Sofia“ organization=“UNIBIT“ unit=“MA“ common-name=“192.168.137.2″ key-size=4096 days-valid=1095 key-usage=digital-signature,key-encipherment,tls-server
/certificate sign SERVER-tpl ca=“CA“ name=“SERVER“
- Клиентски темплейт (CLIENT-tpl) с валидност 10 години. От него създайте клиентски сертификат (CLIENT1) и го подпишете:
/certificate add name=CLIENT-tpl country=“BG“ state=“BG“ locality=“Sofia“ organization=“UNIBIT“ unit=“MA“ common-name=“CLIENT“ key-size=4096 days-valid=3650 key-usage=tls-client
/certificate add name=CLIENT1 copy-from=“CLIENT-tpl“ common-name=“CLIENT1″
/certificate sign CLIENT1 ca=“CA“ name=“CLIENT1″
- Експорт на сертификатите, необходими за OpenVPN клиента (CA.ca, CLIENT1.crt, CLIENT.key) по следния начин:
/certificate export-certificate CA export-passphrase=““
/certificate export-certificate CLIENT1 export-passphrase=12345678
При подписване игнорирайте грешката „action timed out – try again, if error continues contact MikroTik support and send a supout file (13)“. Процесът продължава да работи и приключва успешно малко по-късно. Може лесно да установите това по натоварването на процесора или чрез инструмента /tool profile.
При успех Certificate authority (CA) ще бъде с флагове KLAT (K – private-key, L – crl, A – authority, T – trusted), a сертификатът за сървъра и клиента с флагове KI (K – private-key, I – issued) и ще принадлежат към една certificate chain, което в последствие ще позволи нейното валидиране от OpenVPN сървъра.
Генерирането на сертификатите може да се извърши и чрез OpenSSL (лесно и под Windows), но възникват проблеми със certificate chain и опцията require-client-certificate=yes при стартиране на OpenVPN сървъра. Причина за това е, че RouterOS разпознава коректно сертификати, генерирани с OpenSSL v0.9.8, но не и с по-нови версии.
Етап 2. Конфигурация на MikroTik RouterOS – подготовка и конфигуриране на OpenVPN сървъра
- Извършете допълнителни настройки в /ppp profile, /ppp secret, /ip pool и други според вашата конфигурация (вижте повече във видео демонстрацията)
- Стартирайте OpenVPN сървъра в RouterOS чрез:
/interface ovpn-server server set auth=sha1 certificate=SERVER cipher=aes256 default-profile=default-encryption enabled=yes require-client-certificate=yes
Етап 3. Инсталация и конфигурация на OpenVPN клиент под Windows
- Изтеглете OpenVPN за вашата архитектура. При инсталацията сложете отметка на OpenSSL Utilities.
- В C:\Program Files\OpenVPN\config прехвърлете следните файлове:
- ca cert_export_CA.crt
- cert cert_export_CLIENT1.crt
- key cert_export_CLIENT1.key
- Премахнете паролата на клиентския ключ за нуждите на OpenVPN клиента:
openssl rsa -in client1.key -out client1.key - Създайте файл с име MTVPN.ovpn (или посочете такова по ваш избор) и го поставете в същата директория (не забравяйте да промените IP-адреса според вашата мрежа).
ovpn с насочващи коментари може да изтеглите от следната връзка: MTVPN.ovpn. - Създайте текстов файл с име secret (описан във файла MTVPN.ovpn) и в него поставете на първия ред потребителското име, а на втория – паролата, конфигурирани за достъп до OpenVPN сървъра в MikroTik (/ppp secret). Поставете файла auth.cfg в същата директория.
Видео демонстрация
В логовете от връзката няма грешки или предупреждения.
Повече информация за за OpenVPN
- OpenVPN – Open Source VPN
- OpenVPN (From Wikipedia, the free encyclopedia)
- OpenVPN (MikroTik Wiki)
- What Is A VPN And What Does It Do?
Professor,
Thanks for your article!!!
Total instructive and direct!!! Keep it up!
Здравейте,
Възможно ли е следната грешка да се появява при опит за връзка от openvpn под линукс към mikrotik CHR като openvpn server, защото сертификатите не са генерирани от микротик-а , а от openssl-a на ubuntu-то/клиента (което е 1.0 версия)? Ако е проблема в ssl-a не би ли трябвало да даде грешка за ssl-a, а не грешка за reset (това по скоро прилича на мрежов проблем, а firewall-a, профилите и пуловете са конфигурирани)?
Connection reset, restarting [0]
SIGUSR1[soft,connection-reset] received, process restarting
Restart pause, 5 second(s)