Passbolt ist ein Open-Source-Passwortmanager, mit dem Sie Ihr Passwort sicher speichern und teilen können. Es wurde für kleine und mittlere Organisationen entwickelt, um die Anmeldeinformationen zwischen Teammitgliedern zu speichern und zu teilen. Es wird selbst gehostet und ist sowohl in Community- als auch in abonnementbasierten Editionen verfügbar.
In diesem Tutorial zeigen wir Ihnen, wie Sie den Passbolt-Passwortmanager mit Nginx und Let’s Encrypt SSL unter CentOS 8 installieren.
Voraussetzungen
- Ein Server mit CentOS 8.
- Ein gültiger Domainname, auf den Ihre Server-IP verweist.
- Auf Ihrem Server ist ein Root-Passwort konfiguriert.
LEMP-Server installieren
Installieren Sie zuerst den Nginx- und 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 im CentOS-Standardrepository verfügbar. Sie müssen also EPEL und REMI Repo 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-Repo und aktivieren Sie das REMI-Repo mit dem folgenden Befehl:
dnf module reset php
dnf module enable php:remi-7.4
Installieren Sie als Nächstes 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
Nach der Installation aller Pakete müssen Sie die PHP-FPM-Konfigurationsdatei bearbeiten und den Benutzer und die Gruppe in 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 ermöglichen Sie ihnen, beim Systemneustart mit dem folgenden Befehl zu starten:
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 es installieren, indem Sie die folgenden Befehle ausführen:
dnf config-manager --set-enabled powertools
dnf install gpgme-devel
pecl install gnupg
echo "extension=gnupg.so" > /etc/php.d/gnupg.ini
Starten Sie als Nächstes 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 es 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
Überprüfen Sie als Nächstes 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
Datenbank erstellen
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';
Leeren Sie als Nächstes die Berechtigungen und beenden Sie die MariaDB mit dem folgenden Befehl:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Passbolt installieren und konfigurieren
Ändern Sie zunächst das Verzeichnis 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, ändern Sie das Verzeichnis in 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 generieren. Installieren Sie zuerst das Haveged mit dem folgenden Befehl:
dnf install haveged
Starten Sie als Nächstes den Haveged-Dienst mit dem folgenden Befehl:
systemctl start haveged
Als nächstes generieren Sie 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: [email protected] Comment: Welcome You selected this USER-ID: "Hitesh (Welcome) <[email protected]>" 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) <[email protected]> sub rsa2048 2021-03-12 [E]
Hinweis :Merken Sie sich den oben generierten geheimen Schlüssel.
Als nächstes exportieren Sie den geheimen Schlüssel mit dem folgenden Befehl in die Datei serverkey_private.asc und serverkey.asc:
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
Legen Sie als Nächstes den richtigen Besitz für das Passbolt-Verzeichnis fest:
chown -R nginx:nginx /var/www/passbolt
Als nächstes initialisieren Sie den Nginx-Schlüsselbund 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 Passbolt mit dem folgenden 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 es mit dem folgenden Befehl erstellen:
nano /etc/nginx/conf.d/passbolt.conf
Fügen Sie die folgenden Zeilen hinzu:
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
Als nächstes starten Sie Nginx neu, um die Änderungen zu übernehmen:
systemctl restart nginx
Secure Passbolt mit Let's Encrypt SSL
Als Nächstes müssen Sie den Certbot-Client installieren, um Let’s Encrypt SSL für Passbolt zu installieren. Sie können es mit dem folgenden Befehl installieren:
dnf install letsencrypt python3-certbot-nginx
Rufen Sie als Nächstes mit dem folgenden Befehl ein SSL-Zertifikat für Ihre lets-Domain ab und installieren Sie es:
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): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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: [email protected]). 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. Sie können dies mit dem folgenden Befehl tun:
cd /var/www/passbolt
sudo su -s /bin/bash -c "./bin/cake passbolt register_user -u [email protected] -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 den Paabolt zuzugreifen.
Firewall konfigurieren
Als nächstes müssen Sie die Ports 80 und 443 durch die Firewall zulassen. Sie können dies mit dem folgenden Befehl tun:
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
Laden Sie jetzt die Firewall neu, um die Änderungen zu übernehmen:
firewall-cmd --reload
Zugang zur 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 Weiter Taste. Sie sollten die folgende Seite sehen:
Wählen Sie eine Farbe, geben Sie ein Sicherheitstoken ein und klicken Sie auf Weiter Taste. Sie werden auf der folgenden Seite zum Passbolt-Dashboard weitergeleitet:
Schlussfolgerung
Herzliche Glückwünsche! Sie haben Passbolt Password Manager erfolgreich mit Nginx und Let’s Encrypt SSL auf CentOS 8 installiert. Sie können Passbolt jetzt in Ihrer Organisation implementieren und damit beginnen, die Anmeldeinformationen sicher zu speichern und für alle Teammitglieder freizugeben.