So installierst du Passbolt Password-Manager auf Rocky Linux

Passbolt ist ein kostenloser und quelloffener Passwortmanager, der auf PHP, MySQL und OpenPGP basiert. Es ist ein selbstgehosteter Anwendungsserver, du kannst ihn auf deinem Server installieren. Passbolt ist in erster Linie für Teams gedacht, du kannst ihn aber auch als persönlichen Passwortmanager verwenden.

Passbolt baut auf OpenPGP auf und hat eine erweiterbare API. Auf der Client-Seite kannst du die Passbolt-Browsererweiterung verwenden, die auf OpenPGP.js für die Verschlüsselungsfunktionalität aufbaut. Auf der Serverseite nutzt Passbolt die GnuPG-PHP-Erweiterung und openpgp-php, um die Schlüsselüberprüfung und Benutzerauthentifizierung durchzuführen. Passbolt verwendet das GPGAuth-Protokoll für die Benutzerauthentifizierung.

Voraussetzungen

In diesem Artikel erfährst du, wie du den selbst gehosteten Passwortmanager Passbolt auf dem Rocky Linux Server installierst. Du wirst Passbolt mit PHP 7.4, MariaDB Server und Nginx Webserver installieren.

Für dieses Beispiel verwenden wir die folgenden Serverdetails:

  • Betriebssystem: Rocky Linux 8.4 (grüner Obsidian)
  • IP-Adresse: 192.168.1.10
  • Domainname, in diesem Beispiel: https://pass.example.io

Starten wir nun die Installation von Passbolt.

Pakete installieren Abhängigkeiten

Als Erstes fügst du neue Repositories hinzu und installierst einige Paketabhängigkeiten auf dem Rocky Linux System.

1. Führe den folgenden Befehl aus, um das Repository „PowerTools“ zu aktivieren und das Repository „Extra Packages for Enterprise Linux“ (EPEL) zu installieren.

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

2. Führe den folgenden Befehl aus, um das PHP 7.4 Repository zu aktivieren.

sudo dnf module enable php:7.4 -y

3. Als Nächstes installierst du PHP-FPM, MariaDB, Nginx und einige weitere Pakete mit dem unten stehenden DNF-Befehl.

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. Nachdem die Installation abgeschlossen ist, führe den folgenden Befehl aus, um das PHP Composer-Installationsskript herunterzuladen.

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;"

Führe nun erneut den folgenden Befehl aus, um den PHP Composer in der systemweiten Umgebung zu installieren.

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

Überprüfe den PHP Composer-Befehl wie unten dargestellt.

sudo -u nginx composer --version

Du wirst eine ähnliche Ausgabe wie unten erhalten.

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

5. Als Nächstes installierst du die GnuPG PHP Extensions aus dem PHP Extension Community Library (PECL) Repository.

pecl install gnupg

Danach aktivierst du die GnuPG PHP-Erweiterung mit dem folgenden Befehl.

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

6. Starte und aktiviere nun einige Dienste mit dem folgenden systemctl-Befehl.

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

Damit hast du die Installation der Paketabhängigkeiten für Passbolt abgeschlossen.

MariaDB und PHP-FPM konfigurieren

In diesem Schritt richtest du das MariaDB-Root-Passwort und den PHP-FPM-Dienst ein.

1. Führe den folgenden Befehl aus, um das MariaDB-Root-Passwort einzurichten.

mysql_secure_installation

Gib ein neues, sicheres Passwort für den MariaDB-Root-Benutzer ein und wiederhole es, dann gib„Y“ ein, um alle MariaDB-Konfigurationen zu bestätigen.

2. Als Nächstes bearbeitest du die Konfigurationsdatei„/etc/php.ini“ mit dem Editor nano.

nano /etc/php.ini

Entferne das Kommentarzeichen bei der Option „date.timezone“ und ändere den Wert in die Zeitzone deines Servers.

date.timezone = Europe/Paris

Speichere die Konfiguration und beende sie.

3. Bearbeite die PHP-FPM-Konfiguration„/etc/php-fpm.d/www.conf“ mit dem nano-Editor.

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

Ändere den Standardbenutzer und die Gruppe für PHP-FPM in„nginx„.

user = nginx
group = nginx

Entferne die Kommentare in„listen.owner“ und„listen.group“ und ändere den Wert in den Benutzer„nginx„.

listen.owner = nginx
listen.group = nginx

Speichere die Konfiguration und beende sie.

Wende die neue PHP-FPM-Konfiguration an, indem du den PHP-FPM-Dienst mit dem folgenden systemctl-Befehl neu startest.

sudo systemctl restart php-fpm

Damit hast du die Grundkonfiguration von PHP-FPM abgeschlossen und ein neues Passwort für den MariaDB-Root-Benutzer erstellt.

Neue Datenbank für Passbolt erstellen

Um eine neue Datenbank für die Passbolt-Installation zu erstellen, melde dich mit dem unten stehenden Befehl„mysql“ in der MariaDB-Shell an.

mysql -u root -p

1. Erstelle mit der folgenden Abfrage eine neue Datenbank „passdb“.

CREATE DATABASE passdb;

2. Erteile dem neuen Benutzer alle Rechte für die Datenbank„passdb„. Mit der folgenden Abfrage wird automatisch ein neuer MariaDB-Benutzer„passbolt“ erstellt.

GRANT ALL ON passdb.* to passbolt@localhost IDENTIFIED BY 'PassboltdbPass';

3. Lade alle Tabellenberechtigungen neu.

FLUSH PRIVILEGES;

Gib nun„EXIT“ ein und drücke„Enter„, um dich von der MariaDB-Shell abzumelden.

Neue Datenbank erstellen passbolt

Gehe zum nächsten Schritt über, um die Installation von Passbolt zu starten.

Passbolt herunterladen und PHP-Abhängigkeiten installieren

In diesem Schritt lädst du den Passbolt-Quellcode auf deinen Server herunter und installierst die PHP-Abhängigkeiten mithilfe des PHP Composers.

1. Ändere das aktuelle Arbeitsverzeichnis in „/var/www“ und klone den Passbolt-Quellcode mit dem unten stehenden Befehl.

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

Die Passbolt-Installation lautet „/var/www/passbolt“.

2. Ändere den Eigentümer des Passbolt-Installationsverzeichnisses auf den Benutzer„nginx„.

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

3. Wechsle in das Passbolt-Installationsverzeichnis und installiere die PHP-Abhängigkeiten mit dem Befehl PHP composer. Achte darauf, dass du den PHP Composer-Befehl als Benutzer„nginx“ ausführst.

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

Wenn die Installation aller PHP-Abhängigkeiten abgeschlossen ist, gehe zum nächsten Schritt über, um den GPG-Schlüssel zu erzeugen.

GPG-Schlüssel für den Server generieren

In diesem Schritt erzeugst du einen neuen GPG-Schlüssel für den Passbolt-Server.

Die aktuelle PHP-Erweiterung openpgp-php und GnuPG PHP unterstützen noch keine Passphrasen, daher wirst du einen neuen GPG-Schlüssel ohne Passphrase erstellen.

1. Um den GPG-Schlüssel zu erzeugen, führe den folgenden gpg-Befehl aus.

gpg --gen-key

Gib deinen Namen und deine E-Mail-Adresse ein, ohne eine Passphrase zu verwenden.

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: john@email.com
You selected this USER-ID:
„johndoe <john@email.com>“

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 <john@email.com>
sub   rsa2048 2021-11-16 [E] [expires: 2023-11-16]

Notiere dir außerdem den Fingerabdruck deines neuen Schlüssels. In diesem Beispiel lautet der Fingerabdruck des Schlüssels„BCD52DF829FF8F9408A2F1B214F31ED1FBEBAD9A„.

2. Als nächstes exportierst du den GPG-Schlüssel in das Passbolt-Installationsverzeichnis„/var/www/passbolt/config/gpg/„.

gpg --armor --export-secret-keys john@email.com > /var/www/passbolt/config/gpg/serverkey_private.asc
gpg --armor --export john@email.com > /var/www/passbolt/config/gpg/serverkey.asc

Zu diesem Zeitpunkt musst du dir die folgenden Informationen zu deinem GPG-Schlüssel notieren.

  • Fingerabdruck: BCD52DF829FF8F9408A2F1B214F31ED1FBEBAD9A
  • E-Mail: johndoe@email.com
  • Öffentlicher Schlüssel: serverkey.asc
  • Privater Schlüssel: serverkey_private.asc

3. Als Nächstes musst du das GNUPG-Verzeichnis für den Benutzer nginx mit dem folgenden Befehl erstellen.

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

Du wirst eine ähnliche Ausgabe wie unten sehen.

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

Damit hast du die Konfiguration des GPG-Schlüssels für Passbolt abgeschlossen. Gehe zum nächsten Schritt für die Passbolt-Konfiguration über.

Passbolt und Nginx Server Blöcke konfigurieren

In diesem Schritt konfigurierst du den Domainnamen der Passbolt-Installation, die Datenbank und den GPG-Schlüssel.

Bevor du beginnst, ändere dein Arbeitsverzeichnis in das Verzeichnis „/var/www/passbolt“.

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

1. Kopiere die Standardkonfiguration in die Datei „passbolt.php“ und bearbeite sie dann mit dem Editor nano.

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

Ändere die Option„fullBaseUrl“ mit dem Namen deiner Passbolt-Domain. In diesem Beispiel ist das ‚https://pass.example.io‘.

    'App' => [
        // comment

‚fullBaseUrl‘ => ‚https://pass.example.io‘,

// comment..
],

Ändere die Datenbankkonfiguration mit deinem MariaDB-Benutzer und -Passwort wie folgt.

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

Kopiere deinen GPG-Fingerabdruck und füge ihn ein, indem du die Optionen „public“ und „private“ auskommentierst.

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

Speichere die Konfiguration und beende sie.

2. Als Nächstes erstellst du mit dem nano-Editor eine neue Nginx-Serverblock-Konfiguration„/etc/nginx/conf.d/passbolt.conf„.

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

Kopiere die folgende Konfiguration und füge sie ein. Achte darauf, dass du den Domainnamen und den Pfad der SSL-Zertifikate änderst.

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;
}
}

Speichere die Konfiguration und beende sie.

Überprüfe die Nginx-Konfiguration und vergewissere dich, dass du keine Fehler erhältst.

nginx -t
sudo systemctl restart nginx

Passbolt Nginx konfigurieren

3. Wechsle als Nächstes das Arbeitsverzeichnis zu„/var/www/passbolt“ und starte die Passbolt-Installation mit dem unten stehenden Befehl.

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

Am Ende des Passbolt-Installationsvorgangs erstellst du einen neuen Admin-Benutzer für Passbolt.

Gib deine E-Mail-Adresse, deinen Vornamen und deinen Nachnamen ein. Kopiere dann deinen Passbolt-Installationslink.

Passbolt-Benutzer erstellen

Zugriff auf Passbolt über den Webbrowser

Öffne deinen Webbrowser und füge den Passbolt-Installationslink, den das Passbolt-Installationsprogramm generiert hat, in die Adressleiste ein.

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

1. Passbolt erkennt deinen Webbrowser automatisch und zeigt den Link zur Installation der Passbolt-Browsererweiterung an.

Klicke auf die Schaltfläche„Erweiterung herunterladen“ und installiere die Passbolt-Browsererweiterung.

Passbolt Erweiterungen herunterladen

2. Gib eine neue starke Passphrase ein und klicke auf die Schaltfläche„Weiter„.

Passphrase einrichten passbolt

3. Lade das Wiederherstellungs-Kit auf deinen lokalen Computer herunter und klicke auf die Schaltfläche„Weiter„. Mit dem Wiederherstellungs-Kit kannst du deine Passbolt-Passphrase zurücksetzen.

Recovery Kit herunterladen

4. Wähle die Farbe für dein Passbolt-Sicherheitstoken aus und merke dir die drei Buchstaben. Klicke erneut auf die Schaltfläche„Weiter„.

Sicherheitstoken Passbolt

5. Jetzt wirst du zum Passbolt-Benutzer-Dashboard weitergeleitet (siehe unten).

Passbolt Benutzer-Dashboard

6. Passbolt-Benutzerliste.

Benutzer der Passbolt-Liste

Damit ist die Installation des Passbolt Passwortmanagers abgeschlossen.

Fazit

Herzlichen Glückwunsch! Du hast den Passbolt Passwortmanager mit PHP-FPM, MariaDB Server und Nginx Webserver erfolgreich auf dem Rocky Linux installiert.

Im nächsten Schritt kannst du neue Passbolt-Benutzer für dein Team anlegen.

Das könnte dich auch interessieren …