есть AS53xx, раздающая диалап и терминирующая VoIP трафик из PSTN-сети через 2 порта E1 в IP-сеть.аккаунтинг и авторизация воипа производится через древненький xtradius и внешний скрипт, ходящий за логинами в mysql, на одной машинке.
авторизация и аккаунтинг диалапа производиться через радиус на другой машине.
проблема заключается в том, что несмотря на то, что Simultaneous-Use=1 в конфиге воипного радиуса указан, всё равно существует возможность авторизоваться двум пользователям одновременно. (воип-клиенты ходят по пин-кодам, через IVR)
Бегло изучив ситуацию обнаружилось, что в /var/log/radutmp ничего не пишется и соотвественно у радиуса нет никакой возможности контролировать присутствие двух и более одинаковых пользователей, одновременно авторизвавшихся в системе.
Погуглив, выяснилось что, радиусу для ведения записей в radutmp необходимо как минимум знать Nas-Port-Id, куда юзверь пришел, Acct-Session-Id, User-Name, NAS-Ip-Address и наличие старт-рекордов. Всё эти атрибуты присутствуют в радиус-пакетах, относящихся к диалапу, radutmp ведется и radwho реально отображает картину залогиненных пользователей. А вот после авторизации воипных пользователей приходят все атрибуты за исключением NAS-Port-Id, из-за которого радиус не добавляет записей в radutmp.
Прав ли я или в чем-то ошибся ? И можно ли как-то циске насильно сказать, чтобы она присылала этот пресловутый nas-port-id. или же я чего в теории не понял ? :)
IOS: ROM: System Bootstrap, Version 12.2(1r)1, RELEASE SOFTWARE (fc1)
BOOTLDR: 5400 Software (C5400-BOOT-M), Version 12.1(1)XD1, EARLY DEPLOYMENT RELEASE SOFTWARE (fc2)
кстати, на циске с иосом 12.3 почему-то при аналогично настроенной системе, за исключением наличия 2х FXS портов вместо E1, все необходимые атрибуты от циски в радиус приходят.
Привет,Вариант А - выносим проверку в xtradius, его внешний скрипт может вести учет сколько раз данный юзер уже связан с системой. У меня это работало для dialup-щиков.
Вариант Б: возможно, что в 12.1 высылка Nas-Port-Id не делается (или для его получения нужна дополнительная настройка, или атрибут высылается, но в Alive пакете, а не в Start пакете). Вот что придумал Гугл на этот счет:
http://www.cisco-secure.net/univercd/cc/td/doc/product/softw...
WWell,
>Привет,
>
>Вариант А - выносим проверку в xtradius, его внешний скрипт может вести
>учет сколько раз данный юзер уже связан с системой. У меня
>это работало для dialup-щиков.
>думал об этой схеме, но хотелось бы сперва попытаться возложить эту обязанность на радиус, а не городить и без того диком скрипте еще одну лишнюю проверку :)
>Вариант Б: возможно, что в 12.1 высылка Nas-Port-Id не делается (или для
>его получения нужна дополнительная настройка, или атрибут высылается, но в Alive
>пакете, а не в Start пакете). Вот что придумал Гугл на
>этот счет:
>
>http://www.cisco-secure.net/univercd/cc/td/doc/product/softw...
>спасибо, попробую покопаться, если не ничего не получится, придется скрипт пилить.