Проблема с запуском FreeRADIUS как службы

Вопрос или проблема

У меня возникла проблема с запуском 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), и различия в окружении, что создаёт потенциальные точки отказа.

Пример

В приведенном примере пользователь указал две разные ситуации:

  1. Отладочный режим (radiusd -X) успешно принимает запрос с Access-Accept:

    • Было отправлено Access-Request, получен Access-Accept.
    • Это указывает на правильную конфигурацию FreeRADIUS и успешное соединение с LDAP сервером.
  2. Запуск через systemd приводит к ошибке Access-Reject:

    • Было отправлено Access-Request, получен Access-Reject.
    • Логи показывают ошибку соединения с LDAP сервером: "Can’t contact LDAP server".

Применение

На основе представленных данных, разберем возможные причины и шаги по их устранению:

  1. SELinux: Проблема решилась после разрешения доступа SELinux для FreeRADIUS. SELinux часто блокирует сетевые соединения, если не настроен должным образом, особенно для сервисов, работающих в автоматическом режиме через systemd.

    Применение: Проверьте статус SELinux и его политики:

    • Команда sestatus покажет текущий статус SELinux.
    • Для разрешения сетевых соединений FreeRADIUS выполните:
      setsebool -P nis_enabled 1
  2. Различия в окружении: Когда сервис запускается вручную и через systemd, используются различные переменные окружения, что может влиять на конфигурацию сети или доступ к ресурсам.

    Применение: Убедитесь, что в служебных файлах FreeRADIUS указаны актуальные параметры среды, такие как пути к конфигурационным файлам и файлам аутентификации.

  3. LDAP конфигурация: Разные настройки переменных LDAP в режимах работы. Может оказаться, что конфигурационные настройки для LDAP корректны в отладочном режиме, но не подходят для работы через systemd.

    Применение: Убедитесь, что файл конфигурации mods-enabled/ldap настроен с использованием параметров, подходящих для обеих ситуаций. Проверьте настройки подключения:

    • URI сервера LDAP.
    • Учетные данные для подключения.
    • Отключены ли ненужные TLS параметры, если они мешают подключению.
  4. 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 в отладочном режиме и при запуске как службы. Важно учитывать, что единообразие в настройках и учет всех факторов безопасности могут сильно повлиять на результат.

Оцените материал
Добавить комментарий

Капча загружается...