Автоматический Zap ALL
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Ммм... тогда я не совсем понимаю, как заставить данный скрипт отрабатывать
Не спорю, можно данный скрипт в крон поместить, и для каждого наса ежеминутно вызывать - но с тем же успехом можно и billd чаще вызывать + время ожидания alive перед запом меньше поставить...
Суть-то как раз и была в том, чтобы при каждой ошибке аутентификации либо ошибке аутентификации определенного типа (т.к. мониторить ошибочный пароль и ошибки при негативном депозите нерационально) проходил анализ логов и сброс пользователей - т.е. минимизировать время между возникновением мертвых сессий из-за проблемы со связью и их перемещения в zapped.NiTr0 писал(а):к примеру, при режекте по More than 1 login allowed
Не спорю, можно данный скрипт в крон поместить, и для каждого наса ежеминутно вызывать - но с тем же успехом можно и billd чаще вызывать + время ожидания alive перед запом меньше поставить...
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Ну хотя бы при возникновении ошибки авторизации определенного типа - выполнять определенный скрипт, с передачей в параметрах переменный (NAS ID в частности). Это ведь реализовать несложно - вызов комманды из перла в обработчике ошибки, + в конфиге собссно строки вызова скриптов для каждой ошибки...~AsmodeuS~ писал(а):а как система буде знаьт что это не второй пользователь пришёл а тот же ?
Я бы мог это и сам допилить - но не хочется вносить дополнительные изменения в код, и так патчей уже многовато...
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Конкретно - по More then allow login сделать вызов скрипта, определенного в конфиге. что-то типа такого:
В идеале бы это ессно не через конфиг настраивать, а через вебку, для каждого наса отдельно - ессно это несколько усложнит код, но добавит гибкости... Но хотя бы так.
Код: Выделить всё
Auth.pm:
#Check simultaneously logins if needs
if ($self->{LOGINS} > 0) {
$self->query($db, "SELECT count(*) FROM dv_calls WHERE user_name='$RAD->{USER_NAME}' and status <> 2;");
my($active_logins) = @{ $self->{list}->[0] };
if ($active_logins >= $self->{LOGINS}) {
+ if (defined($CONF->{auth_duplogins})){
+ my $NAS=$self->{NAS};
+ exec($CONF->{auth_duplogins});
+ }
$RAD_PAIRS->{'Reply-Message'}="More then allow login ($self->{LOGINS}/$active_logins)";
return 1, $RAD_PAIRS;
}
}
ну и в config.pl к примеру:
$conf{auth_duplogins}="autozh.pl NAS_ID=$NAS ACTION_EXPR="*More then allow login*" ACTION_COUNT=2 LAST_ACTIONS_COUNT=100";
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Re: Автоматический Zap ALL
То, что скрипт будет намного медленнее вызова перловой функции - не спорю, но раз сделали так - то пусть уже так и будет... Тем более, что работать-то будет только в аварийных ситуациях.
На все - сильно по ресурсам накладно будет. Особенно учитывая идиотичность аппаратных роутеров, которые включены в режиме 24/7 и по окончанию пакета постоянно долбятся...
Потому и предлагал - для каждого типа ошибок свою строку в конфиге, кому надо - тот сможет добавить свои обработчики ошибок.
На все - сильно по ресурсам накладно будет. Особенно учитывая идиотичность аппаратных роутеров, которые включены в режиме 24/7 и по окончанию пакета постоянно долбятся...
Потому и предлагал - для каждого типа ошибок свою строку в конфиге, кому надо - тот сможет добавить свои обработчики ошибок.
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Re: Автоматический Zap ALL
Настройки авторизации
$conf{AUTH_ERROR_CMD}='EXRP:CMD' Определение обработчика ошибок авторизации.
EXPR - выражение
CMD - команде которая запускается при попадении ошибки в выражение. Команде передаются следующие аргументы - USER_NAME=$user_name NAS_PORT=$RAD→{NAS_PORT} NAS_IP=$nas→{NAS_IP} ERROR=$message
ПРИМЕР
Отлавливание ошибки Login Not Exist or Expire и запуск программы /usr/abills/misc/error.sh
$conf{AUTH_ERROR_CMD}=«Login Not Exist or Expire:/usr/abills/misc/error.sh»
$conf{AUTH_ERROR_CMD}='EXRP:CMD' Определение обработчика ошибок авторизации.
EXPR - выражение
CMD - команде которая запускается при попадении ошибки в выражение. Команде передаются следующие аргументы - USER_NAME=$user_name NAS_PORT=$RAD→{NAS_PORT} NAS_IP=$nas→{NAS_IP} ERROR=$message
ПРИМЕР
Отлавливание ошибки Login Not Exist or Expire и запуск программы /usr/abills/misc/error.sh
$conf{AUTH_ERROR_CMD}=«Login Not Exist or Expire:/usr/abills/misc/error.sh»
-
- Сообщения: 166
- Зарегистрирован: Вс июн 22, 2008 5:49 am
- Откуда: Красноярск
- Контактная информация:
Re: Автоматический Zap ALL
Подскажите как реализовать zap_all сессий при перезагрузке сервера (биллинг и NAS на одном PC)
Ищу работу в Красноярске