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 :

Configuration matérielle 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

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

Installation de passbolt étape 1

Installation de passbolt étape 2

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

Fichier de config passbolt

  1. Éditez le fichier /etc/passbolt/passbolt.php pour définir les paramètres de base :

  2. Assurez-vous que App.fullBaseUrl est 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

  1. Deux options s’offre à vous, soit lancer la commande sudo dpkg-reconfigure passbolt-ce-server et 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

  1. 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

  1. 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

  1. Testez la syntaxe Nginx :
sudo nginx -t
  1. 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) :

  1. Pour initialiser la base, utilisez un fichier de dump si nécessaire :
mysql -u PASSBOLT_DATABASE_USER -p PASSBOLT_DATABASE < mysqldump.sql
  1. 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