Менеджер паролей pass
Pass — утилита, которая используется для шифрования паролей. Утилита может пригодиться при настройке файла .env
для скрипта get_data.sh
, чтобы передавать пароли в зашифрованном виде при обращении к БД по сети.
В этом разделе приведена инструкция для установки и настройки утилиты pass.
Установка для ОС CentOS
Есть два варианта установки pass:
- Машина, на которую устанавливается утилита, имеет выход в интернет.
- Выход в интернет отсутствует.
Способ 1 ― интернет есть
Поскольку утилита pass не входит в состав стандартных репозиториев ОС CentOS, для ее установки необходимо подключение дополнительного репозитория EPEL (Extra Packages for Enterprise Linux) ― открытое бесплатное хранилище пакетов от Fedora.
В версиях CentOS ниже 9 версии иногда требуется ввести следующие команды для обеспечения работы установщика пакетов yum:
sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*_
sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*_
sudo dnf update -y_
- Установка дополнительного репозитория:
sudo yum install epel-release
- Установка pass:
sudo yum install pass_
Система отобразит предупреждение о том, что потребуется установка дополнительных пакетов. Согласитесь с ним (y
).
Пакет будет установлен со всеми необходимыми зависимостями.
Способ 2 ― интернет отсутствует
Разверните на стенде виртуальную машину с необходимой версией CentOS. В данном случае это CentOS 8.5.2111.
Версию ОС можно посмотреть командой:
cat /etc/os-release_
Повторите шаги, описанные для Способа 1:
sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*_
sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*_
sudo dnf update -y_
- Установка дополнительного репозитория:
sudo yum install epel-release
Перечень пакетов, необходимых для установки утилиты pass:
- qrencode-libs-3.4.4-5.el8.x86_64.rpm
- qrencode-3.4.4-5.el8.x86_64.rpm
- qrencode-libs-0.13-8.el8.x86_64.rpm
- git-core-2.27.0-1.el8.x86_64.rpm
- pass-1.7.3-7.el8.noarch.rpm
Для скачивания этих пакетов необходима утилита yumdownloader, которая входит в пакет yum-utils.
Установите пакет yum-utils:
sudo yum install yum-utils_
После чего скачайте вышеперечисленные пакеты в текущий каталог:
sudo yumdownloader --resolve qrencode-libs_
sudo yumdownloader --resolve tree_
sudo yumdownloader --resolve pass_
Отправьте скачанные пакеты адресату, загрузите их на машину Idea Hub без выхода в интернет и установите следующими командами:
sudo rpm -Uvh qrencode-libs-3.4.4-5.el8.x86_64.rpm_
sudo rpm -Uvh qrencode-3.4.4-5.el8.x86_64.rpm_
sudo rpm -Uvh xclip-0.13-8.el8.x86_64.rpm_
sudo rpm -Uvh git-core-2.27.0-1.el8.x86_64.rpm_
sudo rpm -Uvh tree-1.7.0-15.el8.x86_64.rpm_
sudo rpm -Uvh pass-1.7.3-7.el8.noarch.rpm_
Настройка pass
В данном примере рассматривается настройка утилиты pass от пользователя cron_fetch, который является стандартным при установке ПО Idea Hub.
Настройку pass для конкретного пользователя нельзя производить при переходе под этого пользователя через команду su
. Для корректной настройки pass обязательным условием является вход в систему под логином пользователя, который будет использовать утилиту. В данном примере это пользователь cron_fetch.
Если зайти под пользователем не представляется возможным, кроме как через команду su
, то при генерации GPG-ключа вы столкнётесь с ошибкой доступа. Потому что утилита будет пытаться обратиться к оригинальному пользователю, запустившему терминал.
Перед генерацией GPG-ключа введите команду screen
.
Зайдите в систему под пользователем cron_fetch.
Создайте приватный и публичный ключи:
gpg --full-generate-key_
- RSA & RSA
- 4096
- 0 (0 - бессрочно, 10n - 10 дней, 10w - 10 недель, 10m - 10 месяцев, 3y - 3 года)
- Real name: cron_fetch
После заполнения всех необходимых полей установщик дважды запросит установку мастер-пароля для доступа к хранилищу.
Просмотреть свои ключи можно командой:
gpg --list-secret-keys --keyid-format LONG_
Пример вывода:
sec rsa4096/53703779705153A4 2024-06-18 [SC]
72812BA187831602F3CC881C53703779705153A4
uid [ абсолютно ] cron_fetch
ssb rsa4096/8F30EE1D486DCD1E 2024-06-18 [E]
Используя свой GPG-ключ ID, можно инициировать свое хранилище:
pass init 53703779705153A4_
Пример вывода:
Password store initialized for 53703779705153A4
Теперь можно помещать пароли в хранилище паролей RSA4096-encrypted.
Пример для пользователя postgres:
pass insert postgres_
Будет дважды запрошен пароль для пользователя postgres.
Просмотреть список пользователей, для которых в хранилище сохранены пароли, можно командой:
pass ls_
Для просмотра пароля в cleartext:
pass show postgres_
Система запросит мастер-пароль и покажет пароль для пользователя postgres.
Настройка интеграции pass с Idea Hub
Для того чтобы Idea Hub при обращении к серверу БД использовал хранилище паролей и передавал по сети пароли в зашифрованном виде, обновите конфигурационный файл сервера Idea Hub.
Для этого добавьте в файл /var/www/ideahub/scripts/orc-data-fetch/.env
следующие настройки (для БД LTOOLS):
USE_PASS=1
DB_PASS_LTOOLS_PROD=postgres