texinfo: remove translated MD files.
parent
fa21704515
commit
293e6e1eff
|
@ -1,91 +0,0 @@
|
|||
# Réunion IN
|
||||
|
||||
* Date : Samedi 13 Janvier 2024
|
||||
* Lieu : MB87 et Galène (<https://galene.crans.org/group/IN>)
|
||||
* Début : 13h32
|
||||
* Fin : 15h32
|
||||
|
||||
## Présent⋅es
|
||||
|
||||
* [bleizi](https://wiki.crans.org/WikiBleizi)
|
||||
* [Pigeon Moelleux](https://wiki.crans.org/WikiPigeonMoelleux)
|
||||
* GaBo
|
||||
* [vanille](https://wiki.crans.org/VanilleNiven)
|
||||
* [Otthorn](https://wiki.crans.org/SolalNathan)
|
||||
* [Hachino](https://wiki.crans.org/WikiHachino)
|
||||
* [esum](https://wiki.crans.org/Esum)
|
||||
* Korenst1
|
||||
* shirenn
|
||||
* Floflo
|
||||
* RDB
|
||||
* lzebulon
|
||||
* [Aplanos](https://wiki.crans.org/WikiAplanos)
|
||||
* Abidos
|
||||
|
||||
## Ordre du jour
|
||||
|
||||
* Présentation SRS et fix `mailman` (spam, SPF, comptes bizarres)
|
||||
* Point sur les DistUpgrades des VM
|
||||
* Discussions avec la DSI (imprimante, eduroam, radius dans les locaux
|
||||
associatifs)
|
||||
* État de la DGNum (Crans à Ulm)
|
||||
* Autres remarques diverses
|
||||
|
||||
### Guix
|
||||
|
||||
Le conseil technique s'est prononcé lors d'une séance précédente contre la
|
||||
mise en place de test Guix et a approuvé uniquement le fait de tester Nix. Les
|
||||
tests d'intégration Guix de l'infrastructure du Crans sont de facto une perte
|
||||
de temps et devraient être interrompus.
|
||||
|
||||
### Désinscription mailing lists
|
||||
|
||||
Un email de plainte a levé des doutes sur le bon fonctionnement du mécanisme
|
||||
de désinscription de `lists.crans.org`. Des tests ont été réalisés en
|
||||
direct par un membre et ont confirmé que l'échec de la procédure n'est pas
|
||||
de la faute du Crans.
|
||||
|
||||
## SRS
|
||||
|
||||
`shirenn` a présenté la motivation et le fonctionnement de
|
||||
[SRS](https://en.wikipedia.org/wiki/Sender_Rewriting_Scheme) pour nos
|
||||
redirections de mails. Il a été identifié en direct que cela est lié
|
||||
directement aux problèmes récents de surabondance d'emails "Successful Mail
|
||||
Delivery Report" sur `root@crans.org` lorsqu'un accusé de réception est
|
||||
demandé.
|
||||
|
||||
Étant donné l'importance de ne pas perdre d'emails et la relative fragilité
|
||||
du système il est décidé de ne pas immédiatement supprimer ces reports,
|
||||
mais lorsque nous serons plus certains de la robustesse de SRS nous
|
||||
envisagerons de retirer `root` des récipients.
|
||||
|
||||
## Mailman
|
||||
|
||||
Nous observons des mails acceptés qui ne sont visiblement pas conformes à la
|
||||
whitelist mise en place. L'abondance de problèmes avec mailman en général
|
||||
nous mène à envisager la migration à [sympa](https://www.sympa.community/).
|
||||
|
||||
Cela pourra faire l'objet d'un projet apprentis, pour lequel lzebulon, RDB,
|
||||
Korenst1 et GaBo se disent motivés.
|
||||
|
||||
## DU (distrib upgrade)
|
||||
|
||||
Tout casse à chaque fois qu'on DU un serveur.
|
||||
On va passer soon^{TM} sur NixOS.
|
||||
|
||||
## DSI: eduroam
|
||||
|
||||
La DSI a accepté de mettre à jour une pratique obsolète concernant la
|
||||
connexion au wifi eduroam dans l'enceinte de l'ENS Paris-Saclay qui empêchait
|
||||
auparavant la connexion aux élèves de l'ENSAE. L'accès est rétabli.
|
||||
|
||||
## DSI: wifi Crans
|
||||
|
||||
Pascal -- membre de la DSI de l'ENS Paris-Saclay -- est maintenant un contact
|
||||
du Crans. Cela nous donne l'opportunité de ressusciter le projet de wifi Crans
|
||||
dans l'ENS, sans toutefois être une priorité.
|
||||
|
||||
Il sera important de contacter Aurore au préalable pour distuter du volume que
|
||||
l'association peut gérer.
|
||||
|
||||
Sur le plan technique, OpenRadius est envisagé.
|
|
@ -1,86 +0,0 @@
|
|||
# Réunion IN
|
||||
|
||||
* Date : Samedi 22 Juin 2024
|
||||
* Lieu : MB87 et Galène (https://galene.crans.org/group/CA)
|
||||
* Début : 14h23 - reprise à 15h20
|
||||
* Fin : 16h07
|
||||
|
||||
## Présent⋅es
|
||||
|
||||
* GaBo
|
||||
* [Chiaroush](https://wiki.crans.org/WikiChiaroush)
|
||||
* [vanille](https://wiki.crans.org/VanilleNiven)
|
||||
* lzebulon
|
||||
* Otthorn
|
||||
* [RDB](https://wiki.crans.org/WikiRDB)
|
||||
* [bleizi](https://wiki.crans.org/WikiBleizi)
|
||||
* [Aplanos](https://wiki.crans.org/WikiAplanos)
|
||||
|
||||
## Ordre du jour
|
||||
|
||||
* Clé usb d’installation de 128go avec ventoy ou équivalent pour les installations
|
||||
* commande des disques (si pas fait d’ici là, rappeler GaBo) (ou le faire en live)
|
||||
* [GaBo] Ansible est trop vieux (drop de support de certain plugin, peut pas relancer les playbooks. Marche encore avec ansible_2_14)
|
||||
* [Otthorn] ssh -L 1636:tealc.adm.crans.org:636 tealc.adm.crans.org pas le bon LDAP, faut utiliser wall-e
|
||||
* [Otthorn] Action deny sur WikiMoinMoin
|
||||
* [Lzebulon] Point sur les backups : ne semble pas fonctionner (backup-{thot,ft} non contactable)
|
||||
* VM Collabora
|
||||
* [Gabo] Ecriture du guide pour faire des VM dans la documentation
|
||||
* Owncloud : soucis de LDAP
|
||||
* Gitlab : à mettre à jour au plus vite (on est en 16.1)
|
||||
|
||||
### Clé USB d'installation 128 go Ventoy
|
||||
|
||||
(En référence à une conversation du 16 Mai 2024)
|
||||
Une seule clé avec plusieurs ISO plutôt que clés nombreuses avec distros différents -> Problèmes de sécurité, mais intéressant pour les nounous
|
||||
Le logiciel proposé (Ventoy) est plutôt répandu/réputé mais pas terrible. Problèmes de sécurité entre-autre.
|
||||
On propose de faire minimaliste sans utiliser le logiciel Ventoy. Ce serait intéressant parce que ça nous épargnerait le trousseau de clés (qui a été perdu il paraît), à discuter au prochain CA.
|
||||
GaBo propose de partir sur 5 clés de 128 go -> 1 clé / Nounous présentes sur le plateau.
|
||||
GaBo propose 64 go. 128 go lui paraît overkill. Pas de différence trop grande en terme de prix -> On part sur du 128 go.
|
||||
En Install Party, on fait rarement plus de 5 installs en parallèle.
|
||||
(Prendre en compte qu'il y a toujours une clé qui est perdue...)
|
||||
|
||||
Projet apprenti rigolo de créer un script qui génère les clés (mettre tel OS sur une clé).
|
||||
|
||||
|
||||
### Commande des disques
|
||||
|
||||
Les disques sont commandés et arrivés !
|
||||
Il reste les ventilos.
|
||||
GaBo a payé avec sa carte, il attend le remboursement de la part du Trésorier (Macéo) pour procéder à l'achat des ventilos.
|
||||
|
||||
Avons-nous prévu un moment pour installer les nouveaux disques ? <- On en a discuté dans le point disques du CA.
|
||||
|
||||
|
||||
### Ansible
|
||||
|
||||
On a plein de version de retard (on est en 2.14 et la version actuelle est la 10).
|
||||
https://endoflife.date/ansible
|
||||
Il faudrais mette ça à jour : plugin LDAP et README en particulier et peut-être le plugin pass. On eput essayer de faire en même temps que l'install de Colabora
|
||||
|
||||
### WikiMoinMoin
|
||||
|
||||
On a des soucis avec l'action "deny" qui ne permettait de voir une page privée. Otthorn a fait un proof au concept de l'erreur. Il a réactivé deny, c'est bon. Mais on sait pas pourquoi ça avit été désactivé il y a longtemps.
|
||||
|
||||
### Backups
|
||||
|
||||
Faut se bouger pour aller voir VR en vrai à une de leurs permanences. C'est peut-être juste l'ethernet qui est débranchée. (Et potentiellement aussi changer pour un cable qui fonctionne)
|
||||
|
||||
Faire les backups correctement (comme l’a indiqué Otthorn, en excluant les trucs reliés à postgress et utilisé le hook conçu pour)
|
||||
voir dans la config ansible
|
||||
|
||||
### Colabora
|
||||
|
||||
(Pigeon : Si vous arrivez à setup colabora hésitez pas, onlyoffice c'est chiant je comprends rien à comment ça fonctionne)
|
||||
|
||||
### Owncloud
|
||||
|
||||
La config a disparu par magie (À enquêter)
|
||||
|
||||
### GitLab
|
||||
|
||||
Il faut mettre à jour. (On le fera vers juste après l’IN)
|
||||
|
||||
### Documentation
|
||||
|
||||
GaBo a été désigné grand gagnant de qui s'occupera de la documentation d'Ansible.
|
|
@ -1,166 +0,0 @@
|
|||
# Réunion IN
|
||||
|
||||
* Date : Jeudi 29 Août 2024
|
||||
* Lieu : MB87 et Galène (https://galene.crans.org/group/CA)
|
||||
* Début : 18h58
|
||||
* Fin : 21h
|
||||
|
||||
## Présent⋅es
|
||||
|
||||
* [bleizi](https://wiki.crans.org/WikiBleizi)
|
||||
* [Pigeon Moelleux](https://wiki.crans.org/WikiPigeonMoelleux)
|
||||
* GaBo
|
||||
* [vanille](https://wiki.crans.org/VanilleNiven)
|
||||
* korenst1
|
||||
* Lzebulon
|
||||
* Shinigami
|
||||
* [Hachino](https://wiki.crans.org/WikiHachino)
|
||||
* underscore_j
|
||||
* RDB
|
||||
* Otthorn
|
||||
|
||||
## Ordre du jour
|
||||
|
||||
### Rapide compte-rendu de ce qu'il s'est passé cet été
|
||||
Ottorn, lzebulon ont créé une vm collabora. Conséquence : découverte de mauvaises configurations
|
||||
problème entre ansible et les scripts qui sont dépréciés.
|
||||
|
||||
Mise à jour de gitlab
|
||||
|
||||
Au milieu de l'été. pb entre owncloud et nextcloud. impossibilité d'écrire (indépendant du reste). esum a résolu le pb. Owncloud a ensuite perdu sa conf ldap.
|
||||
Nextcloud a fini d'être configuré (paramêtre de partage et les mails (envoi de mail automatique pour les événements)). Nextcloud marche bien.
|
||||
Pub pour nextcloud possible.
|
||||
|
||||
pb avec Onlyoffice. Beaucoup de difficulté. Onlyoffice est packagé dans apt. Pas possible d'installer onlyoffice comme ça. On doit le faire à la main. Donc ce n'est pas ansibelisable.
|
||||
Il n'est pas possible d'utiliser onlyoffice sur téléphone (firefox) et limité à 20 connexions en même temps. du coup, est-ce qu'on utilise Collabora ou Onlyoffice ?
|
||||
|
||||
Du coup on peut passer sur collabora qui n'a pas ces problèmes.
|
||||
Sinon Otthorn a trouvé la variable à modifier.
|
||||
|
||||
```
|
||||
server/Common/sources/constant.js
|
||||
exports.LICENSE_CONNECTIONS = 20;
|
||||
```
|
||||
|
||||
### état sur les serveurs de backup
|
||||
2 serveurs de backups. ft éteint par VR car fait trop de bruit. Mais il marche et permet de faire
|
||||
Peut-être la poussière ou les ventilos sont cassés. Bref, il faudra probablement faire qch.
|
||||
On ne sait pas si l'ilo marche. Mais il est possible de relancer les backups.
|
||||
|
||||
specs du serveurs chez viarezo : https://wiki.crans.org/CransNostalgie/CransTechnique/LesServeurs/ServeurFt
|
||||
|
||||
Pour thot : le serveur s'éteint spontanément après le démarrage. c'est probablement à cause de la sonde de température
|
||||
|
||||
On remet ft puis on réinstalle thot
|
||||
|
||||
Il existe plus simple que borg. Est-ce qu'on ne passerait pas sur truc plus récent. mais on garde borg pour le moment. Sinon on peut utiliser restic.
|
||||
|
||||
On s'assure que ft remarche avant de faire thot (moins urgent)
|
||||
|
||||
Pigeon : "IL FAUT REDÉMARRER AU PLUS VITE LES SERVEURS DE BACKUP"
|
||||
|
||||
Tealc : on n'arrive pas à ajouter les disques donc pk on y arriverait avec thot ?
|
||||
|
||||
|
||||
|
||||
Backup chez aurore ? -> Pas forcément une bonne idée car il y a peu de membre actif chez eux.
|
||||
|
||||
Chez Tuxae ? -> c'est possible on a l'accord du président.
|
||||
|
||||
Chez un hebergeur ? -> glacier. Pas chère pour écrire mais payer pour récupérer les données.
|
||||
|
||||
ft urgent et une fois fonctionnel, on commence sur thot. On peut aussi chiffrer les disques nativement avec zfs.
|
||||
|
||||
### Cephiroth
|
||||
Le point ne bouge toujours pas. GaBo cherche la facture (c'est faux).
|
||||
|
||||
### Serveur matrix
|
||||
De plus en plus de demande pour avoir une alternative libre à discord, whatsapp....
|
||||
|
||||
|
||||
Mastodon -> pas adapté
|
||||
Zulipe -> pas adapté
|
||||
Mattermost -> pas adapté
|
||||
Matrix -> faire de la pédagogie. Pas le temps de faire le support technique ? Il est possible de faire des vocaux. Il faut présenter ça aux gens mais iels auront besoin d'une passphrase et ou une clef de récupération.
|
||||
|
||||
Connexion ldap (note, crans ou les deux ?) <-> matrix possible mais est-ce que le serveur est possible de gérer plus de connexions.
|
||||
En principal, obligation de mettre le ldap du crans. Possibilité d'utiliser la note via Oauth...
|
||||
Les alias ça change. On doit conserver le pk. Potentiellement, on peut ajouter un préfix (genre "note_").
|
||||
|
||||
Ou alors, 2 instances de matrix, une pour chaque ldap. L'une est au bde mais le crans s'en occupe.
|
||||
Migrer SQLite à PostgreSQL.
|
||||
Si on migre le bde, il faut que se soit très stable.
|
||||
Est-ce qu'il est possible d'avoir de la redondance sur le serveur matrix ? a priori oui... mais peut-être pas intégrer pas défaut à matrix.
|
||||
matrix.crans.org juste un relai (bridge irc/matrix) pour la réinstallation, il faut demander à Erdnaxe.
|
||||
|
||||
On garde le serveur matrix tel quel (quitte à augmenter les perfs). migre de SQLite à PostgreSQL. LDAP crans en priorité.
|
||||
On met element
|
||||
chat.crans.org (facile à retenir)
|
||||
FAIRE DE LA PUB !
|
||||
|
||||
5 secondes sur Mastodon selon pigeon (c'est (déjà) perdu) mais moi je pense que la vérité est toute autre...
|
||||
Retirer la condition "cephirot.date < mastodon.date".
|
||||
Ajouter l'affirmation "Constellation.state == Cephiroth.state"
|
||||
|
||||
### Reprise des séminaires hebdomadaires
|
||||
|
||||
On en parle Samedi (31 août (2024 je précise car oui je vous vois à lire ce point moulte années plutard !))
|
||||
|
||||
### état de l'imprimante
|
||||
|
||||
bref : ça marche pas
|
||||
|
||||
L'imprimante a été déplacée mais impossible de communiquer avec l'imprimante.
|
||||
Il faudra se poser avec des personnes de la DSI pour résoudre le pb. Mais dire ce qu'on a fait, il est possible que ça avance.
|
||||
pigeon pense pouvoir s'en charger mais il ne connait pas ce qu'il y a autour de l'imprimante.
|
||||
|
||||
On essaie de s'en occuper assez rapidement (bleizi et pigeonmoelleux)
|
||||
|
||||
### mettre les clés gpg dans le pass
|
||||
pb de rétention des clefs gpg. pigeon a "pillé" à bleizi les clefs.
|
||||
potentiellement signer les clefs gpg des nounous.
|
||||
|
||||
Remettre de l'ordre dans le pass. thot renommé en surface sans raison (a priori).
|
||||
|
||||
Pour la prochaine IN, garder le pass avec gpg ou passer sur sops ou autre...
|
||||
Sinon, demander aux vielles nounous (peb, pollion) si iels veulent garder leurs droits nounous (ça ressemble à une invitation à partir...).
|
||||
Pour les autres, on propose de rajouter les clefs gpg dans le pass.
|
||||
|
||||
### Quand est-ce qu'on redémarre tous les serveurs qui en ont besoin
|
||||
Près de 400 jours qu'il tourne. (pas de coupure estivale).
|
||||
Pas possible de la faire avant les prochaines vacances. En profiter pour refaire le cablage.
|
||||
Une réunion de préparation de la réparation.
|
||||
(redémarrage et brassage)-> prochain IN
|
||||
|
||||
### Chronolgie TODO list
|
||||
|
||||
Très urgent :
|
||||
- Backup ft (commencé à faire les backup)
|
||||
- 1/2 qui non important (genre voyager et helloworld)
|
||||
- par ordre d'importance (genre mailman)
|
||||
- d'ici là samedi rangement, inté, séminaires
|
||||
- Cephiroth (garantie go GaBo)
|
||||
- puis on s'occupe de thot
|
||||
|
||||
on est déjà dans qq semaines :
|
||||
- onlyoffice (la limite)
|
||||
- bleizi, pigeon -> imprimante
|
||||
- les clefs gpg dans le passe (demander à pollion et peb, s'ils veulent rester nounous)
|
||||
- enlever les vielles nounous (charlie, peb ? et pollion ?)
|
||||
|
||||
Le mois prochain :
|
||||
- prévénir tout le monde que les serveurs du crans sont down
|
||||
- Backup tealc sur zéphir/cameron
|
||||
- inventaire et commander des disques d'avances (un disque en rab compatible pour chacun des serveurs)
|
||||
- coupure : recabler, (vérifier l'étiqueteuse)
|
||||
- PASSER LA POOL EN 4096
|
||||
- réinstaller tealc
|
||||
|
||||
Après :
|
||||
- voir matrix
|
||||
- rediscuter de mastodon
|
||||
- Nix
|
||||
|
||||
Jamais :
|
||||
- Constellation
|
||||
- Ceph
|
|
@ -1,20 +0,0 @@
|
|||
# Comptes-rendus
|
||||
|
||||
## Présentation
|
||||
|
||||
Ce dossier contient l'ensemble des comptes-rendus des IN.
|
||||
|
||||
Les IN, ou Inter-Nounous, sont les réunions techniques des membres
|
||||
actifs⋅ves du Crans. Celle-ci sont publiques et sont organisées tous les
|
||||
mois. Celles-ci sont annoncées sur IRC et sur les ML
|
||||
apprenti-es@lists.crans.org et nounou@crans.org.
|
||||
|
||||
## Organisation
|
||||
|
||||
Chaque fichier de ce dossier est le compte-rendu d'une réunion technique. Vous
|
||||
pouvez trouver un template de compte-rendu dans le fichier
|
||||
[`TEMPLATE.md`](TEMPLATE.md) si nécessaire. La seule contrainte pour ce
|
||||
dossier est le nom des fichiers. Les comptes-rendus sont identifiés par la
|
||||
date de la réunion : pour une réunion du JJ/MM/AAAA, le fichier devra se
|
||||
nommer `AAAA_MM_JJ.md` (et non `JJ_MM_AAAA.md` car le tri par date se fait plus
|
||||
simplement).
|
|
@ -1,34 +0,0 @@
|
|||
# Réunion IN
|
||||
|
||||
* Date :
|
||||
* Lieu(x) :
|
||||
* Heure de début :
|
||||
* Heure de fin :
|
||||
|
||||
## Présent⋅es
|
||||
|
||||
* [Nounou 1](https://wiki.crans.org/CransNounous)
|
||||
* [Apprentie 1](https://wiki.crans.org/CransTechnique/CransApprentis)
|
||||
* [Apprenti 2](https://wiki.crans.org/CransTechnique/CransApprentis)
|
||||
* [Nounou 2](https://wiki.crans.org/CransNounous)
|
||||
* Personne sans page wiki
|
||||
|
||||
## Ordre du jour
|
||||
|
||||
* [Nounou 1] Point 1
|
||||
* [Nounou 2] Point 2
|
||||
* Sous-point 1
|
||||
* Sous-point 2
|
||||
* [Apprentie 1] Point 3
|
||||
* [Nounou 1] Point 4
|
||||
* [Apprenti 2] Point 5
|
||||
|
||||
### Point 1
|
||||
|
||||
Détails et résumé des discussions du point 1
|
||||
|
||||
### Point 2
|
||||
|
||||
Détails et résumé des discussions du point 2
|
||||
|
||||
...
|
|
@ -1,24 +0,0 @@
|
|||
# How To : les tutos techniques
|
||||
|
||||
## Présentation
|
||||
|
||||
Ce dossier contient les "how to" (tutoriels) du Crans concernant des tâches
|
||||
techniques demandant des connaissances généralement sur plusieurs parties de
|
||||
l'infrastructure.
|
||||
|
||||
Si vous souhaitez que d'autres soient ajoutés, n'hésitez pas à vous
|
||||
réferrer [au CONTRIBUTING.md](../CONTRIBUTING.md).
|
||||
|
||||
## Organisation
|
||||
|
||||
* [Changer de pseudo](changer_de_pseudo.md) : comment faire pour changer le
|
||||
nom d'utilisateur (pseudonyme) d'un⋅e utilisateur⋅rice. Cela peut être
|
||||
utile par exemple lors d'un changement d'état civil.
|
||||
|
||||
* [Créer une VM pour les adhérent⋅es](creer_vm_adherent.md) : comment
|
||||
faire pour créer une VM pour un⋅e adhérent⋅e.
|
||||
|
||||
* [Devenir nounou](devenir_nounou.md) : guide pour les nouvelles nounous !
|
||||
|
||||
* [Supprimer un⋅e utilisateur⋅rice](supprimet_utilisateur.md) : comment
|
||||
supprimer un⋅e utilisateur⋅rice ainsi que toutes ses données.
|
|
@ -1,108 +0,0 @@
|
|||
# Changement de pseudo
|
||||
|
||||
Le pseudo est l'identifiant unique permettant de s'authentifier sur l'ensemble
|
||||
des services du Crans. Pour diverses raisons dont il n'est pas question de
|
||||
juger, un⋅e utilisateur⋅rice peut vouloir changer de pseudo. C'est pénible
|
||||
mais faisable : respecter la volonté de l'utilisateur⋅rice dans ce cas est
|
||||
important. Ce petit guide est là pour rappeler tout ce qu'il ne faut pas
|
||||
oublier.
|
||||
|
||||
## Re2o
|
||||
|
||||
Il faut bien un début, c'est sur l'intranet qu'on commence par renommer
|
||||
quelqu'un⋅e. Il suffit d'éditer le profil et de changer le pseudo.
|
||||
|
||||
Ne pas oublier d'aller contrôler le LDAP sur `yson-partou` pour s'assurer que
|
||||
l'ancien compte a bien été supprimé. Pour cela, faire un `sudo shelldap` sur
|
||||
`yson-partou`, puis taper `cn=Utilisateurs` et s'assurer que
|
||||
`cat cn=ancienpseudo` ne renvoie rien.
|
||||
|
||||
## Zamok
|
||||
|
||||
Le plus évident, il faut déplacer le home ainsi que les mails.
|
||||
|
||||
Si le pseudo vient à l'instant d'être modifié, il suffit de faire un
|
||||
`sudo mv /home/{ancienpseudo,nouveaupseudo}`, sinon avec l'accord de la
|
||||
personne on peut faire un `rsync -ar /home/{ancienpseudo,nouveaupseudo}/`, ce
|
||||
qui va copier le contenu de l'ancien home dans le nouveau, mais attention au
|
||||
remplacement de données. L'ancien home peut ensuite être supprimé.
|
||||
|
||||
De la même manière, il faut renommer `/var/mail/ancienpseudo`
|
||||
en`/var/mail/nouveaupseudo`, ou déplacer le contenu et supprimer l'ancien
|
||||
dossier.
|
||||
|
||||
## Backups
|
||||
|
||||
Étape non pressante, mais on peut se rendre sur `backup-ft` et `backup-thot`
|
||||
pour déplacer `/backup/borg-adh/home/ancienpseudo` en
|
||||
`/backup/borg-adh/home/nouveaupseudo`, si ce n'est pas trop tard. Si le nouveau
|
||||
dossier est déjà créé, alors on peut attendre quelques jours voire quelques
|
||||
mois au cas où pour supprimer l'ancien dossier inutile.
|
||||
|
||||
À faire avec précaution. Mais à faire puisqu'on ne garde pas des backups
|
||||
éternellement. Pas pour des raisons de place mais pour des raisons de
|
||||
non-conservation de données personnelles.
|
||||
|
||||
## Gitlab
|
||||
|
||||
S'il n'y a pas d'ancien compte, il n'y a rien à faire.
|
||||
|
||||
S'il y a un ancien compte ET un nouveau compte, c'est pénible. Il faut
|
||||
transférer les appartenances de projet d'un compte à l'autre. Ce cas ne
|
||||
s'étant pour l'instant pas présenté, il sera à détailler à terme.
|
||||
|
||||
On se place dans l'hypothèse où l'on veut renommer un ancien compte. On
|
||||
commence par se rendre dans l'interface d'administration de Gitlab, section
|
||||
utilisateurs :
|
||||
[https://gitlab.crans.org/admin/users](https://gitlab.crans.org/admin/users).
|
||||
|
||||
Si la personne s'est reconnectée avec son nouveau pseudo SANS AUCUNE
|
||||
CONTRIBUTION, alors on peut supprimer librement ce nouveau compte. On se rend
|
||||
ensuite dans les paramètres de l'ancien compte, on clique sur « Éditer » et
|
||||
on remplace le pseudo. Inutile de remplacer nom et adresse mail, ces champs
|
||||
sont importés par LDAP.
|
||||
|
||||
Ensuite, on se rend dans l'onglet « Identités », et on met à jour
|
||||
l'identifiant LDAP. Normalement, la personne peut désormais se connecter en
|
||||
n'ayant perdu ni projets ni commits, et son adresse mail ainsi que son nom
|
||||
seront mis à jour à sa prochaine connexion.
|
||||
|
||||
## Owncloud
|
||||
|
||||
Deux cas à considérer : l'utilisateur⋅rice s'est servi⋅e des agendas
|
||||
Owncloud ou non. Dans le premier cas, c'est pénible et cette documentation
|
||||
sera mise à jour afin de détailler comment exporter et réimporter les
|
||||
calendriers.
|
||||
|
||||
Si l'utilisateurice n'a pas utilisé d'application externe et uniquement le
|
||||
téléversement de fichiers, il suffit simplement de se rendre dans l'interface
|
||||
d'administration, section utilisateur⋅rices :
|
||||
[https://owncloud.crans.org/settings/users](https://owncloud.crans.org/settings/users),
|
||||
puis de chercher l'ancien compte et de simplement le supprimer. Les données
|
||||
étant montées sur Zamok, seul le home local inutile sera supprimé.
|
||||
|
||||
## Mailman
|
||||
|
||||
On commence par se rendre dans [Django-Admin](https://lists.crans.org/admin/).
|
||||
|
||||
S'il n'y a pas d'ancien compte, aucune question à se poser.
|
||||
|
||||
S'il y a un nouveau compte inutile, on le supprime.
|
||||
|
||||
S'il n'y a pas de nouveau compte, on peut changer le pseudo Mailman si
|
||||
souhaité, mais l'important est surtout d'aller dans les connexions sociales et
|
||||
de changer le pseudo utilisé pour lier le compte Mailman.
|
||||
|
||||
## Wiki
|
||||
|
||||
Si la connexion par le CAS est configurée, il faut penser à
|
||||
`mv /var/local/wiki/assowiki/{ancienpseudo,nouveaupseudo}`. Concerne a priori
|
||||
peu de monde.
|
||||
|
||||
## The Lounge
|
||||
|
||||
Si on tient à ne pas perdre sa connexion WebIRC (si concernée), on peut aller
|
||||
sur Zamok et `mv /etc/thelounge/users/{ancienpseudo,nouveaupseudo}.json`. Il y
|
||||
a aussi des fichiers de d'historiques des messages que l'on peut supprimer
|
||||
`rm /etc/thelounge/logs/{pseudo}` et `rm /etc/thelounge/logs/{pseudo}.sqlite3`
|
||||
ou remommer.
|
|
@ -1,185 +0,0 @@
|
|||
# Création de machine virtuelle pour les adhérent⋅es
|
||||
|
||||
Le crans propose un système de locations de vms dont vous pouvez retrouver les
|
||||
tarifs dans les annexes des statuts de l'association. En voici un
|
||||
récapitulatif ici, mais attention celui-ci peut ne pas être à jour et seul
|
||||
ce qui est marqué dans les statuts fait foi.
|
||||
|
||||
| Article | Tarifs |
|
||||
|:---------------------------------------:|:------:|
|
||||
| Service minimal | 10€ |
|
||||
| Connexion internet | 30€ |
|
||||
| Cœur additionnel | 5€ |
|
||||
| 2GB de RAM additionnel | 5€ |
|
||||
| Disque additionnel (par tranche de 16G) | 1€ |
|
||||
|
||||
Le service minimal comprend :
|
||||
|
||||
* un disque de 8G
|
||||
* un cœur
|
||||
* 2G de ram
|
||||
|
||||
Tous les services sont proposés pour une durée de 1 an.
|
||||
|
||||
## Utilisateur⋅ices
|
||||
|
||||
La documentation pour les utilisateur⋅ices se trouvent sur le
|
||||
[wiki](https://wiki.crans.org/VieCrans/VPS).
|
||||
|
||||
## Nounous et apprenti⋅es
|
||||
|
||||
### Facturation
|
||||
|
||||
Quand cela est possible, privilégier la note. Sinon, voir avec un⋅e
|
||||
trésorier⋅ère pour d'autres méthodes (espèces, virement, ...).
|
||||
|
||||
### LDAP
|
||||
|
||||
Quand un⋅e adhérent⋅e vous demande de lui créer une vm, il faut au
|
||||
préalable læ rajouter dans le ldap des adhérent⋅es (qui n'est pas le même
|
||||
que le ldap re2o).
|
||||
|
||||
Celui ci se situe sur flirt et à la structure suivante:
|
||||
|
||||
```txt
|
||||
ou=users
|
||||
├── cn=toto
|
||||
└── cn=titi
|
||||
ou=clubs
|
||||
└── o=rover
|
||||
ou=hosts
|
||||
├── cn=voyager
|
||||
└── cn=curiosity
|
||||
```
|
||||
|
||||
Pour référence ma configuration `shelldap` pour me connecter au ldap est la
|
||||
suivante :
|
||||
|
||||
```txt
|
||||
# +---------------------------------+
|
||||
# | Connexion à flirt.adm.crans.org |
|
||||
# +---------------------------------+
|
||||
server: ldaps://flirt.adm.crans.org/
|
||||
promptpass: yes
|
||||
binddn: cn=admin,dc=adh,dc=crans,dc=org
|
||||
basedn: dc=adh,dc=crans,dc=org
|
||||
```
|
||||
|
||||
et le mot de passe est disponible dans le password-store sous `ldap-adh`.
|
||||
|
||||
#### Utilisateur⋅ices
|
||||
|
||||
Les objets utilisateur⋅ices dispose des champs suivants :
|
||||
|
||||
```txt
|
||||
dn: cn=toto,ou=users,dc=adh,dc=crans,dc=org
|
||||
objectClass: inetOrgPerson
|
||||
objectClass: organizationalPerson
|
||||
objectClass: person
|
||||
objectClass: top
|
||||
cn: toto
|
||||
description: birthDate:1998-01-08
|
||||
description: birthLocation:Cachan
|
||||
description: membershipStart:20xx-xx-xx
|
||||
description: membershipEnd:20xx-xx-xx
|
||||
description: re2oId:xxxxx
|
||||
givenName: Toto
|
||||
mail: nobody [AT] crans [DOT] org
|
||||
postalAddress: 60 rue camille desmoulins, 94230, Cachan
|
||||
sn: Passoir
|
||||
telephoneNumber: +336xxxxxxxx
|
||||
userPassword: {CRYPT}$6$…
|
||||
```
|
||||
|
||||
Le script `addadherent` du repo
|
||||
[crans-ldap](https://gitlab.crans.org/nounous/crans-ldap) permet néanmoins de
|
||||
configurer la plupart des informations à renseigner :
|
||||
|
||||
```bash
|
||||
[ _shirenn@flirt ] $ ./addadherent --re2o-id xxxxx toto
|
||||
Prénom: Toto
|
||||
NOM: Passoir
|
||||
Adresse email: nobody [AT] crans [DOT] org
|
||||
Adresse: 60 avenue camille desmoulins, 94230, Cachan
|
||||
Numéro de téléphone: +33600000000
|
||||
Date de naissance (YYYY-MM-DD): 1998-01-08
|
||||
Lieu de naissance: Cachan
|
||||
```
|
||||
|
||||
Cela rajoutera automatiquement la date de début d'adhésion mais pas celle de
|
||||
fin d'adhésion, celle-ci doit être rajoutée à la main en utilisant votre
|
||||
client ldap favori.
|
||||
|
||||
#### Club
|
||||
|
||||
Les clubs sont des objets ldap très simple qui ne contiennent que le nom des
|
||||
adhérent⋅es qui gèrent le club :
|
||||
|
||||
```txt
|
||||
dn: o=rover,ou=clubs,dc=adh,dc=crans,dc=org
|
||||
objectClass: organization
|
||||
objectClass: top
|
||||
description: toto
|
||||
o: rover
|
||||
```
|
||||
|
||||
Similairement, un script permet de rajouter ces informations automatiquement au
|
||||
ldap :
|
||||
|
||||
```txt
|
||||
[ _shirenn@flirt ]$ ./addclub rover
|
||||
Pseudo du responsable: toto
|
||||
Pseudo du responsable: titi
|
||||
Pseudo du responsable:
|
||||
```
|
||||
|
||||
#### Machines
|
||||
|
||||
Les machines sont des objets ldap qui répertorient des informations sur leur
|
||||
configuration et leurs propriétaires :
|
||||
|
||||
```txt
|
||||
dn: cn=curiosity,ou=hosts,dc=adh,dc=crans,dc=org
|
||||
objectClass: top
|
||||
objectClass: device
|
||||
objectClass: ipHost
|
||||
objectClass: ieee802Device
|
||||
cn: curiosity
|
||||
description: ip.icmp.in,ip.icmp.out,ip6.icmpv6.in,ip6.icmpv6.out,ip.tcp.out:0-65535,ip6.tcp.out:0-65535,ip.udp.out:0-65535,ip6.udp.out:0-65535,ip.tcp.in:22,ip6.tcp.in:22
|
||||
ipHostNumber: 185.230.78.199
|
||||
macAddress: 02:a0:00:01:99:12
|
||||
owner: o=rover,ou=clubs,dc=adh,dc=crans,dc=org
|
||||
serialNumber: 199
|
||||
```
|
||||
|
||||
Le script `addadherenthost` crée la machine dans le ldap
|
||||
|
||||
```txt
|
||||
[ _shirenn@flirt ]$ ./addadherenthost --ip 185.230.78.199 --mac
|
||||
02:a0:00:01:99:02 --vmid 199 --club rover curiosity
|
||||
```
|
||||
|
||||
Le part-feu par défaut laisse passer tous les paquets icmp, tous les paquets en
|
||||
sortie et ne laisse rentrer que le port 22 en tcp, en ip legacy et en ipv6.
|
||||
|
||||
Une fois l'adhérent⋅e ou le club et la machine rajoutée dans le ldap. Les
|
||||
scripts devraient mettre à jour la configuration du parefeu, du dhcp et de
|
||||
proxmox.
|
||||
|
||||
### Proxmox
|
||||
|
||||
Il faut maintenant aller sur le cluster constitué de gulp, odlyd et stitch
|
||||
pour créer la machine virtuelle. C'est du clic clic dans proxmox, vous êtes
|
||||
assez grand⋅es pour savoir lire des menus. (Par contre faites bien attention
|
||||
à créer les disques sur la pool `vm`).
|
||||
|
||||
Ensuite, deux possibilités, soit l'adhérent⋅e vous a juste demandé de
|
||||
créer la machine virtuelle et à ce moment là c'est fini et iel peut aller la
|
||||
configurer seul⋅e (c.f. section suivante), soit iel vous a demandé si vous
|
||||
pouviez lui installer une distribution de son choix.
|
||||
|
||||
Vous pouvez alors lui demander une clé publique ssh, et après avoir installé
|
||||
la vm, vous la déposez dans `/root/.ssh/authorized_keys` (en faisant attention
|
||||
à créer le `.ssh` avec les bonnes permissions `mkdir -m 0700 /root/.ssh`) et
|
||||
vous supprimez les mots de passe que vous avez rentrer pendant l'installation
|
||||
`passwd -d root`).
|
|
@ -1,173 +0,0 @@
|
|||
# Comment devenir nounou ?
|
||||
|
||||
Bonjour jeune apprenti⋅e, tu regardes sûrement avec des yeux pleins d'étoiles
|
||||
tes ainé⋅es qui actuellement disposent des droits suprêmes sur l'infrastructure
|
||||
du Crans. Ce petit document est là pour t'expliquer comment toi aussi un jour tu
|
||||
pourras devenir l'un⋅e d'elleux. Et quand il sera temps et que tu commenceras à
|
||||
t'encrouter, comment tu pourras rendre tes droits.
|
||||
|
||||
Déjà commençons par une question un peu conne mais néanmoins légitime « Qui
|
||||
"mérite" d'être nounou ? » Premièrement, devenir nounou **N'EST PAS** une
|
||||
question de compétence. Pas besoin de connaître l'infrastructure par cœur, tous
|
||||
les fichiers de conf, être un pro d'apt, d'ansible et de la couche 2. Tout ce
|
||||
qu'on attend d'une nouvelle nounou c'est d'être capable de ne pas faire
|
||||
n'importe quoi avec ces droits. Devenir nounou ce n'est pas avoir fini son
|
||||
apprentissage mais bien la deuxième étape de celui-ci où on commence à mettre
|
||||
les mains dans le camboui. Et ça ça présuppose seulement qu'on va pas causer du
|
||||
tort en utilisant ces droits.
|
||||
|
||||
Détaillons-les un peu ces droits, ce qu'il permette de faire et qu'est ce qu'on
|
||||
entend par « causer du tort ». En devenant nounou, vous débloquez les accès à
|
||||
toute l'infrastructure. Techniquement, il n'y a plus de fichiers que vous ne
|
||||
pouvez pas voir, modifier ou supprimer et ce sur toutes les machines du Crans.
|
||||
De même, on chiffre pour vous tous les mots de passe qui ont trait au technique
|
||||
du Crans. Ce sont des droits très extensifs. D'où la possibilité de faire une
|
||||
erreur de manipulation. Normalement tout est fait dans l'infrastructure pour
|
||||
limiter la casse possible. On a de la redondance où c'est possible et
|
||||
nécessaire, on fait des backups quotidiennes à la fois des données utilisateur⋅rices
|
||||
mais aussi des données d'administration. Cependant, tout ça ne change pas le
|
||||
fait qu'une mauvaise commande rentrée dans votre shell peut rendre le
|
||||
Crans hors ligne pour quelques heures ou supprimer de manière irreversible des
|
||||
données. Quand vous devenez nounou, on vous fait confiance pour éviter ce genre
|
||||
de choses au maximum. Après les erreurs ça arrive toujours. La personne qui
|
||||
écrit ces lignes en a fait un certain nombre avec des conséquences diverses.
|
||||
Ce qui compte ce n'est pas de ne pas en faire du tout, c'est d'en faire peu,
|
||||
d'apprendre de celles-ci et de s'assurer qu'elles ne sont pas irréversibles.
|
||||
|
||||
Il y a aussi quelque chose qu'il faut souligner. Et normalement quand vous
|
||||
deviendrez nounou vous allez le voir assez fréquement (à chaque fois que vous
|
||||
faîtes un sudo pour la première fois sur une machine) :
|
||||
|
||||
```txt
|
||||
We trust you have received the usual lecture from the local System
|
||||
Administrator. It usually boils down to these three things:
|
||||
|
||||
#1) Respect the privacy of others.
|
||||
#2) Think before you type.
|
||||
#3) With great power comes great responsibility.
|
||||
```
|
||||
|
||||
Ce court texte résume bien ce que je veux aborder ici. Les droits que vous vous
|
||||
voyez confier sont une intrusion phénoménale dans la vie privée des gens. Si
|
||||
vous voulez une métaphore, vous pouvez voir ça comme si les adhérent⋅es du Crans
|
||||
vous avait donné la clé de leur maison pour que vous puissiez réparer quand il y
|
||||
a une fuite d'eau, mais pas pour que vous fouillez dans le bureau pour voir leurs
|
||||
papiers. Beaucoup de nos adhérent⋅es utilisent les outils qu'on met à leur
|
||||
disposition pour organiser une partie de leur vie, que ce soit d'utiliser
|
||||
l'adresse mail qui leur est fournie ou stocker des données dans leur Owncloud,
|
||||
et nous en sommes très heureux⋅ses. La charte que vous avez signé en devenant
|
||||
apprenti⋅e mentionne déjà ces problématiques mais il est important que ce soit
|
||||
très clair. **Vous ne pouvez consulter ou diffuser les données personnelles
|
||||
d'un⋅e adhérent⋅e qu'avec son consentement explicite.** On a parfois tendance à
|
||||
l'ENS à faire des abus de droits une blague, ce n'est pas le cas au Crans !
|
||||
|
||||
Bon maintenant que ces clarifications et rappels ont été faits, on va pour
|
||||
passer aux choses plus intéréssantes : comment on se donne ces droits (et dans la
|
||||
marge, comment on se les retire) ?
|
||||
|
||||
## Rentre dans le cercle
|
||||
|
||||
Le groupe des superadministrateur⋅rices au Crans est le groupe nounou. On va donc
|
||||
faire un petit tour dans le ldap et sous ou=groups,cn=_nounou on rajoute les
|
||||
uids correspondant au⋅x personne⋅s qu'on souhaite ajouter. Voilà, vous avez
|
||||
normalement:tm: les accès root sur toutes les machines du Crans. Cependant,
|
||||
vous allez peut-être constater qu'il y a certaines machines où cela ne
|
||||
fonctionne pas. C'est sûrement dû à ces ~~conneries~~ de replicat ldap. Il faut
|
||||
à ce moment là aller faire un tour dessus pour forcer la resynchro (c.f.
|
||||
`tools/ldap.md`).
|
||||
|
||||
## Give me the password
|
||||
|
||||
Vous avez *50* nouveaux mot de passes. Il est maintenant nécessaire de
|
||||
rechiffrer le pass pour vous. C'est un peu chiant mais on s'y fait. Voilà la
|
||||
procédure:
|
||||
|
||||
1. On se souvient du hash de commit courant :
|
||||
`HASH=$(git rev-parse HEAD)`
|
||||
1. On ajoute toutes les personnes concernées dans le groupe nounou dans le
|
||||
fichier `.groups.yml` du store et on commit ces changements `git commit -m
|
||||
toto1234`.
|
||||
1. On rechiffre tous les fichiers à rechiffrer
|
||||
`cat .last_group.json | jq -r '. | with_entries( select(.value | any( .==
|
||||
"nounou"))) | keys[]' | xargs pass rans reencrypt`
|
||||
1. On supprime tous les commits inutiles :
|
||||
`git reset --soft $HASH; git commit -m 'Coucou les ami⋅es'`
|
||||
1. On vérifie que ça marche et on push :)
|
||||
|
||||
Petit point pour quand on retire des droits au gens. Là où pour tous les autres
|
||||
droits, quand vous les retirez à quelqu'un⋅e bah iel les a plus, ce n'est pas le
|
||||
cas pour les mots de passe. Il reste dans l'historique de git un moment où la
|
||||
personne qui perds ces droits à toujours les mots de passes chiffrées pour elle.
|
||||
On choisit généralement de s'en tamponner l'oreille avec une babouche.
|
||||
Cependant, il peut y avoir certains moments où on veut effectivement retirer
|
||||
complètement à quelqu'un⋅e la possibilité d'utiliser un mot de passe. Dans ce
|
||||
cas il faut le changer :(
|
||||
|
||||
## Thank you for your services
|
||||
|
||||
Au Crans on a **plein** de services. Certains sont gentils et écoutent
|
||||
directement le ldap pour savoir qui a des droits, d'autres s'en foutent et ils
|
||||
faut se rajouter dans les admins à la main. Petite liste ci dessous.
|
||||
|
||||
### Gitlab
|
||||
|
||||
Il faut aller dans la zone d'administration, puis dans la liste
|
||||
d'utilisateur⋅ices et changez le profil de l'utilisateur⋅ice de regular à admin.
|
||||
|
||||
### Mailman
|
||||
|
||||
Il faut se connecter normalement au logiciel, puis allez dans la section admin
|
||||
<https://lists.crans.org/admin>, dans la sous page utilisateur⋅rices, on peut
|
||||
rechercher les personnes concernées pour leur donner les deux statuts admin
|
||||
(accès à la zone d'administration) et superutilisateur (bypass tous les checks
|
||||
de droits).
|
||||
|
||||
### Owncloud
|
||||
|
||||
Il faut aller dans la zone d'administration et rajouter les utilisateur⋅ices au
|
||||
groupe d'administration.
|
||||
|
||||
### Re2o
|
||||
|
||||
Oh lad, j'espère que ça aussi ça existe plus. Il faut aller dans la section
|
||||
gestion des groupes et rajouter les personnes aux groupes nounous et au groupe
|
||||
superutilisateur⋅rice.
|
||||
|
||||
### Kiwi
|
||||
|
||||
On édite le fichier de conf du wiki sous `/etc/moin/mywiki.py` et on rajoute son
|
||||
compte wiki dans la liste des administrateur⋅rices.
|
||||
|
||||
### IRC
|
||||
|
||||
On édite le fichier `/etc/inspircd/opers.conf` pour rajouter un bloc suivant
|
||||
|
||||
```txt
|
||||
<oper
|
||||
name=<nick>
|
||||
password="<pass-hash>"
|
||||
hash="sha256"
|
||||
host="*"
|
||||
type="Deity"
|
||||
fingerprint="<fingerprint certificat>"
|
||||
autologin="on"
|
||||
>
|
||||
```
|
||||
|
||||
Où le hash du mot de passe peut être obtenu en envoyant
|
||||
`/quote mkpasswd hmac-sha256 <password>`. Pour rendre les changements effectifs
|
||||
on reload le service inspircd (tips, la manière la plus rapide de perdre ses
|
||||
droits est de restart le serveur plutôt que de le reload ^^).
|
||||
|
||||
### Mails
|
||||
|
||||
Il faut maintenant vous rajouter en alias de root@crans.org. C'est le début du
|
||||
spam. Pour ce faire, rendez-vous sur le dépôt Gitlab `mail-aliases`, et ajoutez
|
||||
votre pseudo Crans sur la bonne ligne dans les bons fichiers, en face de `root:`.
|
||||
Pensez ensuite à mettre à jour le dépôt pour le service `mail`, et enfin mettez
|
||||
bien à jour `redisdead`, `sputnik` et surtout `zamok` dans le dossier
|
||||
`/var/local/services/mail`. Enfin, pensez bien à filtrer les mails arrivant à
|
||||
l'adresse `root@crans.org` sur votre client.
|
||||
|
||||
Voilà, tu as maintenant gagné le droit de t'ajouter ou de te retirer de
|
||||
<https://wiki.crans.org/CransNounous> !
|
|
@ -1,139 +0,0 @@
|
|||
# La suppression d'un⋅e utilisateurice
|
||||
|
||||
Pour diverses raisons dont il n'est pas question de juger, un⋅e
|
||||
utilisateur⋅rice peut vouloir supprimer son compte Crans et les données
|
||||
associées. En particulier cela peut rentrer dans le cadre du
|
||||
[RGPD](https://www.cnil.fr/fr/reglement-europeen-protection-donnees/). Il y a
|
||||
certaines informations qu'il faut garder une durée minimale, mais les autres
|
||||
doivent être supprimées à la demande de l'utilisateurice. C'est pénible
|
||||
mais faisable : respecter la volonté de l'utilisateur⋅rice dans ce cas est
|
||||
important. Ce petit guide est là pour rappeler tout ce qu'il ne faut pas
|
||||
oublier.
|
||||
|
||||
## La demande de suppression
|
||||
|
||||
Il faut s'assurer que c'est bien la bonne personne qui fait la demande. En cas
|
||||
de doute, on peut demander une preuve d'identité (pièce d'identité, mail
|
||||
depuis l'adresse mail crans...). Ensuite, on peut vérifier que la personne à
|
||||
bien compris ce que la suppression de compte impliquait : la perte de toutes
|
||||
les données non sauvegardées par l'utilisateurice, ne plus avoir accès aux
|
||||
services qui nécessite un compte crans... Selon ce qui est demandé (et ce
|
||||
qu'on a le droit de faire), le compte peut être seulement archivé, on peut
|
||||
supprimer les données liées au compte (en totalité ou partie), voire les
|
||||
données d'un service non-lié à un compte crans (wiki...). Si la personne
|
||||
est encore adhérente, elle va probablement devoir démissionner de
|
||||
l'association.
|
||||
|
||||
## Re2o
|
||||
|
||||
Il faut bien un début, c'est sur l'intranet qu'on commence par
|
||||
supprimer/archiver quelqu'un⋅e.
|
||||
|
||||
### Archiver sur Re2o
|
||||
|
||||
Si la personne à une facture/adhésion de moins de 10 ans, on ne peut pas
|
||||
supprimer le compte. Dans ce cas-là, ou si c'est ce que préfère
|
||||
l'utilisateurice, on archive le compte : dans le profil, il faut changer
|
||||
l'état de "Actif⋅ves" à "Complétement archivé⋅es". On peut
|
||||
éventuellement supprimer certaines informations (bannissement,
|
||||
établissement...) mais on doit garder les informations de contact et les
|
||||
factures/adhésions de moins de 10 ans.
|
||||
|
||||
On peut repasser au bout des 10 ans pour tout supprimer (ça serait bien
|
||||
d'avoir un truc automatique ou que l'utilisateurice nous le rappelle).
|
||||
|
||||
### Supprimer sur Re2o
|
||||
|
||||
Il faut aller dans l'interface d'administration
|
||||
<https://re2o.crans.org/admin/users/user/> et supprimer l'user. Il va falloir
|
||||
supprimer les objets protégés avant, django vous dira lesquels.
|
||||
|
||||
Ne pas oublier d'aller contrôler le LDAP sur `yson-partou` pour s'assurer que
|
||||
le compte a bien été supprimé. Pour cela, faire un `sudo shelldap` sur
|
||||
`yson-partou`, puis taper `cn=Utilisateurs` et s'assurer que `cat cn={pseudo}`
|
||||
ne renvoie rien.
|
||||
|
||||
## Zamok
|
||||
|
||||
Le plus évident, il faut supprimer le home ainsi que les mails.
|
||||
|
||||
Il suffit de faire un `sudo rm -rf /home/{pseudo}`, pour supprimer le home. De
|
||||
même pour les mails dans `/var/mail/{pseudo}`.
|
||||
|
||||
## Backups
|
||||
|
||||
Étape non pressante, mais on peut se rendre sur `backup-ft` et `backup-thot`
|
||||
pour supprimer `/backup/borg-adh/home/{pseudo}`.
|
||||
|
||||
À faire avec précaution. Mais à faire puisqu'on ne garde pas des backups
|
||||
éternellement. Pas pour des raisons de place mais pour des raisons de
|
||||
non-conservation de données personnelles (même si les backup ne sont pas
|
||||
concernées par le RGPD).
|
||||
|
||||
## Gitlab
|
||||
|
||||
S'il n'y a pas de compte, il n'y a rien à faire.
|
||||
|
||||
On se place dans l'hypothèse où l'on veut supprimer un compte. On commence
|
||||
par se rendre dans l'interface d'administration de Gitlab, section utilisateurs
|
||||
:
|
||||
[https://gitlab.crans.org/admin/users](https://gitlab.crans.org/admin/users).
|
||||
On se rend dans les paramètres du compte, on clique sur "Administration des
|
||||
utilisateur" puis sur "Supprimer un compte utilisateur" ou "Supprimer un
|
||||
compte utilisateur et ses contributions". Dans le deuxième cas, il faut faire
|
||||
attention surtout s'il y a des contributions à des projets partagés (comme
|
||||
ceux du crans).
|
||||
|
||||
## Owncloud
|
||||
|
||||
Il suffit simplement de se rendre dans l'interface d'administration, section
|
||||
utilisateurices :
|
||||
[https://owncloud.crans.org/settings/users](https://owncloud.crans.org/settings/users),
|
||||
puis de chercher le compte et de simplement le supprimer.
|
||||
|
||||
## Mailman
|
||||
|
||||
On commence par se rendre dans [Django-Admin](https://lists.crans.org/admin/).
|
||||
|
||||
S'il n'y a pas de compte, aucune question à se poser.
|
||||
|
||||
S'il y a un compte, on le supprime.
|
||||
|
||||
Potentiellement, la personne est présente sur mailman de manière non-liée à
|
||||
son éventuel compte crans. Dans ce cas, il va falloir faire du ménage avec
|
||||
l'adresse mail et donc de l'aide de l'utilisateurice qui va devoir indiquer son
|
||||
adresse et les ML qu'iel reçoit/administre. Ça peut être un peu les bazar
|
||||
si il y a plusieurs adresses non-liées. Si la personne est lae dernièr⋅e
|
||||
propriétaire d'une liste, il faudra soit la supprimer soit lui trouver un⋅e
|
||||
nouvelleau propriétaire (c'est pas obligatoire mais alors c'est root@crans.org
|
||||
le propriétaire par défaut, ce qui n'est pas une solution durable).
|
||||
|
||||
## Wiki
|
||||
|
||||
Si la connexion par le CAS est configurée, il faut penser à
|
||||
`rm /var/local/wiki/assowiki/{pseudo}`. Concerne a priori peu de monde.
|
||||
|
||||
Si la personne le demande, on peut supprimer son compte wiki et les pages qui
|
||||
concernent son compte (page perso...), historique compris. Pour cela il faut
|
||||
aller sur `kiwi` et supprimer le dossier contenant la page. Cela peut concerner
|
||||
des personnes n'ayant pas de compte crans, mais il faudra le WikiNom.
|
||||
|
||||
## The Lounge
|
||||
|
||||
S’il y a eu une utilisation de WebIRC, on peut aller sur Zamok et
|
||||
`rm /etc/thelounge/users/{pseudo}.json` (configuration),
|
||||
`rm /etc/thelounge/logs/{pseudo}` et `rm /etc/thelounge/logs/{pseudo}.sqlite3`
|
||||
(pour l'historique des messages).
|
||||
|
||||
## Autres données
|
||||
|
||||
Il y a probablement des données personnelles qui trainent ailleurs, il faudra
|
||||
mettre à jour cette page si on en trouve. Par exemple, pour les membres
|
||||
actif⋅ves qui ont un compte underscore ou les utilisateurices qui ont (eu) une
|
||||
VM (perso ou de club).
|
||||
|
||||
## Données hébergées mais pas administrée par le Crans
|
||||
|
||||
Le Crans héberge des VM pour les clubs (note, serveur photos, bdd med...) qui
|
||||
peuvent contenir des données personnelles. La personne devra aller voir les
|
||||
admins de ces services pour supprimer les données.
|
|
@ -1,15 +0,0 @@
|
|||
# Logiciels
|
||||
|
||||
## Présentation
|
||||
|
||||
Ce dossier contient une présentation de plusieurs outils logiciels utilisés
|
||||
par le Crans.
|
||||
|
||||
Le but n'est pas de réexpliquer l'entièreté des fonctionnalités, mais
|
||||
simplement d'avoir une explication de ce que l'on parle pour avoir des bases
|
||||
de compréhension.
|
||||
|
||||
## Organisation
|
||||
|
||||
L'organisation est la même que décrite dans [le fichier `README.md` du
|
||||
dossier parent](../README.md).
|
|
@ -1,61 +0,0 @@
|
|||
# APT
|
||||
|
||||
APT (pour Advanced Package Tool) est un des gestionnaires de paquets de
|
||||
[Debian](https://www.debian.org/). Il dispose d'une interface en CLI, voici
|
||||
quelques exemples de commandes :
|
||||
|
||||
| commande | description |
|
||||
|----------|-------------|
|
||||
| `apt install package` | Installe `package` |
|
||||
| `apt search package` | Recherche `package` |
|
||||
| `apt list` | Liste les paquets |
|
||||
| `apt list --installed` | Liste les paquets installés |
|
||||
| `apt remove package` | Désinstalle `package`, sans supprimer sa configuration |
|
||||
| `apt purge package` | Purge `package`, i.e. désinstalle et supprime sa configuration |
|
||||
| `apt depends package` | Liste les dépendances de `package` |
|
||||
| `apt rdepends package` | Liste les paquets dépendants de `package` |
|
||||
| `apt policy package` | Affiche les informations de priorité pour `package` |
|
||||
| `apt show package` | Affiche les informations de `package` |
|
||||
| `apt update` | Met à jour les listes de paquets |
|
||||
| `apt upgrade` | Met à jour les paquets |
|
||||
|
||||
Un paquet Debian va placer des fichiers dans `/bin/`, `/usr/` par exemple. Il
|
||||
faut donc avoir les droits administrateurs pour installer, mettre à jour ou
|
||||
supprimer un paquet. Il n'est pas possible d'installer un paquet APT pour
|
||||
seulement un utilisateur.
|
||||
|
||||
## Les sources de paquets
|
||||
|
||||
APT est en réalité une interface au dessus de DPKG (Debian PacKaGe) qui va
|
||||
simplifier le téléchargement et l'installation de paquets en les
|
||||
synchronisant de sources de paquets.
|
||||
|
||||
Les sources de paquets sont définies dans `/etc/apt/source.list` et dans le
|
||||
dossier `/etc/apt/source.list.d/`. Un système Debian classique au Crans
|
||||
devrait avoir les sources suivantes :
|
||||
|
||||
```txt
|
||||
# Paquets principaux de Debian Buster
|
||||
deb https://ftps.crans.org/debian buster main
|
||||
|
||||
# Paquets "volatiles" pour avoir des mises à jour un peu plus régulièrement
|
||||
deb https://ftps.crans.org/debian buster-updates main
|
||||
|
||||
# Paquets apportant les mises à jour de sécurité
|
||||
deb https://ftps.crans.org/debian-security buster/updates main
|
||||
```
|
||||
|
||||
Si on souhaite également synchroniser la liste des sources de paquets pour
|
||||
potentiellement les reconstruire, on peut dupliquer chaque ligne en substituant
|
||||
`deb` par `deb-src`.
|
||||
|
||||
## Vérifier l'état de santé des paquets systèmes Debian
|
||||
|
||||
Debian fournit un outil nommé `debsums` (Debian Checksum) pour vérifier que
|
||||
les fichiers installés par les paquets Debian n'ont pas été altérés. Un
|
||||
fichier d'un paquet peut être altéré soit par un virus ou un administrateur
|
||||
chaotique qui écrase ses exécutables, soit quand il s'agit de changer sa
|
||||
configuration.
|
||||
|
||||
Pour lister rapidement la liste des fichiers de configuration changés :
|
||||
`debsums -ce`.
|
|
@ -1,44 +0,0 @@
|
|||
# GPG
|
||||
|
||||
GPG (GNU Privacy Guard) est une implémentation libre et open source du
|
||||
protocole OpenPGP (Pretty Good Privacy), un protocole cryptographique
|
||||
permettant de signer, chiffrer et déchiffrer des documents (notamment des
|
||||
emails).
|
||||
|
||||
## Clef
|
||||
|
||||
Une clef GPG est une clé numérique qui permet d'être identifié de façon
|
||||
unique dans le monde numérique.
|
||||
|
||||
Elle est composée de deux éléments :
|
||||
|
||||
* une clé privée protégée par une phrase clé qui permet d'éviter à une
|
||||
tierce personne d'utiliser cette clef si elle parvient à la voler
|
||||
|
||||
* une clé publique qui une fois distribuée et signée par son entourage,
|
||||
permet à celui-ci de vérifier que les messages que l'on signe le sont bien
|
||||
avec la clé privée associée à cette clé publique.
|
||||
|
||||
Elle peut être générée à l'aide d'une des commandes suivantes (selon le
|
||||
nombre d'option que vous souhaitez avoir) :
|
||||
|
||||
* `gpg --generate-key`
|
||||
|
||||
* `gpg --full-generate-key`
|
||||
|
||||
* `gpg --full-generate-key --expert`
|
||||
|
||||
## Web of trust
|
||||
|
||||
Le web of trust (ou toile de confiance en français) permet d'établir
|
||||
l'authenticité de l'appartenance d'une clef publique ; il est décentralisé :
|
||||
il n'a donc pas besoin d'autorité de certification.
|
||||
|
||||
Voici les règles par défaut du web of trust d'OpenPGP, on estime que la clef
|
||||
publique appartient au bon propriétaire si :
|
||||
|
||||
* On a soi-même fait confiance à cette clef
|
||||
|
||||
* Une personne en qui on a totalement confiance a signé cette clef
|
||||
|
||||
* Trois personnes en qui on a partiellement confiance ont signé cette clef
|
|
@ -1,100 +0,0 @@
|
|||
# SSH
|
||||
|
||||
SSH (Secure Shell) est un protocole permettant d'exécuter des commandes sur un
|
||||
serveur distant. Il utilise le port 22 en TCP.
|
||||
|
||||
Sa version 2 est spécifiée par les RFC
|
||||
[4250](https://datatracker.ietf.org/doc/html/4250),
|
||||
[4251](https://datatracker.ietf.org/doc/html/4251),
|
||||
[4252](https://datatracker.ietf.org/doc/html/4252),
|
||||
[4253](https://datatracker.ietf.org/doc/html/4253) et
|
||||
[4254](https://datatracker.ietf.org/doc/html/4254).
|
||||
|
||||
## OpenSSH
|
||||
|
||||
Le client de prédilection pour utiliser SSH est le client de la suite OpenSSH
|
||||
(qui fourni également un serveur et d'autres utilitaires permettant de gérer
|
||||
les clefs cryptographiques), disponible dans le paquet Debian `openssh-client`.
|
||||
|
||||
## Clefs SSH
|
||||
|
||||
Vous pouvez générer des clefs cryptographiques permettant de vous
|
||||
authentifier directement sur le serveur distant (plutôt que par mot de passe)
|
||||
avec l'utilitaire `ssh-keygen` ainsi :
|
||||
|
||||
```bash
|
||||
ssh-keygen -t ${TYPE} -b ${BITS}
|
||||
```
|
||||
|
||||
Où `TYPE` peut être :
|
||||
|
||||
* `rsa`
|
||||
|
||||
* `ecdsa` (dans ce cas `BITS` doit valoir 256, 384 ou 521)
|
||||
|
||||
* `ed25519` (dans ce cas `BITS` doit valoir 256)
|
||||
|
||||
`ssh-keygen` vous demande ensuite le chemin du fichier de clef ainsi que sa
|
||||
passphrase et génère une clef privée ainsi qu'une clef publique se terminant
|
||||
par `.pub`.
|
||||
|
||||
Un autre utilitaire, `ssh-copy-id` permet de copier la clef sur le serveur
|
||||
distant par exemple :
|
||||
|
||||
```bash
|
||||
ssh-copy-id -i ~/.ssh/id_ed25519.pub login@zamok.crans.org
|
||||
```
|
||||
|
||||
Attention : il faut absolument garder la clef privée sur votre serveur et ne
|
||||
pas l'envoyer sur le serveur distant.
|
||||
|
||||
## Exemples
|
||||
|
||||
À la première connexion `ssh` demande s'il faut faire confiance à la clef du
|
||||
serveur :
|
||||
|
||||
```bash
|
||||
benjamin@om ~ $ ssh gitlab.crans.org
|
||||
The authenticity of host 'gitlab.crans.org (185.230.79.14)' can't be
|
||||
established.
|
||||
ECDSA key fingerprint is SHA256:StU+25vCTTs+opjyjMZTLvl+gvR+ViQWUkE1jRENnkQ.
|
||||
Are you sure you want to continue connecting (yes/no/[fingerprint])?
|
||||
```
|
||||
|
||||
Il est de bon usage de confirmer l'authenticité de cette clef afin de ne pas
|
||||
être vulnérable aux attaque de type Man in the Middle. Pour celà il y a une
|
||||
solution : l'administrateur du serveur doit vous confirmer l'empreinte
|
||||
(fingerprint) de la clef par un moyen sécurisé. Voici une liste non
|
||||
exhaustive de moyens plus ou moins sécurisés :
|
||||
|
||||
* Si vous êtes vous-même l'administrateur du serveur la commande `for key in
|
||||
/etc/ssh/ssh_host_*.pub; do ssh-keygen -lf ${key}; done` sur le serveur pour
|
||||
afficher les empreintes de vos clefs.
|
||||
|
||||
* Se faire confirmer la clef oralement par l'administrateur.
|
||||
|
||||
* Se faire confirmer la clef par un mail d'un administrateur de confiance
|
||||
signé GPG.
|
||||
|
||||
* Utiliser des clefs stockées dans le [DNS](/tools/dns.md) et signées
|
||||
DNSSEC, ceci peut se faire en ajoutant l'option `-oVerifyHostKeyDNS=yes` à
|
||||
`ssh`.
|
||||
|
||||
Une fois que vous vous êtes assuré de l'authenticité de la clef vous pouvez
|
||||
entrer `yes` dans le prompt ci-dessus.
|
||||
|
||||
`ssh` vous demande ensuite votre mot de passe ou la passphrase de votre clef,
|
||||
entrez le et appuyez sur Entrée pour vous connecter, félicitations vous
|
||||
devriez avoir votre shell sur le serveur distant.
|
||||
|
||||
## Exemple de conf ssh
|
||||
|
||||
Après avoir `ssh-copy-id` sa clef public comme précisé plus haut on peut
|
||||
définir une conf qui permet d'aller sur nimporte quel serveur depuis votre
|
||||
machine via un `ProxyJump`.
|
||||
|
||||
```txt
|
||||
Host *.adm.crans.org
|
||||
User _usernounou
|
||||
ProxyJump _usernounou@hodaur.crans.org
|
||||
```
|
|
@ -1,64 +0,0 @@
|
|||
# Systemd
|
||||
|
||||
Systemd est une suite logiciel pour systèmes GNU/Linux. Cette suite logiciel
|
||||
fournit de nombreuses fonctionnalités, notamment pour configurer son OS et
|
||||
suivre les *daemon*\ s actifs et leurs journaux.
|
||||
|
||||
Ce document décrit *certaines* fonctionnalités de Systemd bien choisies,
|
||||
lesquelles sont jugées intéressantes pour l'administration système ou pour
|
||||
utilisateurices. Il sera sans doute découpé en plusieurs morceaux s'il devient
|
||||
trop long.
|
||||
|
||||
|
||||
## Unités de configuration: un format unifiant.
|
||||
|
||||
### Services.
|
||||
|
||||
### Minuteurs.
|
||||
|
||||
### (Auto)mount.
|
||||
|
||||
|
||||
## Configuration Réseau.
|
||||
|
||||
### Obtenir des adresses IPs.
|
||||
|
||||
### Configuration DNS (récursif).
|
||||
|
||||
|
||||
## Journalisation.
|
||||
|
||||
### Lecture des journaux: les bases.
|
||||
|
||||
### Espaces de noms.
|
||||
|
||||
### Partage de journaux entre machines.
|
||||
|
||||
|
||||
## Aspect pratique (pour utilisateurices)
|
||||
|
||||
### Chiffrement de disque.
|
||||
|
||||
### Chargeur d'amorçage.
|
||||
|
||||
|
||||
## Conteneurisation et virtualisation.
|
||||
|
||||
### Conteneurisation.
|
||||
|
||||
### Virtualisation.
|
||||
|
||||
|
||||
## Gestion des secrets.
|
||||
|
||||
|
||||
## Trucs et astuces.
|
||||
|
||||
### Systèmes dynamiques: gestion des erreurs dans les services.
|
||||
|
||||
### Administration à distance.
|
||||
|
||||
<!-- LocalWords: IPs virtualisation utilisateurices Journalisation daemon
|
||||
<!-- LocalWords: Systemd Linux
|
||||
-->
|
||||
-->
|
|
@ -1,201 +0,0 @@
|
|||
# ZFS
|
||||
|
||||
## ZFS c'est quoi ?
|
||||
|
||||
ZFS est un système de fichier avec plein de features natives, notamment de la
|
||||
gestion de volume, du RAID (RAID-Z), des snapshots, etc.
|
||||
|
||||
> ZFS a été ouvert sous licence
|
||||
> [CDDL](https://en.wikipedia.org/wiki/Common_Development_and_Distribution_License)
|
||||
> incompatible avec la GPL. Par conséquent, ZFS n'est pas supporté nativement
|
||||
> par le noyau Linux.
|
||||
|
||||
## Petit glossaire
|
||||
|
||||
* RAID-Z#N: Le raid de ZFS. Le chiffre #N correspond au nombre de disques que
|
||||
l'on peut perdre (e.g. RAID-Z2 correspond à du RAID 6 classique).
|
||||
|
||||
* Pool: Une *pool* de stockage est le bloc de base de ZFS. C'est un ensemble
|
||||
logique de données. Une pool ZFS est composée d'un ou plusieurs *vdev*.
|
||||
|
||||
* Vdev: Un *vdev* (pour ''virtual device'') est un sous élément d'une pool.
|
||||
Un vdev peut contenir un ou plusieurs disques physiques. Dans le cas où
|
||||
plusieurs disques sont utilisés, les données sont étendues (*stripped*) sur
|
||||
tous les disques afin d'améliorer sa durée de vie.
|
||||
|
||||
* Dataset: *Dataset* est le terme générique pour désigner un volume de
|
||||
fichiers ZFS. Chaque dataset a un nom unique de la forme *Pool/Dataset*. La
|
||||
racine de la pool est techniquement un dataset aussi. Les dataset sont
|
||||
organisés comme des dossiers classique, avec une arborescence, et les enfants
|
||||
héritent des propriétés des parents.
|
||||
|
||||
## Installation
|
||||
|
||||
Il faut ajouter les dépots `contrib` de debian dans lesquels se trouvent les
|
||||
paquets installés ci-dessous.
|
||||
|
||||
Pour installer le module noyau ZFS sous Debian et les outils d'administration :
|
||||
|
||||
```bash
|
||||
apt install linux-headers-amd64
|
||||
apt install zfs-dkms
|
||||
```
|
||||
|
||||
Il faut ensuite reboot pour loader le module zfs, puis :
|
||||
|
||||
```bash
|
||||
apt install zfsutils-linux
|
||||
```
|
||||
|
||||
Cela installe aussi `zfs-zed` un daemon permettant de monitorer les pool ZFS.
|
||||
Les headers du noyau doivent être installés à chaque mise à jour du noyau.
|
||||
|
||||
## Créer une pool ZFS
|
||||
|
||||
La première étape de création d'un filesystem ZFS est la création d'une
|
||||
pool. Une pool contient des vdev qui eux même contiennent des disques, la
|
||||
commande suivante permet de créer une pool de nom «pool» et montée dans
|
||||
`/pool` avec un vdev en RAIDZ-3 :
|
||||
|
||||
```bash
|
||||
zpool create -f -m /pool pool raidz3 \
|
||||
ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03494499 \
|
||||
ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03563166 \
|
||||
ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03570970 \
|
||||
ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03575828 \
|
||||
ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03614378 \
|
||||
ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03626582 \
|
||||
ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03694920 \
|
||||
ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03704580 \
|
||||
ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03707506 \
|
||||
ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03731830 \
|
||||
ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03734763 \
|
||||
ata-WDC_WD2003FYYS-02W0B0_WD-WMAY03734769
|
||||
```
|
||||
|
||||
Les identifiants de disques peuvent être récupérés dans `/dev/disks/by-id/`.
|
||||
|
||||
L'état des pool peut-être consulté avec la commande :
|
||||
|
||||
```bash
|
||||
zpool status
|
||||
```
|
||||
|
||||
## Créer un dataset
|
||||
|
||||
Une fois la pool créée il est préférable de créer des datasets qui
|
||||
permettent une gestion plus fine de la pool. Pour cela on utilise la commande
|
||||
suivante qui créé un dataset du nom de «home» dans la pool «pool» :
|
||||
|
||||
```bash
|
||||
zfs create pool/home
|
||||
```
|
||||
|
||||
## Partager un dataset en NFS
|
||||
|
||||
ZFS permet de partager un dataset en NFS pour cela il faut installer le paquet
|
||||
`nfs-kernel-server` :
|
||||
|
||||
```bash
|
||||
apt install nfs-kernel-server
|
||||
```
|
||||
|
||||
Le dataset «home» de la pool «pool» peut ensuite être partager ainsi :
|
||||
|
||||
```bash
|
||||
zfs set sharenfs="no_root_squash,rw=@172.16.10.0/24" pool/home
|
||||
```
|
||||
|
||||
Cette commande partage le dataset au sous-réseau `172.16.10.0/24`, l'option
|
||||
`no_root_squash` permet au root du client NFS d'avoir tous les droits sur les
|
||||
fichiers du dataset.
|
||||
|
||||
Il est également préférable d'activer les acl POSIX sur la pool, dans le cas
|
||||
contraire il peut y avoir des problèmes de permissions à la création de
|
||||
fichiers :
|
||||
|
||||
```bash
|
||||
zfs set acltype=posixacl pool
|
||||
```
|
||||
|
||||
## Détruire un dataset
|
||||
|
||||
Pour détruire le dataset `pool/path` on utilise la commande :
|
||||
|
||||
```bash
|
||||
sudo zfs destroy pool/path
|
||||
```
|
||||
|
||||
## Désactiver le sync
|
||||
|
||||
Renvoyer une confirmation d'écriture sur le disque après chaque opération
|
||||
diminue énormément les performances du NFS. On peut dire à ZFS de mentir au
|
||||
NFS sur le retour des opérations sync(). Pour ça, on utilise la commande :
|
||||
|
||||
```bash
|
||||
sudo zfs set sync=disabled pool/path
|
||||
```
|
||||
|
||||
## Changer un disque
|
||||
|
||||
Récupérer le guid du disque qu'on souhaite changer avec `zdb` (`zpool status`
|
||||
peut aider à récuperer le nom du disque concerné). Une fois que c'est fait
|
||||
on peut retirer le disque avec : `zpool offline pool ${guid}` puis on remplace
|
||||
l'ancien disque par le nouveau :
|
||||
`zpool replace pool ${guid} ${nouveau disque}`.
|
||||
Après ça, on peut monitorer la reconstruction avec `zpool status`.
|
||||
|
||||
## Chiffrement
|
||||
|
||||
ZFS permet de nativement chiffrer un dataset. Attention, il faut que ça soit
|
||||
fait à la **creation** du dataset. Ça ne peut pas se changer après.
|
||||
|
||||
### Créer un dataset chiffré
|
||||
|
||||
Pour créer un dataset chiffré il suffit de rajouter les options de
|
||||
chiffrement avec `encryption=on`. Il faut aussi spécifier le format de la clé
|
||||
(`raw, hex, passphrase`). Par défaut, la clé va être promptée, mais il est
|
||||
possible de la stocker sur le système de fichier, ou bien via une URL.
|
||||
L'option `encryption` permet aussi de spéficier l'algorithme de chiffrement à
|
||||
utiliser.
|
||||
|
||||
Par exemple:
|
||||
|
||||
```bash
|
||||
sudo zfs create -o encryption=aes-256-gcm -o keyformat=passphrase pool/dataset
|
||||
```
|
||||
|
||||
Pour vérifier que tout va bien on peut récupérer la propriété de
|
||||
chiffrement :
|
||||
|
||||
```bash
|
||||
sudo zfs get encryption pool/dataset
|
||||
```
|
||||
|
||||
Pour changer la clé il suffit d'utiliser la commande suivante :
|
||||
|
||||
```bash
|
||||
sudo zfs key -c pool/dataset
|
||||
```
|
||||
|
||||
qui va demander la nouvelle passphrase.
|
||||
|
||||
Il est aussi possible de changer la source de la clé (pour aller chercher la
|
||||
clé dans un fichier par exemple).
|
||||
|
||||
### Monter/démonter un dataset chiffré
|
||||
|
||||
Par défaut le dataset sera monté. Pour le démonter il suffit d'utiliser la
|
||||
commande `unmount`. Attention, la clé de chiffrement sera toujours chargée,
|
||||
et le dataset pourra être remonté sans redemander la clé. Pour ça, il faut
|
||||
décharger la clé :
|
||||
|
||||
```bash
|
||||
sudo zfs unmount pool/dataset && sudo zfs unload-key pool/dataset
|
||||
```
|
||||
|
||||
Pour remonter le dataset il faut alors recharger la clé :
|
||||
|
||||
```bash
|
||||
sudo zfs load-key pool/dataset && sudo zfs mount pool/dataset
|
||||
```
|
Loading…
Reference in New Issue