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.
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
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.
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.
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.
2. Gib eine neue starke Passphrase ein und klicke auf die Schaltfläche„Weiter„.
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.
4. Wähle die Farbe für dein Passbolt-Sicherheitstoken aus und merke dir die drei Buchstaben. Klicke erneut auf die Schaltfläche„Weiter„.
5. Jetzt wirst du zum Passbolt-Benutzer-Dashboard weitergeleitet (siehe unten).
6. Passbolt-Benutzerliste.
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.