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

Материал из Wiki
Перейти к навигации Перейти к поиску
Строка 35: Строка 35:
/ppp secret add name=ovpn-user-1 password=P@ssword1 service=ovpn profile=OVPN_server
/ppp secret add name=ovpn-user-1 password=P@ssword1 service=ovpn profile=OVPN_server


==== Вариант 1. Не использовать сертификаты клиентов ====
Включаем OVPN-сервер
Включаем OVPN-сервер


// НЕ ТРЕБУЕТСЯ использовать сертификаты клиентов (клиент будет подключаться ТОЛЬКО с логином/паролем) - require-client-certificate=no
<code>/interface ovpn-server server set certificate=srv-OVPN cipher=blowfish128,aes128,aes192,aes256 enabled=yes port=1101 require-client-certificate=no</code>


<nowiki>#</nowiki>/interface ovpn-server server set auth=sha1 cipher=blowfish128,aes256 default-profile=OVPN_server mode=ip netmask=24 require-client-certificate=no certificate=srv-OVPN enabled=yes
Экспорт сертификата CA:


/interface ovpn-server server set certificate=srv-OVPN cipher=blowfish128,aes128,aes192,aes256 enabled=yes port=1101 require-client-certificate=no
<code>/certificate export-certificate CA export-passphrase=""</code>


// ВАРИАНТ 1:
Получается файл '''export_CA.crt''' на микроте


// НЕ ИСПОЛЬЗОВАТЬ СЕРТИФИКАТЫ КЛИЕНТОВ
Извлекаем полученный файл сертификата '''export_CA.crt''' из микротика любым удобным способом


// ---
==== Вариант 2. Использовать сертификаты клиентов ====
Экспорт сертификата CA:


// Экспорт сертификатов для настройки клиентов:
<code>/certificate export-certificate CA export-passphrase=""</code>


// Экспорт сертификата CA:
Сертификат первого клиента


/certificate export-certificate CA export-passphrase=""
<code>/certificate add name=template-CL-to-issue copy-from="template-CL" common-name="client-ovpn-1"</code>


// получается файл export_CA.crt на микроте
<code>/certificate sign template-CL-to-issue ca="CA" name="client-ovpn-1"</code>


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


  // ВАРИАНТ 2:
<code>/certificate issued-revoke %cert-name%</code>


  // ИСПОЛЬЗОВАНИЕ СЕРТИФИКАТОВ КЛИЕНТОВ
Экспорт сертификата и ключа клиента


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


  // Экспорт сертификата CA:
Будет создано 2 файла: cert_export_client-ovpn-1.crt, cert_export_client-ovpn-1.key


  /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
 
  // копируем их на машину клиента
 
КЛИЕНТ OVPN WINDOWS
 
<nowiki>-------------------</nowiki>


=== Клиент OpenVPN Windows ===
OPENVPN УСТАНОВОЧНЫЙ:
OPENVPN УСТАНОВОЧНЫЙ:



Версия 11:42, 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 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

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

   

   // для автозапуска 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 записываем лог/пас клиента

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

   ПРИМЕЧАНИЕ:

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

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

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

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

   

КЛИЕНТ OVPN 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

КЛИЕНТ OVPN 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

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

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