Страница 1 из 2

Снова Сisco и сброс пользователей

Добавлено: Ср ноя 14, 2007 9:59 am
ivanbogun
Прежде всего хочу поблагодарить разработчика за отличный биллинг. Уже больше года функционирует в связке с Д-Линком в серьезной конторе и пока без нареканий.

Но вот столкнулся 2 недели назад с проблемой, которая много раз затрагивалась на форуме, но раскрыта так и не была. Сброс пользователей на Cisco ни через веб-интерфейс, ни по истечении лимита не отрабатывается. Прежде чем написать долго читал проверял, но так результатов и не добился. Большая просьба к разработчику и сведущим людям помочь с данной проблемой. Давайте уже четко опишем процедуру, если такова имеется, дабы больше не возникало вопросов.

Итак, установлено:

Система: FreeBSD 6.2
Abills: 0.37b
Radius: 1.1.7
MySQL: 5.1.22
Apache: 2.2.6

Все старался делать в соответствии с инструкцией по установке.
Т.е. права, пути проверены.

Вопрос №1:

Реализовано ли отключение юзеров из веб-интерфейса по нажатии (Н) и после исчерпания лимита времени/трафика? Судя по блоку для Циски в nas.pl код есть, но он почему-то не отрабатывает. В логах радиуса, абиллса при попытке сброса тишина.
Управление сессиями на Циске решил сделать через rsh. Если сбрасывать из командной строки, то все ОК. Пробовал передавать через командную строку вышеупомянутый блок для кошки, с подставленными значениями переменных и тоже все гуд. Отследить передачу значений скрипту из веб проблематично, так как в CGI не силен.
Написал чистый скрипт сброса вирт. интерфейса., тоже работает.
Подскажите в чем я не прав и есть ли какие-либо нюансы управления сессиями на Циске?

Вопрос №2:

Можно ли выставлять скорость подключения в тарифном плане в случае связки с Циской из веб-интерфейса, а не через доп. параметры радиуса? У меня не получилось (

С нетерпением жду ответов и помощи. Заранее спасибо!

Добавлено: Чт ноя 15, 2007 8:55 am
~AsmodeuS~
1 В системе реализированы 2 метода они прекрасноработают

2 чтобы увилдить команды которые отправляет система на нас нужно вкчлючить режим DEBUG в конфиге


3 Опишите ваша сервер доступа
а) модель
б) версия прошивки
в) покажите конфиг

Добавлено: Чт ноя 15, 2007 1:25 pm
ivanbogun
~AsmodeuS~ писал(а): 3 Опишите ваша сервер доступа
а) модель
б) версия прошивки
в) покажите конфиг
a) Cisco 2621

б) IOS (tm) C2600 Software (C2600-IK9O3S3-M), Version 12.3(13a), RELEASE SOFTWARE (fc2)

в) Конфиг циски:

version 12.3
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname Cisco2621
!
!
!
aaa new-model
!
!
aaa authentication login default local
aaa authentication ppp default group radius
aaa authorization exec default local
aaa authorization network default group radius
aaa accounting update periodic 1
aaa accounting network default start-stop group radius
aaa session-id common
ip subnet-zero
ip rcmd rcp-enable
ip rcmd rsh-enable
ip rcmd remote-host admin x.x.x.119 root enable
ip cef
!
!
no ip domain lookup
ip name-server x.x.x.x
!
ip audit po max-events 100
vpdn enable
vpdn ip udp ignore checksum
!
vpdn-group 1
accept-dialin
protocol pppoe
virtual-template 1
!
!
interface FastEthernet0/0
ip address x.x.x.117 255.255.255.0
ip nat outside
ip route-cache flow
no ip mroute-cache
duplex auto
speed auto
!
interface FastEthernet0/1
ip address y.y.y.1 255.255.255.0
no ip redirects
no ip unreachables
no ip proxy-arp
no ip mroute-cache
duplex auto
speed auto
pppoe enable
keepalive 60
!
interface Virtual-Template1
ip unnumbered FastEthernet0/1
ip verify unicast reverse-path
no ip redirects
no ip proxy-arp
ip mtu 1492
ip nat inside
no logging event link-status
ppp authentication chap pap callin
!
ip nat inside source list 2 interface FastEthernet0/0 overload
no ip http server
no ip http secure-server
ip classless
ip route 0.0.0.0 0.0.0.0 x.x.x.5
!
!
ip radius source-interface FastEthernet0/0
access-list 2 permit y.y.y.y 0.0.0.255
!
snmp-server community public RW
radius-server configure-nas
radius-server host x.x.x.119 auth-port 1812 acct-port 1813 key 7 082E4242104D08121C
radius-server timeout 30
!
!


Дебаг в абиллсе включен. Но ни при ручном сбросе юзера ни по исчерпании лимита команды НАСу не посылаются. Т.е. в отношении сброса в логах, абиллса и радиуса абсолютная тишина.
ALIVE пакеты НАС шлет, трафик считает в реальном времени.

Добавлено: Чт ноя 15, 2007 3:16 pm
~AsmodeuS~
ivanbogun писал(а): Дебаг в абиллсе включен. Но ни при ручном сбросе юзера ни по исчерпании лимита команды НАСу не посылаются. Т.е. в отношении сброса в логах, абиллса и радиуса абсолютная тишина.
ALIVE пакеты НАС шлет, трафик считает в реальном времени.

по алайвам считает только в комерческой версии


Вам надо через periodic_check.

Добавлено: Чт ноя 15, 2007 3:52 pm
ivanbogun
Трафик и правда считает с таким интервалом, с каким выставлю на НАСе. Или не так понял Вас?

Periodic_check включен. Я так понимаю эта опция запускает billd по крону?

Тут еще столкнулся с проблемой, тоже давняя. Мне нужно, чтобы сессия длилась неограниченное кол-во времени и считала трафик больше 2Гб не обрывая ее и не теряя учтенный трафик. Возможно ли такое?

Добавлено: Сб ноя 17, 2007 9:57 am
~AsmodeuS~
для того чтобі понять
что в отсілаетие на НАС нужно abills.log (я уже выше это писал)

ivanbogun писал(а):Трафик и правда считает с таким интервалом, с каким выставлю на НАСе. Или не так понял Вас?

Periodic_check включен. Я так понимаю эта опция запускает billd по крону?
В документации описано
ivanbogun писал(а): Тут еще столкнулся с проблемой, тоже давняя. Мне нужно, чтобы сессия длилась неограниченное кол-во времени и считала трафик больше 2Гб не обрывая ее и не теряя учтенный трафик. Возможно ли такое?
ВСе зависит от сервера доступа некоторых придел 2 Гб и все потом идёт с начала

Добавлено: Пн ноя 19, 2007 2:46 pm
ivanbogun
Если Вы мне поверите на слово, то как я уже писал, при включении дебага детализация лога немного увеличивается, но ничего стоящего туда не пишется. С отключением пользователей ладно, я пока забил на это. Но вот потеря 4 Гб трафика это жестоко. В таблице базы есть поля acct-input-gigawords и acct-output-gigawords, но в скрипте racct.pl эти атрибуты не обрабатываются, следовательно в базе кол-во сбросов интерфейса не выставляется и трафик начинает считать с нуля. В логе радиуса видно, что эти атрибуты приходят с циски с нужными значениям. Может эта функция доступна только в коммерческой версии?

Добавлено: Вт ноя 20, 2007 12:01 pm
~AsmodeuS~
я же написал если обработка скидывания проходит в лог пишет все тчо с ней связано

Добавлено: Чт ноя 22, 2007 11:41 am
ivanbogun
Обработка не проходит, в том то и проблема, поэтому и в лог ничего существенного не пишет.

Ковыряюсь сам, исправил пару скриптов для учета атрибута gigawords. Теперь хоть трафик считает выше 4 Гб.

Осталось сброс подкрутить.

Я понимаю, что вам нет резона тратить время на халявщиков, потому не смею больше Вас тревожить, спасибо за ответы!

Добавлено: Чт ноя 22, 2007 1:06 pm
~AsmodeuS~
если вы посмотрите в файл

Abills/nas.pl

там есть секция сброса циски и все что она делает

Добавлено: Чт ноя 22, 2007 5:38 pm
ivanbogun
Я смотрел этот файл, как уже писал в первом посте, если ввожу руками команды из того файла с подставленными значениями, то все работает, т.е. по крайней мере rsh в порядке. Есть подозрения, что или не вызывается сам скрипт или не отдаются переменные в него. Если вам не трудно опишите процедуру вызова nas.pl по нажатии (Н).

Добавлено: Пт ноя 23, 2007 12:45 pm
ivanbogun
Нашел причину, почему не писались команды в лог при дебаге. Нужно было дать права www файлу /tmp/user_agent. Если честно не видел упоминания этого файла в доках. Просто решил заглянуть в лог апача. Теперь дебаг пишется, видны команды отдаваемые по rsh, но в логах апача идет ругня на отсутствие прав, скорее всего на запуск rsh. Давал права www для rsh, но мало что изменилось.
Вот куски логов:

rsh с владением рутом и /tmp/user_agent с рутом:

Код: Выделить всё

[Fri Nov 23 13:11:41 2007] [error] [client 172.16.0.2] cannot create /tmp/user_agent: Permission denied
[Fri Nov 23 13:17:39 2007] [error] [client 172.16.0.18] Can't open file '/usr/local/abills/var/log/abills.log' Permission denied, referer: http://abills.dics.com.ua/admin/index.cgi?index=120
[Fri Nov 23 14:00:06 2007] [error] [client 172.16.0.18] Can't open file '/usr/local/abills/var/log/abills.log' Permission denied, referer: http://abills.dics.com.ua/admin/index.cgi?index=120
[Fri Nov 23 14:00:21 2007] [error] [client 172.16.0.18] Can't open file '/usr/local/abills/var/log/abills.log' Permission denied, referer: http://abills.dics.com.ua/admin/index.cgi?index=120
[Fri Nov 23 14:00:27 2007] [error] [client 172.16.0.18] Can't open file '/usr/local/abills/var/log/abills.log' Permission denied, referer: http://abills.dics.com.ua/admin/index.cgi?index=120
[Fri Nov 23 14:00:32 2007] [error] [client 172.16.0.18] Can't open file '/usr/local/abills/var/log/abills.log' Permission denied, referer: http://abills.dics.com.ua/admin/index.cgi?index=120
[Fri Nov 23 14:00:51 2007] [error] [client 172.16.0.18] Permission denied., referer: http://abills.dics.com.ua/admin/index.cgi?index=120
[Fri Nov 23 14:00:51 2007] [error] [client 172.16.0.18] P, referer: http://abills.dics.com.ua/admin/index.cgi?index=120
[Fri Nov 23 14:00:51 2007] [error] [client 172.16.0.18] ermission denied., referer: http://abills.dics.com.ua/admin/index.cgi?index=120
[Fri Nov 23 14:04:58 2007] [error] [client 172.16.0.18] P, referer: http://abills.dics.com.ua/admin/index.cgi?index=120
[Fri Nov 23 14:04:58 2007] [error] [client 172.16.0.18] ermission denied., referer: http://abills.dics.com.ua/admin/index.cgi?index=120
[Fri Nov 23 14:04:59 2007] [error] [client 172.16.0.18] P, referer: http://abills.dics.com.ua/admin/index.cgi?index=120
[Fri Nov 23 14:04:59 2007] [error] [client 172.16.0.18] ermission denied., referer: http://abills.dics.com.ua/admin/index.cgi?index=120
[Fri Nov 23 14:06:00 2007] [error] [client 172.16.0.18] P, referer: http://abills.dics.com.ua/admin/index.cgi?index=120&FRAMED_IP_ADDRESS=192.168.102.3&hangup=1+0+00000051+test2
/tmp/user_agent с www и rsh с www

Код: Выделить всё

[Fri Nov 23 14:07:32 2007] [error] [client 172.16.0.18] ermission de, referer: http://abills.dics.com.ua/admin/index.cgi?index=120&FRAMED_IP_ADDRESS=192.168.
102.3&hangup=1+0+00000051+test2
[Fri Nov 23 14:07:32 2007] [error] [client 172.16.0.18] nied., referer: http://abills.dics.com.ua/admin/index.cgi?index=120&FRAMED_IP_ADDRESS=192.168.102.3&h
angup=1+0+00000051+test2
[Fri Nov 23 14:09:21 2007] [error] [client 172.16.0.18] rcmdsh: fork failed: Resource temporarily unavailable, referer: http://abills.dics.com.ua/admin/index.cgi?index=120&FRAMED_IP_ADDRESS=192.168.102.3&hangup=1+0+00000051+test2
[Fri Nov 23 14:09:37 2007] [error] [client 172.16.0.18] rcmdsh: fork failed: Resource temporarily unavailable, referer: http://abills.dics.com.ua/admin/index.cgi?index=120&FRAMED_IP_ADDRESS=192.168.102.3&hangup=1+0+00000051+test2
вот что в дебаге:

Код: Выделить всё

2007-11-23 15:07:20 LOG_DEBUG: /usr/bin/rsh -l admin 172.16.0.117 show users | grep -i " $1 " | awk '{print $1}';
2007-11-23 15:07:20 LOG_DEBUG: echo  echo  | sed -e "s/[[:alpha:]]*\([[:digit:]]\{1,\}\)/\1/"
2007-11-23 15:07:20 LOG_DEBUG: /usr/bin/rsh -4 -n -l admin 172.16.0.117 clear interface Virtual-Access echo
Неужели управление нужно решать через судо?

Не могли бы Вы подробней остановиться на правах для использования rsh?

Добавлено: Пт ноя 23, 2007 2:14 pm
ivanbogun
Проблема решилась использованием судо и правкой скрипта nas.pl.

Рабочий nas.pl с секцией управления циской по rsh в таком виде:

Код: Выделить всё

sub hangup_cisco {
 my ($NAS, $PORT, $attr) = @_;
 my $exec;
 my $command = '';
 my $user = $attr->{USER};

#Rsh version
if ($NAS->{NAS_MNG_USER}) {
# ХЛЪ ЧГЕПЮ МЮ ЖХЯЙН ЙНРПНЛС ПЮГПЕЬЕМ rsh Х УБЮРЮЕР ОПХБЕКЕЦХИ ДКЪ ЯАПНЯЮ
  my $cisco_user=$NAS->{NAS_MNG_USER};
# ХЯОНКЭГНБЮМХЕ: NAS-IP-Address NAS-Port SQL-User-Name


  $command = "$SUDO /usr/bin/rsh -l $cisco_user $NAS->{NAS_IP} show users | grep $attr->{USER} | grep -i \" \$1 \" | awk '{print \$1}'";
  log_print('LOG_DEBUG', "$command");
  my $VIRTUALINT=`$command`;
  log_print('LOG_DEBUG', "$command");
  $PORT=`$command`;
  $command = "$SUDO /usr/bin/rsh -4 -n -l $cisco_user $NAS->{NAS_IP} clear interface $PORT";
  log_print('LOG_DEBUG', "$command");
  $exec = `$command`;
 }
Благодарю за участие в решении проблемы.

Добавлено: Пн мар 17, 2008 2:30 pm
abrate
Привет!
Работает тестовая связка radius 1.17+ cisco 2811.
У меня проблема схожего характера при попытке выбросить юзера в логах апача:

rcmdsh: fork to lose parent failed: Resource temporarily unavailable
Can't open file 'weblog.log' Permission denied

Веб интерфейс выдаёт

Can't get VIRTUALINT. Check permissions

В логах абиллса - оч мало инфы (в дебаг режиме). Помогите пожалуйста, ибо в перле я ноль

Добавлено: Вт мар 18, 2008 10:31 am
abrate
Дал права rsh. Стало просить пароль. Прописал судо - не помогло. Скажите хоть куда копать ...