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: [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.

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 [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 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): [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. 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 [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 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:

Passbolzen

Hier müssen Sie die Passbolt-Browsererweiterungen herunterladen und die Seite nach der Installation aktualisieren. Sie sollten die folgende Seite sehen:

Passbolt-Passwort festlegen

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

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:

Passbolt Passwort-Manager

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.

Das könnte dich auch interessieren …