Назад | Перейти на главную страницу

OpenVPN и скрипты клиентского подключения

У меня есть сервер OpenVPN (2.3.2) на Debian Wheezy, работающий в режиме моста. Все работает нормально с точки зрения подключения клиента и получения доступа к сети, в которой он нуждается. Я пытаюсь добавить несколько наворотов с помощью опции клиентского подключения. Это соответствующая часть конфигурационного файла openvpn:

script-security 3 system
client-connect /etc/openvpn/scripts/clientconnect.sh

В попытке проверить, действительно ли сценарий запущен, clientconnect.sh состоит из следующего:

#!/bin/bash
echo "testing">>/etc/openvpn/scripts/test
exit 0

Достаточно просто.

Если я запускаю скрипт из командной строки, как и ожидалось, «тестирование» добавляется в / etc / openvpn / scripts / test каждый раз, и возвращается 0.

Когда я подключаюсь с моего клиента, я получаю «тестирование» в / etc / openvpn / scripts / test. Большой!

Но когда я отключаюсь и подключаюсь снова, я не получаю еще одно "тестирование"

Итак, чтобы проверить его фактически при запуске я изменил значение выхода в clientconnect.sh на 1

конечно же, каждый попытка подключения от клиента тогда не удалась, поскольку сценарий возвращает значение, отличное от 0.

Почему кажется, что скрипт не запускается?

Кстати, если я перезапускаю службу openvpn на сервере, я снова получаю «тестирование», но опять же, при последующих подключениях ничего не записывается.

Любые указатели / Помощь / Мистические заклинания с благодарностью принимаются! Дилан

OpenVPN сделан так, чтобы быть очень устойчивым к сбоям в сети (и в этом он действительно превосходит), поэтому, если у вас нет чего-то вроде explicit-exit-notify [n] в конфигурации вашего клиента отключение этого клиента будет выглядеть для сервера как отключение сети.

Затем, в зависимости от того, как вы настроили тайм-ауты / сообщения поддержки активности и т. Д., Может пройти довольно много времени, прежде чем сервер решит, что клиент действительно ушел. Возможно, вы просто не достигли этого состояния в своих тестах.

Чтобы проверить это, включите интерфейс управления на вашем сервере, а затем выполните telnet localhost 1194 там и убедитесь, что клиент действительно отключен - после отключения на стороне клиента - выполнив команду «status» и проверив ее вывод.

Другой, менее технологичный подход к тестированию - это привязка скрипта к client-disconnect событие и посмотрите, запускается ли оно, когда клиент отключается.

чтобы получить еще одно «тестирование», используйте опцию добавить журнал в файл, в вашем случае / etc / openvpn / scripts / test. проблема в том, что первое тестирование перезаписывается вторым. так что ты этого не видишь, но ты понимаешь