Менеджер паролей pass

Pass — утилита, которая используется для шифрования паролей. Утилита может пригодиться при настройке файла .env для скрипта get_data.sh, чтобы передавать пароли в зашифрованном виде при обращении к БД по сети.

В этом разделе приведена инструкция для установки и настройки утилиты pass.

Установка для ОС CentOS

Есть два варианта установки pass:

  1. Машина, на которую устанавливается утилита, имеет выход в интернет.

  2. Выход в интернет отсутствует.

Способ 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.

Перед генерацией GPG-ключа введите команду screen.

Зайдите в систему под пользователем cron_fetch.

Создайте приватный и публичный ключи:

gpg --full-generate-key_
  1. 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

Last updated

Was this helpful?