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

Темы, которые не попадают в остальные категории.
Ответить
AndreyEver
Сообщения: 47
Зарегистрирован: Пт фев 11, 2022 3:40 pm

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

Сообщение AndreyEver »

Приветствую.

Имею OpenVPN сервер на Mikrotik и крайнюю версию WTware с настроенным OpenVPN клиентом. Не могу добиться стабильной работы последнего при обрывах подключения (по тем или иным причинам) или неактивности. Приходится часто перезапускать WTware целиком, так как OpenVPN клиент на стороне WTware просто завершается и не рестартует.

Конфиг клиента простой и проверенный на Debian

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

client
dev tun
proto udp
nobind
resolv-retry infinite
#comp-lzo

auth sha256
cipher aes-256-cbc

persist-key
persist-tun

ping 10
#auth-nocache

auth-retry interact
mute-replay-warnings
replay-window 128

daemon
remote-cert-tls server

script-security 2
up /etc/openvpn/update-resolv-conf
dhcp-option DNS 172.16.72.241

auth-user-pass /bootmedia/configs/pass.txt

remote vpn.lab****.ru

<ca>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</ca>
Лог WTware

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

[        initrd] [   28.061325] +--- Executing "/usr/sbin/openvpn --config /etc/client.conf"
[        KERNEL] [   28.061300] tun: Universal TUN/TAP device driver, 1.6
[        SYSLOG] [   28.074100] 8 openvpn[696]: DEPRECATED OPTION: --cipher set to 'aes-256-cbc' but missing in --data-ciphers (AES-256-GCM:AES-128-GCM). Future OpenVPN version will ignore --cipher for cipher negotiations. Add 'aes-256-cbc' to --data-ciphers or change --cipher 'aes-256-cbc' to --data-ciphers-fallback 'aes-256-cbc' to silence this warning.
[        SYSLOG] [   28.074603] 8 openvpn[696]: WARNING: file '/bootmedia/configs/pass.txt' is group or others accessible
[        SYSLOG] [   28.074630] 8 openvpn[696]: OpenVPN 2.5.1 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on May 14 2021
[        SYSLOG] [   28.074668] 8 openvpn[696]: library versions: OpenSSL 1.1.1w  11 Sep 2023, LZO 2.10
[        initrd] [   28.076586] +- Errorlevel: 0, output:
                                | [No output]
[        SYSLOG] [   28.076731] 8 openvpn[698]: NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
[        initrd] [   28.078854] +------------------------
[        SYSLOG] [   28.128905] 8 openvpn[698]: TCP/UDP: Preserving recently used remote address: [AF_INET]93.189.*.166:1194
[        SYSLOG] [   28.128985] 8 openvpn[698]: UDP link local: (not bound)
[        SYSLOG] [   28.129011] 8 openvpn[698]: UDP link remote: [AF_INET]93.189.*.166:1194
[        SYSLOG] [   28.294766] 8 openvpn[698]: [vpn.lab****.ru] Peer Connection Initiated with [AF_INET]93.189.*.166:1194
[        SYSLOG] [   29.433966] 0 openvpn[698]: TUN/TAP device tun0 opened
[        SYSLOG] [   29.434039] 0 openvpn[698]: net_iface_mtu_set: mtu 1500 for tun0
[        SYSLOG] [   29.434065] 0 openvpn[698]: net_iface_up: set tun0 up
[        SYSLOG] [   29.434230] 0 openvpn[698]: net_addr_v4_add: 172.29.72.65/24 dev tun0
[        SYSLOG] [   29.436699] 0 openvpn[698]: /etc/openvpn/update-resolv-conf tun0 1500 1572 172.29.72.65 255.255.255.0 init
[        SYSLOG] [   29.444231] 0 openvpn[698]: WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
[        SYSLOG] [   29.444313] 0 openvpn[698]: Initialization Sequence Completed
[          pfac] [   29.486284] Run /sbin/httpd.
[        initrd] [   29.486318] OpenVPN tun0: my IP 172.29.72.65.
[        initrd] [   29.486351] Run '/sbin/httpd', log '/tmp/httpd.out', env '', pid ''.
[          pfac] [   29.486381] Ok, PID 758.
[        initrd] [   29.486399] Copy /bootmedia/configs/config.wtc to /tmp/config.wtc.
[        initrd] [   29.486624] /bootmedia/configs/config.wtc -> /tmp/config.wtc, 2 bytes copied.
[        initrd] [   29.486660] Common local disk config:
/--- FILE "/tmp/config.wtc" -----------------------
| [BOM..
...
[        SYSLOG] [   89.819111] 0 openvpn[698]: [vpn.lab****.ru] Inactivity timeout (--ping-restart), restarting
[        SYSLOG] [   89.819192] 0 openvpn[698]: SIGUSR1[soft,ping-restart] received, process restarting
[        SYSLOG] [   94.820137] 5 openvpn[698]: NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
[        SYSLOG] [   94.820225] 5 openvpn[698]: TCP/UDP: Preserving recently used remote address: [AF_INET]93.189.*.166:1194
[        SYSLOG] [   94.820253] 5 openvpn[698]: UDP link local: (not bound)
[        SYSLOG] [   94.820278] 5 openvpn[698]: UDP link remote: [AF_INET]93.189.*.166:1194
[        SYSLOG] [   94.985075] 5 openvpn[698]: [vpn.lab****.ru] Peer Connection Initiated with [AF_INET]93.189.*.166:1194
[        SYSLOG] [   96.059855] 6 openvpn[698]: AUTH: Received control message: AUTH_FAILED, user PC-04467 is already active
[        SYSLOG] [   96.060196] 6 openvpn[698]: SIGUSR1[soft,auth-failure] received, process restarting
[        SYSLOG] [  101.060795] 1 openvpn[698]: Error opening 'Auth' auth file: /bootmedia/configs/pass.txt: No such file or directory (errno=2)
[        SYSLOG] [  101.060870] 1 openvpn[698]: Exiting due to fatal error
[        SYSLOG] [  101.060897] 1 openvpn[698]: net_addr_v4_del: 172.29.72.65 dev tun0
[          pfac] [  101.082084] Process pid 698 terminated, status 00000100.
Полагаю, что проблема в этом
Error opening 'Auth' auth file: /bootmedia/configs/pass.txt: No such file or directory (errno=2)

а причина в том, что WTware отмонтирует загрузочный диск после загрузки?
Вроде это поведение (держать в памяти систему или обращаться к диску) каким-то образом настраивалось. Не могу найти каким параметром :?
Или тут что-то другое?
aka
Разработчик
Разработчик
Сообщения: 11842
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: OpenVPN клиент и автоматические переподключения

Сообщение aka »

AndreyEver писал(а): Пт мар 22, 2024 8:38 am Полагаю, что проблема в этом
Error opening 'Auth' auth file: /bootmedia/configs/pass.txt: No such file or directory (errno=2)
а причина в том, что WTware отмонтирует загрузочный диск после загрузки?
Да. /bootmedia/ загрузочный диск, и он может отмонтироваться.

В чёрно-сером меню Setup выбери "Распакованные файлы: на диске". Тогда загрузочный диск не будет отключаться. Поможет?
AndreyEver
Сообщения: 47
Зарегистрирован: Пт фев 11, 2022 3:40 pm

Re: OpenVPN клиент и автоматические переподключения

Сообщение AndreyEver »

aka писал(а): Пт мар 22, 2024 12:14 pm Да. /bootmedia/ загрузочный диск, и он может отмонтироваться.

В чёрно-сером меню Setup выбери "Распакованные файлы: на диске". Тогда загрузочный диск не будет отключаться. Поможет?
Помогло, да. Спасибо.
Теперь переходим ко второй проблеме (писал о ней в почте, но тут сподручнее). При перезагрузке сервера (или отключения ppp клиента на Mikrotik по неактивности, по мнению Mikrotik), клиент OpenVPN получает SIGTERM[soft,remote-exit] и завершает процесс OpenVPN клиента. Можно как-то научить WTware рестартовать этот процесс, те восстанавливать подключение. Сейчас приходится ребутать станцию целиком.

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

...
[ rdpclient 824] [   12.316421] TCP: connecting to 172.16.72.243:3389 (default timeouts).
[ rdpclient 824] [   12.319289] [TCP] Connection with 172.16.72.243 established.
[ rdpclient 824] [   12.319381] [TCP] Turn keepalive on.
[ rdpclient 824] [   12.319415] Free ram after buffers allocation: 3486012 KB.
[            gm] [   12.329387] Ask login and password for NLA.
[        SYSLOG] [  396.231864] 9 openvpn[705]: SIGTERM received, sending exit notification to peer
[        SYSLOG] [  396.234112] 9 openvpn[705]: TCP/UDP: Closing socket
[        SYSLOG] [  396.234172] 9 openvpn[705]: net_route_v4_del: 172.16.72.0/24 via 172.29.72.1 dev [NULL] table 0 metric 1
[        SYSLOG] [  396.234200] 9 openvpn[705]: Closing TUN/TAP interface
[        SYSLOG] [  396.234225] 9 openvpn[705]: net_addr_v4_del: 172.29.72.55 dev tun0
[        SYSLOG] [  396.254106] 9 openvpn[705]: SIGTERM[soft,remote-exit] received, process exiting
[          pfac] [  396.254234] Process pid 705 terminated, status 00000000.
aka
Разработчик
Разработчик
Сообщения: 11842
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: OpenVPN клиент и автоматические переподключения

Сообщение aka »

Мне не нравится рестартить клиента openvpn без перезагрузки терминала. По целому ряду причин.

В нормальной жизни, когда соединение рвётся из-за проблем на линии, клиент не убивается и продолжает попытки переподключения. Нормальные сервера не убивают клиента.

Если сервер по какой-то причине считает нужным убить клиента - спрашивайте у сервера, зачем оно это делает и как это отключить. Что ответила техподдержка микротика?
AndreyEver
Сообщения: 47
Зарегистрирован: Пт фев 11, 2022 3:40 pm

Re: OpenVPN клиент и автоматические переподключения

Сообщение AndreyEver »

aka писал(а): Сб мар 23, 2024 11:53 am Если сервер по какой-то причине считает нужным убить клиента - спрашивайте у сервера, зачем оно это делает и как это отключить. Что ответила техподдержка микротика?
Зачастую такое происходит при необходимости перезагрузить роутер. Вместе с ним приходится перезагружать и все WtWare но только пользователям, когда они обнаруживают, что подключение отвалилось.
Поддержка Mikrotik ничего не говорит. Они не работают с РФ
aka
Разработчик
Разработчик
Сообщения: 11842
Зарегистрирован: Ср окт 01, 2003 12:06 am
Откуда: Роcсия, Тольятти
Контактная информация:

Re: OpenVPN клиент и автоматические переподключения

Сообщение aka »

AndreyEver писал(а): Ср мар 27, 2024 3:46 pm Зачастую такое происходит при необходимости перезагрузить роутер. Вместе с ним приходится перезагружать и все WtWare
Не надо обобщать до всех роутеров. Это дурь микротика, пусть они и чинят.

Я проверил сервере openvpn на Debian. Конфиг сервера:

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

proto udp
dev tun
topology subnet
ifconfig-pool-persist ipp.txt
keepalive 10 120
persist-tun
explicit-exit-notify 1
ca   "ca.crt"
cert "server.crt"
key  "server.key"
dh   "dh2048.pem"
server 10.8.0.0 255.255.255.0
Конфиг клиента wtware:

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

client
dev tun
proto udp
nobind
ns-cert-type server
daemon
remote ip_сервера
<ca>
-----BEGIN CERTIFICATE-----
многобукв
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
многобукв
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
многобукв
-----END PRIVATE KEY-----
</key>

Загрузил втварь, подключился к этому серверу openvpn.

Остановил на сервере службу openvpn. Подождал минуту. Запустил на сервере службу openvpn.

Терминал wtware переподключился. Сам, без перезагрузки.

Следующий эксперимент: перегрузил сервер.

Терминал переподключился. Сам, без перезагрузки.

Резюме: при работе с нормальным сервером openvpn при перезагрузке сервера не приходится перезагружать все wtware.
AndreyEver
Сообщения: 47
Зарегистрирован: Пт фев 11, 2022 3:40 pm

Re: OpenVPN клиент и автоматические переподключения

Сообщение AndreyEver »

Не понимаю в чем дурь сервера? Разница только в том, что сервер Mikrotik сообщает клиенту о том, что он пошел в ребут (или завершил принудительно сессию) через
SIGTERM[soft,remote-exit] received, process exiting

А в вашем тесте сервер не стал (не успел/не захотел) ничего сообщать, поэтому клиент ни о чем не знает и переподключается
Ответить

Вернуться в «Остальное»