Jump to content
  • ArcheRAWG
    ArcheRAWG

    Установка менеджера паролей BearPass

    На новой работе встал вопрос поднялся вопрос о том что все пароли хранятся у нашей команды у кого как. У кого в текстовых документах, у кого на облаке OneDrive в таблице, у кого вообще во всех местах подряд. Я же для своих паролей использую KeePassXC. Файл базы лежит на моём облаке Nextcloud и на телефоне установлено приложение KeePass for Android. Но когда встал а где мне взять пароль от чего-то - мне сообщили пароль у Васи. А Вася в отпуске и трубку не берёт. Вот собственно тогда и встал вопрос о том чтобы рабочие пароли как-то хранить централизованно, что бы у каждого из сотрудников был доступ и можно было в любой момент найти нужный пароль в независимости от того от чего он и кто за него отвечает. 
    Выбор того как хранить пароли, на самом деле достаточно велик: форков тогоже KeePass достаточно много. Посути KeePassXC сам является форком KeePass Save, если мне не изменяет память. Но у меня стояли конкретные цели: 
    1. Удобство хранения
    2. Запуск на любом устройстве
    3. Мобильная версия
    4. Шифрование
    5. Генератор паролей
    6. Проверка на то что пароль слит
    7. Бесплатен
    Были ещё требования, но они не критичны, и каждый из команды был готов от них отказаться, если приложение его устроит по параметрам указанным выше. Собственно выбор пал на два решения: Passbolt и BearPass. Толи из-за того что второй вариант был созвучен с beerpass, толи из-за того что это российская разработка, выбрали первым для тестирования его. Вот в этой статье я и расскажу как его установить. На самом деле ничего сложного в этом нет, и все делается просто. 
     

    Для установки "коробочного" решения на сервер Вам потребуется:

    1. PHP 8.4
    2. PostgreSQL 13 и выше
    3.Пакетный менеджер Composer

    Всё. Ну и конечно 2 ядра 2 гига на борту (рекомендуют 4 но нам хватает и 2)

    Предположим что у нас уже есть установленная Debian 12 и настроенная на удаленный доступ по SSH под root пользователем. Как это сделать я думаю найти не составит труда. А скачать саму ОС можно у меня в файлах

    Первым делом конечно же обновляем систему
     

    apt-get update && apt-get -y upgrade

    после чего перегружаемся 

    reboot

    далее добавляем пользователя из под которого будет всё работать, и в процессе из под него же мы будем всё настраивать, например www-data

    mkdir -p /var/www
    adduser --home /var/www/ www-data
    cp /etc/skel/.bashrc /var/www
    cp /etc/skel/.profile /var/www
    chown -R www-data:www-data /var/www
    usermod -s /bin/bash www-data

    Далее ставим мной ненавистный Git. Не люблю я его хоть это и прекрасная вещь

    apt install git

    Чтобы протестировать что всё установилось, т.к. git бывает что не работает, по крайней мере у меня, проверим его версию

    git --version

    Примерно должны получить следующее: 

    Цитата

    git version 2.39.5

    Далее установим php. Для этого подключим репозиторий

    apt install apt-transport-https lsb-release ca-certificates wget -y
    wget -O /etc/apt/trusted.gpg.d/php.gpg https://mirror.yandex.ru/mirrors/packages.sury.org/php/apt.gpg
    sh -c 'echo "deb https://mirror.yandex.ru/mirrors/packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
    apt update

    Ставим OpenSSL

    apt-get install openssl

    Ставим php версии 8.4. 

    Вот тут у меня кстати была ошибка. Толи РКН вновь дурковал, толи яндекс. Но в общем у меня не хотелось ничего ставиться. Мне пришлось прописывать ключ "-y" вконце и повторять установку несколько раз, по итогу всё удалось

    apt install php8.4 php8.4-{cli,curl,fpm,intl,mbstring,pgsql,zip,xml,bcmath,ldap}

    Установится всё что требуется для минимальной работы bearpass. Если необходимы будут какие-то тюненги, тут уже ставьте дополнительные модули сами. Мне достаточно было стандартной установки

    Дальше необходимо отредачить файлы конфигов, рекомендую редактировать оба: /etc/php/8.4/fpm/php.ini и /etc/php/8.4/cli/php.ini
     

    date.timezone = "Europe/Moscow" ; Или любая другая, необходимая для сервера
    include_path = "."
    error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
    display_errors = Off

    Если используем nano для редактирования, то просто ищем через "Ctrl + W", если какой-другой - то уже сами. Вообще, если я правильно помню, все параметры закомментированы, и достаточно просто в конец файлов добавить эти строки.

    Далее на необходимо в файле /etc/php/8.4/fpm/pool.d/www.conf проверить, что php-fpm запускается от ранее созданного пользователя (в нашем примере www-data)

    user = www-data
    group = www-data
    
    listen.owner = www-data
    listen.group = www-data

    После чего рестартим php-fpm

    service php8.4-fpm restart

    После устанавливаем composer. Его я тоже не люблю еще со времен roundcube, но не смотря на всё он удобен. 

    apt install wget
    wget -O composer-setup.php https://getcomposer.org/installer
    php composer-setup.php --install-dir=/usr/local/bin --filename=composer
    chmod +x /usr/local/bin/composer

    Теперь собственно переходим к установке nginx

    apt-get install nginx nginx-full

    И сразу после установки удаляем его дефолтные конфиги

    rm /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

    Далее в файле /etc/nginx/nginx.conf в секции раскомментировать) строку

    server_tokens off;

    Далее в файл /etc/nginx/sites-available/bearpass поместить содержимое

    upstream bp_fastcgi_backend {
      server unix:/run/php/php8.4-fpm.sock;
    }
    
    server {
      listen 80;
      
      server_name bearpass.ru;
      
      set $BP_ROOT /var/www/bearpass;
      
      include /var/www/bearpass/nginx.conf;
    }

    этого достаточно для работы. Изменить обязательно стоит только server_name. Остальное по желанию

    Активируем сайт

    ln -s /etc/nginx/sites-available/bearpass /etc/nginx/sites-enabled/bearpass

    Далее ставим PostgreSQL

    apt-get install postgresql

    и сразу же заходим под админом: по умолчанию это postgres

    su postgres

    после чего подключаемся к нему 

    psql

    и создаем пользователя с базой данных

    CREATE USER <username> WITH encrypted password '<password>';
    CREATE DATABASE <db_name> OWNER <username> ENCODING 'UNICODE';

    Прошу обратить внимание что имя пользователя, как и имя базы идёт без одинарных ковычек, а вот пароль с одинарными ковычками

    Далее можно установить Exim4, но для его нормальной работы потребуется DKIM и SPF. А это уже больше по настройке почтового сервера, поэтому в рамках этой статьи мы это не будет рассматривать. 
    В целом мы с окружением закончили. Этого достаточно для минимальной работы bearpass (так и подмывает его называть beerpass). Теперь перейдём непосредственно к установке самого приложения.

    Дальше настройка и установка будет производиться из под пользователя которого мы создали ранее а именно www-data

    su www-data

    далее клонируем репу с git с парольным менеджером

    git clone https://git.bearpass.ru/bear-pass /var/www/bearpass

    переходим в директорию 

    cd /var/www/bearpass

    копируем переменные окружения

    cp .env.example .env

    редактируем .env

    nano .env

    заполняем следующие параметры

    APP_URL - URL по которому будет открываться парольный менеджер
    DB_DATABASE - название базы данных
    DB_USERNAME - пользователь с доступом к базе данных
    DB_PASSWORD - пароль пользователя

    устанавливаем необходимые пакеты с помощью composer

    composer install --no-dev -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
    composer dump-autoload

    генерируем ключи

    php artisan key:generate
    php artisan encryption-key:generate

    выполняем миграции

    php artisan migrate --seed --no-interaction --force &&
    php artisan optimize:clear

    теперь нам нужно добавить записи в crontab, но так как мы сейчас находимся под пользователем www-data, нам это не удастся сделать, поэтому заходим под root

    su root

    редактируем crontab

    nano /etc/crontab

    добавив в него строчку

    * * * * * /usr/bin/php8.4 /var/www/bearpass/artisan schedule:run > /dev/null 2>&1

    теперь вновь возвращаемся под пользователя www-data

    su www-data

    и создаем пользователя с админскими правами

    php artisan make:username

    В ответ должен придти запрос на ввод почты и пароля. Они требуются для авторизации

    Дальше требуется настроить SSL сертификат, но мне для тестов он не нужен, поэтому я пропустил данный параметр. А вообще он так же необходим для нормальной работы менеджера. Почитать про установку и настройку SSL сертификата можно на сайте разработчиков.

    На этом собственно всё. Далее заходим под root

    su root

    на всякий случай рестартим nginx

    service nginx restart

    и можем пользоваться. 
    Да, для полноценной работы необходимо настроить и почту, и SSL и желательно бы прикупить лицензию, но для тестов этого вполне достаточно. Посмотреть, прикинуть, пощупать. И если приглянулось, то можно накатывать SSL и уже тогда можно полноценно пользоваться. 
    В общем как-то так. 




    User Feedback

    Recommended Comments

    There are no comments to display.


×
×
  • Create New...