Passbolt Team Passwortmanager Installation
Passbolt – Team-Passwortmanager Self-Hosted installieren
Was ist Passbolt?
Passbolt ist ein moderner, Open-Source Team-Passwortmanager mit Fokus auf Sicherheit und rollenbasierter Zugriffskontrolle. Im Gegensatz zu anderen Passwort-Managern bietet Passbolt echte End-to-End Verschlüsselung mit GPG-Schlüsseln.
Hauptmerkmale
- End-to-End Verschlüsselung: Alle Passwörter werden mit GPG verschlüsselt
- Rollenbasierter Zugriff: Admin, Manager, User Rollen
- Passwort-Sharing: Sichere Freigabe von Passwörtern mit anderen Benutzern
- Passwort-Generator: Starke Passwörter generieren
- Browser Extension: Firefox und Chrome Add-on für Auto-Fill
- API: Vollständige REST API für Integration
- Audit Logs: Alle Zugriffe werden protokolliert
- Tags und Kategorien: Organisieren Sie Passwörter
Passbolt Editionen
| Edition | Kosten | Features | Best For |
|---|---|---|---|
| Community | Kostenlos | Grundlegende Verwaltung, bis 20 Benutzer | Kleine Teams |
| Business | €25/Monat | Unlimited Users, Enterprise Features | Mittelständische Unternehmen |
| Cloud (Hosted) | €25+/Monat | Managed Service, keine Selbst-Verwaltung | Unternehmen ohne IT-Ressourcen |
Diese Anleitung konzentriert sich auf die Community Edition für Self-Hosted Deployment.
Systemanforderungen
| Komponente | Minimum | Empfohlen |
|---|---|---|
| CPU | 2 Kerne | 4+ Kerne |
| RAM | 2 GB | 4-8 GB |
| Speicher | 10 GB | 50+ GB |
| Docker | 20.10+ | 24.0+ |
Installation mit Docker Compose
Schritt 1: Verzeichnisse vorbereiten
mkdir -p /opt/passbolt cd /opt/passbolt mkdir -p mysql_data gpg_data
Schritt 2: .env Datei erstellen
Erstellen Sie /opt/passbolt/.env:
COMPOSE_PROJECT_NAME=passbolt # MySQL / MariaDB MYSQL_ROOT_PASSWORD=secure_root_password MYSQL_DATABASE=passbolt MYSQL_USER=passbolt MYSQL_PASSWORD=passbolt_password_secure MYSQL_PORT=3306 # Passbolt APP_FULL_BASE_URL=https://passwords.example.com DATASOURCES_DEFAULT_HOST=mysql DATASOURCES_DEFAULT_PORT=3306 DATASOURCES_DEFAULT_DATABASE=passbolt DATASOURCES_DEFAULT_USERNAME=passbolt DATASOURCES_DEFAULT_PASSWORD=passbolt_password_secure DATASOURCES_DEFAULT_SSL=false # Email (SMTP) EMAIL_TRANSPORT_DEFAULT_HOST=smtp.example.com EMAIL_TRANSPORT_DEFAULT_PORT=587 EMAIL_TRANSPORT_DEFAULT_USERNAME=noreply@example.com EMAIL_TRANSPORT_DEFAULT_PASSWORD=email_password EMAIL_FROM=noreply@example.com # SSL/TLS (für Self-Signed Certs oder Let's Encrypt) PASSBOLT_SSL_CERT_PATH=/etc/ssl/certs/passbolt.crt PASSBOLT_SSL_KEY_PATH=/etc/ssl/private/passbolt.key
Schritt 3: docker-compose.yml erstellen
version: '3.8'
services:
mysql:
image: mariadb:10.11-alpine
container_name: passbolt-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
TZ: Europe/Berlin
volumes:
- /opt/passbolt/mysql_data:/var/lib/mysql
networks:
- passbolt-network
ports:
- "3306:3306"
passbolt:
image: passbolt/passbolt:latest-ce
container_name: passbolt-app
restart: unless-stopped
depends_on:
- mysql
ports:
- "8080:80"
- "443:443"
environment:
APP_FULL_BASE_URL: ${APP_FULL_BASE_URL}
DATASOURCES_DEFAULT_HOST: ${DATASOURCES_DEFAULT_HOST}
DATASOURCES_DEFAULT_PORT: ${DATASOURCES_DEFAULT_PORT}
DATASOURCES_DEFAULT_DATABASE: ${DATASOURCES_DEFAULT_DATABASE}
DATASOURCES_DEFAULT_USERNAME: ${DATASOURCES_DEFAULT_USERNAME}
DATASOURCES_DEFAULT_PASSWORD: ${DATASOURCES_DEFAULT_PASSWORD}
DATASOURCES_DEFAULT_SSL: ${DATASOURCES_DEFAULT_SSL}
EMAIL_TRANSPORT_DEFAULT_HOST: ${EMAIL_TRANSPORT_DEFAULT_HOST}
EMAIL_TRANSPORT_DEFAULT_PORT: ${EMAIL_TRANSPORT_DEFAULT_PORT}
EMAIL_TRANSPORT_DEFAULT_USERNAME: ${EMAIL_TRANSPORT_DEFAULT_USERNAME}
EMAIL_TRANSPORT_DEFAULT_PASSWORD: ${EMAIL_TRANSPORT_DEFAULT_PASSWORD}
EMAIL_FROM: ${EMAIL_FROM}
TZ: Europe/Berlin
volumes:
- /opt/passbolt/gpg_data:/etc/passbolt/gpg
- /opt/passbolt/jwt_data:/etc/passbolt/jwt
networks:
- passbolt-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/auth/login"]
interval: 30s
timeout: 10s
retries: 5
networks:
passbolt-network:
driver: bridge
volumes:
mysql_data:
gpg_data:
jwt_data:
Schritt 4: Passbolt starten
cd /opt/passbolt docker-compose up -d # Logs überprüfen docker-compose logs -f passbolt
Passbolt ist jetzt verfügbar unter: http://localhost:8080
Nginx Reverse Proxy mit HTTPS
server {
listen 80;
server_name passwords.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name passwords.example.com;
ssl_certificate /etc/letsencrypt/live/passwords.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/passwords.example.com/privkey.pem;
client_max_body_size 20M;
location / {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Aktivieren und SSL einrichten:
ln -s /etc/nginx/sites-available/passbolt /etc/nginx/sites-enabled/ nginx -t systemctl restart nginx certbot certonly --nginx -d passwords.example.com
Initial Setup und erste Anmeldung
Admin-Account erstellen
- Öffnen Sie https://passwords.example.com im Browser
- Klicken Sie "Create account"
- Füllen Sie das Registrierungsformular aus:
- Firstname: Admin
- Lastname: User
- Email: admin@example.com
- Username: admin
- Password: Sicheres Passwort
- Akzeptieren Sie die Terms und klicken Sie "Register"
- Sie werden zum Passbolt Dashboard weitergeleitet
Browser Extension installieren
- Gehen Sie zu Dashboard → Passbolt Plugins → Browser Extension
- Oder installieren Sie direkt:
- Firefox: "Passbolt" im Add-ons Store
- Chrome: "Passbolt" im Chrome Web Store
- Nach Installation: Konfigurieren Sie die Server-URL: https://passwords.example.com
Passwörter speichern und verwalten
Neues Passwort erstellen
- Im Dashboard: Klicken Sie "Create password" oder "+" Button
- Füllen Sie das Formular aus:
- Password Name: z.B. "GitHub Admin"
- Username: Benutzername
- Password: Das Passwort (oder Generator verwenden)
- URL: Optionale Ziel-URL
- Description: Notizen
- Klicken Sie "Save"
Passwort-Generator
Nutzen Sie den Generator für starke Passwörter:
- Länge: 16+ Zeichen (mindestens)
- Große und kleine Buchstaben
- Nummern und Sonderzeichen
- Generator erstellt automatisch komplexe Passwörter
Passwort-Sharing mit Team
Passwort mit anderen Benutzern teilen
- Öffnen Sie ein gespeichertes Passwort
- Klicken Sie auf "Share" Button
- Geben Sie den Benutzernamen oder die Gruppe ein
- Wählen Sie Zugriffslevel:
- Read: Nur Passwort anschauen
- Update: Passwort bearbeiten
- Owner: Volle Kontrolle
- Klicken Sie "Save"
Der andere Benutzer erhält Zugriff und kann das Passwort ausfüllen/anschauen.
Benutzerverwaltung (Admin)
Neue Benutzer einladen
- Gehen Sie zu Administration → Users
- Klicken Sie "Invite"
- Geben Sie Email-Adressen ein (komma-separiert)
- Wählen Sie Rolle: Admin, Manager, oder User
- Klicken Sie "Send invitations"
Der neue Benutzer erhält eine Email mit Einladungslink und kann sich registrieren.
Gruppen erstellen
- Gehen Sie zu Administration → Groups
- Klicken Sie "Create group"
- Geben Sie Gruppennamen ein: "Entwickler", "Marketing", etc.
- Fügen Sie Benutzer zur Gruppe hinzu
- Speichern
API Verwendung
API Token generieren
- Gehen Sie zu Profil → API Access
- Klicken Sie "Generate a new token"
- Kopieren Sie den generierten Token
Beispiel API Aufrufe
# Alle Passwörter abrufen
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
https://passwords.example.com/api/v2/resources
# Spezifisches Passwort abrufen (ID=abc123def)
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
https://passwords.example.com/api/v2/resources/abc123def
# Neues Passwort erstellen
curl -X POST \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "API Created Password",
"username": "testuser",
"password": "securepass123",
"uri": "https://example.com"
}' \
https://passwords.example.com/api/v2/resources
LDAP/Active Directory Integration
LDAP konfigurieren (Enterprise)
In der Enterprise Edition können Sie LDAP einbinden:
- Gehen Sie zu Administration → Directory Sync
- Aktivieren Sie LDAP/AD Sync
- Konfigurieren Sie LDAP Parameter:
- Server: ldap.example.com
- Port: 389
- Bind DN: cn=admin,dc=example,dc=com
- Base DN: dc=example,dc=com
- 🔧 Enjyn Gen Tools – Passwörter & Keys generieren
- 🔧 Enjyn Auth – Authentifizierung für Ihre Apps
- Speichern und Test durchführen
Backup Strategie
Datenbank und GPG-Keys sichern
#!/bin/bash
# /usr/local/bin/passbolt-backup.sh
BACKUP_DIR="/backup/passbolt"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
# MariaDB Dump
docker exec passbolt-mysql mysqldump -u passbolt -p$(grep MYSQL_PASSWORD /opt/passbolt/.env | cut -d= -f2) \
passbolt | gzip > $BACKUP_DIR/passbolt-db-$DATE.sql.gz
# GPG Keys sichern (KRITISCH!)
tar -czf $BACKUP_DIR/passbolt-gpg-$DATE.tar.gz /opt/passbolt/gpg_data
# Keep only last 30 days
find $BACKUP_DIR -name "*.gz" -mtime +30 -delete
echo "Backup completed: $BACKUP_DIR"
Weitere Ressourcen