В данной статье будет рассмотрена очередная разновидность VPN сервера – OpenVPN. Его исключительной особенностью является использование сертификатов SSL для шифрования VPN туннеля. Скорость соединения при этом остаётся на максимуме, а такой метод шифрования позволяет занимать лидирующие места среди надежных и защищенных VPN серверов современности.
Многое время маршрутизаторы MikroTik имели сложности при использовании их в качестве сервера OpenVPN, а генерация сертификата в некоторых случаях сопровождалась привлечением отдельных инструментов. Это выглядело как попытка подружить Linux и Windows.
Настройка OVPN server на маршрутизаторе(роутере) MikroTik
Вся настройка будет состоять из пунктов:
- Генерация сертификатов сервера, клиента;
- Настройка OpenVPN сервера на маршрутизаторе(профили, активация, параметры и тд);
- Создание конфигурационного файла для клиента;
- Удаленное подключение через OpenVPN клиента на Windows ПК.
Все действия производятся через terminal утилиты winbox:
Генерация корневого сертификата
/certificate add name=template-ca country="UA" state="Odessa" locality="Odessa" organization="nastroyka-mikrotik.ukr" unit="IT" common-name="Template-Ovpn-Ca" key-size=1024 days-valid=3650 key-usage=crl-sign,key-cert-sign /certificate sign template-ca ca-crl-host=127.0.0.1 name="Ovpn-Ca"
Генерация сертификата сервера
/certificate add name=Template-Srv country="UA" state="Odessa" locality="Odessa" organization="nastroyka-mikrotik.ukr" unit="IT" common-name="Ovpn-Srv" key-size=1024 days-valid=3650 key-usage=digital-signature,key-encipherment,tls-server /certificate sign Template-Srv ca="Ovpn-Ca" name="Ovpn-Srv"
Генерация сертификата для vpn клиента
/certificate add name=Template-Clnt country="UA" state="Odessa" locality="Odessa" organization="nastroyka-mikrotik.ukr" unit="IT" common-name="Template-Ovpn-Clnt" key-size=1024 days-valid=3650 key-usage=tls-client /certificate add name=template-clnt-to-issue copy-from="Template-Clnt" common-name="Ovpn-Clnt-1" /certificate sign template-clnt-to-issue ca="Ovpn-Ca" name="Ovpn-Clnt-1"
Создание IP диапазона для VPN клиентов
Поддержи автора статьи, сделай клик по рекламе ↓↓↓
/ip pool add name=Ovpn-Dhcp-Pool ranges=192.168.4.2-192.168.4.254
Создание VPN профиля
/ppp profile add name=Ovpn-Srv local-address=192.168.4.1 remote-address=Ovpn-Dhcp-Pool
Активация авторизации по пользователю
/ppp aaa set accounting=yes
Добавление учетной записи для VPN пользователя
/ppp secret add name=Ovpn-Usr-1 password=VPN-User-Password service=ovpn profile=Ovpn-Srv
Активация OVPN сервера
/interface ovpn-server server set auth=sha1 certificate=Ovpn-Srv cipher=blowfish128,aes256 default-profile=Ovpn-Srv enabled=yes require-client-certificate=yes
Выгрузка сертификата для VPN клиента
/certificate export-certificate Ovpn-Ca export-passphrase="" /certificate export-certificate Ovpn-Clnt-1 export-passphrase=Vpn-User-Key
Сгенерированые файлы будут помещены во внутреннюю память устройства, откуда их нужно скопировать.
Создание конфигурации VPN клиента
Для этого нужно создать файл с расширением conf, например Ovpn-Usr-1.conf со следующим содержанием
client dev tun proto tcp remote настройка-микротик.укр 1194 resolv-retry infinite nobind persist-key persist-tun ca cert_export_Ovpn-Ca.crt cert cert_export_Ovpn-Clnt-1.crt key cert_export_Ovpn-Clnt-1.key --auth-user-pass user-pwd.txt remote-cert-tls server verb 3 route-delay 5 cipher AES256 auth SHA1 #Локальная сеть MikroTik-а route 192.168.0.0 255.255.255.0 #Определить Mikrotik как шлюз по умолчанию #redirect-gateway def1
Создание файла данных учётной записи VPN пользователя
Для этого нужно создать файл с расширением txt, например User-Pwd.conf со следующим содержанием
Ovpn-Usr-1 VPN-User-Password
В итоге должно получиться 5 файлов, которые нужно скопировать в папку config пользователя OpenVPN.
Подключение к OpenVPN серверу на MikroTik, используя Windows
Со стороны Windows клиента нужно установить приложение с официального сайта(ссылка) и положить 5-ть файлов в папку OpenVPN\config или каталога пользователя или «Programm Files».
Поддержи автора статьи, сделай клик по рекламе ↓↓↓
При подключении нужно ввести ключ, который был указан при экспорте сертификата пользователя(Vpn-User-Key), после чего следует успешное подключение к OpenVPN серверу, работающему на MikroTik.
чет не хочет соединяться. микротик из коробки. обновил только прошивку. вот логи с open vpn
Sat Jan 04 09:56:49 2020 OpenVPN 2.4.8 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] built on Oct 31 2019
Sat Jan 04 09:56:49 2020 Windows version 6.2 (Windows 8 or greater) 64bit
Sat Jan 04 09:56:49 2020 library versions: OpenSSL 1.1.0l 10 Sep 2019, LZO 2.10
Enter Management Password:
…
Sat Jan 04 09:56:49 2020 Windows version 6.2 (Windows 8 or greater) 64bit
Sat Jan 04 09:56:49 2020 library versions: OpenSSL 1.1.0l 10 Sep 2019, LZO 2.10
Enter Management Password:
Sat Jan 04 09:56:49 2020 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25340
Sat Jan 04 09:56:49 2020 Need hold release from management interface, waiting…
Sat Jan 04 09:56:49 2020 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25340
Sat Jan 04 09:56:49 2020 MANAGEMENT: CMD ‘state on’
Sat Jan 04 09:56:49 2020 MANAGEMENT: CMD ‘log all on’
Sat Jan 04 09:56:49 2020 MANAGEMENT: CMD ‘echo all on’
Sat Jan 04 09:56:49 2020 MANAGEMENT: CMD ‘bytecount 5’
Sat Jan 04 09:56:49 2020 MANAGEMENT: CMD ‘hold off’
Sat Jan 04 09:56:49 2020 MANAGEMENT: CMD ‘hold release’
Sat Jan 04 09:56:49 2020 MANAGEMENT: CMD ‘password […]’
Sat Jan 04 09:56:49 2020 WARNING: this configuration may cache passwords in memory — use the auth-nocache option to prevent this
Sat Jan 04 09:56:49 2020 WARNING: Your certificate has expired!
Sat Jan 04 09:56:49 2020 TCP/UDP: Preserving recently used remote address: [AF_INET]192.168.88.1:1194
Sat Jan 04 09:56:49 2020 Socket Buffers: R=[65536->65536] S=[65536->65536]
Sat Jan 04 09:56:49 2020 Attempting to establish TCP connection with [AF_INET]192.168.88.1:1194 [nonblock]
Sat Jan 04 09:56:49 2020 MANAGEMENT: >STATE:1578113809,TCP_CONNECT,,,,,,
Sat Jan 04 09:56:50 2020 TCP connection established with [AF_INET]192.168.88.1:1194
Sat Jan 04 09:56:50 2020 TCP_CLIENT link local: (not bound)
Sat Jan 04 09:56:50 2020 TCP_CLIENT link remote: [AF_INET]192.168.88.1:1194
Sat Jan 04 09:56:50 2020 MANAGEMENT: >STATE:1578113810,WAIT,,,,,,
Sat Jan 04 09:56:50 2020 MANAGEMENT: >STATE:1578113810,AUTH,,,,,,
Sat Jan 04 09:56:50 2020 TLS: Initial packet from [AF_INET]192.168.88.1:1194, sid=b3f0d321 6ae83048
Sat Jan 04 09:56:50 2020 VERIFY ERROR: depth=1, error=certificate has expired: C=KZ, ST=Uralsk, L=Uralsk, O=AvtoZakup, OU=IT, CN=Template-Ovpn-Ca
Sat Jan 04 09:56:50 2020 OpenSSL: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
Sat Jan 04 09:56:50 2020 TLS_ERROR: BIO read tls_read_plaintext error
Sat Jan 04 09:56:50 2020 TLS Error: TLS object -> incoming plaintext read error
Sat Jan 04 09:56:50 2020 TLS Error: TLS handshake failed
Sat Jan 04 09:56:50 2020 Fatal TLS error (check_tls_errors_co), restarting
Sat Jan 04 09:56:50 2020 SIGUSR1[soft,tls-error] received, process restarting
Sat Jan 04 09:56:50 2020 MANAGEMENT: >STATE:1578113810,RECONNECTING,tls-error,,,,,
Sat Jan 04 09:56:50 2020 Restart pause, 5 second(s)
Sat Jan 04 09:56:55 2020 SIGTERM[hard,init_instance] received, process exiting
Sat Jan 04 09:56:55 2020 MANAGEMENT: >STATE:1578113815,EXITING,init_instance,,,,,
ne jivetisy spokoino
Tue Mar 17 23:06:28 2020 VERIFY ERROR: depth=1, error=self signed certificate in certificate chain: C=BY, ST=BY, L=Gomel, O=clevertec, OU=ou, CN=clevertec, name=name, emailAddress=mail
Tue Mar 17 23:06:28 2020 OpenSSL: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
Tue Mar 17 23:06:28 2020 TLS_ERROR: BIO read tls_read_plaintext error
Tue Mar 17 23:06:28 2020 TLS Error: TLS object -> incoming plaintext read error
Tue Mar 17 23:06:28 2020 TLS Error: TLS handshake failed
Tue Mar 17 23:06:28 2020 Fatal TLS error (check_tls_errors_co), restarting
Tue Mar 17 23:06:28 2020 SIGUSR1[soft,tls-error] received, process restarting
Tue Mar 17 23:06:28 2020 MANAGEMENT: >STATE:1584475588,RECONNECTING,tls-error,,,,,
Tue Mar 17 23:06:28 2020 Restart pause, 80 second(s)