Используемые термины: Freeradius, FreeIPA.
Так как Rocky Linux реализован на базе CentOS, данная инструкция подойдет и для последнего. Предполагается, что у нас уже настроен FreeIPA, в противном случае, читаем также инструкцию Установка и использование FreeIPA на CentOS.
Для корректной работы Freeradius с сервером LDAP необходимо настроить время, брандмауэр и отключить SELinux.
Устанавливаем сервис для синхронизации времени и запускаем его:
yum install chrony
systemctl enable chronyd —now
Задаем часовой пояс:
timedatectl set-timezone Europe/Moscow
* в данном примере задается часовой пояс по московскому времени. Полный перечень вариантов можно посмотреть командой timedatectl list-timezones.
Создаем правило для разрешения сервиса radius (порты 1812 и 1813):
firewall-cmd —permanent —add-service=radius
firewall-cmd —reload
В нашей инструкции мы просто отключим SELinux
setenforce 0
sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config
* при желании настроить SELinux может оказаться полезной инструкция Настройка SELinux в CentOS.
Задаем имя нашему серверу:
hostnamectl set-hostname freeradius.admins24.ru
Установим сам Freeradius и настроим его для аутентификации с использованием конфигурационного файла.
Установка выполняется командой:
dnf install freeradius freeradius-utils
* мы установим не только сам freeradius, но и утилиты для работы с ним.
Разрешим автозапуск сервиса и запустим его:
systemctl enable radiusd
systemctl start radiusd
Открываем файл:
vi /etc/raddb/users
… и в самый низ добавляем:
test Cleartext-Password := «test123»
* мы создали пользователя test с паролем test123.
Перечитываем конфиг radius:
systemctl reload radiusd
Делаем тестовый запрос:
radtest test test123 localhost 1218 testing123
* где:
Мы должны увидеть ответ на подобие:
…Received Access-Accept Id 87 from 127.0.0.1:1812 to 127.0.0.1:56554 length 20
Access-Accept говорит нам о том, что пароль для пользователя test правильный. Сервер работает.
Как говорилось выше, мы рассмотрим процесс аутентификации с LDAP на базе FreeIPA. Необходимо выполнить настройку как на стороне последнего, так и сервера RADIUS.
Все, что от нас требуется — создать отдельную учетную запись со стандартными правами. Это делается в веб-интерфейсе управления FreeIPA.
Переходим в раздел Идентификация — Пользователи:
Справа кликаем по Добавить:
Заполняем поля и сохраняем настройки.
После создания учетной записи необходимо войти под ней через веб-интерфейс и поменять пароль:
Готово. Переходим к настройкам Freeradius.
Устанавливаем дополнение к Freeradius для работы с ldap:
yum install freeradius-ldap
Активируем установленный модуль:
ln -s /etc/raddb/mods-available/ldap /etc/raddb/mods-enabled/ldap
Открываем на редактирование файл ldap:
vi /etc/raddb/mods-available/ldap
Внесем некоторые настройки в конфигурацию:
ldap {
… server=»ldap://ipa01.admins24.ru» server=»ldap://ipa02.admins24.ru» … #port=389 port=636 … identity=»uid=freeradius,cn=users,cn=accounts,dc=admins24,dc=ru» password=freeradius135 … base_dn=»cn=users,cn=accounts,dc=admins24,dc=ru» … user { … base_dn=»${..base_dn}» … filter=»(uid=%{%{Stripped-User-Name}:-%{User-Name}})» … } … tls { … start_tls=yes … } … }
Теперь настроим Freeradius, чтобы он выполнял аутентификацию в LDAP.
vi /etc/raddb/sites-enabled/default
Снимаем комментарий для строк:
Auth-Type LDAP { ldap }
Открываем следующий файл:
В начало добавим строку:
DEFAULT Auth-Type = ldap
Перезапускаем сервис:
systemctl restart radiusd
Готово, можно проверить:
radtest ldap_user ldap_password localhost 1812 testing123
Мы должны увидеть что-то на подобие:
Sent Access-Request Id 115 from 0.0.0.0:33371 to 127.0.0.1:1812 length 79 User-Name = «ldap_user» User-Password = «ldap_password» NAS-IP-Address = 192.168.0.18 NAS-Port = 1812 Message-Authenticator = 0x00 Cleartext-Password = «ldap_password»Received Access-Accept Id 115 from 127.0.0.1:1812 to 127.0.0.1:33371 length 20
Если в процессе настройки у нас возникла ошибка, необходимо сначала просмотреть логи freeradius:
tail -f /var/log/radius/radius.log
Если в данном логе нет ничего интересного, то останавливаем работу freeradius:
systemctl stop radiusd
И запускаем его в режиме отладки:
radiusd -X
Состояние работы сервиса будет выведено на экран.
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies