ovpn-client mikrotik и Сервер на Ubuntu

Обсуждение ПО и его настройки
artemich61
Сообщения: 1
Зарегистрирован: 19 мар 2022, 15:49

Господа , всем привет. Вообщем решил я развернуть ovpn клиента на микроте. Суть такая: есть у меня сервер на убунте , который генерит мне клиентские "профиля" путем баш скрипта ( openvpn-install.sh ). Он весьма популярный. выглядит примерно так:

Welcome to OpenVPN-install!
The git repository is available at: https://github.com/angristan/openvpn-install
It looks like OpenVPN is already installed.
What do you want to do?
1) Add a new user
2) Revoke existing user
3) Remove OpenVPN
4) Exit
Select an option [1-4]:

При его помощи он сам создает пользака , и предоставляет мне уже готовый профиль подключения для программы open-vpn. С программой на винде все окей Внутри этого профиля конечно есть сертификаты. Внутри сам профиль OVPN выглядит так. (Сертификаты сократил чтоб текста было меньше )

client
proto tcp-client
remote 777.777.777.777 1194
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
verify-x509-name server_2OonN4xkoO2bpScg name
auth SHA256
auth-nocache
cipher AES-128-GCM
tls-client
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
ignore-unknown-option block-outside-dns
setenv opt block-outside-dns # Prevent Windows 10 DNS leak
verb 3
<ca>
-----BEGIN CERTIFICATE-----
MIIBwDCCAWegAwIBAgIJAM4GaSVX0lQpMAoGCCqGSM49BAMCMB4xHDAaBgNVBAMM
ld8V9sMYVxt9WcIxcbXZRrqrCNM=
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
MIIBzzCCAXWgAwIBAgIRAMwnhnWutnNVUMZy63qIHCkwCgYIKoZIzj0EAwIwHjEc
qwIgPnr2m2Rd+N/3ZRdNWjFyJdiSc7L6dqo0V9jSeN03rDg=
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg7e0Lv6vL8q6xCjuV
bSx+Dy9G8I/kWF/GI7aDE6ic9+ihRANCAAQiAuJwxsBlSDaTalxP2wNsx6qwTaii
bvJvga8ckJY2uY8xGCcFqGqZizXxwH4xrHr04y0HHL93L4fLXmTDlO4d
-----END PRIVATE KEY-----
</key>
<tls-crypt>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
a16131c230f0a9336f779f23a8ec7539
291fb61db13081f08256bfb522af9be8
-----END OpenVPN Static key V1-----
</tls-crypt>

Отсюда и вопрос: могу ли используя эти сертификаты прикрутить их к микроту? Увы мануалов мало на эту тему , поэтому прошу помощи у вас.
Заранее спасибо


svetogor82
Сообщения: 212
Зарегистрирован: 17 апр 2014, 10:44

кто вам мешает импортировать эти сертификаты на mikrotik ?


Mikuser01
Сообщения: 3
Зарегистрирован: 20 дек 2021, 23:13

Отличный скрипт, но у меня микротик к нему не подключается, только винда. Микротик ругается на tls и рвет соединение. У вас получилось?


Аватара пользователя
podarok66
Модератор
Сообщения: 4404
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Скрипт, вещь отличная. Вроде как избавляет от необходимости вникать. Но в случае с Микротиком это только во вред получается. Тут всё дело в том, что в RouterOs все эти тонкости не в полной мере подключены. И поэтому лучше сервер ставить ручками, server.conf выписывать руками, с пониманием каждого пункта. У меня сервер для своих нужд имеет OpenVPN-сервер в своём составе. Там такая конфигурация

Код: Выделить всё

port 1194
proto tcp
dev tun
ca .keys/ca.crt
cert .keys/server.crt
key .keys/server.key  
dh .keys/dh1024.pem
server 10.9.0.0 255.255.255.0
client-config-dir .ccd
client-to-client
keepalive 10 120
tun-mtu 1500
mssfix 1450
cipher AES-256-CBC  
auth sha1
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
log  /var/log/openvpn.log
verb 3
mute 10
Конечно, надо учитывать, что у меня Микрот пока не переводился на 7 версию программного обеспечения. Поэтому proto tcp, по другому 6 версия не умеет. И шифрование там 1024-битное, но это скорее потому, что я немного ретроград. В остальном всё работает. А вот всякие дополнительные способы шифрования и работы сервера я бы избегал включать, может не работать.
Что ещё... А, тут пришлось спешно переносить сервер на новую площадку, бэкап не прокатил. Поэтому ставил с нуля. Так вот, ключи, созданные в самом OpenVPN-server не подходили. После пары часов копания плюнул. Пришлось в openssl всё делать. Если столкнётесь, пишите, поделюсь готовыми командами. Уже с нормальным 2048-битным ключем Диффи-Хелмана и 4096-битными ключами RSA. Проверено, всё работает.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Mikuser01
Сообщения: 3
Зарегистрирован: 20 дек 2021, 23:13

podarok66 писал(а): 22 мар 2022, 19:16 Скрипт, вещь отличная. Вроде как избавляет от необходимости вникать. Но в случае с Микротиком это только во вред получается. Тут всё дело в том, что в RouterOs все эти тонкости не в полной мере подключены. И поэтому лучше сервер ставить ручками, server.conf выписывать руками, с пониманием каждого пункта. У меня сервер для своих нужд имеет OpenVPN-сервер в своём составе. Там такая конфигурация

Код: Выделить всё

port 1194
proto tcp
dev tun
ca .keys/ca.crt
cert .keys/server.crt
key .keys/server.key  
dh .keys/dh1024.pem
server 10.9.0.0 255.255.255.0
client-config-dir .ccd
client-to-client
keepalive 10 120
tun-mtu 1500
mssfix 1450
cipher AES-256-CBC  
auth sha1
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
log  /var/log/openvpn.log
verb 3
mute 10
Конечно, надо учитывать, что у меня Микрот пока не переводился на 7 версию программного обеспечения. Поэтому proto tcp, по другому 6 версия не умеет. И шифрование там 1024-битное, но это скорее потому, что я немного ретроград. В остальном всё работает. А вот всякие дополнительные способы шифрования и работы сервера я бы избегал включать, может не работать.
Что ещё... А, тут пришлось спешно переносить сервер на новую площадку, бэкап не прокатил. Поэтому ставил с нуля. Так вот, ключи, созданные в самом OpenVPN-server не подходили. После пары часов копания плюнул. Пришлось в openssl всё делать. Если столкнётесь, пишите, поделюсь готовыми командами. Уже с нормальным 2048-битным ключем Диффи-Хелмана и 4096-битными ключами RSA. Проверено, всё работает.
Спасибо за ответ. Я думал, что микротик уже умеет openvpn UDP - поэтому его и настраивал. Вероятно проблема в этом.
Подскажите как отключить логи OVPN? боюсь диск в 10Гб они быстро забьют) и где их можно посмотреть?


Аватара пользователя
podarok66
Модератор
Сообщения: 4404
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Я бы совсем логи не отключал. Проще и правильнее настроить ротацию. Пусть хотя бы недельные хранятся. При сбое это может очень помочь. Инструкций в сети море.
Mikuser01 писал(а): 22 мар 2022, 20:15 Я думал, что микротик уже умеет openvpn UDP
Семёрка умеет, я просто не перешел на нее. Выжидаю.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
Daedra
Сообщения: 3
Зарегистрирован: 13 авг 2024, 07:57

podarok66 писал(а): 22 мар 2022, 19:16 Так вот, ключи, созданные в самом OpenVPN-server не подходили. После пары часов копания плюнул. Пришлось в openssl всё делать. Если столкнётесь, пишите, поделюсь готовыми командами. Уже с нормальным 2048-битным ключем Диффи-Хелмана и 4096-битными ключами RSA. Проверено, всё работает.
Можно мне настройки, данная проблема актуальна в 2024 году...


Сначала не понял, а потом как понял :hi_hi_hi:
Cyjil
Сообщения: 14
Зарегистрирован: 29 май 2023, 16:15

Daedra писал(а): 13 авг 2024, 22:18
podarok66 писал(а): 22 мар 2022, 19:16 Так вот, ключи, созданные в самом OpenVPN-server не подходили. После пары часов копания плюнул. Пришлось в openssl всё делать. Если столкнётесь, пишите, поделюсь готовыми командами. Уже с нормальным 2048-битным ключем Диффи-Хелмана и 4096-битными ключами RSA. Проверено, всё работает.
Можно мне настройки, данная проблема актуальна в 2024 году...
Добрый день! На днях поднимал openvpn на ubuntu для подключения с микрота. Пользовался следующим материалом:
https://ruii.ru/openvpn-for-mikrotik


Аватара пользователя
podarok66
Модератор
Сообщения: 4404
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Признаюсь честно, для меня последнее время OpenVPN потерял актуальность. И не только в следствие легкой диагностируемости использования туннеля. Последний раз при блокировках у меня туннели сохранялись, несмотря на всеобщее падение связи. Именно из-за использования tcp. Но сама реализация последнее время подбешивает. В том числе и ситуацией с ключами, с топологией, с шифрованием. Слишком всё зависит от версии OpenVPN на сервере ( в частности на Debian, я его очень уважаю и использую в большей части проектов).
Но к вопросу, что и как делал, вот последняя из реализаций. Я уже веду что-то типа журнала по тому, что и как делал с этим OpenVPN


Генерация сертификатов через OpenSSL (на примере OpenVPN):
#########################################################
Создаем директорию для ключей:

Код: Выделить всё

mkdir -m 400 /etc/openvpn/certs/
Генерируем CA cert

Код: Выделить всё

openssl genrsa -out /etc/openvpn/certs/ca.key 4096
openssl req -x509 -new -key /etc/openvpn/certs/ca.key -days 3650 -out /etc/openvpn/certs/ca.crt -subj '/C=RU/ST=Moskow/L=Moskow/O=MyMikrot/OU=OTiIT/CN=mymikrot.ru'
Генерируем сертификат сервера, подписанный корневым

Код: Выделить всё

openssl req -newkey rsa:4096 -nodes -keyout /etc/openvpn/certs/server.key -subj '/C=RU/ST=Moskow/L=Moskow/O=MyMikrot/OU=OTiIT/CN=server' -out /etc/openvpn/certs/server.csr
openssl x509 -req -days 3650 -in /etc/openvpn/certs/server.csr -CA /etc/openvpn/certs/ca.crt -CAkey /etc/openvpn/certs/ca.key -CAcreateserial -out /etc/openvpn/certs/server.crt
openssl dhparam -out /etc/openvpn/certs/dh2048.pem 2048
Генерируем клиента

Код: Выделить всё

openssl req -newkey rsa:4096 -nodes -keyout /etc/openvpn/certs/client.key -subj '/C=RU/ST=Moskow/L=Moskow/O=MyMikrot/OU=OTiIT/CN=client' -out /etc/openvpn/certs/client.csr
openssl x509 -req -days 3650 -in /etc/openvpn/certs/client.csr -CA /etc/openvpn/certs/ca.crt -CAkey /etc/openvpn/certs/ca.key -CAcreateserial -out /etc/openvpn/certs/client.crt
Создаем конфиг openvpn

Код: Выделить всё

nano /etc/openvpn/openvpn.conf

local 178.28.1.12
port 1194
proto udp
dev tun0
ca certs/ca.crt
cert certs/server.crt
key certs/server.key
dh certs/dh2048.pem
#plugin /usr/lib/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn
#username-as-common-name
mode server
server 10.0.255.0 255.255.255.0
push "dhcp-option DNS 178.28.0.2"
push "dhcp-option DNS 178.28.1.2"
push "route 178.28.0.2 255.255.255.255"
push "route 178.28.1.2 255.255.255.255"
push "route 10.150.250.0 255.255.255.0"
duplicate-cn
keepalive 10 120
cipher AES-256-GCM
#comp-lzo
#push "comp-lzo yes"
#user root
#group root
user nobody
group nobody
client-to-client
client-config-dir /etc/openvpn/ccd
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
fast-io
topology subnet
mssfix 1300
Скрипт для генерации клиента

Код: Выделить всё

mkdir -m 400 /etc/openvpn/clients/
nano /root/openvpn_client.sh
chmod +x /root/openvpn_client.sh
Содержание скрипта

Код: Выделить всё

#!/bin/sh

usage () {
echo "Usage: $0 name_client"
echo ""
exit
}

if [ -z "$1" ]
then
usage
fi

openssl req -newkey rsa:4096 -nodes -keyout /etc/openvpn/certs/$1.key -subj "/C=RU/ST=Moskow/L=Moskow/O=MyMikrot/OU=OTiIT/CN=$1" -out /etc/openvpn/certs/$1.csr
openssl x509 -req -days 3650 -in /etc/openvpn/certs/$1.csr -CA /etc/openvpn/certs/ca.crt -CAkey /etc/openvpn/certs/ca.key -CAcreateserial -out /etc/openvpn/certs/$1.crt

echo "client" > /etc/openvpn/clients/"$1".ovpn
echo "nobind" >> /etc/openvpn/clients/"$1".ovpn
echo "dev tun" >> /etc/openvpn/clients/"$1".ovpn
echo "proto udp" >> /etc/openvpn/clients/"$1".ovpn
echo "remote 178.28.1.12 1194" >> /etc/openvpn/clients/"$1".ovpn
echo "verb 3" >> /etc/openvpn/clients/"$1".ovpn
echo "resolv-retry infinite" >> /etc/openvpn/clients/"$1".ovpn
echo "persist-key" >> /etc/openvpn/clients/"$1".ovpn
echo "persist-tun" >> /etc/openvpn/clients/"$1".ovpn
echo "pull" >> /etc/openvpn/clients/"$1".ovpn
echo "#auth-user-pass" >> /etc/openvpn/clients/"$1".ovpn
echo "" >> /etc/openvpn/clients/"$1".ovpn
cat /etc/openvpn/certs/ca.crt >> /etc/openvpn/clients/"$1".ovpn
echo "" >> /etc/openvpn/clients/"$1".ovpn
echo "" >> /etc/openvpn/clients/"$1".ovpn
cat /etc/openvpn/certs/"$1".crt | sed -n '/-----BEGIN CERTIFICATE-----/,$ p' >> /etc/openvpn/clients/"$1".ovpn
echo "" >> /etc/openvpn/clients/"$1".ovpn
echo "" >> /etc/openvpn/clients/"$1".ovpn
cat /etc/openvpn/certs/"$1".key >> /etc/openvpn/clients/"$1".ovpn
echo "" >> /etc/openvpn/clients/"$1".ovpn
echo "Your config in /etc/openvpn/clients/"$1".ovpn :"
echo ""
cat /etc/openvpn/clients/"$1".ovpn
Само собой, айпишники нужно ставить свои, тут стоят хоть и белые, но явно не ваши :-) :-) :-)


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
Daedra
Сообщения: 3
Зарегистрирован: 13 авг 2024, 07:57

podarok66 писал(а): 14 авг 2024, 21:39 Признаюсь честно...
ОГРОМНОЕ спасибо!
Сам сейчас думаю переходить на wireguard, но там сервер 1000р стоит, а не 400, как с openvpn.
Так что сейчас больше цена вопроса, а все из-за того, что на телике нет нормального ютуба =((( вот и мучения отсюда... Ну и конечно интересно поковырять что-то :ya_hoo_oo:


Сначала не понял, а потом как понял :hi_hi_hi:
Ответить