В данной статье будет рассмотрена очередная разновидность 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)
Здравствуйте. Но провайдер ovpn server все таки сможет сниффить трафик?
Доброго времени суток ! Есть микротик с OVPN сервером, коннект идет по логам микротика вижу, IP со стороны микротика выделятся , но в настройках у клиента роуты которые добавляю не работают, хотя в логе выводится Route addition via service succeeded. В чем может быть проблема ? снизу настройки и логи.
remote X.X.X.X 1194
dev tap
nobind
persist-key
tls-client
ca ca.crt
cert client.crt
key client.key
verb 3
ns-cert-type server
cipher AES-128-CBC
auth SHA1
pull
auth-user-pass
route-method exe
route-delay 2
route 192.168.88.10 255.255.255.255 172.17.18.1
route 192.168.88.1 255.255.255.255 172.17.18.1
route 192.168.90.80 255.255.255.255 172.17.18.1
route 192.168.90.47 255.255.255.255 172.17.18.1
route 192.168.90.58 255.255.255.255 172.17.18.1
route 192.168.70.59 255.255.255.255 172.17.18.1
route 192.168.70.60 255.255.255.255 172.17.18.1
route 192.168.90.1 255.255.255.255 172.17.18.1
route 192.168.70.1 255.255.255.255 172.17.18.1
Mon Jan 24 09:15:53 2022 OpenVPN 2.4.4 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] built on Sep 26 2017
Mon Jan 24 09:15:53 2022 Windows version 6.2 (Windows 8 or greater) 64bit
Mon Jan 24 09:15:53 2022 library versions: OpenSSL 1.0.2l 25 May 2017, LZO 2.10
Enter Management Password:
Mon Jan 24 09:15:53 2022 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25341
Mon Jan 24 09:15:53 2022 Need hold release from management interface, waiting…
Mon Jan 24 09:15:53 2022 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25341
Mon Jan 24 09:15:53 2022 MANAGEMENT: CMD ‘state on’
Mon Jan 24 09:15:53 2022 MANAGEMENT: CMD ‘log all on’
Mon Jan 24 09:15:53 2022 MANAGEMENT: CMD ‘echo all on’
Mon Jan 24 09:15:53 2022 MANAGEMENT: CMD ‘hold off’
Mon Jan 24 09:15:53 2022 MANAGEMENT: CMD ‘hold release’
Mon Jan 24 09:16:01 2022 MANAGEMENT: CMD ‘username “Auth” “amid15″‘
Mon Jan 24 09:16:01 2022 MANAGEMENT: CMD ‘password […]’
Mon Jan 24 09:16:01 2022 WARNING: –ns-cert-type is DEPRECATED. Use –remote-cert-tls instead.
Mon Jan 24 09:16:02 2022 TCP/UDP: Preserving recently used remote address: [AF_INET]X.X.X.X:1194
Mon Jan 24 09:16:02 2022 Socket Buffers: R=[65536->65536] S=[65536->65536]
Mon Jan 24 09:16:02 2022 Attempting to establish TCP connection with [AF_INET]X.X.X.X:1194 [nonblock]
Mon Jan 24 09:16:02 2022 MANAGEMENT: >STATE:1642997762,TCP_CONNECT,,,,,,
Mon Jan 24 09:16:03 2022 TCP connection established with [AF_INET]X.X.X.X:1194
Mon Jan 24 09:16:03 2022 TCP_CLIENT link local: (not bound)
Mon Jan 24 09:16:03 2022 TCP_CLIENT link remote: [AF_INET]X.X.X.X:1194
Mon Jan 24 09:16:03 2022 MANAGEMENT: >STATE:1642997763,WAIT,,,,,,
Mon Jan 24 09:16:03 2022 MANAGEMENT: >STATE:1642997763,AUTH,,,,,,
Mon Jan 24 09:16:03 2022 TLS: Initial packet from [AF_INET]X.X.X.X:1194, sid=d614e05a 6601e2cc
Mon Jan 24 09:16:03 2022 WARNING: this configuration may cache passwords in memory — use the auth-nocache option to prevent this
Mon Jan 24 09:16:03 2022 VERIFY OK: nsCertType=SERVER
Mon Jan 24 09:16:03 2022 VERIFY OK: depth=0, C=TJ, ST=Sogd, L=Hujand, O=Amid, OU=changeme, CN=server, name=server, [email protected]
Mon Jan 24 09:16:04 2022 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384, 4096 bit RSA
Mon Jan 24 09:16:04 2022 [server] Peer Connection Initiated with [AF_INET]X.X.X.X:1194
Mon Jan 24 09:16:05 2022 MANAGEMENT: >STATE:1642997765,GET_CONFIG,,,,,,
Mon Jan 24 09:16:05 2022 SENT CONTROL [server]: ‘PUSH_REQUEST’ (status=1)
Mon Jan 24 09:16:10 2022 SENT CONTROL [server]: ‘PUSH_REQUEST’ (status=1)
Mon Jan 24 09:16:16 2022 SENT CONTROL [server]: ‘PUSH_REQUEST’ (status=1)
Mon Jan 24 09:16:16 2022 PUSH: Received control message: ‘PUSH_REPLY,ping 20,ping-restart 60,route-gateway 172.17.18.1,ifconfig 172.17.18.25 255.255.255.0’
Mon Jan 24 09:16:16 2022 OPTIONS IMPORT: timers and/or timeouts modified
Mon Jan 24 09:16:16 2022 OPTIONS IMPORT: –ifconfig/up options modified
Mon Jan 24 09:16:16 2022 OPTIONS IMPORT: route-related options modified
Mon Jan 24 09:16:16 2022 Outgoing Data Channel: Cipher ‘AES-128-CBC’ initialized with 128 bit key
Mon Jan 24 09:16:16 2022 Outgoing Data Channel: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Mon Jan 24 09:16:16 2022 Incoming Data Channel: Cipher ‘AES-128-CBC’ initialized with 128 bit key
Mon Jan 24 09:16:16 2022 Incoming Data Channel: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Mon Jan 24 09:16:16 2022 interactive service msg_channel=476
Mon Jan 24 09:16:16 2022 ROUTE_GATEWAY 10.155.180.225/255.255.255.240 I=4 HWADDR=30:24:a9:ed:ed:f8
Mon Jan 24 09:16:16 2022 open_tun
Mon Jan 24 09:16:16 2022 TAP-WIN32 device [Ethernet 2] opened: \\.\Global\{7556E1E4-36FF-492E-BEB1-585C824930E7}.tap
Mon Jan 24 09:16:16 2022 TAP-Windows Driver Version 9.21
Mon Jan 24 09:16:16 2022 Notified TAP-Windows driver to set a DHCP IP/netmask of 172.17.18.25/255.255.255.0 on interface {7556E1E4-36FF-492E-BEB1-585C824930E7} [DHCP-serv: 172.17.18.0, lease-time: 31536000]
Mon Jan 24 09:16:16 2022 Successful ARP Flush on interface [11] {7556E1E4-36FF-492E-BEB1-585C824930E7}
Mon Jan 24 09:16:16 2022 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Mon Jan 24 09:16:16 2022 MANAGEMENT: >STATE:1642997776,ASSIGN_IP,,172.17.18.25,,,,
Mon Jan 24 09:16:18 2022 TEST ROUTES: 9/9 succeeded len=9 ret=1 a=0 u/d=up
Mon Jan 24 09:16:18 2022 MANAGEMENT: >STATE:1642997778,ADD_ROUTES,,,,,,
Mon Jan 24 09:16:18 2022 C:\WINDOWS\system32\route.exe ADD 192.168.88.10 MASK 255.255.255.255 172.17.18.1
Mon Jan 24 09:16:18 2022 Route addition via service succeeded
Mon Jan 24 09:16:18 2022 C:\WINDOWS\system32\route.exe ADD 192.168.88.1 MASK 255.255.255.255 172.17.18.1
Mon Jan 24 09:16:18 2022 Route addition via service succeeded
Mon Jan 24 09:16:18 2022 C:\WINDOWS\system32\route.exe ADD 192.168.90.80 MASK 255.255.255.255 172.17.18.1
Mon Jan 24 09:16:18 2022 Route addition via service succeeded
Mon Jan 24 09:16:18 2022 C:\WINDOWS\system32\route.exe ADD 192.168.90.47 MASK 255.255.255.255 172.17.18.1
Mon Jan 24 09:16:18 2022 Route addition via service succeeded
Mon Jan 24 09:16:18 2022 C:\WINDOWS\system32\route.exe ADD 192.168.90.58 MASK 255.255.255.255 172.17.18.1
Mon Jan 24 09:16:18 2022 Route addition via service succeeded
Mon Jan 24 09:16:18 2022 C:\WINDOWS\system32\route.exe ADD 192.168.70.59 MASK 255.255.255.255 172.17.18.1
Mon Jan 24 09:16:18 2022 Route addition via service succeeded
Mon Jan 24 09:16:18 2022 C:\WINDOWS\system32\route.exe ADD 192.168.70.60 MASK 255.255.255.255 172.17.18.1
Mon Jan 24 09:16:18 2022 Route addition via service succeeded
Mon Jan 24 09:16:18 2022 C:\WINDOWS\system32\route.exe ADD 192.168.90.1 MASK 255.255.255.255 172.17.18.1
Mon Jan 24 09:16:18 2022 Route addition via service succeeded
Mon Jan 24 09:16:18 2022 C:\WINDOWS\system32\route.exe ADD 192.168.70.1 MASK 255.255.255.255 172.17.18.1
Mon Jan 24 09:16:18 2022 Route addition via service succeeded
Mon Jan 24 09:16:18 2022 Initialization Sequence Completed
Mon Jan 24 09:16:18 2022 MANAGEMENT: >STATE:1642997778,CONNECTED,SUCCESS,172.17.18.25,X.X.X.X,1194,X.X.X.X,6912