Поставил freeradius-1.0.1
Аутентификация через pgsql. Поскольку основные сервисы авторизуются по PAP, то изначально все делалось под gnu-radius. Но понадобился и mschap. Поэтому параллельно пришлось ставить freeradius. Но структура таблиц сильно отличается от той что идет с freeradius. Пришлось переписывать запросы.
Аутентификация работает, acct работает,
однако, есть две большие проблемы:
1. Вот фрагмент из postgresql.conf:
authorize_reply_query = "\
SELECT \
site AS id, \
iplogin AS UserName, \
'Framed-IP-Address'::char AS Attribut, \
text(host(ipaddr[1]))::char AS Value, \
'='::char AS Op \
FROM ${authreply_table} \
WHERE \
iplogin = '%{SQL-User-Name}' AND \
NOT disabled AND NOT deleted AND \
text(host(ipaddr[1]))::char != ''"
Запрос этот честно выполняется и если выполнить вручную, то адрес выдается верно. Однако, радиус в reply этот адрес не выдает и никаких сообщений об ошибке тоже. Почему так может быть?
2. Включен контроль Simultaneous-Use через sql запросы.
Если одна сессия установлена, то при попытке установить еще одну - клиенту честно дается отлуп. Однако, если закрыть первую сессию и попытаться установить ее заново, запрос на аутентификацию (совершенно идентичный первой аутентификации) выполняется успешно, но радиус отвечает что нет такого пользователя. Приходится перегружать. У него что есть внутренняя таблица сессий которая почему-то не сбрасывается? Или я что-то просмотрел?
Вообще, первые впечатления о стабильности freeradius не самые благоприятные. Надеюсь что это заблуждение...
|