Используемые термины: Freeradius , FreeIPA .
Так как Rocky Linux реализован на базе CentOS, данная инструкция подойдет и для последнего. Предполагается, что у нас уже настроен FreeIPA, в противном случае, читаем также инструкцию Установка и использование FreeIPA на CentOS .
Подготовка системы
Базовая настройка Freeradius
Настройка аутентификации через LDAP
Подготовка FreeIPA
Настройка Freeradius
Диагностика проблем
Для корректной работы 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.remontka.com
Установим сам 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 1812 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.remontka.com»
server=»ldap://ipa02.remontka.com»
…
#port=389
port=636
…
identity=»uid=freeradius,cn=users,cn=accounts,dc=remontka,dc=ru»
password=freeradius135
…
base_dn=»cn=users,cn=accounts,dc=remontka,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
}
Открываем следующий файл:
vi /etc/raddb/users
В начало добавим строку:
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
Состояние работы сервиса будет выведено на экран.
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…