BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 25 июн 2025, 20:57

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
СообщениеДобавлено: 08 июл 2010, 16:43 
Не в сети

Зарегистрирован: 11 янв 2010, 16:45
Сообщения: 40
Карма: 5
Всем привет!
Ситуация такая: в модуле Dialup, привязанного в договоре к пользователю во вкладке "Логины" есть вкладка "Ограничения", для чего это надо достаточно просто и понятно!!! Пытаюсь по документации сделать, как там написано т.е.:

"То есть, если вы решите пускать пользователя только на телефон 111111, то добавление ограничения Разрешить вход на 111111 ничего не даст, т.к. вход на него и так разрешён по умолчанию.
Следует сделать запрет на все телефоны доступа, указав в качестве телефона 0, а затем добавить строку с разрешением входа на 111111. Группировка по типам при авторизации делается для того, чтобы ограничения одного типа не перекрывали другие."

Бьюсь уже не один день(может я конечно такой тупой :roll: ) но ни ограничение с номером 1 ни с номером 5 просто не хотят работать!!! Никак! Перепробовал по большому счету все комбинации, облазил весь форум ни одного вразумительного примера просто не нашел! Вроде как я понимаю две строчки подряд прописать и все должно работать - допустим 1-я: Dany0 для пятого типа, а потом Allowed и допустим ip - адрес(типа 10.6.0.14) ,ну не знаю уже куда копать! Пожалуйста , уважаемые разработчики и просто пользователи форума, выложите для примера самое простое решение, но рабочее, возможно по запарке гдето в конфиге , что - то нужно указать какой-нить аттрибут(вроде как включить опцию , выключить ...) , биллинг поставили недавно, многие конфиги по большому счету "сырые" т.е. многие параметры стоят по умолчанию! Вообщем помогите плиззз!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 июл 2010, 15:08 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
как то так ...

Изображение


Вложения:
screen.jpg
screen.jpg [ 15.51 КБ | Просмотров: 7565 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 июл 2010, 16:10 
Не в сети

Зарегистрирован: 11 янв 2010, 16:45
Сообщения: 40
Карма: 5
В том то и дело, что мы таки и делаем, правила все равно не отрабатываются . Возможно проблема в том , что NAS находящийся на 2821 кошке с PPtP - сервером на ней не отдает Calling-Station-Id, соответственно не отрабатывают ограничения, все радиус-параметры на кошке введены по документации биллинга! Т.е. вопрос тогда получается такой - реально эти ограничения должны отрабатывать на стандартных конфигах из биллинга, или просто где-то , что-то я просто не указал? Перерыл уже все , что можно , но все равно не хотят эти правила работать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 июл 2010, 16:48 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
тыц!!!111


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 июл 2010, 16:52 
Не в сети

Зарегистрирован: 11 янв 2010, 16:45
Сообщения: 40
Карма: 5
Этот скрипт преобработки стоит, но всеравно не работает. :(


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 июл 2010, 17:07 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
что значит "не работает"? может покажете хоть один лог сессии что ли, чтоб посмотреть у Вас вообще предобработка работает или нет


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 июл 2010, 17:12 
Не в сети

Зарегистрирован: 11 янв 2010, 16:45
Сообщения: 40
Карма: 5
Вот последний лог радиуса с скриптом предобработки:

Код:
09 12:43:14
Type=AUTHENTICATION_REQUEST
Attributes:
User-Name=test
NAS-Port-Id=Uniq-Sess-ID345
CHAP-Password=\u1?q?
?w?:\u21)?°?\u14??
NAS-IP-Address=10.0.0.12
NAS-Port=605
Service-Type=2
Framed-Protocol=1
NAS-Port-Type=5

09 12:43:14
Type=AUTHENTICATION_ACCEPT
Process time auth: 50 init_tariff: 1; set_ip: 1; common_auth: 26
Attributes:
Acct-Interim-Interval=60
Service-Type=2
Framed-Protocol=1
Framed-IP-Address=1.1.1.1
cisco-avpair=lcp:interface-config=rate-limit input 1024000 192000 384000 conform-action transmit exceed-action drop
cisco-avpair=lcp:interface-config=rate-limit output 2048000 384000 768000 conform-action transmit exceed-action drop
Trace:
Login found.

09 12:43:14
Type=ACCOUNTING_REQUEST
Attributes:
User-Name=test
NAS-IP-Address=10.0.0.12
Tunnel-Medium-Type=
NAS-Port=605
Service-Type=2
Tunnel-Client-Endpoint=10.6.0.13
Tunnel-Server-Endpoint=10.0.0.12
Framed-Protocol=1
Framed-IP-Address=1.1.1.1
<AttrCode[196]>=undef
Acct-Status-Type=1
Acct-Delay-Time=0
Acct-Session-Id=0000025D
Acct-Authentic=1
NAS-Port-Id=Uniq-Sess-ID345
Tunnel-Assignment-ID=1
Calling-Station-Id=10.6.0.13
NAS-Port-Type=5
Called-Station-Id=10.0.0.12
cisco-avpair=connect-progress=LAN Ses Up

09 12:43:14
Type=ACCOUNTING_REQUEST
Attributes:
User-Name=test
NAS-IP-Address=10.0.0.12
Tunnel-Medium-Type=
NAS-Port=605
Service-Type=2
Tunnel-Client-Endpoint=10.6.0.13
Framed-Protocol=1
Tunnel-Server-Endpoint=10.0.0.12
Framed-IP-Address=1.1.1.1
<AttrCode[196]>=undef
<AttrCode[198]>=undef
<AttrCode[193]>=undef
<AttrCode[192]>=undef
<AttrCode[195]>=undef
NAS-Port-Id=Uniq-Sess-ID345
Tunnel-Assignment-ID=1
Calling-Station-Id=10.6.0.13
Called-Station-Id=10.0.0.12
Acct-Input-Octets=20175
Acct-Output-Octets=22439
Acct-Status-Type=2
Acct-Delay-Time=0
Acct-Session-Time=2937
Acct-Input-Packets=731
Acct-Session-Id=0000025D
Acct-Authentic=1
Acct-Terminate-Cause=0
Acct-Output-Packets=689
<AttrCode[190]>=undef
<AttrCode[191]>=undef
NAS-Port-Type=5
cisco-avpair=disc-cause-ext=No Reason
cisco-avpair=connect-progress=LAN Ses Up


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 июл 2010, 17:50 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
скрипт отрабатывает, но тут Вы пишите:
dlkustov писал(а):
ip - адрес(типа 10.6.0.14)

а тут, у Вас:
dlkustov писал(а):
Код:
Tunnel-Client-Endpoint=10.6.0.13
Tunnel-Server-Endpoint=10.0.0.12
...
Calling-Station-Id=10.6.0.13
Called-Station-Id=10.0.0.12

отсюда возникает резонный вопрос - какой именно IP адрес Вы пишите?

по настройке - мануал говорит нам:
мануал писал(а):
При авторизации ограничения сортируются по типам просматриваются в порядке их указания, каждое последующее перекрывает предыдущее только если он одного типа.
То есть, если вы решите пускать пользователя только на телефон 111111, то добавление ограничения Разрешить вход на 111111 ничего не даст, т.к. вход на него и так разрешен по умолчанию.
Следует сделать запрет на все телефоны доступа, указав в качестве телефона 0, а затем добавить строку с разрешением входа на 111111. Группировка по типам при авторизации делается для того, чтобы ограничения одного типа не перекрывали другие.
То есть, если человек не прошел по телефону доступа, его не должно пустить только потому, что доступ в это время разрешен.
Дополнительные сведения по ограничениям:
- * означает любое значение в телефонах доступа;

т.е. делаете 2 ограничения "По телефону клиента":
  1. ограничение - запретить
    телефон - * (звездочка)
    период - с нужной даты без конца периода
    услуга - время
  2. ограничение - разрешить
    телефон - IP адрес из Called-Station-Id
    период - с нужной даты без конца периода
    услуга - время

но может и не сработать, т.к. у Вас в AUTHENTICATION_REQUEST нет IP адреса


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 июл 2010, 18:04 
Не в сети

Зарегистрирован: 11 янв 2010, 16:45
Сообщения: 40
Карма: 5
То что скипт отрабатывает это и так понятно, но при установленных ограничениях
5 deny* 8.07.2010 Комент
5 allow 10.6.0.13 8.07.2010 комент

Он пускает как и должно вроде все пучком! Ошибок нет логи в норме.
Теперь берем и тупо заходим с соседней рабочей станции соответственно ip у нее 10.6.0.14 c этим же логином и паролем ну и он пускает тоже.
Вывод ограничение не отрабатывает! Что и писалось в самом первом посте.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 июл 2010, 18:25 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
dlkustov писал(а):
Вывод ограничение не отрабатывает! Что и писалось в самом первом посте.

смотрите ... у Вас
dlkustov писал(а):
Код:
09 12:43:14
Type=AUTHENTICATION_REQUEST
Attributes:
User-Name=test
NAS-Port-Id=Uniq-Sess-ID345
CHAP-Password=\u1?q?
?w?:\u21)?°?\u14??
NAS-IP-Address=10.0.0.12
NAS-Port=605
Service-Type=2
Framed-Protocol=1
NAS-Port-Type=5

а я уже писал
snark писал(а):
может и не сработать, т.к. у Вас в AUTHENTICATION_REQUEST нет IP адреса

вывод - работать не будет, до тех пор пока Ваш кот не начнет слать эти атрибуты в Access-Request, т.е. надо сказать что-то в духе:
Код:
radius attribute 66 include-in-access-req


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 июл 2010, 18:32 
Не в сети

Зарегистрирован: 11 янв 2010, 16:45
Сообщения: 40
Карма: 5
аттрибут "8 Framed IP address attribute" - на кошке присутствует
radius-server attribute 8 include-in-access-req

может нужен DEBUG с кошки радиус-запроса? Могу скинуть показать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 июл 2010, 18:41 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Вы разницу между RADIUS Attribute 8 (Framed-IP-Address) и RADIUS Attribute 66 (Tunnel-Client-Endpoint) понимаете? в первом случае - это IP адрес РРТР соединения, а во втором - это IP адрес с которого поисходит подключение ... я писал что нужно в реквесте отправлять Tunnel-Client-Endpoint


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 июл 2010, 19:27 
Не в сети

Зарегистрирован: 11 янв 2010, 16:45
Сообщения: 40
Карма: 5
Само сабой понимаем! Такой команды на 66 параметр на этой кошке нет. Но коша этот параметр Tunnel-Client-Endpoint радиусу передает иначе бы просто не отработал бы скипт предобработки.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 июл 2010, 20:25 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
он у вас передается в interim update и в stop а должен присутствовать и при start! это важно! в БГБ попросту не может отработать запрет потому что при авторизации юзера он не видит параметра по которому надо принять решение о том пустить юзера или нет и сравнивая пустоту с введенными Вами параметрами он принимает решение о том что всетаки да, пустить ...
если не сможете найти иос который передает атрибут 66 в start пакете, то у Вас есть только 2 варианта:
- продолжать использовать РРТР и проверять IP адрес в скрипте и дропать сессию если адрес не совпадает с разрешенным, но это приведет к появлению over 9000 сессий которые были сброшены сразу после начала
- перейти на РРРоЕ - там Calling-Station-Id при старте есть всегда


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 июл 2010, 10:35 
Не в сети

Зарегистрирован: 11 янв 2010, 16:45
Сообщения: 40
Карма: 5
Все понятно! Огромное человеческое спасибо, только ответьте еще на один несложный вопрос))) что значит скрипт ? т.е. это скрипт пердобработки NAS`а или это скрипт по событию радиус-аутентификации? т.е. как правильно сделать - привязать скрипт радиус-аутентификации к пользователю , или все это можно получить через NAS(скрипт предобработки), просто в самом биллинге мы еще достаточно плаваем! И хотелось бы по началу не допускать по крайней мере мелких и глупых ошибок! :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 июл 2010, 16:04 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
в идеале хотелось ответить так:
Цитата:
рисуете примерно такой скрипт радиус аутентификации (это самое оптимальное место, да к тому же только отсюда можно послать отлуп):
Код:
import bitel.billing.server.radius.*;
import bitel.billing.server.processor.event.*;

response = event.getResponse();

/*
тут SELECT-ом получаете, назовем переменную userIpArrd, разрешенный IP адрес,
например из таблицы ограничений (рано или поздно Вы научите Вашего кота его отдавать при старте)
или из параметров договора или из объекта или еще откуда - зависит от Вашей фантазии и оттого куда вы будете писать оный IP
*/

if (userIpArrd != null)
{
    if (userIpArrd != разрешенному)
    {
        response.setPacketType(RadiusPacket.AUTHENTICATION_REJECT);
        return;
    }
}

и все - юзер коннектится, и получает ошибку 691

но вся сложность заключается в том что у Вас при старте нету IP адреса юзера:( а в радиус аутентификация отрабатывает только при старте, поэтому скорее всего придется запускать некий скрипт по таймеру, но это не самое оптимальное решение, т.к. сессия юзера может к тому времени провисеть уже минуту :(

Вы все же попробуйте скормить коту
Код:
vpdn aaa attribute nas-ip-address vpdn-nas

тогда получите IP адрес клиента, то ли в RADIUS Attribute 8 (Framed-IP-Address) то ли в RADIUS attribute 32 (NAS-Identifier) - я не поню :( и если это сработает, то тогда в скрипте предобработки будете тупо забивать Calling-Station-Id беря его из того атрибута который придет ;) если это не сработает - попробуйте поперебирать иосы и найти тот в котором этот параметр все же будет отдаваться при старте


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.048s | 50 Queries | GZIP : On ]