Cette page a été migrée depuis DokuWiki grâce à la méthode du copier-coller. Il faudra donc probablement lui donner une refonte assez rapidement pour la mettre à jour. — otthorn, 2021-04-03
Aurore a besoin d'une méthode pour partager des mots de passe entre les membres actifs selon leur groupe. Passbolt est la solution retenue qui réutilise les principes de l'ancien outil du Crans, tout en offrant une interface Web.
Passbolt ne doit être utilisé que pour les services où il n'est pas possible d'authentifier chaque membre, et son utilisation doit rester dans le cadre d'Aurore. Cela permet de savoir le plus possible qui est responsable. Nous sommes pas responsable si vous mettez des mots de passe important autres que ceux d'Aurore et qu'une faille de sécurité les fasse fuiter.
Si vous installez des services qui ont des mots de passe définis dans leur configuration en clair, alors ne mettez pas ces mots de passe dans Passbolt car un administrateur saura aller chercher le mot de passe en root dans le fichier de configuration. Exemple : le mot de passe d'un utilisateur dans une base de données.
Le crans utilisait CransPassword qui est une interface à OpenGPG pour permettre un chiffrement sécurisé des secrets mais nécessitait la connaissance d'OpenGPG et de la ligne de commande, ce qui n'est pas aisé pour tout le monde.
Passbolt utilise les mêmes principes que CransPassword et peut s'utiliser en terminal comme ce dernier, mais offre également une interface web avec une extension pour qu'une personne lambda puisse en profiter.
Les avantages de Passbolt est sa simplicité d'utilisation et sa sécurité. Par exemple les secrets ne peuvent pas être récupérés sur le serveur car le chiffrement se fait dans l'extension du navigateur avec la clé privée GPG et le serveur ne voit transité que des secrets chiffrés.
Le principal désavantage est qu'il faut mettre sa clé privée dans l'extension du navigateur pour en profiter avec l'interface web, sinon il faut passer par le terminal. À noter aussi que la version communautaire de Passbolt ne permet pas l'utilisation du LDAP, et nécessite donc de manuellement ajouter les gens dans les groupes, ce qui de toute façon requiert un rechiffrement des mots de passe.
Il y a une clé GPG privée sur le serveur qui permet à l'extension de reconnaître que le serveur est bien celui d'Aurore, mais elle ne permet pas de déchiffrer les mots de passe stockés.
Pour l'installer, il faut commencer par appliquer le playbook Ansible Passbolt qui se charge d'installer les dépendances avec APT (Debian Buster requis) et de cloner passbolt dans /var/www/passbolt (répertoire conseillé).
Pour envoyer les mails il faut un cron dans /etc/cron.d/passbolt_email :
* * * * * su -c "/var/www/passbolt/bin/cake EmailQueue.sender" -s /bin/bash www-data >> /var/log/cron.log 2>&1
Puis on l'active avec crontab /etc/cron.d/passbolt_email. Installation de la base de données
On sécurise l'installation locale de mysql en lançant un coup mysql_secure_installation.
Puis on lance mysql et on définit la base pour passbolt :
> CREATE DATABASE passbolt CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
> CREATE USER 'passbolt'@'localhost' IDENTIFIED BY 'PASSWORD';
> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON passbolt.* TO 'passbolt'@'localhost';
> FLUSH PRIVILEGES;
On génère une clé avec gpg –gen-key
puis on la donne au serveur passbolt pour qu'il puisse prouver son identité.
Voir la documentation officielle. Écriture de la configuration de Passbolt
Voir la documentation officielle.
Si vous ne souhaitez pas utiliser une extension dans votre navigateur et garder votre clé openPGP dans son trousseau vous pouvez utiliser passbolt_cli en terminal.
Clonez le projet à un endroit où vous ne le déplacerez pas : git clone git@github.com:passbolt/passbolt_cli.git puis cd passbolt_cli. Installez les dépendances avec npm npm install puis créez un lien symbolique pour le lancer npm link.
Ensuite il faut créer app/config/config.json
avec dedans :
{
"domain" : {
"baseUrl": "https://passbolt.auro.re",
"publicKey" : {
"fingerprint": "C4B0E5095A5CDFB98CD8E635CE889CB16CC921E7"
}
},
"user" : {
"firstname": "VOTRE PRENOM",
"lastname" : "VOTRE NOM",
"email" : "VOTRE MAIL",
"privateKey" : {
"fingerprint": "LA FINGERPRINT DE VOTRE CLE PRIVEE DANS OPENPGP"
}
}
}
Si passbolt refuse de s'identifier, alors importez la clé publique du serveur. Utilisation
Identifiez-vous avec passbolt auth login et voilà !
Vous pouvez lister les secrets avec passbolt find.
Pour lire un secret, vous pouvez faire par exemple
passbolt get ffff600e-58da-4627-b1f1-b687b8cdaf27 | gpg --decrypt