Скрипт который убивает vpn соединения.

Вопросы по UTM 3.0 и UTM 4.0 (поддержка прекращена)
Закрыто
tariely
Сообщения: 59
Зарегистрирован: Чт янв 27, 2005 06:49
Контактная информация:

Скрипт который убивает vpn соединения.

Сообщение tariely »

Есть скрипт на Перле, который анализирует у юзеров остаток денежных средств, и если в базе UTM в таблице USER у пользователся стоит block 1 то скрипт убивает vpn соединения этого юзера. :)

rage
Сообщения: 34
Зарегистрирован: Вс фев 06, 2005 08:16
Откуда: MSK

Сообщение rage »

а впн сервер на чем???

tariely
Сообщения: 59
Зарегистрирован: Чт янв 27, 2005 06:49
Контактная информация:

Сообщение tariely »

Poptop, скрипт тестился на Freebsd 5.3

maksim
Сообщения: 17
Зарегистрирован: Вт апр 05, 2005 11:03
Откуда: Красноярск

Сообщение maksim »

Ну так давай его в студию.

admin
Site Admin
Сообщения: 118
Зарегистрирован: Вт дек 28, 2004 19:50

Сообщение admin »

лучше сразу в раздел "Документация, статьи"

tariely
Сообщения: 59
Зарегистрирован: Чт янв 27, 2005 06:49
Контактная информация:

Сообщение tariely »

tariely.nextmail.ru/1.pl

Я думаю коментарии не нужно.
Скрипт работает только под freebsd

Skylord
Сообщения: 263
Зарегистрирован: Пт фев 04, 2005 11:33

Сообщение Skylord »

Плохой скрипт. Прибивает соединения kill'ом. А при этом ppp не шлет Радуису accounting stop пакетов. А у меня (и думается, не только у меня) к сему процессу привязано освобождение дополнительных адресов - без этого пользователь в следующий раз вообще VPN себе подключить не сможет. ;-) Да и самим аккаунтингом жертвовать как-то не хочется. :-)
Правильный способ - через pppctl цивильно закрывать соединение. Вот ежели так сделаешь - честь тебе будет и хвала! :-)))

tariely
Сообщения: 59
Зарегистрирован: Чт янв 27, 2005 06:49
Контактная информация:

Сообщение tariely »

Ставить надо freeradius.

Посмотрим через pppctl.
Последний раз редактировалось tariely Пн апр 25, 2005 00:21, всего редактировалось 1 раз.

Skylord
Сообщения: 263
Зарегистрирован: Пт фев 04, 2005 11:33

Сообщение Skylord »

tariely писал(а):Ставить надо freeradius.
Это мне совет? Или ты к чему? У меня freeradius стоит и отлично работает. :-)

UncleDen
Сообщения: 128
Зарегистрирован: Вт фев 01, 2005 09:04
Откуда: Европа-Азия

Сообщение UncleDen »

У меня такое работает давным давно. На впн-сервер биллинговый сервак периодически копирует файл с блокированными айпишниками.
Скриптик раз в минуту проверяет "отключенцев".
Сессии закрываются корректно.
#!/bin/sh
#
#exit
#
if [ -s /tmp/vpn.utm ]; then
CUR=`route -n | grep ppp | awk '{print $8}'`
for IF in $CUR; do
if [ -s /var/run/"$IF".pid ]; then
IP=`head -1 /var/run/radattr."$IF" | cut -f2 -d\ `
if [ `cat /tmp/vpn.utm | grep -c "^$IP$"` -ne 0 ]; then
kill -15 `cat /var/run/"$IF".pid`
fi
fi
done
fi

tariely
Сообщения: 59
Зарегистрирован: Чт янв 27, 2005 06:49
Контактная информация:

Сообщение tariely »

На freeBSD route сам закрывается после обрубания vpn сесии. :D
А freeRadius не впускает тех кто заблокирован. Так что route здесь лишний )

Skylord
Сообщения: 263
Зарегистрирован: Пт фев 04, 2005 11:33

Сообщение Skylord »

tariely писал(а):На freeBSD route сам закрывается после обрубания vpn сесии. :D
А freeRadius не впускает тех кто заблокирован. Так что route здесь лишний )
Я про route ничего не говорю. Я говорю о том, что радиус не получает stop accounting. В итоге отчеты по VPN сессиям для таких "оборванных" линков будут глючить. А у тех, у кого ФриРадиус настроен по докам со старого форума (я там выкладывал настройки для поддержки нескольких одновременных VPN на один аккаунт) и у пользователей официального netup_radius (тот, который "модуль коммутируемых соединений") твой скрипт будет глючит еще и потому, что с получением stop accounting пакета радиус связывает удаление занятого адреса из таблицы ip_addr_used. А при наличии адреса в этой таблице радиус не будет его выдавать при повторном подключении.... Что тут непонятно?
Я не говорю, что твои скрипты не имеют права на жизнь. У тебя работают - ради Бога. Я просто подчеркиваю, что это не продакшн и не универсальное решение. Например, мне бы оно не подошло по вышеприведенным причинам.

Закрыто