Couverture de l'article LockPass : automatiser la sauvegarde des mots de passe
Retour aux articles

L'agence

WanadevStudio

LockPass : automatiser la sauvegarde des mots de passe

Chez Wanadev, on a récemment changé de gestionnaire de mot de passe. On est passés de la solution états-unienne Zoho Vault à LockPass, édité par l'entreprise française LockSelf.

Aussi fiable que puisse être le prestataire choisi, il est essentiel pour nous d'avoir une sauvegarde de nos mots de passe en dehors de chez lui pour ne pas nous retrouver dans la panade le jour où il y a un souci.

Zoho avait ses défauts, mais il possédait une fonctionnalité fort pratique : il envoyait chaque semaine un export (chiffré) des mots de passe par email à tous les utilisateurs. Cet export contenait à la fois les mots de passe partagés auxquels la personne avait accès et ses mots de passe personnels.

Cette fonctionnalité n'étant pas présente dans LockPass, on a donc dû se pencher nous-mêmes sur la sauvegarde des mots de passe. On a donc développé pour cela un outil en ligne de commande nommé LockPass Export qui automatise l'export en utilisant les APIs de la solution (on n'avait pas envie d'aller faire un export manuel tous les jours ou toutes les semaines 😅️).

Aujourd'hui on va donc vous présenter notre outil et la manière de le mettre en œuvre pour sauvegarder quotidiennement tous les mots de passe partagés d'une organisation.

Présentation de l'outil LockPass Export

LockPass Export est donc un outil en ligne de commande permettant d'exporter les mots de passe partagés ainsi que les éventuels fichiers joints d'une organisation LockPass. Nous avons fait le choix de le rendre open source, sous licence GPL-3.0, afin qu'il puisse bénéficier à tous, vous le trouverez donc sur notre GitHub :

Cet outil est développé sous la forme d'un unique script Python et n'utilise aucune dépendance tierce, ce qui devrait faciliter son utilisation. Pour en savoir plus sur la culture de l'open source chez Wanadev, découvrez notre article dédié.

Prérequis

Pour utiliser cet outil, vous aurez besoin :

NOTE : Dans la suite de cet article nous allons détailler l'installation et l'utilisation de l'outil sous Linux. Il est possible de le faire fonctionner sous Windows ou macOS mais vous devrez adapter les commandes et chemins à la plateforme.

Installation

Comme on vient de l'indiquer, l'outil a été écrit sous la forme d'un script Python sans aucune dépendance (en dehors de Python lui-même). Nous l'avons toutefois également publié sur PyPI, ce qui vous donne donc deux possibilités pour l'utiliser, en fonction de ce qui est le plus pratique pour vous.

Utiliser le script seul

La première possibilité est donc d'utiliser directement le script puisqu'il se suffit à lui-même. Voici quelques commandes à exécuter avec des droits administrateur (compte root ou avec sudo) que vous pouvez utiliser pour l' "installer" dans le dossier /opt :

# Téléchargement de la dernière version du script
wget -O /opt/lockpass_export.py https://raw.githubusercontent.com/wanadev/lockpass-export/refs/heads/master/lockpass_export.py

# Rendre le script exécutable
chmod +x /opt/lockpass_export.py

Vous pouvez à présent appeler le script avec la commande suivante :

/opt/lockpass_export.py --help

Installer LockPass Export depuis PyPI

La seconde solution est d'installer l'outil depuis PyPI, ce qui a pour avantage de faciliter sa mise à jour.

Pour ce faire il faut s'assurer d'avoir une version complète de Python 3 avec le module venv présent. Sous Debian, Ubuntu et leurs dérivés vous pouvez utiliser la commande suivante (avec des droits administrateur) pour installer tout le nécessaire :

apt install python3 python3-dev python3-venv

Ensuite on va créer un virtualenv pour accueillir le logiciel :

python3 -m venv /opt/lockpass-export.venv

Puis on installe LockPass Export à l'intérieur :

/opt/lockpass-export.venv/bin/pip install lockpass-export

Et voilà, vous pouvez à présent lancer l'application avec la commande suivante :

/opt/lockpass-export.venv/bin/lockpass-export --help

Mettre à jour LockPass Export

Si vous avez installé le script avec la première méthode, remplacez-le simplement par une version plus récente. N'oubliez pas de lui remettre les droits d'exécution (chmod +x).

Si vous avez installé le script depuis PyPI, utilisez la commande suivante pour le mettre à jour :

/opt/lockpass-export.venv/bin/pip install --upgrade lockpass-export

Utilisation de l'outil

Voici un exemple d'utilisation de LockPass Export :

/opt/lockpass-export.venv/bin/lockpass-export \
    --url https://mycompany.lockself-cloud.com \
    --auth-token XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \
    --ls-token XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \
    /root/lockpass-export

Où :

  • --url permet d'indiquer l'URL de base de votre instance LockPass (ici hébergée dans le cloud de LockSelf),

  • --auth-token et --ls-token permettent de fournir les tokens de l'utilisateur API qui effectuera les exports,

  • /root/lockpass-export est le dossier de destination.

NOTE : Suivant votre méthode d'installation il vous faudra adapter le chemin vers l'outil. Référez-vous à la section précédente pour retrouver comment lancer le logiciel.

ATTENTION : LockPass Export va écrire les données en clair dans le dossier de destination. Privilégiez donc un endroit qui n'est pas accessible en lecture par tous les utilisateurs du système. On va voir dans la section suivante comment mettre en œuvre la sauvegarde de manière sécurisée.

Dans notre cas nous avons une seule organisation sur notre LockPass. Si vous en avez plusieurs, il faudra exporter les mots de passe de chaque organisation séparément, en ajoutant le paramètre --organisation-id <ID> (exemple : --organisation-id 1). Vous retrouverez l'ID de l'organisation dans l'URL de la page de management (par exemple lorsque vous listez les utilisateurs de l'organisation).

Mise en œuvre des sauvegardes

Dans notre cas, nous effectuons nos sauvegardes avec BorgBackup. On ne va pas aborder le fonctionnement de cet outil dans le présent article car ce n'est pas le sujet, mais vous pouvez lire la série d'articles que je lui ai dédiée sur mon blog si vous souhaitez en apprendre davantage :

Pour effectuer notre sauvegarde, nous allons utiliser une petite machine virtuelle dédiée à cette tâche, qui ne sera pas accessible depuis l'extérieur. L'opération de sauvegarde se déroulera de la manière suivante :

  • création d'un dossier et d'un disque virtuel en RAM pour ne pas écrire les mots de passe en clair sur le disque,
  • export des mots de passe avec LockPass Export,
  • sauvegarde des mots de passe avec BorgBackup,
  • démontage du disque virtuel pour ne laisser aucune trace.

Voici un exemple de script que l'on pourrait écrire pour effectuer ces tâches :

#!/bin/bash

# Création du dossier dans lequel on va monter notre disque virtuel. On le
# crée dans /root car ce dossier n'est pas accessible aux autres utilisateurs du
# système.
mkdir -p /root/lockpass-export

# Création et montage du volume en RAM.
mount -t tmpfs -o size=10M tmpfs /root/lockpass-export

# Export des mots de passe avec LockPass Export
/opt/lockpass-export.venv/bin/lockpass-export \
    --url "https://mycompany.lockself-cloud.com" \
    --auth-token "XXXXXXXXXXXXXXXXXXXX" \
    --ls-token "XXXXXXXXXXXXXXXXXX" \
    /root/lockpass-export

# Sauvegarde (chiffrée) avec BorgBackup.
export BORG_PASSPHRASE='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
borg create --list <URL DU DÉPÔT BORG> /root/lockpass-export

# Démontage du volume en RAM.
umount /root/lockpass-export

NOTE : Le script est volontairement simple pour que vous ayez une idée de la marche à suivre, mais on pourrait l'améliorer, notamment en gérant les erreurs.

Étant donné que ce script contient des secrets (tokens LockSelf et mot de passe BorgBackup), on va l'enregistrer dans un endroit « safe », comme par exemple "/root/backup-lockself-password.sh". Et bien sûr on n'oublie pas de le rendre exécutable :

chmod +x /root/backup-lockself-password.sh

Voilà, maintenant il ne reste plus qu'à ajouter une tâche planifiée pour effectuer une sauvegarde toutes les nuits. Si vous utilisez cron cela se fait en tapant la commande suivante en root :

crontab -e

Puis en entrant une règle similaire à celle-ci (ici on sauvegarde toutes les nuits à 3h du matin) :

 0 3 * * * /bin/bash /root/backup-lockself-password.sh

Conclusion

Voilà, avec tout ça vous devriez pouvoir facilement sauvegarder vos mots de passe LockPass de manière automatisée. N'hésitez pas à nous faire part de vos remarques ou à nous signaler d'éventuels bugs ou erreurs dans les commentaires de l'article ou en ouvrant une issue sur GitHub ! 😄️


L'image de couverture est un travail dérivé d'une photo d'Henry Newman placée sous licence CC BY-SA 4.0 et d'une icône issue de OnlineWebFonts.COM placée sous licence CC BY 4.0. Le logo de LockPass est la propriété de LockSelf.

Commentaires

Il n'y a actuellement aucun commentaire. Soyez le premier !