Utvidelse av MDB2 for å styre Unix/Samba/Kerberos-brukere og Unix-grupper
Historisk note
Dette dokumentet ble uttenkt og skrevet av fornuftige mennesker. Noen andre mennesker leste det men stunt-implementerte og stunt-innførte MedlemsDB2Unix uten å strengt følge kravspecen her. Den har fortsatt masse nyttig å tilføye.
Innhold
Denne spesifikasjonen ønskes gjennomført innen semesterstart vår 2007, grunnet opptak av store mengder UKEfunker utover våren.
Problemstilling
Det er ønskelig å kunne flytte administrasjon av brukere og gruppetilhørighet for Unix/Samba/Kerberos-kontoer inn i medlemsdatabasen.
Målene man ønsker å oppnå i første runde er:
- enklere administrasjon
- samme passord overalt
- enklere å bytte passord
- gruppetilhørighet reflektert av organisasjonsstruktur
Videre utvidelser som følger på løpende bånd:
- automatisk opprydding når folk ikke lenger fyller vilkårene for å ha bruker, se policy under
Videre utvidelser som er ønskelig litt etterhvert:
- forwarding av epost til bruker@s.n styrt fra MDB2
- MDB2-til-LDAP som erstatter dagens Unix-til-LDAP (effektivt MDB2-til-Unix-til-LDAP), se MedlemsDB2LDAPeksport
- endring av passord i MDB2 fra Samba
Innlegging må fortsatt skje manuelt all den tid ITK ønsker å ha kontroll på hvilke brukernavn folk får. Man ønsker også at gruppetilhørighet speiles av organisasjonsstrukturen til Samfundet.
Use case
- Per Person blir medlem av Samfundet.
- Per registrerer medlemskapet sitt på medlem.samfundet.no, og kan siden logge inn med kortnummer/epostadresse og passord som alle andre medlemmer.
- Per blir tatt opp i VPK og blir således aktiv på Huset.
- Gjengsjefen i VPK legger til Per i MDB2 som aktiv i VPK og registrerer et ID-kort til Per.
- Ettersom Per ikke har en PIN-kode i MDB2 fra før av får Per automagisk en epost. Denne forteller om hva han må sørge for for å få dørtilgang på Huset: gyldig oblat og PIN-kode. I tillegg forteller eposten at Per kan få en "Samfundet-bruker" som gir tilgang til en rekke IT-systemer på Huset dersom han møter opp hos ITK med ID-kortet sitt.
- Per vil traske på traske.samfundet.no, så han tar turen innom ITK i Fjerde. Der viser han ID-kort og forteller hva brukernavnet hans på NTNU/HiST/e.l. er og får opprettet en "Samfundet-bruker" og setter passordet i samme slengen. Dette passordet erstatter passordet han allerede har registrert på medlem.samfundet.no.
- Automagisk får Per nok en velkomstepost. Denne gangen fortelles det om alle de nye tjenestene han har tilgang til: epost, webmail, hjemmeområde, fellesområder, traske, Samfundets Wiki, osv.
- Samme kveld er Per på Hyblene og drikker litt for mye, så han glemmer passordet sitt.
- Neste "morgen" stikker Per innom KK, viser ID-kortet sitt og får tilsendt en epost som gir han engangsmulighet til å sette nytt passord for alle tjenestene på medlem.samfundet.no.
- Seks måneder senere synes Per det er på tide å bytte passord. Han går til medlem.samfundet.no, logger inn med kortnummer/epostadresse/brukernavn og passordet sitt, og setter et nytt passord. 15 minutter senere er alle passordene hans byttet og han er på ny klar for Hyblene.
- Tre år senere flytter Per fra byen og slutter å fornye medlemskapet sitt. Varsel om sletting av bruker sendes (med påminnelse hyppigere jo nærmere slettedato en kommer) og brukeren slettes etter N måneder.
Policy
Krav for å ha konto
Se brukerpolicy.
Oppretting av konto
Vi vil ikke at gjengsjef bestemmer brukernavn for å opprettholde saklighet og mapping mot brukernavn på NTNU/HiST/o.l. Man har derfor fortsatt en situasjon hvor medlemmet må møte opp hos ITK og oppgi brukernavnet sitt på utdanningsinstitusjon og sette passord.
Ved setting av passord
Når en setter passord med webgrensesnittet eller med "itkadduser2" gjøres følgende:
- dagens MD5-hash i databasen oppdateres
- passordet krypteres med en GPG-nøkkel og lagres i databasen
- hasher for Samba (NTLM (LM kan trolig droppes da NTLM er støttet i Win2k og nyere, og LM-støtte er deaktivert i Vista)) og shadow (MD5 med salt) genereres og lagres i databasen
Privatdelen av GPG-nøkkelen finnes på én boks, type "sikkert".
Når en bruker selv skal endre passord må det gamle passordet sendes med i forespørslen i køen slik at cron-systemet kan sjekke at passordet stemmer, uavhengig av webgrensesnittet.
Fjerning av konto
Kontoer vil gå ut så fort folk forlater byen og slutter å betale medlemsavgift. Pangsjonister som ikke bor i byen, men som likevel ønsker å støtte Samfundet ved å betale avgiften får lov til å beholde kontoen.
Når ett av vilkårene ikke oppfylles varsles personen på registrert epostadresse og samfundet.no-epostadresse (dersom ikke samme) om at kontoen slettes om N måneder, forteller hvilke vilkår som ikke er oppfylt, at filer relatert til gjengen burde flyttes til fellesområder og at viktige personlige filer må reddes. Påminnelse sendes med økende hyppighet frem til slettetidspunktet.
Teknisk implementasjon
Endringer i MDB2: konto
Utvidelse av tabellen medlem:
- brukernavn (varchar)
- unix_uid (int)
- unix_group (fk til primærgruppe, som igjen gir unix_groupname og unix_gid)
Endringer i MDB2: passord
Det foreslås opprettet to ny tabeller i MDB2 for lagring av de forskjellige krypteringene:
passordtype:
- passordtype_id (key)
- passordtype (varchar)
- beskrivelse (varchar/text)
passord:
- medlem_id (fk)
- passordtype_id (fk)
- passord (varchar/text)
Tilgang til passordtabellen begrenses til færrest mulig databasebrukere, typisk ikke webbrukere. Webbrukeren til medlem.samfundet.no får kun rettigheter til UPDATE/INSERT på passord-tabellen.
En vil også flytte dagens MD5-hash over til passordtabellen. En må bare sørge for å oppdatere diverse kode (MDB2, wlan.s.n, osv.) og teste at alt av avhengende systemer funker etterpå.
Endringer i MDB2: grupper
Grupper i databasen (MDB2) får attributtene:
- unix_groupname (varchar)
- unix_gid (int)
MDB2 får tildelt en egen gid range (10000-) som den selv holder styr på (finne neste ledige osv.).
Endringer i MDB2-web
En ønsker grensesnitt for:
- å opprette Unix-konto og knytte til person (for ITK)
- å endre eget passord
- å endre å endre en brukers passord (for ITK)
- å sende sett-nytt-passord-epost (for KK)
- å sette attributter på grupper (for ITK, typisk i "Gjengstruktur")
Mulighet for å bytte glemt passord via epost og engangs-URL deaktiveres for medlemmer med "Samfundet-bruker". De må til KK eller ITK for å sette nytt passord.
Import
For import fra eksisterende /etc/passwd må man lage noen stygge hack som matcher fornavn/etternavn og ser på antall krasj. Her blir det nok også litt manuell fiksing, men det er en engangsjobb. Vi ønsker å godkjenne alle mappinger mellom medlem og bruker manuelt.
Brukere kontrollert av MDB2 ønskes plassert på UID 10000 og oppover. Vi ønsker sannsynligvis å reassigne UID til alle brukere (etter endt mapping med MDB2?).
Eksport
Eksportering gjøres av script som kjører fra cron (eller daemon):
- som root på cassarossa, dytter hashene inn i /etc/shadow og /etc/samba/smbpasswd (med adduser eller passwd, og smbpasswd) ala dagens itkadduser, og kjører cfrun ved behov.
- som root på sikkert, dekrypterer GPG-passordene og oppretter (endrer passord på) Kerberos-brukere.
Implementasjonsplan
TODO: Fordele arbeidsoppgaver.
Utvikling av MDB2
Databasen:
Omtrent først må databasen endres. Epost-/webendringer er forholdsvis parallelliserbart og avhenger ikke veldig mye av hverandre, men mesteparten avhenger av databasen.
Epostvarsling:
- Utsending av info-epost når en får et verv og et ID-kort. Se use case punkt 5. Ingen avhengigheter, ikke engang DB, sett i gang!
- Utsending av info-epost når en får konto. Se use case punkt 7. Avhenger av punkt over (pga kodegjenbruk) og endret database.
Webgrensesnitt:
- Se Endringer i MDB2-web ovenfor. Avhenger av DB og muligens litt på hverandre, men mest pga mulighet for gjenbruk av kode.
Utvikling av og jobbing med andre systemer
Få avhengigheter. Parallelliser!
- Få synkronisert nåværende passordatabaser mest mulig. (jodal er i gang)
- Import: Mappe eksisterende brukere med medlemmer. (berge er i gang)
- Eksport: Lage cronjob-script til cassarossa og sikkert.
- Eksport: Lage MDB2-til-LDAP-eksport.
Lenker: Start, medlemsdb2, medlemsdb2unix
Epost: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2007-06-08 20:34 | Revisjon: 38 (historie, blame) | Totalt: 1905 kB | Rediger