Spécifications du Système d'Information d'Illyse¶
Références¶
- TODO : s'inspirer de http://www.ffdn.org/wiki/doku.php?id=travaux:specifications_si
- SI NDN (django): http://git.ndn.cx/gitweb/?p=si_ndn.git;a=summary (basé sur https://gitorious.org/si-fai )
- SI Rhizome (module dolibarr): http://doc.rhizome-fai.net/doku.php?id=howto:outils_asso:dolibarr
- http://xkcd.com/844/
- http://xkcd.com/353/
Que veut-on gérer dans le S.I. ?¶
- adhésion + validation d'adhésion
- page d'accès à ses infos personnelles (état civil, etc)
- accès à ses factures
- vérification dans Dolibarr que l'adhérent est bien a jour de ses cotisations (base mysql) + envoi d'alertes
- changement de mdp
- upload de clés RSA (pour l'accès aux serveurs)
- upload de clé publique GPG pour chiffrer les mails envoyés par le SI (déjà implémenté dans le SI de NDN, en django (j'ai codé cette fonctionnalité et prévois de * faire un module Python indépendant de Django, donc si vous avez un SI en Python, vous pourrez l'utiliser) \o/)
- ajout aux ML (utiliser l'intégration sympa/ldap ?) (basse priorité)
- tests d'éligibilité (interface avec les API des opérateurs de collecte) (FDN fournit une API pour ça, mais on peut utiliser ça + API d'autres opérateurs)
- demande d'ouverture d'accès ADSL par l'adhérent
- ouverture d'accès ADSL (dont allocation d'IPs v4&v6)
- suivi des commandes de lignes aux opérateurs de collecte
- demande d'ouverture d'accès VPN par l'adhérent
- ouverture d'accès VPN (dont allocation d'IPs v4&v6)
- envoi des informations de connexion (VPN & ADSL) (dont certificats pour le VPN) → en main propre ou via canal sécurisé (SSH, mail GPG mais pas automatiquement) / PKI avec certificate signing requests
- consultation de la bande passante consommée par chaque abonné et BP moyenne, histoire de filer un point de comparaison
- avoir les infos techniques de sa ligne (débits montant, descendant, distance au NRA, bruit) : Se renseigner si l'API Lasotel renvoie ces informations
- historique des abonnements (quels services, de quand à quand, quelles IP)
- mail (boîtes, alias) (basse priorité) → que pour les admins, membres du ca
- contrôle d'accès aux serveurs (login, sudo) (basse priorité) → que pour les admins
- délégation DNS / reverse (basse priorité) → que pour les admins
- gestion de tickets de hotline NON, dans Redmine
Comment communiquer les données sensibles ?¶
- Mots de passe
- main propre
- mails chiffrés
- pas de communication de mdp : l'adhérent le saisit lors de l'adhésion en ligne. Pas valable pour les adhésions offline.
- lien zerobin en burn after reading
- méthode Grenode : l'adhérent fournit une clé RSA, puis se connecte en ssh sur une machine pour initialiser son mdp)
- Certificats
- main propre
- mails chiffrés
- « vraie » procédure asymétrique style PKI (demande de signature, etc => c'est l'adhérent qui crée lui même les clés privées, aucun fichier sensible ne circule) -> lourd à mettre en œuvre (exemple : EJBCA) ou Easy-RSA
- publier et maintenir la CRL
Niveaux d'accès¶
- anonyme
- demande d'adhésion, éligibilité
- adhérent
- correction des données personnelles
- changement / réinitialisation mdp
- demande d'ouverture accès ADSL/VPN
- abonné
- délégation [reverse] DNS
- admin
- validation des adhésions
- gestion des ouvertures d'accès ADSL/VPN (radius)
- sysadmin
- gestion de tous les groupes (dont admin, sysadmin)
- contrôle d'accès aux machines
- gestion du mail
- gestion du dns
Nécessité d'une base de données ?
- Si oui, postgresql ?
Structure du ldap¶
Note: pour voir correctement l'ascii-art à la con, passer en police monospace (-> boutons en haut à droite)
Racine
LDAP
│
├── dns ──┬── illyse.org ──┬── allow─transfer a.b.c.d
│ │ ├── allow─transfer e.f.g.H
│ │ │
│ │ ├── host @
│ │ │ ├── SOA
│ │ │ ├── NS
│ │ │ └── MX
│ │ │
│ │ ├── host rigel
│ │ │ ├── A 78.193.86.178
│ │ ... └── AAAA 2a01:e34:ec15:6b20::1:11
│ │
│ ├── illyse.net
│ │
│ └── illyse.fr
│
├── mail ──┬── users ──┬── alias1@illyse.fr -> alias2@illyse.org
│ │ ├── alias2@illyse.org -> adresse@illyse.org
│ │ ├── adresse@illyse.org -> illyse.org/adresse/
│ │ ├── ...
│ │ ├── fabien@illyse.org -> fmichel@illyse.org
│ │ └── fmichel@illyse.org -> illyse.org/fmichel/
│ │
│ └── admin ──┬── abuse@illyse.net -> ca@illyse.org
│ ├── postmaster@illyse.fr -> ca@illyse.org
│ ├── ...
│ └── ca@illyse.org -> jfmourgues@illyse.org
│ -> papoudret@illyse.org
│ -> fmichel@illyse.org
│ -> ...
│
├── unix ──┬── users ──┬── fmichel
│ │ │ - nom: Michel
│ │ │ - prenom: Fabien
│ │ │ - mail: fmichel@illyse.org
│ │ │ - uid: 2004
│ │ │ - gid: 2000
│ │ │ - home: /home/fmichel
│ │ │ - shell: /bin/bash
│ │ │ - mot de passe hashe: {SSHA}LASAGNESLASAGNESLASAGNES
│ │ │ - cle publique: YYYYYYYYYYYYYYYYYYYYYYYYYYY
│ │ │ - cle publique: ZZZZZZZZZZZZZZZZZZZZZZZZZZZ
│ │ │ - ...
│ │ │
│ │ ├── jfmourgues
│ │ ├── papoudret
│ │ ...
│ │
│ └─ groups ──┬── users
│ │ - gid: 2000
│ │
│ ├── adherents
│ │ - gid: 2001
│ │ - membre: jfmourgues
│ │ - membre: bjonglez
│ │ - membre: gdesliens
│ │ - membre: ...
│ │
│ ├── sysadmin
│ │ - gid: 2010
│ │ - membre: jfmourgues
│ │ - membre: papoudret
│ │ - membre: ...
│ │
│ ├── loginrigel
│ ├── loginkim
│ ├── logingozer
│ ├── loginall
│ │
│ ├── sudorigel
│ ├── sudokim
│ ├── sudogozer
│ ├── sudoall
│ ...
│
├── radius ──┬── compte radius aaaaaaa
│ │ - rattache a jfmourgues
│ │ - mdp en clair pour CHAP: grandpaSquirrel42
│ │ - mdp hashe pour PAP: {SSHA}CHWALCHWALCHWALCHWALCHWALCHWAL
│ │ - IP: 42.42.42.42
│ │ - ...
│ │
│ ├── compte radius bbbbbbb
│ │ - rattache a bjonglez
│ │ - ...
│ ...
│
├── services ──┬── ldaprep1
├── ldaprep2
├── ldaprep3
├── redmine
│ - mot de passe hashe: {SSHA}XXXXXXXXXXXXXX
├── apache
│ - mot de passe hashe: {SSHA}YYYYYYYYYYYYYY
...
Updated by Jean-François Mourgues over 10 years ago · 1 revisions