Менеджер паролей pass
Pass — утилита, которая используется для шифрования паролей. Утилита может пригодиться при настройке файла .env для скрипта get_data.sh, чтобы передавать пароли в зашифрованном виде при обращении к БД по сети.
В этом разделе приведена инструкция для установки и настройки утилиты pass.
Выбор метода установки для ОС CentOS
В зависимости от сетевых ограничений вашей инфраструктуры, выберите подходящий сценарий установки:
Вариант 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.rpmqrencode-3.4.4-5.el8.x86_64.rpmqrencode-libs-0.13-8.el8.x86_64.rpmgit-core-2.27.0-1.el8.x86_64.rpmpass-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.
При настройке утилиты (в данном примере для пользователя cron_fetch)
необходимо придерживаться строгих правил: 1. Настройку нельзя проводить,
переключившись на пользователя через команду su. Вы должны зайти в систему
под логином того пользователя, который будет использовать утилиту. 2. Если
использовать su, при генерации ключей возникнет ошибка доступа, так как
система попытается обратиться к оригинальному пользователю, запустившему
терминал.
Перед генерацией GPG-ключа введите команду screen.
Зайдите в систему под пользователем cron_fetch.
Создайте приватный и публичный ключи:
gpg --full-generate-key_- RSA & RSA
40960(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