Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Для проверки сервера используется утилита radtest (она присутствует во всех проверенных мною серверах). Формат её использования таков:
radtest user_name password radius_server nas_port secret
Например, если существует пользователь testuser с паролем testing, то формат команды будет таков:
$radtest testuser testing radius.test.ru 1 radius_secret
Если же у вас что-то не работает (знаю по опыту – так бывает часто, даже если всё вроде правильно сделал, напишешь что-нибудь вроде dev/null, вместо /dev/null, а потом ищешь недостающий файл), то очень может помочь опция отладки radiusd -x. При этом radius не вызывает fork, и все отладочные данные выводятся на терминал. В таком режиме как сервер он работать практически не может, зато будет ясно, какие файлы он прочитал и что он делает. Вкупе с утилитой radtest это может помочь решить любые проблемы. Ещё советую включить в файле radiusd.conf запись в логи, это поможет выявить проблемы безопасности. Иногда более целесообразно применять совместно с radius ldap, т.к. при большом количестве пользователей наличие единого источника данных о пользователях и паролях будет намного удобнее и эффективнее. Для этого правим файл radiusd.conf:
ldap {
server = "ldap.test.ru"
# Этот пользователь должен иметь право читать пароли, поэтому необходимо добавить соответствующий acl в файл
# конфигурации ldap-сервера (об этом рассказано в моей статье «OpenLDAP». –
# журнал «Системный администратор». – 2003, №2(3). с.74-84.)
identity = "cn=proxy,dc=test,dc=ru"
password = mypass
basedn = "o=test,c=ru"
filter = "(uid=%{Stripped-User-Name:-%{User-Name}})"
# Включаем безопасное соединение, не меняя порт
start_tls = yes
# Бог знает что, но вроде это заставляет шифровать данные при запросе к серверу
tls_mode = yes
# В данной ветви хранятся профили пользователей
default_profile = "cn=radprofile,ou=dialup,dc=test,dc=ru"
# profile_attribute = "radiusProfileDn"
access_attr = "dialupAccess"
# В данном атрибуте предполагается хранение пароля пользователя
password_attribute = "userPassword"
# Атрибуты для перевода формата значений ldap => radius
dictionary_mapping = ${raddbdir}/ldap.attrmap
# Остальная часть убрана, т.к. не заслуживает отдельного внимания
}
Учтите ещё, что при компиляции radius с ldap надо иметь нужные библиотеки, иначе модуль не скомпилируется. Ну и конечно же, нужно включить аутентификацию через ldap. Делается это стандартным раскомментированием строк ldap в секциях authorize и authenticate (см. описание работы через sql). Для указания использования аутентификации через ldap данного пользователя необходимо устанавливать AV-пару Auth-Type = ldap. В частности, можно для этого применить оператор Auth-Type := ldap. Заметьте также, что ldap не различает регистр символов, поэтому возможно возникновение проблем. Для этого в radius.conf надо включить «lower_user = yes» и «lower_time = before» в основной секции (см. выше). Кроме этого, в сервер ldap необходимо включить файл схемы RADIUS-LDAPv3.schema (находится в исходниках в подкаталоге doc).
Отдельного разговора заслуживает тема учёта или аккаунтинга. Фактически сервер radius состоит из двух частей: сервера авторизации и аутентификации и сервера учёта. Учёт может выполняться через различные источники, например, через sql или простые файлы. Единственное условие для работы аккаунтинга – правильная настройка NAS (далее приведён пример конфигурации маршрутизатора Cisco). Аккаунтинг может выполняться либо через внешние скрипты (файл acct_users, для livingston-radius этот метод является единственным), либо через внутренние настройки. Далее будет рассматриваться лишь второй способ, т.к. о структуре файла acct_users я уже говорил выше. В файле radiusd.conf существует секция accounting, у меня она выглядит так: