Вопрос или проблема
У меня возникла проблема с запуском FreeRADIUS как службы. Я использую Rocky Linux 9.5 и FreeRADIUS 3.0.21.
Когда я запускаю FreeRADIUS в режиме отладки с помощью #radiusd -X и тестирую запрос, я получаю подтверждение:
[root@wserver-11 ~]# radtest ldapadm pass 127.0.0.1 0 testing123
Sent Access-Request Id 121 from 0.0.0.0:38254 to 127.0.0.1:1812 length 77
User-Name = "ldapadm"
User-Password = "pass"
NAS-IP-Address = 10.70.0.21
NAS-Port = 0
Cleartext-Password = "pass"
Received Access-Accept Id 121 from 127.0.0.1:1812 to 127.0.0.1:38254 length 38
Message-Authenticator = 0xa479df5b645e6b6b55227a87440fea0d
Но когда я запускаю службу с помощью systemctl start radiusd.service и пробую тот же запрос, радиус отвечает ошибкой:
[root@wserver-11 ~]# radtest ldapadm pass 127.0.0.1 0 testing123
Sent Access-Request Id 164 from 0.0.0.0:56668 to 127.0.0.1:1812 length 77
User-Name = "ldapadm"
User-Password = "pass"
NAS-IP-Address = 10.70.0.21
NAS-Port = 0
Cleartext-Password = "pass"
Received Access-Reject Id 164 from 127.0.0.1:1812 to 127.0.0.1:56668 length 38
Message-Authenticator = 0xefdafb7580438b9991f6ed5c086e41d6
(0) -: Expected Access-Accept got Access-Reject
В журнале вижу только следующее:
Mon Feb 24 16:58:09 2025 : Error: rlm_ldap (ldap): Bind with uid=ldapadm,cn=users,dc=site,dc=es to ldap://url:port failed: Can't contact LDAP server
Mon Feb 24 16:58:09 2025 : Error: rlm_ldap (ldap): Opening connection failed (0)
Mon Feb 24 16:58:09 2025 : Auth: (0) Invalid user: [ldapadm] (from client localhost port 0)`
Странно, что FreeRADIUS работает корректно в режиме отладки, но в режиме службы нет.
Кто-нибудь знает похожий случай?
Можете помочь мне, пожалуйста?
С уважением.
Для запуска через systemctl я изменил в разделе pool в ldap, установив start = 0, и в tls, установив start_tls = no.
Я нашёл проблему. Модуль SELinux блокировал трафик. Я разрешил FreeRADIUS, и он заработал.
Ответ или решение
При возникновении проблем с запуском FreeRADIUS в качестве сервиса на операционной системе Rocky Linux 9.5 с версией FreeRADIUS 3.0.21, важно учитывать несколько ключевых аспектов, чтобы эффективно диагностировать и решать возникшие трудности. Проанализируем предложенную ситуацию и найдем наиболее вероятные причины проблемы, используя методику TEA (Теория, Пример, Применение).
Теория
FreeRADIUS — это одно из распространенных решений для реализации протокола удаленной аутентификации, авторизации и учета (AAA). Он широко используется в корпоративных сетях для управления доступом к ресурсам. Работа FreeRADIUS в отладочном режиме (radiusd -X
) позволяет увидеть подробный вывод о ходе обработки запросов, что облегчает диагностику проблем. Однако запуск в качестве системного сервиса через systemd
может использовать другую конфигурацию, ограничения безопасности (например, SELinux), и различия в окружении, что создаёт потенциальные точки отказа.
Пример
В приведенном примере пользователь указал две разные ситуации:
-
Отладочный режим (
radiusd -X
) успешно принимает запрос с Access-Accept:- Было отправлено Access-Request, получен Access-Accept.
- Это указывает на правильную конфигурацию FreeRADIUS и успешное соединение с LDAP сервером.
-
Запуск через
systemd
приводит к ошибке Access-Reject:- Было отправлено Access-Request, получен Access-Reject.
- Логи показывают ошибку соединения с LDAP сервером: "Can’t contact LDAP server".
Применение
На основе представленных данных, разберем возможные причины и шаги по их устранению:
-
SELinux: Проблема решилась после разрешения доступа SELinux для FreeRADIUS. SELinux часто блокирует сетевые соединения, если не настроен должным образом, особенно для сервисов, работающих в автоматическом режиме через
systemd
.Применение: Проверьте статус SELinux и его политики:
- Команда
sestatus
покажет текущий статус SELinux. - Для разрешения сетевых соединений FreeRADIUS выполните:
setsebool -P nis_enabled 1
- Команда
-
Различия в окружении: Когда сервис запускается вручную и через
systemd
, используются различные переменные окружения, что может влиять на конфигурацию сети или доступ к ресурсам.Применение: Убедитесь, что в служебных файлах FreeRADIUS указаны актуальные параметры среды, такие как пути к конфигурационным файлам и файлам аутентификации.
-
LDAP конфигурация: Разные настройки переменных LDAP в режимах работы. Может оказаться, что конфигурационные настройки для LDAP корректны в отладочном режиме, но не подходят для работы через
systemd
.Применение: Убедитесь, что файл конфигурации
mods-enabled/ldap
настроен с использованием параметров, подходящих для обеих ситуаций. Проверьте настройки подключения:- URI сервера LDAP.
- Учетные данные для подключения.
- Отключены ли ненужные TLS параметры, если они мешают подключению.
-
Firewall настройки: Firewall может блокировать соединения, необходимые для правильной работы FreeRADIUS.
Применение: Проверьте настройки фаерволла:
- Разрешите порты, используемые FreeRADIUS (1812/UDP для аутентификации и 1813/UDP для учета).
- Команды для проверки и настройки:
firewall-cmd --list-all firewall-cmd --add-port=1812/udp --permanent firewall-cmd --add-port=1813/udp --permanent firewall-cmd --reload
Эти шаги должны помочь в решении проблемы, связанной с различным поведением FreeRADIUS в отладочном режиме и при запуске как службы. Важно учитывать, что единообразие в настройках и учет всех факторов безопасности могут сильно повлиять на результат.