У меня есть сервер 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. проблема в том, что первое тестирование перезаписывается вторым. так что ты этого не видишь, но ты понимаешь