Mikrotik. OpenVPN. Сервер Mikrotik OpenVPN и клиенты: различия между версиями
Cless (обсуждение | вклад) |
Cless (обсуждение | вклад) |
||
| (не показаны 4 промежуточные версии этого же участника) | |||
| Строка 1: | Строка 1: | ||
== Настройка OpenVPN | == Настройка сервера 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. Не использовать сертификаты клиентов ==== | |||
Включаем OVPN-сервер | Включаем OVPN-сервер | ||
/ | <code>/interface ovpn-server server set certificate=srv-OVPN cipher=blowfish128,aes128,aes192,aes256 enabled=yes port=1101 require-client-certificate=no</code> | ||
Экспорт сертификата CA: | |||
/ | <code>/certificate export-certificate CA export-passphrase=""</code> | ||
Получается файл '''export_CA.crt''' на микроте | |||
Извлекаем полученный файл сертификата '''export_CA.crt''' из микротика любым удобным способом | |||
==== Вариант 2. Использовать сертификаты клиентов ==== | |||
Экспорт сертификата CA: | |||
// | <code>/certificate export-certificate CA export-passphrase=""</code> | ||
Сертификат первого клиента | |||
/certificate | <code>/certificate add name=template-CL-to-issue copy-from="template-CL" common-name="client-ovpn-1"</code> | ||
// | <code>/certificate sign template-CL-to-issue ca="CA" name="client-ovpn-1"</code> | ||
В будущем, для отзыва сертификатов используем команду: | |||
<code>/certificate issued-revoke %cert-name%</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''' | |||
Копируем их на машину клиента | |||
== Настройка клиентов OpenVPN == | |||
=== Клиент OpenVPN Windows === | |||
==== OpenVPN установочный ==== | |||
Скачиваем OpenVPN 2.4.6 | |||
С другими версиями может быть проблема с неподписанными драйверами TAP | |||
https://openvpn.net/community-downloads/ | |||
Устанавливаем тыкая галку '''Установить как сервис''' | |||
Создаем и копируем '''client.ovpn''', '''auth.txt''' в '''C:\Program Files\OpenVPN\config\''' | |||
<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> | |||
<code>auth.txt</code> | |||
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 записываем лог/пас клиента | |||
- при подключении необходимо будет ввести пароль, который задали при экспорте сертификата и ключа на микротике | |||
ПРИМЕЧАНИЕ: | ПРИМЕЧАНИЕ: | ||
| Строка 219: | Строка 149: | ||
- если пользователь НЕ входит в группу Администраторы, то при запуске от имени Администратора требуется пароль Администратора | - если пользователь НЕ входит в группу Администраторы, то при запуске от имени Администратора требуется пароль Администратора | ||
=== Клиент OpenVPN Linux (Centos 7) === | |||
<code>yum install openvpn</code> | |||
yum install openvpn | |||
<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> | |||
<code>systemctl start openvpn-client@lip-ati-10-254</code> | |||
=== Клиент 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
- вводим лог/пас пользователя
- подключаемся