Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Описание скрипта

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

Алгоритм работы скрипта

1. Получение списка пользователей из базы данных radius, которые соответствуют указанной в настройках категории и имеют

только не хешированный пароль.

2. Хеширование пароля пользователей в базе данных radius по указанной хеш-функции.

3. Сохранение результатов работы в файл

Конфигурационный файл application.conf

# logging
- `level` уровень логирования (возможные варианты: "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL")

- `filename` название файла, в который будут записываться логи

# mysql

- `host` хост, на котором установлен mysql

- `port` порт mysql

- `username` имя пользователя

- `password` пароль пользователя

- `charset_radius` кодировка базы данных radius

# settings

- `hash_function` хеш-функция, по которой необходимо зашифровать пароли

- `category` категория пользователей, которым нужно зашифровать пароли

- `print_passwords` True - вывести значения паролей в результирующий файл, False - не выводить.

**Примечание**: если выставлен уровень логирования `DEBUG`, будут залогированы пароли пользователей в том числе!


Подготовка к запуску

**Внимание!** Перед запуском скрипта рекомендуется сделать дамп базы данныx radius!

Сделать это можно командой:

$ sudo mysqldump -uroot -proot radius > radius_dump.sql


  • Для запуска скриптов должен быть установлен python3.9
  • Для запуска скриптов необходимо установить зависимости. Это можно сделать при помощи команды:
$ sudo pip3 install -r requirements.txt
**Внимание!** Для запуска в ОС Ubuntu 22 необходимо добавить следующие строки в файл `/etc/ssl/openssl.cnf`:
[provider_sect]
default = default_sect
legacy = legacy_sect

[default_sect]
activate = 1

[legacy_sect]
activate = 1


Это необходимо, так как некоторые алгоритмы хеширования были отключены, как устаревшие. После запуска скрипта можно  вернуть файл `/etc/ssl/openssl.cnf` в изначальное состояние, удалив добавленные ранее строки.

Запуск скрипта

$ python3.9 password_hasher.py


Описание результирующего csv файла

Результирующий файл представляет собой таблицу, в которой у каждого пользователя есть статус смены пароля. Благодаря
этому можно наглядно ознакомиться с результатами выполнения скрипта.

`Username` Имя пользователя.

`Domain` Домен пользователя.

`Password` Пароль в виде Cleartext-Password (если настройка `settings.print_password: True`).

`HashPassword` Пароль в захешированном виде (если настройка `settings.print_password: True`).

`Status` `success` - пароль успешно захеширован, `failed` - при хешировании пароля что-то пошло не так.

В зависимости от настройки `settings.print_passwords` в результирующем файле `result_hash_passwords_datetime.csv` будут выведены значения паролей.

Скрипт с описанием доступен в архиве: hashed_password_converter.zip

  • Нет меток