Project

General

Profile

Actions

Spécifications du Système d'Information d'Illyse

Références

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 ──┬── ->
│ │ ├── ->
│ │ ├── -> illyse.org/adresse/
│ │ ├── ...
│ │ ├── ->
│ │ └── -> illyse.org/fmichel/
│ │
│ └── admin ──┬── ->
│ ├── ->
│ ├── ...
│ └── ->
│ ->
│ ->
│ -> ...

├── unix ──┬── users ──┬── fmichel
│ │ │ - nom: Michel
│ │ │ - prenom: Fabien
│ │ │ - mail:
│ │ │ - 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