Tutoriel de Configuration et Sécurisation de Passbolt
Ce tutoriel couvre l’installation, la configuration et la sécurisation d’un serveur Passbolt : Documentation
Pré-requis
- Un nom de domaine / nom d’hôte pointant vers un serveur, ou au moins la possibilité d’atteindre le serveur via une adresse IP statique.
- Une VM avec au moins 2 coeurs et 2go de ram
- Un serveur SMTP
- Le service NTP fonctionnel pour éviter les problèmes d’authentification GPG
- Ubuntu Serveur 24.04 avec chiffrement LVM
- Provisionner les certificats SSL
Il est important d’utiliser un serveur propre, sans autres services ou outils déjà installés. Les scripts d’installation pourraient potentiellement crasher et endommager les données.
Configuration de la VM :
Notes
La config minimal server de Ubuntu n’ajoute pas les package nano, ping etc…
Règles du pare-feu :
Les ports à ouvrir si configuration firewall de la VM : (Pour notre serveur SMTP : port 25 au lieu de 587)
Inbound rules :
| Protocol | Port |
|---|---|
| HTTP | 80 |
| HTTPS | 443 |
Outbound rules :
| Protocole | Port |
|---|---|
| HTTP | 80 |
| HTTPS | 443 |
| SMTP | 587 |
| DNS | 53 |
| NTP | 123 |
| HKPS | 11371 |
Installation de Passbolt
1. Vérifier la configuration réseau:
Ici nous avons le rendu yaml du cloud-init, à ne pas modifier, il vient récuperer la configuration réseau appliqué lors de l’installation Pour ubuntu server, c’est systemd-resolved qui gère le DNS
network:
version: 2
ethernets:
ens18:
addresses:
- "ip_statique"
nameservers:
addresses:
- mon_dns
search:
- ma_zone
routes:
- to: "default"
via: "ma_passerelle"
2. Installation de l’Environnement
Certains packages peuvent être déjà installés, suivant la version installée d’Ubuntu
- Mettez à jour le système et installez les dépendances :
- L’accès à un serveur NTP est primordial pour mener à bien la création des clés GPG
- Le package dialog est nécessaire pour faire apparaître correctement les informations durant le processus d’installation
- dns-utils pour vérifier les infos DNS du serveur
sudo apt update
sudo apt install chrony dialog dnsutils -y
timedatectl set-timezone "Europe/Luxembourg"
Attention !
- si le package dialog est introuvable, rajouter le repo universe
sudo add-apt-repository universe
Exemple d’erreur : problème de synchronisation NTP, faire :
sudo chronyc -a makestep
systemctl daemon-reload
Provisionner les certificats SSL
créer le dossier
mkdir -p /etc/ssl
Copier les clés sur le serveur (vérifier l’accès au dossier de destination)
scp -r ‘C:\chemin\de\votre\dossier’ user@192.168.1.1:/chemin/de/destination
mv _.xxxxxxxxxx.chained.crt _.xxxxxxxxxx_private_key.key xxxxxxxxxx_ssl_certificate.cer /etc/ssl
Renommer les cerificats, plus simple à renseigner durant l’installation
mv _.xxxxxxxxxx.chained.crt xxxxx.chained.crt
mv _.xxxxxxxxxx_private_key.key xxxxx.key
mv xxxxxxxxxx_ssl_certificate.cer .xxxxxxcer
3. Installation
Étape 1. Téléchargez notre script d’installation des dépendances :
curl -LO https://download.passbolt.com/ce/installer/passbolt-repo-setup.ce.sh
Téléchargez notre SHA512SUM pour le script d’installation :
curl -LO https://github.com/passbolt/passbolt-dep-scripts/releases/latest/download/passbolt-ce-SHA512SUM.txt
Assurez-vous que le script est valide et exécutez-le :
sha512sum -c passbolt-ce-SHA512SUM.txt && sudo bash ./passbolt-repo-setup.ce.sh || echo "Mauvais checksum. Abandon" && rm -f passbolt-repo-setup.ce.sh
Installer le package officiel Linux de Passbolt
sudo apt install passbolt-ce-server
ATTENTION : les inputs à renseigner ne peuvent être copié/collé, faites attention
Pour la configuration du serveur web Nginx, choisir “manual”, ensuite “yes” (Assurez-vous d’avoir accès dans un dossier à vos certificats si vous comptez les ajouter pendant l’installation). Vous pourrez toujours les rajouter ensuite (choisir “manuel” et “non” dans ce cas).
Renseignez les informations nécessaires lors de l’apparation des fenêtres suivantes :
2. (PLUS NECESSAIRE DEPUIS LA MAJ) Après installation, si la page par défaut de nginx apparaît à la place de passbolt, vous pouvez supprimer les pages par défaut pour y accéder :
sudo rm /etc/nginx/sites-available/default
sudo rm /etc/nginx/sites-enabled/default
Configuration de Passbolt
Fichier de Configuration
Afin de modifier les fichiers de configuration, deux solutions s’offrent à vous, soit débloquer l’utilisateur root ou alors créer un utilisateur dédié, ou encore passer par les commandes suivantes :
exemple : su -c ’nano /etc/passbolt/passbolt.php’ www-data –shell /bin/bash
-
Éditez le fichier
/etc/passbolt/passbolt.phppour définir les paramètres de base : -
Assurez-vous que
App.fullBaseUrlest correctement configuré (c’est le lien absolu avec lequel les utilisateurs auront accès à leur gestionnaire):
'App' => [
'fullBaseUrl' => 'https://www.mon_serveur_passbolt.com'
]
Ajout ou modification de certificat après installation
- Deux options s’offre à vous, soit lancer la commande
sudo dpkg-reconfigure passbolt-ce-serveret rajouter les certificats ssl pendant la reconfiguration de nginx, mais vous devrez renseigner le reste des infos de votre passbolt comme à l’installation de départ, soit éditer le fichier de configuration de nginx :
sudo nano /etc/passbolt/nginx-passbolt.conf
Le guide officiel : Configuration HTTPS
- Si vous importez votre certificat sur le serveur, assurez-vous de sécuriser votre dossier, exemple : sudo chown -Rf root:www-data /etc/nginx/ssl sudo chmod 750 /etc/nginx/ssl/ sudo chmod 640 /etc/nginx/ssl/.xxxxxxxx.chained.crt sudo chmod 640 /etc/nginx/ssl/.xxxxxxxx_private_key.key sudo chmod 640 /etc/nginx/ssl/_.xxxxxxxx_ssl_certificate_INTERMEDIATE.zip sudo chmod 640 /etc/nginx/ssl/xxxxxxxx_ssl_certificate.cer
Si nginx est KO après mise a jour des certificats : systemctl restart nginx NE PERMET PAS DE METTRE A JOUR SON DAEMON faire :
systemctl stop nginx
systemctl start nginx
Configuration SMTP
- Configurez le serveur SMTP (exemple avec IONOS) :
- Testez avec la commande :
sudo -H -u www-data bash -c "/usr/share/php/passbolt/bin/cake passbolt send_test_email --recipient=mon_mail@domaine.com"
- Si le port SMTP est bloqué, vérifier le port utilisé par votre serveur et le firewall.
Vérifications et Dépannage
Vérification de la Configuration
- Testez la syntaxe Nginx :
sudo nginx -t
- Effectuez un rapport de santé du système :
sudo /usr/share/php/passbolt/bin/status-report
Forcer le SSL
Soit dans les options d’interface graphique, soit via le fichier de configuration :
- Pour forcer l’utilisation de SSL dans
/etc/passbolt/passbolt.php:
'ssl' => [
'force' => true
]
Sécurisation du dossier /etc/passbolt/jwt/ :
sudo chown -Rf root:www-data /etc/passbolt/jwt/ sudo chmod 750 /etc/passbolt/jwt/ sudo chmod 640 /etc/passbolt/jwt/jwt.key sudo chmod 640 /etc/passbolt/jwt/jwt.pem
Logs
Les logs sont disponibles dans /var/log/passbolt/.
Désactiver le endpoint SMTP
passbolt.security.smtpSettings.endpointsDisabled sur la valeur ’true’ dans /etc/passbolt/passbolt.php.
Attention !!!
- Votre fichier de récupération est à garder ABSOLUMENT. Si en tant qu’administrateur vous perdez ce fichier, vous ne serez pas en capacité de récupérer votre base de données si vous avez perdu votre fichier de récupération et votre mot de passe.
procédure de récupération de compte en CLI
Si vous avez été déconnecté de votre compte et que vous devez procéder à une récupération, vous pouvez utiliser la commande suivante :
sudo su -s /bin/bash -c "/usr/share/php/passbolt/bin/cake passbolt recover_user -c -u YOUR_EMAIL" www-data
Gestion de la Base de Données (à remplir) :
- Pour initialiser la base, utilisez un fichier de dump si nécessaire :
mysql -u PASSBOLT_DATABASE_USER -p PASSBOLT_DATABASE < mysqldump.sql
- Pour gérer les utilisateurs de la base de données et configurer les droits :
-
Vérifiez les noms d’utilisateur et mots de passe dans le fichier
/etc/passbolt/passbolt.php. -
Si vous rencontrez une erreur pendant le processus d’installation, vous pouvez recommencer celle-ci via la commande suivante :
-
dpkg-reconfigure passbolt-ce-server
Si cette commande ne fonctionne pas et renvoi l’erreur : “/var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable”, vous pouvez cibler le process et le kill via :
fuser -v /var/cache/debconf/config.dat
kill
Ressources :
Installation Passbolt Ubuntu Server Debian/Ubuntu manual HTTPS configuration