Прошу прощения что пишу здесь о своей трабле, хотя использую другой биллинг.
Но может кто сталкивался с такой же проблемой в UTM. Ведь протокол RADIUS одинаков почти везде.
Имеется железка Netserver 16/v34+ которую использую в качестве NAS, совместно с Freeradius. В общем всё нормально работает кроме аккаутинга. Пользователи удачно дозваниваются и пропускаются радиусом в интернет. Но при попытке этой железкой отослать на RADIUS пакета Accounting, RADIUS выдаёт следующее сообщение:
Received Accounting-Request packet from 192.168.1.98 with invalid signature! (Shared secret is incorrect.)
Получается что SHARED SECRET не правильный. Но как он может быть не правильным если авторизация проходит успешно, и пользователи попадают в интернет ? Такое впечатление что Freeradius не может распознать правильно пакет аккаутинга от этой железки.
Читал на некоторых форумах что это трабла заключается в самой железке. Но на этих же форумах не сказанно как обойти эту траблу.
Поэтому пишу сюда. Может кто ставил эту железку под UTM и встречал такую же проблему ? Если да, то пожалуйста подскажите что мне делать ?
Вот то что использую:
1) Сама железка имеет прошивку версии - 4.1.82 (вроде самая последная).
2) Freeradius-1.0.1+FreeNIBS-0.0.3-bf3.
USR Netserver - проблема с Accounting.
Дело в том, что я прочёл документацию по этой железке.
Там сказанно как указать SHARED SECRET для пакетов авторизации. И тут же сказанно, что этот же SHARED SECRET используется и для пакетов аккаутинга. Поэтому даже в самой железке не предусмотренна отдельная настройка этих секретов. Только секрет для авторизации. По телнету существуют команды только для первого секрета. Для вторго даже и нету таких команд. И в программе которая предназначена для этой железки для управления по SNMP, нету таких функций. Только функции для настройки одного общего секрета. Да и на форумах на зарубежных я прочёл тоже самое. Так что однозначно - один SHARED SECRET для обеих типов пакетов.
Я вроде докопался до сути проблеммы. Вот как это выглядит. Дело в том, что железка в пакетах аккаутинга передаёт какуюто не стандартную информацию. Вроде пары RADIUS атрибутов в каторой содержится не корректное значение VENDOR. И RADIUS просто не понимает как рассматривать остальные пары пакета, потому что такой VENDOR ему не известен. В словарях RADIUS есть стандартный формат VENDOR' а для этой железки. Но железка сама его не правильно указывает в пакетах и RADIUS просто не может понять что это именно USR Netserver, хотя в конфигах указанно что это он. Получается, что RADIUS ожидает пакета от Netserver'а а ему приходит пакет какбы от неизвестой железки. Вот он и путается.
Выход вижу в следующем: перехватить пакет от железки и посматреть какой параметр она выдаёт в атрибутах VENDOR. И затем заменить этот параметр в словаре RADIUS'а на такойже.
Вот теперь думаю - как это реализовать ?
Чем можно перехватиь пакеты ?
Как организованна структура словарей ?
Если есть соображения по этому поводу, прошу высказыватся.
Там сказанно как указать SHARED SECRET для пакетов авторизации. И тут же сказанно, что этот же SHARED SECRET используется и для пакетов аккаутинга. Поэтому даже в самой железке не предусмотренна отдельная настройка этих секретов. Только секрет для авторизации. По телнету существуют команды только для первого секрета. Для вторго даже и нету таких команд. И в программе которая предназначена для этой железки для управления по SNMP, нету таких функций. Только функции для настройки одного общего секрета. Да и на форумах на зарубежных я прочёл тоже самое. Так что однозначно - один SHARED SECRET для обеих типов пакетов.
Я вроде докопался до сути проблеммы. Вот как это выглядит. Дело в том, что железка в пакетах аккаутинга передаёт какуюто не стандартную информацию. Вроде пары RADIUS атрибутов в каторой содержится не корректное значение VENDOR. И RADIUS просто не понимает как рассматривать остальные пары пакета, потому что такой VENDOR ему не известен. В словарях RADIUS есть стандартный формат VENDOR' а для этой железки. Но железка сама его не правильно указывает в пакетах и RADIUS просто не может понять что это именно USR Netserver, хотя в конфигах указанно что это он. Получается, что RADIUS ожидает пакета от Netserver'а а ему приходит пакет какбы от неизвестой железки. Вот он и путается.
Выход вижу в следующем: перехватить пакет от железки и посматреть какой параметр она выдаёт в атрибутах VENDOR. И затем заменить этот параметр в словаре RADIUS'а на такойже.
Вот теперь думаю - как это реализовать ?
Чем можно перехватиь пакеты ?
Как организованна структура словарей ?
Если есть соображения по этому поводу, прошу высказыватся.