Для начала убедитесь, что у вас есть доступ к репозиториям, которые содержат пакет radius. Это позволит вам легко установить и настроить все необходимые компоненты. Используйте команду dnf для установки. Введите следующее:
sudo dnf install freeradius freeradius-utils
После того как пакет будет установлен, необходимо настроить основные параметры сервера. Начните с редактирования конфигурационного файла, чтобы указать параметры сети и протоколы аутентификации, которые будут использоваться. Основной конфигурационный файл находится по пути /etc/raddb/radiusd.conf. Например, можно указать порт, на котором будет работать сервер, а также настроить тайм-ауты для запросов.
Далее настройте клиентов, которым будет разрешено подключение к серверу. Для этого откройте файл /etc/raddb/clients.conf и добавьте данные клиентов в формате:
client имя_клиента {
ipaddr = 192.168.1.100
secret = testing123
require_message_authenticator = no
}
Не забудьте настроить аутентификацию пользователей. Для этого можно использовать файл /etc/raddb/users, где задаются учетные записи и права доступа. Пример добавления пользователя:
имя_пользователя Cleartext-Password := "пароль"
После внесения всех изменений, перезапустите службу для применения настроек командой:
sudo systemctl restart radiusd
Проверьте работоспособность сервера, отправив тестовый запрос с использованием утилиты radtest:
radtest имя_пользователя пароль localhost 0 testing123
Если все настройки выполнены корректно, сервер должен успешно обработать запрос и вернуть ответ о том, что аутентификация прошла успешно. Для мониторинга работы сервера используйте команду radiusd -X, которая выведет подробный лог работы с ошибками и информацией о процессе аутентификации.
После того как все параметры настроены и протестированы, сервер готов к использованию. Рекомендуется периодически проверять логи, чтобы выявить возможные проблемы или попытки несанкционированного доступа.
Содержание статьи
- 1 Подготовка системы и установка пакетов FreeRADIUS на Ред ОС
- 2 Настройка конфигурационных файлов для работы с FreeRADIUS
- 3 Интеграция с LDAP и базами данных для аутентификации пользователей
- 4 Тестирование и диагностика работы FreeRADIUS в Ред ОС
- 5 Видео по теме статьи [Установка и настройка FreeRADIUS на Ред ОС шаг за шагом]
Подготовка системы и установка пакетов FreeRADIUS на Ред ОС
Обновите систему для получения последних версий пакетов:
sudo dnf update -y
Добавьте репозиторий EPEL для получения дополнительных пакетов:
sudo dnf install epel-release -y
Инсталлируйте необходимые компоненты:
sudo dnf install freeradius freeradius-utils -y
Проверьте состояние службы:
sudo systemctl status radiusd
Если служба не запущена, активируйте её:
sudo systemctl start radiusd
Для включения автозапуска службы при загрузке системы выполните команду:
sudo systemctl enable radiusd
Для диагностики работы системы используйте команду с параметром -X:
sudo radiusd -X
| Команда | Описание |
|---|---|
| sudo dnf update -y | Обновление пакетов системы |
| sudo dnf install epel-release -y | Добавление репозитория EPEL |
| sudo dnf install freeradius freeradius-utils -y | Инсталляция нужных пакетов |
| sudo systemctl start radiusd | Запуск службы |
| sudo systemctl enable radiusd | Автозапуск службы при старте |
После выполнения этих команд компоненты готовы к использованию.
Настройка конфигурационных файлов для работы с FreeRADIUS
Откройте файл /etc/freeradius/3.0/radiusd.conf, который управляет основной конфигурацией сервера. В нем можно настроить пути к журналам, параметры безопасности и другие важные элементы. Обратите внимание на строки, такие как logdir, pidfile, user и group, которые определяют пути и права для работы сервера. Если необходимо изменить пользовательские и групповые права для работы службы, отредактируйте эти параметры в соответствии с требованиями системы.
Для настройки источников аутентификации откройте файл /etc/freeradius/3.0/clients.conf, где добавляются клиенты, которые будут взаимодействовать с сервером. Здесь задаются IP-адреса и секреты клиентов, а также доступ к серверу. Пример записи для клиента:
client example {
ipaddr = 192.168.1.100
secret = testing123
require_message_authenticator = yes
}
Для указания источника пользователей (например, через базу данных, LDAP или файлы) редактируется файл /etc/freeradius/3.0/users. В этом файле прописываются учетные записи с параметрами авторизации. Например, для добавления пользователя с именем testuser можно использовать следующий шаблон:
testuser Cleartext-Password := "password"
Для подключения к базе данных откройте файл /etc/freeradius/3.0/mods-available/sql и активируйте модуль, установив параметр sql в файле /etc/freeradius/3.0/sites-available/default. Для этого убедитесь, что в конфигурации присутствует строка:
sql {
driver = "rlm_sql_mysql"
server = "localhost"
login = "radius"
password = "password"
radius_db = "radiusdb"
}
Для подключения к LDAP необходимо отредактировать файл /etc/freeradius/3.0/mods-available/ldap, указав параметры сервера, пользователя и пароль для аутентификации. Пример:
ldap {
server = "ldap://localhost"
identity = "cn=admin,dc=example,dc=com"
password = "password"
base_dn = "dc=example,dc=com"
}
Не забывайте про настройку логирования. Откройте файл /etc/freeradius/3.0/radiusd.conf и убедитесь, что параметры логирования (например, auth_log, accounting_log) правильно настроены для вашего окружения. Пример:
log {
destination = files
file = /var/log/freeradius/radius.log
level = info
}
После внесения всех изменений необходимо активировать модули, создав символические ссылки в каталоге /etc/freeradius/3.0/mods-enabled/ для каждого модуля, который был настроен в /etc/freeradius/3.0/mods-available/. Это можно сделать с помощью команды:
ln -s /etc/freeradius/3.0/mods-available/sql /etc/freeradius/3.0/mods-enabled/
ln -s /etc/freeradius/3.0/mods-available/ldap /etc/freeradius/3.0/mods-enabled/
Перезапустите службу, чтобы изменения вступили в силу:
systemctl restart freeradius
Для контроля за работой сервера используйте команды radiusd -X для запуска в режиме отладки и journalctl -u freeradius для просмотра логов.
Примерные пути к конфигурационным файлам в различных системах:
| ОС | Путь к файлу |
|---|---|
| Debian, Ubuntu | /etc/freeradius/3.0/ |
| CentOS, RHEL | /etc/raddb/ |
| Arch Linux | /etc/freeradius/ |
Интеграция с LDAP и базами данных для аутентификации пользователей
Для аутентификации через LDAP в FreeRADIUS необходимо использовать модуль rlm_ldap. В случае работы с MySQL или PostgreSQL для хранения учетных данных пользователей, используйте модули rlm_sql и соответствующие настройки для подключения к базе данных.
Конфигурация подключения к LDAP
Редактируйте файл /etc/raddb/modules/ldap. В нем нужно указать параметры подключения к серверу LDAP:
ldap {
server = "ldap://192.168.1.100"
identity = "cn=admin,dc=example,dc=com"
password = "password"
base_dn = "dc=example,dc=com"
filter = "(uid=%{Stripped-User-Name})"
start_tls = no
tls_cacertfile = /etc/ssl/certs/ca-certificates.crt
tls_certfile = /etc/ssl/certs/radius-client.crt
tls_keyfile = /etc/ssl/private/radius-client.key
}
Параметры:
- server – адрес LDAP-сервера.
- identity – учетные данные для подключения к серверу LDAP.
- password – пароль для подключения.
- base_dn – базовый DN для поиска пользователей.
- filter – фильтр для поиска соответствующего пользователя по имени.
Конфигурация подключения к базе данных
Для работы с базой данных нужно настроить модуль rlm_sql. Пример для MySQL:
sql {
driver = "mysql"
server = "localhost"
login = "radius"
password = "radius_password"
radius_db = "radiusdb"
read_clients = yes
auth_check_query = "SELECT id, username, password FROM radcheck WHERE username='%{SQL-User-Name}'"
auth_pass_query = "SELECT id, username FROM radreply WHERE username='%{SQL-User-Name}'"
}
Параметры подключения:
- driver – указывает драйвер для базы данных (например, mysql или postgres).
- server – хост базы данных.
- login – имя пользователя базы данных.
- password – пароль для базы данных.
- radius_db – имя базы данных.
Проверка аутентификации
После настройки LDAP или базы данных, проверьте работу аутентификации с помощью команды:
radiusd -X
Это включает режим отладки и позволяет увидеть процесс аутентификации пользователя, а также любые ошибки или проблемы с конфигурацией.
Пример структуры базы данных для аутентификации
Пример таблицы для базы данных MySQL:
CREATE TABLE radcheck (
id INT NOT NULL AUTO_INCREMENT,
username VARCHAR(64) NOT NULL,
attribute VARCHAR(32) NOT NULL,
op CHAR(2) NOT NULL,
value VARCHAR(253) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE radreply (
id INT NOT NULL AUTO_INCREMENT,
username VARCHAR(64) NOT NULL,
attribute VARCHAR(32) NOT NULL,
op CHAR(2) NOT NULL,
value VARCHAR(253) NOT NULL,
PRIMARY KEY (id)
);
Таблицы radcheck и radreply содержат данные для аутентификации и авторизации пользователей. radcheck используется для проверки пароля, а radreply для добавления атрибутов к сессии.
Типичные ошибки и способы их устранения
- Ошибка подключения к LDAP: Проверьте правильность указанных данных для подключения, включая сервер, DN и пароль.
- Ошибки SQL-запросов: Убедитесь, что запросы в конфигурации правильно соответствуют структуре вашей базы данных.
- Ошибка в аутентификации: Используйте режим отладки
radiusd -Xдля получения подробной информации о проблемах.
Тестирование и диагностика работы FreeRADIUS в Ред ОС
Для проверки корректности работы сервера необходимо выполнить несколько проверок с помощью стандартных инструментов и логов системы.
Для начала убедитесь, что служба работает. Используйте команду:
systemctl status radiusd
Если статус «active (running)», значит сервис работает нормально. В случае ошибки можно перезапустить сервер командой:
systemctl restart radiusd
Для диагностики сбоев стоит обратиться к логам. Просматривайте логи с помощью команды:
journalctl -u radiusd
Или читайте логи из директории:
tail -f /var/log/radius/radius.log
Для проверки конфигурации можно воспользоваться командой:
radiusd -X
Чтобы тестировать аутентификацию, используйте команду radtest. Например, для проверки пользователя:
radtest user password 127.0.0.1 0 testing123
Здесь «user» – имя пользователя, «password» – его пароль, 127.0.0.1 – адрес сервера, 0 – порт, «testing123» – секрет для общения с сервером.
В случае необходимости тестирования внешних источников, таких как LDAP или SQL, проверьте подключение к базе данных с помощью соответствующих утилит, например, командой для проверки соединения с MySQL:
mysql -u radius -p -h localhost
Для диагностики работы с клиентами можно использовать утилиту radiusd с флагом -X, что позволит отследить запросы и ответы, а также ошибки на каждом этапе аутентификации.
| Команда | Описание |
|---|---|
| systemctl status radiusd | Проверка статуса службы сервера |
| journalctl -u radiusd | Просмотр логов сервера |
| radiusd -X | Запуск в режиме отладки |
| radtest | Тестирование аутентификации |
| mysql -u radius -p -h localhost | Проверка соединения с базой данных |

