Менеджер паролей 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