LINUX.ORG.RU
ФорумAdmin

OPENVPN запуск скриптов для разных клиентов


0

2

Доброго времени.

Ситуация такая есть OPENVPN Server и 3 клиента (common_names: client1, client2, client3) задача чтобы: при подкл. client1 выполнялся скрипт sc1 при подкл. client2 выполнялся скрипт sc2 при подкл. client3 ничего не выполнялось

возможно конечно использовать опцию client-config-dir ccd, но что тогда можно использовать в файле ccd/client1(client2), по man вроде только определенные команды для сетевых настроек типа ifconfig-push или push ?

Или ч/з client-connect script, но я так и не нашел нормального примера script где бы из временных файлов выбирался нужный common_name с запуском для него соответствующего scX.

Может кто-нибудь сталкивался или создавал подобный script под себя ?

Попробуйте через параметр «up /path/to/script.sh», который будет выполнятся при подключении. Этому скрипту будут передаваться параметры подключения, возможно CN клиента тоже передается. Проверить можно так создав например /usr/bin/myvpnup.sh такого содержания:

#!/bin/sh

echo "$0: $@" > /tmp/vpn_params.txt

и указав в конфиге подключения опцию «up /usr/bin/myvpnup.sh», после подключения смотреть что получилось в /tmp/vpn_params.txt, от этого можно дальше отталкиваться..

FreeBSD ★★★ ()

Скрипты должны выполняться на сервере или на клиенте?

generator ★★★ ()
Ответ на: комментарий от zgen

Спасибо за Ваш интерес к моему вопросу!

вот что получилось ~$ sudo cat /tmp/vpn_params /tmp/sc4.sh: tun0 1500 1554 10.0.0.1 10.0.0.2 init

причем этот cat сделан когда уже client1 и client2 подключились думаю так и должно быть т.к. up (Shell command to run after successful TUN/TAP device open) что и произошло при openvpn restart и далее при подкл/откл клиентов состояние tun не меняется. Выполнять нужно действия самим сервером и на сервере(машины кл. никак не касается) которые не связаны с vpn(вкл/откл отдельных сервисов, запись/удаление инф и т.д.) думаю client-connect вроде должен подойти, но как перехватить common_name при подкл. кл., где-то он сидит в какой-то переменной или tmp-файле

den3332011 ()
Ответ на: комментарий от den3332011

ну, есть пара костыльных способов выяснить common name или можно прописать статически в ccd.

Но зачем

Автоматическое изменение конфигурации сервера


Какова цель?

uspen ★★★★★ ()
Ответ на: комментарий от den3332011

Теперь так же просто напишите - для чего это нужно. Из вышеописанного это, к сожалению, не понятно.

zgen ★★★★★ ()
Ответ на: комментарий от zgen

Извиняюсь за абстракцию моего вопроса. тогда на простом примере

3 клиента (common_names: client1, client2, client3) задача чтобы:

при подкл. client1 выполнялось /etc/init.d/openvpn restart с задержкой в 15 сек.

при подкл. client2 выполнялось shutdown -h now с задержкой в 30 сек.

client3 ничего не выполнялось

den3332011 ()
Ответ на: комментарий от den3332011

всем спасибо,все ясно и просто при выполнении client-connect script ищите в $common_name ну и понеслась..)

den3332011 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.