Taille: 3351
Commentaire: $PATH, completion
|
← Version 23 à la date du 2021-09-24 14:43:00 ⇥
Taille: 3520
Commentaire:
|
Texte supprimé. | Texte ajouté. |
Ligne 1: | Ligne 1: |
## page was renamed from CransTechnique/ScriptsCrans/CransPasswords | |
Ligne 2: | Ligne 3: |
Cranspasswords est un petit script à usage des nounous (et à l'avenir au CA et apprentis) permettant d'obtenir les mots de passe de certains services et d'autres informations privées. | #acl GroupeAdmin:read,write,revert,delete,admin All:read,write Cranspasswords est un petit script à usage des membres actifs (nounous, CA, trésoriers, apprentis etc) permettant de partager ses mots de passe, tout en contrôlant les accès. Il s'appuie intensivement sur [[WikiInformatique/ConnexionSsh|ssh]] et [[http://www.gnupg.org/gph/fr/manual.html|gpg]]. |
Ligne 4: | Ligne 7: |
Les mots de passe sont stockés sous forme de fichiers chiffrés sur {{{vert}}}. Les fichiers sont chiffrés de sorte que chaque personne autorisée puisse le déchiffrer avec sa clé privée. | ## Truc à linker qui a été filé par Chopopope à Jben (Pensez aussi à regarder [[]]). Les clients se connectent via une connexion sécurisée (ssh) à un serveur centralisant les mots de passe. Pour éviter que la compromission d'un serveur ne fournisse (rapidement) les mots de passes, ceux-ci sont chiffrés avec la clé publique des propriétaires (par exemple l'ensemble des nounous dans le cas du mot de passe root). Un ensemble de personnes qui doivent accéder aux mêmes mot de passe est appelé "rôle" (par exemple les rôles {{{nounous}}}, {{{apprentis}}}, {{{ca}}}). Le chiffrement d'un mot de passe lisible par un rôle est effectué lors de l'enregistrement (ou mise à jour) de ce mot de passe par un des membres du rôle autorisé en écriture, avant l'envoi au serveur. Ainsi, le serveur ne stocke ni ne voit transiter aucun mot de passe qu'il serait en mesure de déchiffrer. Ce fonctionnement impose également que la personne chiffrant les mots de passe ait une confiance suffisante (au sens PGP) en toutes les personnes du rôle cible. Ce script a maintenant vocation à être utilisé ailleurs qu'au Crans (respos bde, admin federez ?), la page ci-dessous présente un guide rapide pour le configurer dans le cas du Crans uniquement. |
Ligne 9: | Ligne 16: |
Premièrement, il vous faut une clé gpg. Si vous n'en avez pas encore, il est facile [[http://www.siteduzero.com/tutoriel-3-33316-la-cryptographie-facile-avec-pgp.html|d'en créer une nouvelle]]. | Premièrement, il vous faut une clé PGP. Si vous n'en avez pas encore, il est facile [[http://www.siteduzero.com/tutoriel-3-33316-la-cryptographie-facile-avec-pgp.html|d'en créer une nouvelle]]. |
Ligne 13: | Ligne 20: |
Il est obligatoire d'avoir une phrase de passe sur sa clé gpg. | Il est obligatoire d'avoir une phrase de passe sur sa clé PGP. |
Ligne 15: | Ligne 22: |
=== Accès à vert === {{{vert}}} (aka {{{ldap}}}) est une machine du réseau adm, on ne peut donc y accéder directement. Il faut donc modifier son fichier {{{.ssh/config}}} afin de permettre un accès depuis un serveur intermédiaire (ici {{{vo}}}):{{{ Host vert.adm.crans.org User dstan ProxyCommand ssh dstan@vo.crans.org "nc vert.adm.crans.org 22" ForwardX11 no }}} |
=== Accès au serveur === Au crans, le serveur de stockage est {{{odlyd}}}. Une copie des données est présente sur le serveur {{{soyouz}}} (chez OVH), en lecture seule uniquement (en cas d'urgence). |
Ligne 23: | Ligne 25: |
Il est également plus que conseillé de disposer d'une clé ssh afin d'éviter un nombre conséquent de demandes de mots de passe de connexion. Dans le même esprit, il peut être utile d'avoir une connexion ssh maître vers vert ou vo afin de rendre les requêtes un poil plus rapides. | Il est également conseillé de disposer d'une clé ssh (avec un agent) afin d'éviter un nombre conséquent de demandes de mots de passe de connexion. |
Ligne 28: | Ligne 30: |
Cloner [[http://git.crans.org/git/cranspasswords.git|le dépôt git]] sur votre ordinateur. | Cloner [[https://gitlab.crans.org/nounous/cranspasswords.git|le dépôt git]] sur votre ordinateur. |
Ligne 30: | Ligne 32: |
Copier {{{clientconfig.example.py}}} en {{{clientconfig.py}}} et modifier la variable '''user''' du fichier pour la faire correspondre à votre login crans (facultatif si vous êtes déjà connecté sur votre pc avec votre login crans.) Il faut que ça donne : {{{ 'user' : 'passoire' }}} |
Suivre les instructions du README (partie ''Installation et configuration du client''). |
Ligne 40: | Ligne 36: |
./cranspasswords.py --help | cranspasswords --help |
Ligne 43: | Ligne 39: |
Pour pouvoir exécuter {{{cranspasswords}}} de n'importe où dans le système de fichiers, il est possible de le '''mettre dans sont PATH'''. Ceci se fait del a manière canonique suivante : * Créer un dossier {{{bin}}} à un endroit bien choisi (typiquement, dans votre home) (vous pouvez choisir un autre nom) * Ajouter la ligne {{{export PATH=$PATH:~/bin}}} dans le fichier de configuration de votre shell ({{{.bashrc}}}, {{{.zshrc}}}, …) Vous pouvez également sourcer le fichier {{{cranspasswords_bash_completion}}} pour avoir la bash-complétion sur cranspasswords. ({{{_cranspasswords}}} fournira l'équivalent aux utilisateurs de zsh) == En cas de panne du réseau/vert == Une copie '''en lecture seule''' est (r)synchronisée sur {{{ovh.crans.org}}}. On peut l'utiliser pour à l'aide de l'option {{{--server}}}: |
== Si odlyd n'est plus joinable == Une copie '''en lecture seule''' est (r)synchronisée sur {{{soyouz.crans.org}}}. On peut l'utiliser pour à l'aide de l'option {{{--server}}} (ou {{{-s}}}): |
Ligne 52: | Ligne 42: |
./cranspasswords.py --server ovh --list | cranspasswords --server ovh --list |
Ligne 57: | Ligne 47: |
* Mieux attribuer les droits (rôles) * Faire quelque chose pour que les connexions soient moins lentes, même à travers vert (passer à la main, via script le ssh_config avec tunnelling et ControlMaster) |
* (./) Mieux attribuer les droits (rôles) * Faire un truc plus propre que le rsync sauvage * (./) Remplir notre liste de rôles et fingerprint automatiquement * (./) Faire quelque chose pour que les connexions soient moins lentes |
Cranspasswords est un petit script à usage des membres actifs (nounous, CA, trésoriers, apprentis etc) permettant de partager ses mots de passe, tout en contrôlant les accès. Il s'appuie intensivement sur ssh et gpg.
Les clients se connectent via une connexion sécurisée (ssh) à un serveur centralisant les mots de passe. Pour éviter que la compromission d'un serveur ne fournisse (rapidement) les mots de passes, ceux-ci sont chiffrés avec la clé publique des propriétaires (par exemple l'ensemble des nounous dans le cas du mot de passe root). Un ensemble de personnes qui doivent accéder aux mêmes mot de passe est appelé "rôle" (par exemple les rôles nounous, apprentis, ca). Le chiffrement d'un mot de passe lisible par un rôle est effectué lors de l'enregistrement (ou mise à jour) de ce mot de passe par un des membres du rôle autorisé en écriture, avant l'envoi au serveur. Ainsi, le serveur ne stocke ni ne voit transiter aucun mot de passe qu'il serait en mesure de déchiffrer. Ce fonctionnement impose également que la personne chiffrant les mots de passe ait une confiance suffisante (au sens PGP) en toutes les personnes du rôle cible.
Ce script a maintenant vocation à être utilisé ailleurs qu'au Crans (respos bde, admin federez ?), la page ci-dessous présente un guide rapide pour le configurer dans le cas du Crans uniquement.
Getting Started
PGP
Premièrement, il vous faut une clé PGP. Si vous n'en avez pas encore, il est facile d'en créer une nouvelle.
Vous devrez alors communiquer l'empreinte (fingerprint) de votre clé à votre RTC préféré puis lui demander de signer votre clé et de rechiffrer les fichiers que vous avez le droit de lire.
Il est obligatoire d'avoir une phrase de passe sur sa clé PGP.
Accès au serveur
Au crans, le serveur de stockage est odlyd. Une copie des données est présente sur le serveur soyouz (chez OVH), en lecture seule uniquement (en cas d'urgence).
Il est également conseillé de disposer d'une clé ssh (avec un agent) afin d'éviter un nombre conséquent de demandes de mots de passe de connexion.
Plus d'informations dans WikiInformatique/AstucesSsh.
Installation
Cloner le dépôt git sur votre ordinateur.
Suivre les instructions du README (partie Installation et configuration du client).
Utilisation
cranspasswords --help
Si odlyd n'est plus joinable
Une copie en lecture seule est (r)synchronisée sur soyouz.crans.org. On peut l'utiliser pour à l'aide de l'option --server (ou -s):
cranspasswords --server ovh --list
Todo
- Faire le ménage dans les fichiers
Mieux attribuer les droits (rôles)
- Faire un truc plus propre que le rsync sauvage
Remplir notre liste de rôles et fingerprint automatiquement
Faire quelque chose pour que les connexions soient moins lentes
Logguer les modifications