Описание скрипта
Данный скрипт позволяет произвести миграцию учетных записей пользователей, а именно - захешировать пароль и поменять имя атрибута пароля на соответствующее хеш-функции.
Алгоритм работы скрипта
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
[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