Passbolt ist ein kostenloser Open-Source-Passwortmanager für Teams. Es ermöglicht Teammitgliedern, Anmeldeinformationen/Kennwörter sicher zu speichern und zu teilen. Passbolt wird mit PHP erstellt und kann unter dem LEMP-Stack oder als Docker-Container ausgeführt werden.
In diesem Tutorial zeigen wir Ihnen Schritt für Schritt, wie Sie den Open-Source-Passwort-Manager „Passbolt“ auf dem CentOS 7-Server installieren und konfigurieren. Passbolt ist eine mit PHP entwickelte Webanwendung, die wir unter LEMP (Linux, Nginx, MySQL/MariaDB und PHP-FPM) ausführen werden.
Voraussetzungen
- CentOS 7
- Root-Rechte
Was werden wir tun?
- Abhängigkeiten installieren
- MariaDB-Datenbank installieren und konfigurieren
- Installieren Sie Nginx und PHP-FPM
- SSL Letsencrypt generieren
- Nginx und PHP-FPM konfigurieren
- Passbolt herunterladen und OpenPGP-Schlüssel generieren
- Installieren Sie Passbolt
- Passbolt-Nachinstallation
- Zusätzliche Einrichtung des Sicherheitsservers
Schritt 1 - Abhängigkeiten installieren
Das erste, was wir für dieses Handbuch tun werden, ist die Installation aller Paketabhängigkeiten, die für die Passbolt-Installation erforderlich sind, einschließlich der Installation von EPEL- und Remi-PHP-Repositories, PHP-Composer, gcc usw.
Fügen Sie das EPEL-Repository hinzu.
sudo yum -y install yum-utils epel-release
Fügen Sie das Remi PHP-Repository hinzu und aktivieren Sie es.
sudo yum -y install 'http://rpms.remirepo.net/enterprise/remi-release-7.rpm'
sudo yum-config-manager --enable 'remi-php72'
Installieren Sie nun die Pakete Dependencies Composer, Git Gcc usw. mit dem untenstehenden Befehl yum.
sudo yum -y install unzip wget composer policycoreutils-python git gcc
Warten Sie auf die Installation aller Pakete.
Schritt 2 – MySQL/MariaDB installieren und konfigurieren
In diesem Schritt installieren wir die MariaDB-Datenbank und erstellen dann eine neue Datenbank und einen neuen Benutzer für die Passbolt-Installation.
Installieren Sie den MariaDB-Server mit dem folgenden Befehl yum.
sudo yum -y install mariadb-server
Nachdem die Installation abgeschlossen ist, starten Sie den MariaDB-Dienst und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet wird.
sudo systemctl start mariadb
sudo systemctl enable mariadb
Jetzt müssen wir das ‚root‘-Passwort für MariaDB konfigurieren. Führen Sie den 'mysql_secure_installation'-Befehl unten aus.
mysql_secure_installation
Geben Sie Ihr neues Root-Passwort ein.
Und das MariaDB-Root-Passwort wurde konfiguriert.
Melden Sie sich als Nächstes mit dem Benutzer „root“ bei der MySQL-Shell an.
mysql -u root -p
Erstellen Sie eine neue Datenbank und einen neuen Benutzer namens „passbolt“ mit dem Passwort „hakase-labs“, führen Sie die MySQL-Abfragen unten aus.
create database passbolt;
grant all on passbolt.* to 'passbolt'@'localhost' identified by 'hakase-labs';
flush privileges;
quit;
Der MariaDB-Server wurde auf dem CentOS 7-Server installiert und die Datenbank für die ‚Passbolt‘-Installation wurde erstellt.
Schritt 3 – Nginx und PHP-FPM installieren
Nach der Installation des MariaDB-Servers installieren wir Nginx aus dem EPEL-Repository und PHP-FPM-Pakete mit dem Remi-Repository.
Nginx-Webserver installieren.
sudo yum -y install nginx
Nachdem die Installation abgeschlossen ist, starten Sie den Nginx-Dienst und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet wird.
sudo systemctl start nginx
sudo systemctl enable nginx
Installieren Sie nun PHP-FPM mit allen erforderlichen Erweiterungen mit dem untenstehenden yum-Befehl.
sudo yum -y install php-fpm php-intl php-gd php-mysql php-mcrypt php-pear php-devel php-mbstring php-fpm gpgme-devel
Und wenn die Installation abgeschlossen ist, starten Sie den PHP-FPM-Dienst und aktivieren Sie ihn, dass er jedes Mal beim Systemstart gestartet wird.
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
Der Nginx-Webserver und PHP-FPM wurden installiert.
Schritt 4 - Generieren Sie SSL Letsencrypt
Installieren Sie das certbot-Tool auf dem System.
sudo yum -y install certbot
Stoppen Sie jetzt den nginx-Dienst.
sudo systemctl stop nginx
Und generieren Sie SSL Letsencrypt für den Passbolt-Domänennamen ‚passbolt.hakase.io‘.
Führen Sie den folgenden certbot-Befehl aus.
sudo certbot certonly --standalone --agree-tos --no-eff-email --email [email protected] -d passbolt.hakase.io
Das certbot-Tool führt einen temporären Webserver für die Überprüfung aus.
Und wenn es fertig ist, erhalten Sie Ihr Zertifikat im Verzeichnis „/etc/letsencrypt/live/“.
Schritt 5 – Nginx und PHP-FPM konfigurieren
In diesem Schritt werden wir den Nginx-Webserver konfigurieren, indem wir eine neue virtuelle Hostkonfiguration für Passbolt erstellen und das PHP-FPM konfigurieren und die PHP-GnuPG-Unterstützung installieren.
PHP-FPM konfigurieren
Gehen Sie zum Verzeichnis „/etc/php-fpm.d“ und bearbeiten Sie die Standard-Pool-Konfiguration „www.conf“ mit dem vim-Editor.
cd /etc/php-fpm.d/
sudo vim www.conf
Ändern Sie den Standardbenutzer und die Standardgruppe in den Benutzer „nginx“.
user = nginx group = nginx
Ändern Sie den Port-Listener für PHP-FPM wie unten beschrieben in die SOCKET-Datei.
listen = /var/run/php-fpm/php-fpm.sock
Entkommentieren Sie diese Zeilen unten und ändern Sie listen.owner und listen.group für die Sockendatei in „nginx“.
listen.owner = nginx listen.group = nginx listen.mode = 0660
Speichern und beenden.
Jetzt müssen wir den Besitzer des PHP-Session-Verzeichnisses ändern und die Unterstützung der PHP-GnuPG-Erweiterung installieren.
Ändern Sie die Berechtigung des PHP-Sitzungsverzeichnisses.
sudo chgrp nginx /var/lib/php/session
Installieren Sie die PHP GnuPG-Erweiterung mit dem Befehl pecl und aktivieren Sie sie.
sudo pecl install gnupg
echo "extension=gnupg.so" > /etc/php.d/gnupg.ini
Die PHP GnuPG-Erweiterung wurde installiert.
Konfigurieren Sie den virtuellen Nginx-Host
Gehen Sie in das Verzeichnis ‚/etc/nginx/conf.d‘ und erstellen Sie eine neue virtuelle Hostdatei ‚passbolt.conf‘.
cd /etc/nginx/conf.d/
sudo vim passbolt.conf
Konfigurationen unten einfügen.
server { listen 443; server_name passbolt.hakase.io; ssl on; ssl_certificate /etc/letsencrypt/live/passbolt.hakase.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/passbolt.hakase.io/privkey.pem; ssl_protocols TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS; ssl_session_tickets off; 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/php-fpm.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 beenden.
Testen Sie die nginx-Konfiguration und stellen Sie sicher, dass kein Fehler vorliegt.
sudo nginx -t
Starten Sie jetzt sowohl die Nginx- als auch die PHP-FPM-Dienste neu.
sudo systemctl restart nginx
sudo systemctl restart php-fpm
Die Konfigurationen von Nginx-Webserver und PHP-FPM wurden erfolgreich abgeschlossen.
Schritt 6 – Passbolt herunterladen und OpenPGP-Schlüssel generieren
In diesem Schritt laden wir die Passbolt-Webanwendung herunter und generieren einen neuen OpenPGP-Schlüssel, der für die Passbolt-API verwendet wird.
Wechseln Sie in das Verzeichnis „/var/www“ und klonen Sie die Passbolt-Webanwendung.
cd /var/www/
git clone https://github.com/passbolt/passbolt_api.git passbolt/
Installieren Sie nun das 'haveged'-Paket und starten Sie den Dienst.
sudo yum -y install haveged
sudo systemctl start haveged
Generieren Sie mit dem untenstehenden gpg-Befehl einen neuen OpenPGP-Schlüssel.
gpg --gen-key
Geben Sie Ihre Details wie E-Mail, die Ablauftage usw. ein.
Hinweis:
- Die PHP-GnuPG-Erweiterungen unterstützen die OpenPGP-Schlüssel-Passphrase nicht, lassen Sie die Passphrase also leer.
Überprüfen Sie nach Abschluss alle verfügbaren Schlüssel und notieren Sie sich den „Fingerabdruck“ Ihres Schlüssels.
gpg --list-keys --fingerprint
Exportieren Sie nun den öffentlichen und den privaten Schlüssel in das Verzeichnis ‚/var/www/passbolt‘.
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
Und ändern Sie die Berechtigung all dieser Schlüssel und den Besitzer des Verzeichnisses ‚/var/www/passbolt‘.
sudo chmod 640 /var/www/passbolt/config/gpg/serverkey*
sudo chown -R nginx:nginx /var/www/passbolt
Die Passbolt-Webanwendung wurde heruntergeladen und der OpenPGP-Schlüssel wurde erstellt.
Schritt 7 - Passbolt installieren
Bevor wir alle Abhängigkeiten für „Passbolt“ installieren, müssen wir den Schlüsselbund des gpg-Schlüssels für den Nginx-Benutzer initialisieren.
Führen Sie den folgenden Befehl aus.
sudo su -s /bin/bash -c "gpg --list-keys" nginx
Melden Sie sich jetzt beim Benutzer ‚nginx‘ an und gehen Sie in das Verzeichnis ‚/var/www/passbolt‘.
su -s /bin/bash nginx
cd /var/www/passbolt/
Installieren Sie alle Passbolt-Abhängigkeiten mit dem Composer-Befehl unten.
composer install --no-dev
Kopieren Sie nach Abschluss die Standardkonfigurationsdatei der App und bearbeiten Sie sie mit vim.
cp config/passbolt.default.php config/passbolt.php
vim config/passbolt.php
Ändern Sie im Abschnitt „App“ den Domainnamen durch Ihren eigenen Domainnamen.
'App' => [ // A base URL to use for absolute links. // The url where the passbolt instance will be reachable to your end users. // This information is need to render images in emails for example 'fullBaseUrl' => 'https://passbolt.hakase.io', ],
Geben Sie in der Konfiguration „Datenquellen“ Ihre Datenbankinformationen ein.
// Database configuration. 'Datasources' => [ 'default' => [ 'host' => 'localhost', //'port' => 'non_standard_port_number', 'username' => 'passbolt', 'password' => 'hakase-labs', 'database' => 'passbolt', ], ],
Fügen Sie unter der Datenbankkonfiguration eine neue „ssl“-Konfiguration hinzu, um alle Verbindungen auf sicheres https zu zwingen.
'ssl' => [ 'force' => true, ],
Ändern Sie für die SMTP-Mail-Konfiguration alles mit Ihren Angaben.
// Email configuration. 'EmailTransport' => [ 'default' => [ 'host' => 'localhost', 'port' => 25, 'username' => 'user', 'password' => 'secret', // Is this a secure connection? true if yes, null if no. 'tls' => null, //'timeout' => 30, //'client' => null, //'url' => null, ], ], 'Email' => [ 'default' => [ // Defines the default name and email of the sender of the emails. 'from' => ['[email protected]_organization.com' => 'Passbolt'], //'charset' => 'utf-8', //'headerCharset' => 'utf-8', ], ],
Fügen Sie schließlich den „Fingerabdruck“ Ihres OpenPGP-Schlüssels ein und kommentieren Sie diese öffentlichen und privaten Konfigurationszeilen aus.
'serverKey' => [ // Server private key fingerprint. 'fingerprint' => '63BA4EBB65126A6BE334075DD210E985E2ED02E5', 'public' => CONFIG . 'gpg' . DS . 'serverkey.asc', 'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc', ],
Speichern und beenden.
Installieren Sie nun „Passbolt“ mit dem folgenden Befehl.
./bin/cake passbolt install
Sie werden aufgefordert, einen neuen Admin-Benutzer und ein neues Passwort zu erstellen – geben Sie Ihre Daten ein.
Und am Ende erhalten Sie den 'Registrierungs'-Link, schreiben Sie ihn auf Ihren Zettel.
Schritt 8 - Passbolt-Nachinstallation
Öffnen Sie Ihren Webbrowser und installieren Sie die „Passbolt“-Erweiterungen Ihres Webbrowsers.
Im Folgenden finden Sie den Link der Passbolt-Erweiterung für den Chrome-Browser. Installieren Sie die Erweiterung.
https://chrome.google.com/webstore/detail/passbolt-extension
Öffnen Sie nun einen neuen Tab und fügen Sie den Link „Registrierung“ in die Adressleiste ein. Meine war:
https://passbolt.hakase.io/setup/install/b830cc87-1aa5-4f6f-95f4-9be21accdefa/103001a4-39a1-4bb9-866c-822ac0f7c76f
Und Sie werden eine Seite sehen, die der unten gezeigten ähnelt.
Aktivieren Sie das Kontrollkästchen unten und klicken Sie auf die Schaltfläche „Weiter“. Jetzt werden Sie aufgefordert, einen neuen Schlüssel für den Benutzer zu erstellen.
Klicken Sie auf die Schaltfläche „Weiter“.
Richten Sie die „Passphrase“ ein, geben Sie Ihre starke Passphrase ein.
Klicken Sie auf die Schaltfläche „Weiter“. Sichern Sie Ihren Schlüssel, indem Sie auf die Schaltfläche „Herunterladen“ klicken und erneut auf „Weiter“ klicken.
Behalten Sie für das Sicherheitstoken die Standardeinstellung bei und klicken Sie auf „Weiter“.
Und Sie werden zur Anmeldeseite von Passbolt weitergeleitet.
Geben Sie Ihre „Passphrase“ ein und klicken Sie auf „Anmelden“. Und Sie werden das Passbolt-Benutzer-Dashboard wie unten sehen.
Die Installation des Passbolt-Open-Source-Passwortmanagers auf CentOS 7 wurde erfolgreich abgeschlossen.
Schritt 9 – Zusätzliche Einrichtung des Sicherheitsservers
- Richten Sie die Firewalld ein
Öffnen Sie neue HTTP-, HTTPS- und SMTP-Ports auf dem Server.
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --add-service=smtp --permanent
Laden Sie nun die Firewall-Konfiguration neu.
sudo firewall-cmd --reload
- Selinux-Berechtigung einrichten
Berechtigung für das Webroot-Verzeichnis „Passbolt“.
sudo semanage fcontext -a -t httpd_sys_content_t '/var/www(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/passbolt/tmp(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/passbolt/logs(/.*)?'
sudo restorecon -Rv /var/www
Berechtigung für das Nginx gnupg-Schlüsselbundverzeichnis.
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/lib/nginx/.gnupg(/.*)?'
sudo restorecon -Rv /var/lib/nginx/.gnupg