Mikrotik. OpenVPN. Сервер Mikrotik OpenVPN и клиенты: различия между версиями

Материал из Wiki
Перейти к навигации Перейти к поиску
 
(не показаны 3 промежуточные версии этого же участника)
Строка 1: Строка 1:
== Настройка OpenVPN сервера Mikrotik ==
== Настройка сервера OpenVPN Mikrotik ==
Сертификат CA
Сертификат CA


Строка 33: Строка 33:
Добавляем пользователя
Добавляем пользователя


/ppp secret add name=ovpn-user-1 password=P@ssword1 service=ovpn profile=OVPN_server
<code>/ppp secret add name=ovpn-user-1 password=P@ssword1 service=ovpn profile=OVPN_server</code>


==== Вариант 1. Не использовать сертификаты клиентов ====
==== Вариант 1. Не использовать сертификаты клиентов ====
Строка 67: Строка 67:
<code>/certificate export-certificate client-ovpn-1 export-passphrase=<private-key-password1></code>
<code>/certificate export-certificate client-ovpn-1 export-passphrase=<private-key-password1></code>


Будет создано 2 файла: cert_export_client-ovpn-1.crt, cert_export_client-ovpn-1.key
Будет создано 2 файла: '''cert_export_client-ovpn-1.crt''', '''cert_export_client-ovpn-1.key'''


Копируем их на машину клиента
Копируем их на машину клиента
== Настройка клиентов OpenVPN ==


=== Клиент OpenVPN Windows ===
=== Клиент OpenVPN Windows ===
OPENVPN УСТАНОВОЧНЫЙ:
---
   // скачиваем OpenVPN 2.4.6
   // с другими версиями может быть проблема с неподписанными драйверами TAP
   <nowiki>https://openvpn.net/community-downloads/</nowiki>
   // устанавливаем
   // создаем и копируем client.ovpn, auth.txt в C:\Program Files\OpenVPN\config\
   client.ovpn
       ---
       client
       dev tun
       proto tcp
       remote domain123.ru 1101
       resolv-retry infinite
       nobind
       persist-key


       persist-tun
==== OpenVPN установочный ====
Скачиваем OpenVPN 2.4.6


       mute-replay-warnings
С другими версиями может быть проблема с неподписанными драйверами TAP


       ;comp-lzo
https://openvpn.net/community-downloads/


       verb 3
Устанавливаем тыкая галку '''Установить как сервис'''


       ;mute 20
Создаем и копируем '''client.ovpn''', '''auth.txt''' в '''C:\Program Files\OpenVPN\config\'''


       ;route 192.168.111.0 255.255.255.0
<code>client.ovpn</code>
client
dev tun
proto tcp
remote domain123.ru 1101
resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
;comp-lzo
verb 3
;mute 20
;route 192.168.111.0 255.255.255.0
remote-cert-tls server
auth-user-pass auth.txt
auth-retry nointeract
cipher AES-256-CBC
# default gw over ovpn server
;redirect-gateway autolocal
<ca>
       <СЮДА КОПИРУЕМ СОДЕРЖИМОЕ export_CA.crt, ЭКСПОРТИРОВАННОГО ИЗ MIKROTIK-OVPN-SERVER>
</ca>


       remote-cert-tls server
<code>auth.txt</code>
user01
Pa$$Word
В настройках программы добавляем запуск OpenVPN вместе с Windows


       auth-user-pass auth.txt
Подключаемся вручную тыкая на иконку в трее


       auth-retry nointeract
==== OpenVPN портативный ====


       cipher AES-256-CBC
===== Вариант 1. Не использовать сертификаты клиентов =====
Используем приложение OpenVPNPortable в комплекте с мануалом


       # default gw over ovpn server
в OpenVPNPortable\data\config\client.ovpn изменяем содержимое <ca> ... </ca> на содержимое файла export_CA.crt


       ;redirect-gateway autolocal
в auth.txt записываем лог/пас клиента


   <ca>
===== Вариант 1.Использовать сертификаты клиентов =====
в OpenVPNPortable\data\config\client.ovpn:


       <СЮДА КОПИРУЕМ СОДЕРЖИМОЕ export_CA.crt, ЭКСПОРТИРОВАННОГО ИЗ MIKROTIK-OVPN-SERVER>
- изменяем содержимое <ca> ... </ca> на содержимое файла export_CA.crt


   </ca>
- изменяем содержимое <cert> ... </cert> на содержимое файла cert_export_client-ovpn-1.crt


   ---
- изменяем содержимое <key> ... </key> на содержимое файла cert_export_client-ovpn-1.key


   auth.txt
- в auth.txt записываем лог/пас клиента


       ---
- при подключении необходимо будет ввести пароль, который задали при экспорте сертификата и ключа на микротике
 
       user01
 
       Pa$$Word
 
       ---
 
   // в настройках программы добавляем запуск OpenVPN вместе с Windows
 
   // подключаемся вручную тыкая на иконку в трее
 
   
 
   // для автозапуска VPN можно также использовать автозапуск службы OpenVPNService
 
   // при запуске системы запустится конфиг client.ovpn
 
   // но при этом теряется смысл GUI иконки в трее
 
OPENVPN ПОРТАТИВНЫЙ:
 
---
 
   // ВАРИАНТ 1:
 
   // НЕ ИСПОЛЬЗОВАТЬ СЕРТИФИКАТЫ КЛИЕНТОВ
 
   // ---
 
   // Используем приложение OpenVPNPortable в комплекте с мануалом
 
   // в OpenVPNPortable\data\config\client.ovpn изменяем содержимое <ca> ... </ca> на содержимое файла export_CA.crt
 
   // в auth.txt записываем лог/пас клиента
 
       // ВАРИАНТ 2:
 
       // ИСПОЛЬЗОВАНИЕ СЕРТИФИКАТОВ КЛИЕНТОВ
 
       // в OpenVPNPortable\data\config\client.ovpn:
 
       //  - изменяем содержимое <ca> ... </ca> на содержимое файла export_CA.crt
 
       //  - изменяем содержимое <cert> ... </cert> на содержимое файла cert_export_client-ovpn-1.crt
 
       //  - изменяем содержимое <key> ... </key> на содержимое файла cert_export_client-ovpn-1.key
 
       //  - в auth.txt записываем лог/пас клиента
 
       //  - при подключении необходимо будет ввести пароль, который задали при экспорте сертификата и ключа на микротике


   ПРИМЕЧАНИЕ:
   ПРИМЕЧАНИЕ:
Строка 200: Строка 149:
   - если пользователь НЕ входит в группу Администраторы, то при запуске от имени Администратора требуется пароль Администратора
   - если пользователь НЕ входит в группу Администраторы, то при запуске от имени Администратора требуется пароль Администратора


   
=== Клиент OpenVPN Linux (Centos 7) ===
 
<code>yum install openvpn</code>
КЛИЕНТ OVPN LINUX (CENTOS 7)
 
<nowiki>-------------------</nowiki>    
 
yum install openvpn
 
nano /etc/openvpn/client/lip-ati-10-254.auth
 
---
 
user01
 
PassW0rd
 
---
 
nano /etc/openvpn/client/lip-ati-10-254.conf
 
---
 
client
 
dev tun
 
proto tcp
 
remote 793108e281c9.sn.mynetname.net 1101
 
resolv-retry infinite
 
nobind
 
persist-key
 
persist-tun
 
mute-replay-warnings
 
<nowiki>;</nowiki>comp-lzo
 
verb 3
 
<nowiki>;</nowiki>mute 20
 
<nowiki>;</nowiki>route 192.168.10.0 255.255.255.0
 
remote-cert-tls server
 
auth-nocache
 
auth-user-pass /etc/openvpn/client/lip-ati-10-254.auth
 
auth-retry nointeract
 
cipher AES-256-CBC
 
<nowiki>#</nowiki> default gw over ovpn server
 
<nowiki>#</nowiki>redirect-gateway autolocal
 
<ca>
 
   <СЮДА КОПИРУЕМ СОДЕРЖИМОЕ export_CA.crt, ЭКСПОРТИРОВАННОГО ИЗ MIKROTIK-OVPN-SERVER>
 
</ca>
 
---
 
systemctl enable openvpn-client@lip-ati-10-254
 
systemctl start openvpn-client@lip-ati-10-254
 
КЛИЕНТ OVPN ANDROID
 
<nowiki>-------------------</nowiki>
 
- через Play Market устанавливаем "OpenVPN Connect"
 
- создаем и копируем client.ovpn на Android
 
client.ovpn
 
   ---
 
   client
 
   dev tun
 
   proto tcp
 
   remote domain123.ru 1101
 
   resolv-retry infinite
 
   nobind
 
   persist-key
 
   persist-tun
 
   mute-replay-warnings
 
   ;comp-lzo
 
   verb 3
 
   ;mute 20
 
   ;route 192.168.111.0 255.255.255.0
 
   remote-cert-tls server
 
   auth-user-pass
 
   auth-retry nointeract
 
   cipher AES-256-CBC
 
   # default gw over ovpn server
 
   ;redirect-gateway autolocal


<ca>
<code>nano /etc/openvpn/client/lip-ati-10-254.auth</code>
user01
PassW0rd
<code>nano /etc/openvpn/client/lip-ati-10-254.conf</code>
client
dev tun
proto tcp
remote 793108e281c9.sn.mynetname.net 1101
resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
<nowiki>;</nowiki>comp-lzo
verb 3
<nowiki>;</nowiki>mute 20
<nowiki>;</nowiki>route 192.168.10.0 255.255.255.0
remote-cert-tls server
auth-nocache
auth-user-pass /etc/openvpn/client/lip-ati-10-254.auth
auth-retry nointeract
cipher AES-256-CBC
<nowiki>#</nowiki> default gw over ovpn server
<nowiki>#</nowiki>redirect-gateway autolocal
<ca>
   <СЮДА КОПИРУЕМ СОДЕРЖИМОЕ export_CA.crt, ЭКСПОРТИРОВАННОГО ИЗ MIKROTIK-OVPN-SERVER>
</ca>
<code>systemctl enable openvpn-client@lip-ati-10-254</code>


   <СЮДА КОПИРУЕМ СОДЕРЖИМОЕ export_CA.crt, ЭКСПОРТИРОВАННОГО ИЗ MIKROTIK-OVPN-SERVER>
<code>systemctl start openvpn-client@lip-ati-10-254</code>


</ca>
=== Клиент OpenVPN Android ===
- через Play Market устанавливаем '''"OpenVPN Connect"'''


---
- создаем и копируем '''client.ovpn''' на Android


- открываем "OpenVPN Connect"
<code>client.ovpn</code>
client
dev tun
proto tcp
remote domain123.ru 1101
resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
;comp-lzo
verb 3
;mute 20
;route 192.168.111.0 255.255.255.0
remote-cert-tls server
auth-user-pass
auth-retry nointeract
cipher AES-256-CBC
# default gw over ovpn server
;redirect-gateway autolocal
<ca>
   <СЮДА КОПИРУЕМ СОДЕРЖИМОЕ export_CA.crt, ЭКСПОРТИРОВАННОГО ИЗ MIKROTIK-OVPN-SERVER>
</ca>
- открываем '''"OpenVPN Connect"'''


- импортируем файл client.ovpn
- импортируем файл '''client.ovpn'''


- вводим лог/пас пользователя
- вводим '''лог/пас''' пользователя


- подключаемся
- подключаемся

Текущая версия на 12:00, 20 марта 2022

Настройка сервера OpenVPN Mikrotik

Сертификат CA

/certificate add name=template-CA country="" state="" locality="" organization="" unit="" common-name="CA" key-size=4096 days-valid=3650 key-usage=crl-sign,key-cert-sign

/certificate sign template-CA ca-crl-host=127.0.0.1 name="CA"

Сертификат сервера

/certificate add name=template-SRV country="" state="" locality="" organization="" unit="" common-name="srv-OVPN" key-size=4096 days-valid=3650 key-usage=digital-signature,key-encipherment,tls-server

/certificate sign template-SRV ca="CA" name="srv-OVPN"

Шаблон для создания сертификатов клиентов

/certificate add name=template-CL country="" state="" locality="" organization="" unit="" common-name="client-ovpn-template" key-size=4096 days-valid=3650 key-usage=tls-client

Режим TUN (рабочая протестированная конфигурация!)

Открываем порт 1194/tcp (или другой выставленный в настройках ovpn сервера) на INPUT внешнего интерфейса на микротике

Задаём пул адресов для OVPN-клиентов (можно задать непосредственно в PPP-profile):

/ip pool add name=OVPN_srv_pool ranges=172.23.100.160/27

Создаём PPP-profile для OVPN-сервера

/ppp profile add name=OVPN_server local-address=172.23.100.1 remote-address=OVPN_srv_pool

Настраиваем режим аутентификации пользователей

/ppp aaa set accounting=yes

Добавляем пользователя

/ppp secret add name=ovpn-user-1 password=P@ssword1 service=ovpn profile=OVPN_server

Вариант 1. Не использовать сертификаты клиентов

Включаем OVPN-сервер

/interface ovpn-server server set certificate=srv-OVPN cipher=blowfish128,aes128,aes192,aes256 enabled=yes port=1101 require-client-certificate=no

Экспорт сертификата CA:

/certificate export-certificate CA export-passphrase=""

Получается файл export_CA.crt на микроте

Извлекаем полученный файл сертификата export_CA.crt из микротика любым удобным способом

Вариант 2. Использовать сертификаты клиентов

Экспорт сертификата CA:

/certificate export-certificate CA export-passphrase=""

Сертификат первого клиента

/certificate add name=template-CL-to-issue copy-from="template-CL" common-name="client-ovpn-1"

/certificate sign template-CL-to-issue ca="CA" name="client-ovpn-1"

В будущем, для отзыва сертификатов используем команду:

/certificate issued-revoke %cert-name%

Экспорт сертификата и ключа клиента

/certificate export-certificate client-ovpn-1 export-passphrase=<private-key-password1>

Будет создано 2 файла: cert_export_client-ovpn-1.crt, cert_export_client-ovpn-1.key

Копируем их на машину клиента

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

Клиент OpenVPN Windows

OpenVPN установочный

Скачиваем OpenVPN 2.4.6

С другими версиями может быть проблема с неподписанными драйверами TAP

https://openvpn.net/community-downloads/

Устанавливаем тыкая галку Установить как сервис

Создаем и копируем client.ovpn, auth.txt в C:\Program Files\OpenVPN\config\

client.ovpn

client
dev tun
proto tcp
remote domain123.ru 1101
resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
;comp-lzo
verb 3
;mute 20
;route 192.168.111.0 255.255.255.0
remote-cert-tls server
auth-user-pass auth.txt
auth-retry nointeract
cipher AES-256-CBC
# default gw over ovpn server
;redirect-gateway autolocal
<ca>
       <СЮДА КОПИРУЕМ СОДЕРЖИМОЕ export_CA.crt, ЭКСПОРТИРОВАННОГО ИЗ MIKROTIK-OVPN-SERVER>
</ca>

auth.txt

user01
Pa$$Word

В настройках программы добавляем запуск OpenVPN вместе с Windows

Подключаемся вручную тыкая на иконку в трее

OpenVPN портативный

Вариант 1. Не использовать сертификаты клиентов

Используем приложение OpenVPNPortable в комплекте с мануалом

в OpenVPNPortable\data\config\client.ovpn изменяем содержимое <ca> ... </ca> на содержимое файла export_CA.crt

в auth.txt записываем лог/пас клиента

Вариант 1.Использовать сертификаты клиентов

в OpenVPNPortable\data\config\client.ovpn:

- изменяем содержимое <ca> ... </ca> на содержимое файла export_CA.crt

- изменяем содержимое <cert> ... </cert> на содержимое файла cert_export_client-ovpn-1.crt

- изменяем содержимое <key> ... </key> на содержимое файла cert_export_client-ovpn-1.key

- в auth.txt записываем лог/пас клиента

- при подключении необходимо будет ввести пароль, который задали при экспорте сертификата и ключа на микротике

   ПРИМЕЧАНИЕ:

   - для первого запуска клиента необходимо запустить программу от имени Администратора (это необходимо для установки драйвера интерфейса туннеля)

   - для применения параметров маршрутизации, прописанных в конфиге (в том числе и дефолтного шлюза через openvpn сервер), сам сервис OVPN, или же OVPN GUI должны быть запущены от имени Администратора

   - если пользователь входит в группу Администраторы, то при запуске от имени Администратора пароль Администратора не требуется

   - если пользователь НЕ входит в группу Администраторы, то при запуске от имени Администратора требуется пароль Администратора

Клиент OpenVPN Linux (Centos 7)

yum install openvpn

nano /etc/openvpn/client/lip-ati-10-254.auth

user01
PassW0rd

nano /etc/openvpn/client/lip-ati-10-254.conf

client
dev tun
proto tcp
remote 793108e281c9.sn.mynetname.net 1101
resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
;comp-lzo
verb 3
;mute 20
;route 192.168.10.0 255.255.255.0
remote-cert-tls server
auth-nocache
auth-user-pass /etc/openvpn/client/lip-ati-10-254.auth
auth-retry nointeract
cipher AES-256-CBC
# default gw over ovpn server
#redirect-gateway autolocal
<ca>
   <СЮДА КОПИРУЕМ СОДЕРЖИМОЕ export_CA.crt, ЭКСПОРТИРОВАННОГО ИЗ MIKROTIK-OVPN-SERVER>
</ca>

systemctl enable openvpn-client@lip-ati-10-254

systemctl start openvpn-client@lip-ati-10-254

Клиент OpenVPN Android

- через Play Market устанавливаем "OpenVPN Connect"

- создаем и копируем client.ovpn на Android

client.ovpn

client
dev tun
proto tcp
remote domain123.ru 1101
resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
;comp-lzo
verb 3
;mute 20
;route 192.168.111.0 255.255.255.0
remote-cert-tls server
auth-user-pass
auth-retry nointeract
cipher AES-256-CBC
# default gw over ovpn server
;redirect-gateway autolocal
<ca>
   <СЮДА КОПИРУЕМ СОДЕРЖИМОЕ export_CA.crt, ЭКСПОРТИРОВАННОГО ИЗ MIKROTIK-OVPN-SERVER>
</ca>

- открываем "OpenVPN Connect"

- импортируем файл client.ovpn

- вводим лог/пас пользователя

- подключаемся