Categories: Шпаргалки

Настройка Freeradius в связке с FreeIPA на Rocky Linux

Используемые термины: Freeradius , FreeIPA .

Так как Rocky Linux реализован на базе CentOS, данная инструкция подойдет и для последнего. Предполагается, что у нас уже настроен FreeIPA, в противном случае, читаем также инструкцию Установка и использование FreeIPA на CentOS .

Подготовка сервера

Для корректной работы Freeradius с сервером LDAP необходимо настроить время, брандмауэр и отключить SELinux.

1. Время

Устанавливаем сервис для синхронизации времени и запускаем его:

yum install chrony

systemctl enable chronyd —now

Задаем часовой пояс:

timedatectl set-timezone Europe/Moscow

* в данном примере задается часовой пояс по московскому времени. Полный перечень вариантов можно посмотреть командой timedatectl list-timezones .

2. Firewalld

Создаем правило для разрешения сервиса radius (порты 1812 и 1813):

firewall-cmd —permanent —add-service=radius

firewall-cmd —reload

3. SELinux

В нашей инструкции мы просто отключим SELinux

setenforce 0

sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config

* при желании настроить SELinux может оказаться полезной инструкция Настройка SELinux в CentOS .

4. Имя сервера

Задаем имя нашему серверу:

hostnamectl set-hostname freeradius.remontka.com

Установка и настройка Freeradius

Установим сам 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

* где:

  • test — учетная запись, которую мы проверяем.
  • test123 — пароль от учетной записи test.
  • localhost — сервер, к которому мы обращаемся (в нашем случае, локальный).
  • 1812 — порт, на котором слушает запросы freeradius.
  • testing123 — пароль для подключения клиентом к серверу radius. Данный пароль создается по умолчанию для локальных запросов.

Мы должны увидеть ответ на подобие:


Received Access-Accept Id 87 from 127.0.0.1:1812 to 127.0.0.1:56554 length 20

Access-Accept говорит нам о том, что пароль для пользователя test правильный. Сервер работает.

Freeradius + FreeIPA

Как говорилось выше, мы рассмотрим процесс аутентификации с LDAP на базе FreeIPA. Необходимо выполнить настройку как на стороне последнего, так и сервера RADIUS.

Подготовка LDAP

Все, что от нас требуется — создать отдельную учетную запись со стандартными правами. Это делается в веб-интерфейсе управления FreeIPA.

Переходим в раздел Идентификация Пользователи :

Справа кликаем по Добавить :

Заполняем поля и сохраняем настройки.

После создания учетной записи необходимо войти под ней через веб-интерфейс и поменять пароль:

Готово. Переходим к настройкам Freeradius.

Настройка 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

}

}

* где:

  • server — перечисление наших серверов FreeIPA. Если их несколько, создаем несколько строчек.
  • port — порт, на котором слушает наш LDAP. Как правило, это 389 или 636 с TLS.
  • identity — путь до учетной записи пользователя, под которой мы будем подключаться к Freeradius. Это та учетная запись, которую мы создали по инструкции выше.
  • password — пароль для учетной записи, которую мы используем в опции identity.
  • base_dn — базовый путь в ldap для поиска объектов.
  • в секции user проверяем, чтобы значения для двух параметров base_dn и filter были такие.
  • start_tls — задаем, если используем TLS (порт 636). Иначе, оставляем закомментированным.

Теперь настроим 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

Состояние работы сервиса будет выведено на экран.

admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

2 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

2 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

2 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

2 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

2 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

2 месяца ago