LINUX.ORG.RU
решено ФорумAdmin

Freeradius логирование выдачи/освобождения ip адреса

 ,


0

1

Приветствую. Есть у нас радиус, который freeradius. Раньше была версия 2.2.8, сейчас перешли на версию 3.0.12. Используется для аутентификации пользователей и выдачи им адресов. В принципе всё работает, кроме одной вещи - в версии 2.2.8 в общий лог писались события о том что «адрес освобождён» или «адрес выдан». В версии 3.0.12 эти сообщения в лог не пишутся. В конфиге модуля sqlippool белым по чёрному написано:

#  These messages are added to the "control" items, as
#  Module-Success-Message.  They are not logged anywhere else,
#  unlike previous versions.  If you want to have them logged
#  to a file, see the "linelog" module, and create an entry
#  which writes Module-Success-Message message.
messages {
    success = "Allocated IP: %{reply:Framed-IP-Address} from %{control:Pool-Name} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})"
...
}
В общем это те самые нужные мне сообщения, которые теперь никуда не пишутся. Идём в конфиг модуля linelog смотрим пример и пишем свою секцию для этих сообщений:
linelog line-sqlippool {
    destination = file
    format = ""
    filename = ${logdir}/linelog-sqlippool.log
    permissions = 0600
    reference = "messages2.%{%{control:Module-Success-Message}:-default}"
    messages2 {
        default = "Unknown packet"
        success = "Allocated IP: %{reply:Framed-IP-Address} from %{control:Pool-Name} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})"
...
}
Памятуя о том что в sqlippool предлагается ловить сообщения из списка «control» в сообщениях «Module-Success-Message».

И вот собственно вопрос - правильно ли она написана, вообще, и куда теперь эту секцию прописать? Пробовал в «authorization», в «accounting», в «post-auth». В первых двух получаю только сообщения «Unknown packet», в 3-ей вообще ничего не получаю. После двух дней гугления хочется Алану ДеКоку лицо разбить за его ответы в рассылке в стиле - «это очень легко, читайте конфиги.» Мля, я уже вдоль и поперёк эти конфиги перечитал ни одного сраного примера как использовать самописные секции из «linelog», и ничего про этот «Module-Success-Message» вообще. Может каким-то другим способом можно получать эти сообщения? Подчеркну ещё раз - именно события о том что адрес был выдан или освобождён. События о том что «Login Ok» я и так получаю.

Ну и что бы два раза не вставать - может ещё можно логировать события о причине освобождения адреса? Если да - то как?

hello

do u have any succsses whit display messages, becouse i have same problem ?

anonymous
()
7 октября 2017 г.

Наступил на теже грабли, если кто победил этот прекрасно дукоментированный модуль поделитесь пожалуйста примером.

c3pO
()
Ответ на: комментарий от c3pO

В конец файла sites-available/linelog добавил секцию

linelog log_sqlippool {
        destination = file
        format = "%S, %{control:Module-Success-Message}"
        filename = ${logdir}/linelog-sqlippool.log
        permissions = 0600
}

Создал символическую ссылку на этот файл в директории sites-enabled/.

В файл sites-available/default в секцию accounting, в конец, добавил секцию

if (&control:Module-Success-Message) {
                log_sqlippool
        }
перед закрывающей скобкой секции

В этот же файл, в секцию post-auth, в конце добавил строки linelog и log_sqlippool, перед закрывающей скобкой. Если используешь не «sites-available/default», то соответственно то что я написал вставляешь в свой файл. Теперь в файлик /var/log/radius/linelog-sqlippool.log получаю сообщения о выданных и освобождённых адресах. Надеюсь ничего не забыл. Давно дело было.

Toten_Kopf
() автор топика
Ответ на: комментарий от Toten_Kopf

Спасибо за ответ! Не продолжает меня удивлять данный модуль, в общем у меня завелась конфигурация c добавлением в mods-available/linelog секции указанной ниже и «linelog_sqlippool» в post-auth и accounting секции в sites-enabled/default

linelog linelog_sqlippool {
        destination = file
        format = "%S, %{control:Module-Success-Message}"
        filename = ${logdir}/linelog-sqlippool.log
        permissions = 0600

        sqlippool {
                exists = "Existing IP: %{reply:Framed-IP-Address} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})"
                success = "Allocated IP: %{reply:Framed-IP-Address} from %{control:Pool-Name} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})"
                clear = "Released IP %{Framed-IP-Address} (did %{Called-Station-Id} cli %{Calling-Station-Id} user %{User-Name})"
                failed = "IP Allocation FAILED from %{control:Pool-Name} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})"
                nopool = "No Pool-Name defined (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})"
        }
}

При попытке приписать reference сразу тишина, почему даже не хочется разбираться. Работает и хорошо...

reference = "sqlippool.%{%{control:Module-Success-Message}:-default}"

c3pO
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.