So installieren Sie den selbst gehosteten Passwort-Manager Passbolt auf CentOS 8
Passbolt ist ein Open-Source-Passwort-Manager, mit dem Sie Ihr Passwort sicher speichern und freigeben können. Er ist für kleine und mittelgroße Organisationen konzipiert, um die Anmeldedaten zu speichern und zwischen Teammitgliedern zu teilen. Er wird selbst gehostet und ist sowohl als Community- als auch als Abonnement-Edition erhältlich.
In diesem Tutorial zeigen wir Ihnen, wie Sie den Passbolt Passwort-Manager mit Nginx und Let’s Encrypt SSL auf CentOS 8 installieren.
Voraussetzungen
- Ein Server, auf dem CentOS 8 läuft.
- Ein gültiger Domain-Name, der auf die IP Ihres Servers zeigt.
- Ein Root-Passwort ist auf Ihrem Server konfiguriert.
LEMP-Server installieren
Installieren Sie zunächst Nginx und den MariaDB-Datenbankserver mit dem folgenden Befehl:
dnf install nginx mariadb-server -y
Als nächstes müssen Sie die neueste Version von PHP und andere erforderliche PHP-Erweiterungen auf Ihrem Server installieren. Standardmäßig ist die neueste Version von PHP nicht in der CentOS-Standardrepositorium verfügbar. Daher müssen Sie das EPEL- und REMI-Repository zu Ihrem System hinzufügen.
Sie können beide Repos mit dem folgenden Befehl hinzufügen:
dnf install epel-release -y dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
Deaktivieren Sie als nächstes das Standard-PHP-Repos und aktivieren Sie das REMI-Repos mit dem folgenden Befehl:
dnf module reset php dnf module enable php:remi-7.4
Als nächstes installieren Sie PHP mit anderen erforderlichen Abhängigkeiten, indem Sie den folgenden Befehl ausführen:
dnf install php php-fpm php-intl php-gd php-mysqli php-json php-pear php-devel php-mbstring php-fpm git make unzip -y
Nachdem Sie alle Pakete installiert haben, müssen Sie die PHP-FPM-Konfigurationsdatei bearbeiten und den Benutzer und die Gruppe auf Nginx ändern.
nano /etc/php-fpm.d/www.conf
Ändern Sie die folgenden Zeilen:
user = nginx group = nginx
Speichern und schließen Sie die Datei und ändern Sie dann den Eigentümer des Sitzungsverzeichnisses:
chgrp nginx /var/lib/php/session
Starten Sie als Nächstes den Nginx-, MariaDB- und PHP-FPM-Dienst und aktivieren Sie sie mit dem folgenden Befehl, damit sie bei einem Systemneustart gestartet werden:
systemctl start mariadb nginx php-fpm systemctl enable mariadb nginx php-fpm
Als nächstes müssen Sie die GNUPG-Erweiterung auf Ihrem System installieren. Sie können sie mit den folgenden Befehlen installieren:
dnf config-manager --set-enabled powertools dnf install gpgme-devel pecl install gnupg echo "extension=gnupg.so" > /etc/php.d/gnupg.ini
Starten Sie anschließend den PHP-FPM-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart php-fpm
Composer installieren
Composer ist ein Abhängigkeitsmanager für PHP. Sie müssen ihn in Ihrem System installieren.
Laden Sie zunächst die Composer-Setup-Datei mit dem folgenden Befehl herunter:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
Als nächstes installieren Sie den Composer mit dem folgenden Befehl:
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Sie sollten die folgende Ausgabe erhalten:
All settings correct for using Composer Downloading... Composer (version 2.0.11) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
Als Nächstes überprüfen Sie die Composer-Version mit dem folgenden Befehl:
composer -V
Sie sollten die folgende Ausgabe erhalten:
Composer version 2.0.11 2021-02-24 14:57:23
Erstellen Sie eine Datenbank
Als nächstes müssen Sie eine Datenbank und einen Benutzer für Passbolt erstellen.
Stellen Sie zunächst mit dem folgenden Befehl eine Verbindung zu MariaDB her:
mysql
Sobald die Verbindung hergestellt ist, erstellen Sie eine Datenbank und einen Benutzer mit dem folgenden Befehl:
MariaDB [(none)]> CREATE DATABASE passbolt DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; MariaDB [(none)]> GRANT ALL ON passbolt.* TO 'passbolt'@'localhost' IDENTIFIED BY 'password';
Als Nächstes löschen Sie die Berechtigungen und verlassen MariaDB mit dem folgenden Befehl:
MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT;
Sobald Sie damit fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Installieren und konfigurieren Sie Passbolt
Wechseln Sie zunächst in das Nginx-Web-Root-Verzeichnis und laden Sie die neueste Version von Passbolt mit dem folgenden Befehl herunter:
cd /var/www git clone https://github.com/passbolt/passbolt_api.git passbolt
Sobald der Download abgeschlossen ist, wechseln Sie in das Verzeichnis „Passbolt“ und installieren Sie alle erforderlichen Abhängigkeiten mit dem folgenden Befehl:
cd passbolt composer install --no-dev
Als nächstes müssen Sie haveged installieren, um den GPG-Schlüssel zu erzeugen. Installieren Sie zunächst haveged mit dem folgenden Befehl:
dnf install haveged
Als nächstes starten Sie den haveged-Dienst mit dem folgenden Befehl:
systemctl start haveged
Erzeugen Sie anschließend den GPG-Schlüssel mit dem folgenden Befehl:
gpg --full-generate-key
Beantworten Sie alle Fragen sorgfältig. Lassen Sie das Passwortfeld leer, wenn Sie aufgefordert werden, ein Passwort festzulegen:
gpg (GnuPG) 2.2.9; Copyright (C) 2018 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. gpg: directory '/root/.gnupg' created gpg: keybox '/root/.gnupg/pubring.kbx' created Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (sign only) (4) RSA (sign only) Your selection? RSA keys may be between 1024 and 4096 bits long. What keysize do you want? (2048) Requested keysize is 2048 bits Please specify how long the key should be valid. 0 = key does not expire = key expires in n days w = key expires in n weeks m = key expires in n months y = key expires in n years Key is valid for? (0) Key does not expire at all Is this correct? (y/N) y GnuPG needs to construct a user ID to identify your key. Real name: Hitesh Email address: hitjethva1981@gmail.com Comment: Welcome You selected this USER-ID: "Hitesh (Welcome) <hitjethva1981@gmail.com>" Change (N)ame, (C)omment, (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: /root/.gnupg/trustdb.gpg: trustdb created gpg: key 1A0448FECA43E1F9 marked as ultimately trusted gpg: directory '/root/.gnupg/openpgp-revocs.d' created gpg: revocation certificate stored as '/root/.gnupg/openpgp-revocs.d/40733A5076D11E86EF2FE5B51A0448FECA43E1F9.rev' public and secret key created and signed. pub rsa2048 2021-03-12 [SC] 40733A5076D11E86EF2FE5B51A0448FECA43E1F9 uid Hitesh (Welcome) <hitjethva1981@gmail.com> sub rsa2048 2021-03-12 [E]
Hinweis: Merken Sie sich den oben generierten geheimen Schlüssel.
Exportieren Sie als nächstes den geheimen Schlüssel mit dem folgenden Befehl in die Dateien serverkey_private.asc und serverkey.asc:
gpg --armor --export-secret-keys hitjethva1981@gmail.com > /var/www/passbolt/config/gpg/serverkey_private.asc gpg --armor --export hitjethva1981@gmail.com > /var/www/passbolt/config/gpg/serverkey.asc
Legen Sie als Nächstes die korrekten Eigentumsrechte für das passbolt-Verzeichnis fest:
chown -R nginx:nginx /var/www/passbolt
Initialisieren Sie als Nächstes den Nginx-Schlüsselring mit dem folgenden Befehl:
sudo su -s /bin/bash -c "gpg --list-keys" nginx
Ausgabe:
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
Benennen Sie als nächstes die Standardkonfigurationsdatei von Passbolt um:
cp config/passbolt.default.php config/passbolt.php
Bearbeiten Sie als nächstes die Datei passbolt.php und definieren Sie Ihre Datenbankeinstellungen und die Basis-URL:
nano config/passbolt.php
Ändern Sie die folgenden Zeilen:
'fullBaseUrl' => 'https://passbolt.linuxbuz.com', // Database configuration. 'Datasources' => [ 'default' => [ 'host' => 'localhost', //'port' => 'non_standard_port_number', 'username' => 'passbolt', 'password' => 'password', 'database' => 'passbolt', 'serverKey' => [ // Server private key fingerprint. 'fingerprint' => '40733A5076D11E86EF2FE5B51A0448FECA43E1F9', 'public' => CONFIG . 'gpg' . DS . 'serverkey.asc', 'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',
Speichern und schließen Sie die Datei und installieren Sie dann den Passbolt mit folgendem Befehl:
cd /var/www/passbolt sudo su -s /bin/bash -c "./bin/cake passbolt install --no-admin" nginx
Sie sollten die folgende Ausgabe erhalten:
All Done. Took 0.9595s Import the server private key in the keyring --------------------------------------------------------------- Importing /var/www/passbolt/config/gpg/serverkey_private.asc Keyring init OK Passbolt installation success! Enjoy! ?
Nginx für Passbolt konfigurieren
Als nächstes müssen Sie eine Nginx-Konfigurationsdatei für Passbolt erstellen. Sie können sie mit dem folgenden Befehl erstellen:
nano /etc/nginx/conf.d/passbolt.conf
Fügen Sie die folgenden Zeilen ein:
server { listen 80; server_name passbolt.linuxbuz.com; root /var/www/passbolt; 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; } }
Speichern und schließen Sie die Datei und überprüfen Sie dann Nginx auf Syntaxfehler:
nginx -t
Ausgabe:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Starten Sie anschließend Nginx neu, um die Änderungen zu übernehmen:
systemctl restart nginx
Sichern Sie Passbolt mit Let’s Encrypt SSL
Als nächstes müssen Sie den Certbot-Client installieren, um das Let’s Encrypt SSL für Passbolt zu installieren. Sie können ihn mit dem folgenden Befehl installieren:
dnf install letsencrypt python3-certbot-nginx
Als nächstes erhalten und installieren Sie ein SSL-Zertifikat für Ihre Let’s-Domain mit dem folgenden Befehl:
certbot --nginx -d passbolt.linuxbuz.com
Sie werden aufgefordert, Ihre E-Mail-Adresse anzugeben und die Nutzungsbedingungen zu akzeptieren:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): hitjethva@gmail.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server. Do you agree? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing, once your first certificate is successfully issued, to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Account registered. Requesting a certificate for passbolt.linuxbuz.com Performing the following challenges: http-01 challenge for passbolt.linuxbuz.com Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/conf.d/passbolt.conf Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/passbolt.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://passbolt.linuxbuz.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Subscribe to the EFF mailing list (email: hitjethva@gmail.com). IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/passbolt.linuxbuz.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/passbolt.linuxbuz.com/privkey.pem Your certificate will expire on 2021-06-09. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Registrieren Sie einen Benutzer für Passbolt
Als nächstes müssen Sie einen Benutzer für Passbolt registrieren. Das können Sie mit dem folgenden Befehl tun:
cd /var/www/passbolt sudo su -s /bin/bash -c "./bin/cake passbolt register_user -u hitjethva1981@gmail.com -f howtoforge -l Demo -r admin" nginx
Sie sollten die folgende Ausgabe erhalten:
____ __ ____ / __ \____ _____ ____/ /_ ____ / / /_ / /_/ / __ `/ ___/ ___/ __ \/ __ \/ / __/ / ____/ /_/ (__ |__ ) /_/ / /_/ / / / /_/ \__,_/____/____/_.___/\____/_/\__/ Open source password manager for teams --------------------------------------------------------------- User saved successfully. To start registration follow the link provided in your mailbox or here: https://passbolt.linuxbuz.com/setup/install/f81227bc-b0b6-44b5-99a7-6b490a4ba262/5a112de0-6ca4-4e1b-97c8-26453ef3828b
Sie können den obigen Link verwenden, um auf Paabolt zuzugreifen.
Firewall konfigurieren
Als nächstes müssen Sie die Ports 80 und 443 durch die Firewall zulassen. Dies können Sie mit dem folgenden Befehl tun:
firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=443/tcp
Laden Sie nun die Firewalld neu, um die Änderungen zu übernehmen:
firewall-cmd --reload
Zugriff auf die Passbolt Web UI
Öffnen Sie nun Ihren Webbrowser und geben Sie die URL https://passbolt.linuxbuz.com/setup/install/f81227bc-b0b6-44b5-99a7-6b490a4ba262/5a112de0-6ca4-4e1b-97c8-26453ef3828b ein. Sie werden auf die folgende Seite weitergeleitet:
Hier müssen Sie die Passbolt-Browsererweiterungen herunterladen und die Seite nach der Installation aktualisieren. Sie sollten die folgende Seite sehen:
Geben Sie das sichere Passwort ein und klicken Sie auf die Schaltfläche Weiter. Sie sollten die folgende Seite sehen:
Wählen Sie eine Farbe, geben Sie ein Sicherheits-Token ein und klicken Sie auf die Schaltfläche Weiter. Auf der folgenden Seite werden Sie zum Passbolt Dashboard weitergeleitet:
Fazit
Herzlichen Glückwunsch! Sie haben den Passbolt Passwort-Manager mit Nginx und Let’s Encrypt SSL auf CentOS 8 erfolgreich installiert. Sie können nun Passbolt in Ihrer Organisation implementieren und damit beginnen, die Anmeldedaten sicher zu speichern und für alle Teammitglieder freizugeben.