Passbolt Password Manager installeren op Rocky Linux

Passbolt is een gratis en open-source wachtwoordbeheerder gebaseerd op PHP, MySQL, en OpenPGP. Het is een zelf gehoste applicatieserver, je kunt het op je server installeren. Passbolt is in de eerste plaats ontworpen voor teams, maar je kunt het ook als persoonlijke wachtwoordbeheerder gebruiken.

Passbolt is gebouwd op OpenPGP en heeft een uitbreidbare API. Aan de client-kant kun je de Passbolt browserextensie gebruiken, die voortbouwt op OpenPGP.js voor versleutelingsfunctionaliteit. Aan de server-kant gebruikt Passbolt de GnuPG PHP uitbreiding en openpgp-php om sleutelvalidatie en gebruikersauthenticatie uit te voeren. Passbolt gebruikt het GPGAuth protocol voor gebruikersauthenticatie.

Vereisten

In dit artikel leer je hoe je Passbolt self-hosted wachtwoordbeheerder op de Rocky Linux server installeert. Je zult Passbolt installeren met PHP 7.4, MariaDB server, en Nginx webserver.

Voor dit voorbeeld gebruiken we de volgende server gegevens:

  • Besturingssysteem: Rocky Linux 8.4 (green obsidian)
  • IP adres: 192.168.1.10
  • Domeinnaam, in dit voorbeeld gebruik ik: https://pass.example.io

Laten we nu de Passbolt installatie starten.

Afhankelijkheden van pakketten installeren

Eerst voeg je nieuwe repositories toe en installeer je enkele afhankelijkheden van pakketten op het Rocky Linux systeem.

1. Voer het volgende commando uit om de ‘PowerTools’ repository in te schakelen en de Extra Packages for Enterprise Linux (EPEL) repository te installeren.

sudo dnf config-manager --set-enabled powertools
sudo dnf install epel-release -y

2. Voer het volgende commando uit om de PHP 7.4 repository in te schakelen.

sudo dnf module enable php:7.4 -y

3. Installeer vervolgens PHP-FPM, MariaDB, Nginx, en enkele aanvullende pakketten met het onderstaande DNF commando.

sudo dnf install -y nginx mariadb-server mariadb php php-intl php-gd php-mysqlnd php-pear php-devel php-mbstring php-fpm php-json php-ldap gcc gpgme gpgme-devel git policycoreutils-python-utils unzip haveged make gcc

4. Nadat alle installatie voltooid is, voer je het volgende commando uit om het PHP composer installer script te downloaden.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Voer nu weer het volgende commando uit om de PHP composer op de systeembrede omgeving te installeren.

php composer-setup.php
sudo mv composer.phar /usr/bin/composer

Controleer het PHP composer commando zoals hieronder.

sudo -u nginx composer --version

Je krijgt een soortgelijke uitvoer als hieronder.

Composer version 2.1.12 2021-11-09 16:02:04

5. Installeer vervolgens de GnuPG PHP Extensions uit de PHP Extension Community Library (PECL) repository.

pecl install gnupg

Schakel daarna de GnuPG PHP Extensie in met het volgende commando.

echo "extension=gnupg.so" > /etc/php.d/gnupg.ini

6. Start nu enkele diensten en schakel ze in met het onderstaande systemctl commando.

sudo systemctl enable --now nginx
sudo systemctl enable --now mariadb
sudo systemctl enable --now php-fpm
sudo systemctl enable --now haveged

Nu heb je de installatie van pakketten afhankelijkheden voor Passbolt voltooid.

MariaDB en PHP-FPM instellen

In deze stap stel je het MariaDB root wachtwoord en de PHP-FPM dienst in.

1. Voer het volgende commando uit om het MariaDB root wachtwoord in te stellen.

mysql_secure_installation

Typ een nieuw sterk wachtwoord voor de MariaDB root gebruiker en herhaal, typ dan‘Y’ om akkoord te gaan voor alle MariaDB configuraties.

2. Bewerk vervolgens het‘/etc/php.ini‘ configuratiebestand met nano editor.

nano /etc/php.ini

Haal het commentaar weg bij de optie ‘date.timezone’ en verander de waarde met de tijdzone van je server.

date.timezone = Europe/Paris

Sla de configuratie op en sluit af.

3. Bewerk de PHP-FPM configuratie‘/etc/php-fpm.d/www.conf‘ met nano editor.

nano /etc/php-fpm.d/www.conf

Verander standaard gebruiker en groep voor PHP-FPM in‘nginx‘.

user = nginx
group = nginx

Haal het commentaar weg bij‘listen.owner‘ en‘listen.group‘, en verander de waarde in gebruiker‘nginx‘.

listen.owner = nginx
listen.group = nginx

Sla de configuratie op en sluit af.

Pas nu de nieuwe PHP-FPM configuratie toe door de PHP-FPM dienst opnieuw te starten met het onderstaande systemctl commando.

sudo systemctl restart php-fpm

En je hebt de basis configuratie van PHP-FPM voltooid en een nieuw wachtwoord voor de MariaDB root gebruiker aangemaakt.

Maak een nieuwe databank voor Passbolt

Om een nieuwe database voor de Passbolt installatie te maken, log je in op de MariaDB shell met het‘mysql‘ commando hieronder.

mysql -u root -p

1. Maak een nieuwe database ‘passdb’ met de volgende query.

CREATE DATABASE passdb;

2. Verleen alle rechten op de database‘passdb‘ aan de nieuwe gebruiker. De volgende query maakt automatisch een nieuwe MariaDB gebruiker‘passbolt‘.

GRANT ALL ON passdb.* to [email protected]ost IDENTIFIED BY 'PassboltdbPass';

3. Verleen alle tabellen opnieuw privileges.

FLUSH PRIVILEGES;

Typ nu‘EXIT‘ en druk op‘Enter‘ om uit te loggen uit de MariaDB shell.

Maak een nieuwe database passbolt

Ga naar de volgende stap om de Passbolt installatie te starten.

Download Passbolt en installeer PHP afhankelijkheden

Voor deze stap download je de Passbolt broncode naar je server en installeer je de PHP afhankelijkheden met de PHP composer.

1. Verander de huidige werkdirectory in ‘/var/www’ en kloon de Passbolt broncode met het commando zoals hieronder.

cd /var/www/
git clone https://github.com/passbolt/passbolt_api.git passbolt

De passbolt installatie is ‘/var/www/passbolt’.

2. Verander het eigendom van de Passbolt installatiedirectory in gebruiker‘nginx‘.

sudo chown -R nginx:nginx /var/www/passbolt

3. Ga naar de Passbolt installatiedirectory en installeer de PHP afhankelijkheden met het PHP composer commando. En let erop dat je het PHP composer commando uitvoert als gebruiker‘nginx‘.

cd /var/www/passbolt
sudo -u nginx composer install --no-dev

Als de installatie van alle PHP afhankelijkheden voltooid is, ga je naar de volgende stap om de GPG sleutel te genereren.

Genereer GPG sleutel voor server

In deze stap genereer je een nieuwe GPG sleutel voor de Passbolt server.

De huidige PHP uitbreiding openpgp-php en GnuPG PHP ondersteunen nog steeds geen passphrases, dus je maakt een nieuwe GPG sleutel zonder passphrase.

1. Om de GPG sleutel te genereren, voer je het onderstaande gpg commando uit.

gpg --gen-key

Typ je naam en e-mail adres, en gebruik geen passphrase.

gpg (GnuPG) 2.2.20; Copyright (C) 2020 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Note: Use "gpg --full-generate-key" for a full featured key generation dialog.

GnuPG needs to construct a user ID to identify your key.

Real name: johndoe
Email address: [email protected]
You selected this USER-ID:
    "johndoe <[email protected]>"

Change (N)ame, (E)mail, or (O)kay/(Q)uit? O
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: key 14F31ED1FBEBAD9A marked as ultimately trusted
gpg: revocation certificate stored as '/root/.gnupg/openpgp-revocs.d/BCD52DF829FF8F9408A2F1B214F31ED1FBEBAD9A.rev'
public and secret key created and signed.

pub   rsa2048 2021-11-16 [SC] [expires: 2023-11-16]
      BCD52DF829FF8F9408A2F1B214F31ED1FBEBAD9A
uid                      johndoe <[email protected]>
sub   rsa2048 2021-11-16 [E] [expires: 2023-11-16]

Noteer ook de vingerafdruk van je nieuwe sleutel. Voor dit voorbeeld is de vingerafdruk van de sleutel‘BCD52DF829FF8F9408A2F1B214F31ED1FBEBAD9A‘.

2. Exporteer vervolgens de GPG sleutel naar de passbolt installatiedirectory‘/var/www/passbolt/config/gpg/‘.

gpg --armor --export-secret-keys [email protected] > /var/www/passbolt/config/gpg/serverkey_private.asc
gpg --armor --export [email protected] > /var/www/passbolt/config/gpg/serverkey.asc

Bij dit punt moet je een notitie maken van je GPG sleutelinformatie, zoals hieronder.

  • Vingerafdruk: BCD52DF829FF8F9408A2F1B214F31ED1FBEBAD9A
  • E-mail: [email protected]
  • Openbare sleutel: serverkey.asc
  • Private sleutel: serverkey_private.asc

3. Vervolgens moet je de GNUPG directory voor de gebruiker nginx genereren met het volgende commando.

sudo su -s /bin/bash -c "gpg --list-keys" nginx

Je ziet een soortgelijke uitvoer als hieronder.

gpg: directory '/var/lib/nginx/.gnupg' created
gpg: keybox '/var/lib/nginx/.gnupg/pubring.kbx' created
gpg: /var/lib/nginx/.gnupg/trustdb.gpg: trustdb created

Nu heb je de GPG sleutelconfiguratie voor Passbolt voltooid. Ga naar de volgende stap voor de Passbolt configuratie.

Configureren van Passbolt en Nginx Serverblokken

In deze stap configureer je de domeinnaam voor de Passbolt installatie, de database, en de GPG sleutel.

Verander, voor je begint, je werkdirectory in de ‘/var/www/passbolt’ directory.

export PASSBOLT=/var/www/passbolt/
cd $PASSBOLT

1. Kopieer de standaard configuratie naar de ‘passbolt.php’, bewerk hem dan met nano editor.

cp config/passbolt.default.php config/passbolt.php
nano config/passbolt.php

Verander de‘fullBaseUrl‘ optie met je Passbolt domeinnaam installatie. Voor dit voorbeeld is dat ‘https://pass.example.io’

    'App' => [
        // comment

        'fullBaseUrl' => 'https://pass.example.io',
        
        // comment..
    ],

Verander de configuratie van je database met je MariaDB gebruiker en wachtwoord hieronder.

    // Database configuration.
    'Datasources' => [
        'default' => [
            'host' => 'localhost',
            //'port' => 'non_standard_port_number',
            'username' => 'passbolt',
            'password' => 'PassboltdbPass',
            'database' => 'passdb',
        ],
    ],

Kopieer en plak je GPG vingerafdruk en maak de ‘public’ en ‘private’ opties oncommentaar.

        'gpg' => [
            //
            // COMMENT REMOVED
            //
            'serverKey' => [
                // Server private key fingerprint.
                'fingerprint' => '38E3736DD02860F8CBA57BB99C8B82A2C3A6959F',
                'public' => CONFIG . 'gpg' . DS . 'serverkey.asc',
                'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',
            ],

Sla de configuratie op en sluit af.

2. Maak vervolgens met nano editor de nieuwe Nginx server blokken configuratie‘/etc/nginx/conf.d/passbolt.conf‘.

nano /etc/nginx/conf.d/passbolt.conf

Kopieer en plak de volgende configuratie, en let erop dat je de domeinnaam en het pad van de SSL certificaten verandert.

server {
    listen 80;

    server_name pass.example.io;

    return 302 https://$server_name$request_uri;
}

server {
  listen 443 ssl http2;

  server_name pass.example.io;
  root /var/www/passbolt;

  ssl_certificate /etc/letsencrypt/live/pass.example.io/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/pass.example.io/privkey.pem;

  ssl_protocols TLSv1.2;
  ssl_prefer_server_ciphers on;
  ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
  ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0
  ssl_session_timeout  10m;
  ssl_session_cache shared:SSL:10m;
  ssl_session_tickets off; # Requires nginx >= 1.5.9
  # ssl_stapling on; # Requires nginx >= 1.3.7
  # ssl_stapling_verify on; # Requires nginx => 1.3.7
  resolver 8.8.8.8 8.8.4.4 valid=300s;
  resolver_timeout 5s;
  add_header X-Frame-Options DENY;
  add_header X-Content-Type-Options nosniff;
  add_header X-XSS-Protection "1; mode=block";
 
  location / {
    try_files $uri $uri/ /index.php?$args;
    index index.php;
  }
 
  location ~ \.php$ {
    fastcgi_index           index.php;
    fastcgi_pass            unix:/var/run/php-fpm/www.sock;
    fastcgi_split_path_info ^(.+\.php)(.+)$;
    include                 fastcgi_params;
    fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param           SERVER_NAME $http_host;
  }
       
  location ~* \.(jpe?g|woff|woff2|ttf|gif|png|bmp|ico|css|js|json|pdf|zip|htm|html|docx?|xlsx?|pptx?|txt|wav|swf|svg|avi|mp\d)$ {
    access_log off;
    log_not_found off;
    try_files $uri /webroot/$uri /index.php?$args;
  }
}

Bewaar de configuratie en sluit af.

Controleer nu de Nginx configuratie en zorg ervoor dat je geen foutmelding krijgt, herstart dan de Nginx dienst.

nginx -t
sudo systemctl restart nginx

Configureer Passbolt Nginx

3. Verander vervolgens de werkdirectory in de‘/var/www/passbolt‘ en start de Passbolt installatie met het commando zoals hieronder.

cd /var/www/passbolt
sudo su -s /bin/bash -c "./bin/cake passbolt install" nginx

Aan het eind van het Passbolt installatieproces maak je een nieuwe admin gebruiker voor Passbolt.

Type je email adres, voornaam en achternaam. Kopieer dan je Passbolt installatie link.

Maak een passbolt gebruiker

Toegang tot Passbolt vanuit een web browser

Open je web browser en plak de Passbolt installatie link die door het Passbolt installatieprogramma gegenereerd wordt in de adresbalk.

https://pass.example.io/setup/install/8383584c-2eca-496a-a0ca-4fe35a157d24/fc5ad911-9409-416a-8175-a18cd19dcb20

1. Passbolt detecteert automatisch je web browser en toont de installatie link van de Passbolt browserextensie.

Klik op de knop‘Extensie downloaden‘, en installeer de Passbolt browserextensie.

Download Passbolt uitbreidingen

2. Typ een nieuwe sterke passphrase en klik op de‘Next‘ knop.

Instellen wachtwoordzin passbolt

3. Download de herstelkit naar je lokale computer en klik op de‘Next‘ knop. Je kunt de herstelkit gebruiken om je Passbolt wachtwoordzin opnieuw in te stellen.

Herstelpakket downloaden

4. Kies de kleur voor je Passbolt beveiligingsteken, en zorg ervoor dat je die drie letters onthoudt. Klik weer op de‘Next‘ knop.

veiligheidspasje passbolt

5. Nu word je omgeleid naar het Passbolt gebruikersdashboard zoals hieronder.

Passbolt gebruikers dashboard

6. Passbolt lijst gebruikers.

Passbolt Lijst gebruikers

En daarmee is de installatie van Passbolt wachtwoordbeheer voltooid.

Conclusie

Gefeliciteerd! Je hebt met succes de Passbolt wachtwoordbeheerder geïnstalleerd met PHP-FPM, MariaDB server, en Nginx webserver op de Rocky Linux.

Voor de volgende stap kun je nieuwe passbolt gebruikers aanmaken voor je team.