Passbolt ist ein selbst gehosteter Open-Source-Passwort-Manager, mit dem Sie Anmeldeinformationen für Websites, Router-Passwörter, Wi-Fi-Passwörter usw. sicher speichern und teilen können. Dieses Tutorial zeigt Ihnen, wie Sie Passbolt Community Edition (CE) installieren. auf Ubuntu 20.04 mit Apache- oder Nginx-Webserver.
Passbolt-Funktionen
- Kostenlos und Open Source
- Passwörter werden mit OpenPGP verschlüsselt, einem bewährten kryptografischen Standard.
- Browsererweiterungen sind für Firefox und Google Chrome verfügbar.
- Teilen Sie Anmeldeinformationen einfach mit Ihrem Team, ohne die Sicherheit zu gefährden.
- Saubere, benutzerfreundliche Oberfläche.
- Passwörter importieren und exportieren. Sie können Ihre Passwörter nach
.kdbx
exportieren oder.csv
Dateiformat zur Verwendung mit KeepassX, LastPass oder 1password. - Sie können Anmeldedaten manuell hinzufügen.
Voraussetzungen für die Installation von Passbolt auf Ubuntu 20.04 Server
Passbolt ist in PHP geschrieben und stützt sich auf einen MySQL/MariaDB-Datenbankserver. Sie müssen also einen LAMP-Stack oder LEMP-Stack einrichten, bevor Sie Passbolt installieren. Wenn Sie den Apache-Webserver bevorzugen, richten Sie den LAMP-Stack ein.
- So installieren Sie LAMP Stack auf Ubuntu 20.04
Wenn Sie den Nginx-Webserver bevorzugen, richten Sie den LEMP-Stack ein.
- So installieren Sie den LEMP-Stack auf Ubuntu 20.04
Sie benötigen außerdem einen Domänennamen, damit Sie von überall mit einem Webbrowser sicher auf Passbolt zugreifen können. Ich habe meinen Domainnamen bei NameCheap registriert, weil der Preis niedrig ist und sie Whois-Datenschutz lebenslang kostenlos anbieten.
Nachdem die oben genannten Anforderungen erfüllt sind, befolgen Sie die nachstehenden Anweisungen, um Passbolt zu installieren.
Schritt 1:Laden Sie Passbolt auf Ihren Ubuntu 20.04-Server herunter
Wenn Sie auf die offizielle Website gehen, um Passbolt herunterzuladen, müssen Sie Ihren Namen und Ihre E-Mail-Adresse eingeben. Wenn Ihnen das nicht gefällt, laden Sie die neueste stabile Version von Github herunter, indem Sie die folgenden Befehle auf Ihrem Server ausführen.
sudo apt install git cd /var/www/ sudo git clone https://github.com/passbolt/passbolt_api.git
Die Dateien werden in passbolt_api
gespeichert Verzeichnis. Wir benennen es in passbolt
um .
sudo mv passbolt_api passbolt
Machen Sie dann den Webserver-Benutzer (www-data
) als Eigentümer dieses Verzeichnisses.
sudo chown -R www-data:www-data /var/www/passbolt
Führen Sie den folgenden Befehl aus, um PHP-Module zu installieren, die von Passbolt benötigt oder empfohlen werden
sudo apt install php-imagick php-gnupg php7.4-common php7.4-mysql php7.4-fpm php7.4-ldap php7.4-gd php7.4-imap php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-gmp php7.4-xsl
Starten Sie dann Apache neu. (Wenn Sie Nginx verwenden, müssen Sie Nginx nicht neu starten.)
sudo systemctl restart apache2
Verzeichnis wechseln.
cd /var/www/passbolt/
Installieren Sie Composer – den PHP-Abhängigkeitsmanager.
sudo apt install composer
Cache-Verzeichnis für Composer erstellen.
sudo mkdir /var/www/.composer
Machen Sie www-data
als Eigentümer.
sudo chown -R www-data:www-data /var/www/.composer
Verwenden Sie Composer, um Abhängigkeiten zu installieren.
sudo -u www-data composer install --no-dev
Wenn Sie aufgefordert werden, Ordnerberechtigungen festzulegen, wählen Sie Y
.
Schritt 2:Erstellen Sie eine MariaDB-Datenbank und einen Benutzer für Passbolt
Melden Sie sich bei der MariaDB-Konsole an.
sudo mysql -u root
Erstellen Sie als Nächstes mit dem folgenden Befehl eine neue Datenbank für Passbolt. Dieses Tutorial nennt es passbolt
, können Sie einen beliebigen Namen für die Datenbank verwenden. Wir geben auch utf8mb4
an als Zeichensatz zur Unterstützung nicht-lateinischer Zeichen und Emojis.
CREATE DATABASE passbolt DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Der folgende Befehl erstellt einen Datenbankbenutzer und ein Passwort und gewährt dem neuen Benutzer gleichzeitig alle Berechtigungen für die neue Datenbank, damit Passbolt später in die Datenbank schreiben kann. Ersetzen Sie rote Texte durch Ihren bevorzugten Datenbanknamen, Benutzernamen und Passwort.
GRANT ALL ON passbolt.* TO 'passboltuser'@'localhost' IDENTIFIED BY 'password';
Berechtigungstabelle leeren und MariaDB-Konsole verlassen.
FLUSH PRIVILEGES; EXIT;
Schritt 3:OpenPGP-Schlüssel generieren
Wenn Sie einen VPS (Virtual Private Server) verwenden, wird empfohlen, haveged zu installieren Paket, um genügend Entropie zu erzeugen.
sudo apt install haveged
Der haveged.service
wird nach der Installation automatisch gestartet. Sie können den Status überprüfen mit:
sudo systemctl status haveged
Führen Sie dann den folgenden Befehl aus, um ein neues Schlüsselpaar zu generieren.
gpg --gen-key
Sie werden aufgefordert, Ihren Namen und Ihre E-Mail-Adresse einzugeben. Wenn Sie aufgefordert werden, eine Passphrase festzulegen, überspringen Sie diese, indem Sie die Tabulatortaste drücken und OK auswählen, da das php-gnupg-Modul die Verwendung einer Passphrase derzeit nicht unterstützt.
Kopieren Sie den privaten Schlüssel in den Speicherort der Passbolt-Konfiguration. Ersetzen Sie [email protected]
mit der E-Mail-Adresse beim Generieren des PGP-Schlüssels.
gpg --armor --export-secret-keys [email protected] | sudo tee /var/www/passbolt/config/gpg/serverkey_private.asc > /dev/null
Und kopieren Sie auch den öffentlichen Schlüssel.
gpg --armor --export [email protected] | sudo tee /var/www/passbolt/config/gpg/serverkey.asc > /dev/null
Initialisieren Sie die www-data
Schlüsselbund des Benutzers.
sudo su -s /bin/bash -c "gpg --list-keys" www-data
Schritt 4:Passbolt konfigurieren
Stellen Sie sicher, dass Sie sich in /var/www/passbolt/
befinden Verzeichnis.
cd /var/www/passbolt/
Kopieren Sie die Beispielkonfigurationsdatei in eine Produktionskonfigurationsdatei.
sudo cp config/passbolt.default.php config/passbolt.php
Bearbeiten Sie die Konfigurationsdatei mit einem Befehlszeilen-Texteditor wie Nano.
sudo nano config/passbolt.php
Suchen Sie zuerst die folgende Zeile.
'fullBaseUrl' => 'https://www.passbolt.test',
Ersetzen Sie die URL durch Ihre eigene URL, z. B. https://passbolt.yourdomain.com
. Vergessen Sie nicht, einen DNS-A-Eintrag für diese Subdomain in Ihrem DNS-Eintragsmanager zu erstellen.
In der database configuration
geben Sie den Datenbanknamen, den Datenbankbenutzernamen und das Passwort ein, die Sie in Schritt 2 erstellt haben.
// Database configuration. 'Datasources' => [ 'default' => [ 'host' => 'localhost', //'port' => 'non_standard_port_number', 'username' => 'user', 'password' => 'secret', 'database' => 'passbolt', ], ],
In der email configuration
Abschnitt,
- Geben Sie den SMTP-Hostnamen, die Portnummer und die Anmeldeinformationen an, damit Ihr Passbolt E-Mails senden kann. Normalerweise müssen Sie Port 587 verwenden, um E-Mails an den Remote-SMTP-Server zu senden. Stellen Sie sicher, dass Sie
tls
eingestellt haben auftrue
, sodass die SMTP-Transaktion verschlüsselt wird. - Stellen Sie auch den
From:
ein E-Mail-Adresse und Absendername.
// Email configuration. 'EmailTransport' => [ 'default' => [ 'host' => 'mail.yourdomain.com', 'port' => 587, 'username' => '[email protected]', 'password' => 'secret', // Is this a secure connection? true if yes, null if no. 'tls' => true, //'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', ], ],
Um ganz einfach Ihren eigenen E-Mail-Server einzurichten, sehen Sie sich bitte das folgende Tutorial an.
- So richten Sie mit iRedMail ganz einfach Ihren eigenen Mailserver auf Ubuntu 20.04 ein
Hinweis :Wenn Passbolt auf demselben Rechner wie Ihr Mailserver installiert ist, müssen Sie den Benutzernamen und das Passwort nicht im EmailTransport
angeben . Verwenden Sie einfach //
diese beiden Zeilen auskommentieren. Der folgende Screenshot zeigt eine Beispielkonfiguration für dieses Szenario.
Geben Sie im gpg-Abschnitt den Fingerabdruck des GPG-Schlüssels wie unten ein. Sie müssen alle Leerzeichen im Fingerabdruck löschen.
'fingerprint' => '2FC8945833C51946E937F9FED47B0811573EE67E',
Sie können Ihren Schlüsselfingerabdruck mit dem folgenden Befehl abrufen. Ersetzen Sie [email protected]
mit Ihrer E-Mail-Adresse beim Generieren des PGP-Schlüsselpaars.
gpg --list-keys --fingerprint | grep -i -B 2 '[email protected]'
Entkommentieren Sie nach Eingabe des Fingerabdrucks die folgenden zwei Zeilen.
'public' => CONFIG . 'gpg' . DS . 'serverkey.asc', 'private' => CONFIG . 'gpg' . DS . 'serverkey_private.asc',
Speichern und schließen Sie die Datei.
Schritt 5:Führen Sie das Installationsskript aus
Führen Sie das Installationsskript als www-data
aus Benutzer.
sudo su -s /bin/bash -c "./bin/cake passbolt install --force" www-data
Während der Installation werden Sie aufgefordert, ein Administratorkonto zu erstellen.
Sobald Sie ein Konto erstellt haben, wird Ihnen eine URL zur Verfügung gestellt, um die Installation im Webbrowser abzuschließen . Zuvor müssen wir den Webserver mit Apache oder Nginx konfigurieren.
Schritt 6:Apache Virtual Host oder Nginx-Konfigurationsdatei für Passbolt erstellen
Apache
Wenn Sie den Apache-Webserver verwenden, erstellen Sie einen virtuellen Host für Passbolt.
sudo nano /etc/apache2/sites-available/passbolt.conf
Fügen Sie den folgenden Text in die Datei ein. Ersetzen Sie passbolt.example.com
mit Ihrem echten Domainnamen und vergessen Sie nicht, dafür einen DNS-A-Eintrag festzulegen. Beachten Sie auch, dass der Webstamm für Passbolt /var/www/passbolt/webroot/
ist , nicht /var/www/passbolt/
.
<VirtualHost *:80> ServerName passbolt.exmaple.com DocumentRoot /var/www/passbolt/webroot/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/passbolt/> Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost>zulassen
Speichern und schließen Sie die Datei. Aktivieren Sie dann diesen virtuellen Host mit:
sudo a2ensite passbolt.conf
Laden Sie Apache neu, damit die Änderungen wirksam werden.
sudo systemctl reload apache2
Nginx
Wenn Sie den Nginx-Webserver verwenden, erstellen Sie einen virtuellen Host für Passbolt.
sudo nano /etc/nginx/conf.d/passbolt.conf
Fügen Sie den folgenden Text in die Datei ein. Ersetzen Sie passbolt.example.com
mit Ihrem echten Domainnamen und vergessen Sie nicht, dafür einen DNS-A-Eintrag festzulegen. Beachten Sie auch, dass der Webstamm für Passbolt /var/www/passbolt/webroot/
ist , nicht /var/www/passbolt/
.
server { listen 80; listen [::]:80; server_name passbolt.example.com; root /var/www/passbolt/webroot/; error_log /var/log/nginx/passbolt.error; access_log /var/log/nginx/passbolt.access; index index.php index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { # try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_buffer_size 128k; fastcgi_buffers 256 16k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; } # Don't log favicon location = /favicon.ico { log_not_found off; access_log off; } # Don't log robots location = /robots.txt { access_log off; log_not_found off; } # Deny all attempts to access hidden files/folders such as .htaccess, .htpasswd, .DS_Store (Mac), etc... location ~ /\. { deny all; access_log off; log_not_found off; } # Deny all grunt, composer files location ~* (Gruntfile|package|composer)\.(js|json)$ { deny all; access_log off; log_not_found off; } # A long browser cache lifetime can speed up repeat visits to your page location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; } }
Speichern und schließen Sie die Datei. Testen Sie dann die Nginx-Konfiguration.
sudo nginx -t
Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderungen wirksam werden.
sudo systemctl reload nginx
Schritt 7:HTTPS aktivieren
Um den HTTP-Verkehr zu verschlüsseln, können wir HTTPS aktivieren, indem wir ein kostenloses TLS-Zertifikat installieren, das von Let’s Encrypt ausgestellt wurde. Führen Sie den folgenden Befehl aus, um den Let’s Encrypt-Client (certbot) auf dem Ubuntu 20.04-Server zu installieren.
sudo apt install certbot
Wenn Sie Nginx verwenden, müssen Sie auch das Certbot Nginx-Plugin installieren.
sudo apt install python3-certbot-nginx
Führen Sie als Nächstes den folgenden Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d passbolt.example.com
Wenn Sie Apache verwenden, installieren Sie das Certbot Apache-Plugin.
sudo apt install python3-certbot-apache
Und führen Sie diesen Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d passbolt.example.com
Wo
--nginx
:Verwenden Sie das nginx-Plugin.--apache
:Verwenden Sie das Apache-Plugin.--agree-tos
:Nutzungsbedingungen akzeptieren.--redirect
:HTTPS durch 301-Umleitung erzwingen.--hsts
:Fügen Sie jeder HTTP-Antwort den Strict-Transport-Security-Header hinzu. Erzwingen, dass der Browser immer TLS für die Domäne verwendet. Schützt vor SSL/TLS-Stripping.--staple-ocsp
:Aktiviert OCSP-Heften. Eine gültige OCSP-Antwort wird an das Zertifikat geheftet, das der Server während TLS anbietet.
Das Zertifikat sollte nun abgerufen und automatisch installiert werden.
Schritt 8:Schließen Sie die Passbolt-Installation im Webbrowser ab
Zuerst müssen Sie die Passbolt-Erweiterung in Ihrem Firefox- oder Google Chrome-Browser installieren.
- Passbolt-Erweiterung für Firefox
- Passbot-Erweiterung für Google Chrome
Kopieren Sie nun die URL, die Sie nach dem Ausführen des Installationsskripts erhalten haben, und fügen Sie sie in die Adressleiste Ihres Browsers ein. Sie sehen den webbasierten Einrichtungsassistenten. Der erste Schritt besteht darin, sicherzustellen, dass Ihr Domänen- und Serverschlüssel-Fingerabdruck korrekt sind.
Klicken Sie im zweiten Schritt einfach auf die Schaltfläche Weiter, um einen neuen Schlüssel zu erstellen.
Erstellen Sie im dritten Schritt eine Passphrase.
Laden Sie dann den verschlüsselten geheimen Schlüssel herunter und bewahren Sie ihn an einem sicheren Ort auf. Dieser Schlüssel kann nur mit Ihrer Passphrase entschlüsselt werden.
Setzen Sie im 4. Schritt ein Sicherheitstoken.
Schließlich können Sie sich mit Ihrer Passphrase anmelden.
Jetzt können Sie ein Passwort erstellen, ein Passwort aus einer CSV- oder KDBX-Datei importieren.
Schritt 8:Cron-Job zum automatischen Senden von E-Mails einrichten
Um System-E-Mails zu senden, führen Sie den folgenden Befehl aus.
sudo -u www-data /var/www/passbolt/bin/cake EmailQueue.sender
Sie können den Befehl in der Crontab-Datei des www-data-Benutzers hinzufügen, um E-Mails automatisch zu verarbeiten.
sudo crontab -u www-data -e
Fügen Sie die folgende Zeile in die Datei ein, um E-Mails jede Minute zu verarbeiten.
* * * * * /var/www/passbolt/bin/cake EmailQueue.sender
Speichern und schließen Sie die Datei.
(Optional) ModSecurity einrichten
Vielleicht möchten Sie auch die ModSecurity einrichten Webanwendungs-Firewall zum Schutz Ihrer PHP-Webanwendungen vor Hackerangriffen. Wenn Sie den Apache-Webserver unter Debian/Ubuntu verwenden, lesen Sie das folgende Tutorial.
- So richten Sie ModSecurity mit Apache unter Debian/Ubuntu ein
Wenn Sie den Nginx-Webserver unter Debian/Ubuntu verwenden, lesen Sie das folgende Tutorial:
- So richten Sie ModSecurity mit Nginx unter Debian/Ubuntu ein
Fehlerbehebung
Wenn Sie versuchen, ein Passwort zu erstellen, aber bei „Atmen Sie tief durch und genießen Sie es, im gegenwärtigen Moment zu sein… hängen bleiben “, liegt es wahrscheinlich daran, dass in Ihrer Apache- oder Nginx-Konfigurationsdatei etwas nicht stimmt. Wenn Sie die Apache/Nginx-Konfiguration aus dem Artikel kopieren, sollten Sie beim Erstellen des Passworts keine Probleme haben.
Wenn Sie die Webanwendungs-Firewall von ModSecurity aktiviert haben und Serverschlüssel konnte nicht überprüft werden angezeigt wird Fehler.
dann müssen Sie den folgenden benutzerdefinierten Regelausschluss hinzufügen in ModSecurity.
SecRule REQUEST_URI "@streq /auth/verify.json?api-version=v2" "id:1060,phase:2,ctl:ruleRemoveById=942100"
Und starten Sie Ihren Webserver neu.
sudo systemctl restart apache2
oder
sudo systemctl restart nginx