Как разрешить обычным пользователям, а не администраторам, менять пароль в FreeRADIUS

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

Мне удалось настроить сервер FreeRadius, но я хотел бы, чтобы пользователи без прав администратора могли изменять свои пароли непосредственно через FreeRadius, а не через Active Directory или стороннее приложение.

Ответ или решение

Для того чтобы разрешить обычным пользователям изменять свои пароли на сервере FreeRADIUS без необходимости доступа администратора, можно использовать несколько подходов. Мы рассмотрим наиболее распространённый метод, который позволяет использовать протокол RADIUS вместе с клиентом для изменения пароля.

Шаг 1: Установка и настройка FreeRADIUS

Перед тем как приступить к конфигурации, убедитесь, что сервер FreeRADIUS установлен и работает корректно.

  1. Установите FreeRADIUS:

    sudo apt-get update
    sudo apt-get install freeradius
  2. Проверьте статус FreeRADIUS:

    sudo systemctl status freeradius

Шаг 2: Настройка базы данных

Для сохранения информации о пользователях и паролях необходимо настроить базу данных. Например, можно использовать SQLite, MySQL или другую систему управления базами данных.

  1. Создайте базу данных и таблицу для пользователей:
    Пример на MySQL:

    CREATE DATABASE radius;
    USE radius;
    CREATE TABLE radusers (
       username VARCHAR(32) NOT NULL,
       password VARCHAR(32) NOT NULL,
       primary key (username)
    );
  2. Добавьте пользователя в таблицу:

    INSERT INTO radusers (username, password) VALUES ('user1', 'password1');

Шаг 3: Конфигурация FreeRADIUS для использования базы данных

  1. Отредактируйте файл конфигурации базы данных:
    Откройте файл /etc/freeradius/3.0/mods-available/sql и убедитесь, что он настроен для подключения к вашей базе данных. Пример для MySQL:

    driver = "rlm_sql_mysql"
    dialect = "mysql"
    server = "localhost"
    login = "your_db_user"
    password = "your_db_password"
    radius_db = "radius"
  2. Активируйте модуль SQL:

    cd /etc/freeradius/3.0/mods-enabled
    ln -s ../mods-available/sql .

Шаг 4: Реализация изменения пароля

  1. Настройте функцию изменения пароля:
    Для того чтобы пользователи могли изменять свои пароли, вам потребуется использовать функцию обработки запросов в конфигурации.

  2. Создайте файл для обработки запросов:
    Создайте новый файл, например change_password, в директории /etc/freeradius/sites-available/. В этом файле добавьте следующий код:

    # Обработка изменения пароля
    change_password {
       update request {
           User-Name := "%{User-Name}"
           User-Password := "%{User-Password}"
           New-Password := "%{New-Password}"
       }
       # Логика обновления пароля в базе данных
       sql {
           update radusers set password='%{New-Password}' where username='%{User-Name}';
           ...
       }
    }
  3. Активируйте обработчик изменений пароля:
    Измените файл /etc/freeradius/sites-enabled/default и добавьте ссылку на ваш новый модуль change_password в секцию authorize и authenticate.

Шаг 5: Настройка клиента для отправки запросов

  1. Создайте HTTP API для пользователей:
    Для предоставления пользователям возможности отправлять запросы на изменение пароля, вам нужен клиент (например, веб-приложение или командная строка), который будет отправлять запросы RADIUS с нужными параметрами.

  2. Пример запроса на изменение пароля:

    radtest user1 oldpassword localhost 0 testing123
    radtest user1 newpassword localhost 0 testing123

Шаг 6: Проверка и тестирование

  1. Перезапустите FreeRADIUS:
    Убедитесь, что все изменения были сохранены, и перезапустите сервер FreeRADIUS:

    sudo systemctl restart freeradius
  2. Проверьте работу изменения пароля:
    Выполните тестовые команды или используйте ваше веб-приложение, чтобы убедиться, что пользователи могут успешно изменять свои пароли.

Заключение

В этом руководстве мы рассмотрели, как разрешить обычным пользователям изменять свои пароли на сервере FreeRADIUS. Имейте в виду, что важно обеспечить безопасность передачи паролей (например, использовать HTTPS для веб-приложения) и следить за аудитом изменений паролей. Используйте это решение с умом, учитывая специфику вашего окружения.

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

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