Как работает
Как работает
Новые функции сосредоточены в:
поддержке авторизации через telnet–интерфейс и/или командную строку
модуле rlm_netams, расширяющего сервер FreeRADIUS
поддержке авторизации доступа к HTML–страницам через mod_auth_radius+новая команда сервиса html (опционально)
В качестве сервера доступа, используемого в качестве клиента нового механизма авторизации, проверялись pppoe+ppp (FreeBSD 5.3) и Windows 2003 RRAS. Таким образом, NeTAMS может успешно авторизовывать и контролировать трафик dialup–и pppoe–и прочих коммутируемых соединений, без необходимости дублировать логины/пароли/настройки в текстовых конфигах и базах данных.
Порядок работы с сервером доступа:
При поступлении запроса на соединение сервер доступа осуществляет проверку прав звонящего (логин/пароль) у радиус–сервера.
Радиус–сервер вызывает код модуля rlm_netams, который извлекает требуемые атрибуты из запроса аутентификации, формирует сообщение, и передает его работающему демону NeTAMS посредством Telnet API.
На основании полученного запроса демон NeTAMS разрешает или запрещает доступ. Если доступ разрешен, в сторону rlm_netams (т.е. радиус–сервера) передаются ряд атрибутов, в частности IP–адрес клиента и набор фильтров. Если сервер передал параметр «Caller–ID» (для PPPoE это МАС–адрес звонящего), и для юнита установлен параметр «mac …», будет проводиться дополнительный контроль и по этому признаку.
rlm_netams копирует ответ демона, формируя RADIUS–ответ для сервера доступа.
сервер доступа отвергает или принимает клиента, устанавливая необходимые параметры соединения.
Порядок работы при авторизации веб–доступа:
Сервис HTML генерирует статические HTML–страницы с данными о трафике, админскую часть и пользовательскую часть. При этом создаются также файлы .htaccess со списком «правильных» пользователей данного URI, файл паролей .htpasswd не поддерживается — заместо него в глобальном конфигурационном файле apache присутствуют записи о RADIUS–авторизации.
HTTP–клиент (бровзер) пытается обратиться к защищенному при помощи .htaccess ресурсу. Происходит запрос пароля (через код 401)
Apache вызывает модуль mod_auth_radius, сообщая тому логин–пароль клиента. Запрос на авторизацию передается радиус–серверу.
Радиус–сервер вызывает код модуля rlm_netams, который извлекает логин–пароль из запроса аутентификации, формирует сообщение, и передает его работающему демону NeTAMS посредством Telnet API.
На основании полученного запроса демон NeTAMS проверяет свою базу пользователей и юнитов, разрешает или запрещает доступ. Ответ пересылается в RADIUS–сервер.
rlm_netams копирует ответ демона, формируя RADIUS–ответ для Apache.
Apache пускает пользователя (бровзер) на страницу, или не пускает его.
Порядок работы при получении accounting пакетов (Start, Stop, Alive) радиус–сервером:
радиус–сервер вызывает код модуля rlm_netams, который извлекает требуемые атрибуты из пакета, формирует сообщение, и передает его работающему демону NeTAMS посредством Telnet API.
Если в пакете Start присутствует In Out, они записываются as–is, если для юнита типа user в пакете присутствует Framed–IP–Address, этот IP–адрес будет установлен данному юниту.
Если в пакете Stop присутствует In Out, они записываются incremental, для юнита типа user IP–адрес обнуляется.
При поступлении пакета Alive, данные In Out записываются incremental.
Если в любом из трех пакетов присутствует Filter–ID=Policy данные будут записаны в эту политику.