Gestione utenze e permessi in LDAP
Usando Phi
Non è ancora completo ma per ora offre un'interfaccia a linea di comando testata e funzionante.
Se invece preferisci continuare ad usare un'interfaccia grafica leggi sotto.
Tunnel SSH
Siccome LDAP non è esposto pubblicamente su Internet occorre accedervi da localhost tramite un tunnel SSH
ssh -L 10389:localhost:389 mio_utente@zaphoda.unit -N -f
In questo modo LDAP sarà accessibile in locale sulla porta 10389
TODO: Altra pagina della wiki su come configurare ssh per accedere al server nuovo
Installazione
Scarica Phi dal relativo repository git:
git clone https://git.abbiamoundominio.org/unit/phi cd phi
Crea un virtual environment (opzionale)
virtualenv --python=/usr/bin/python3 env source env/bin/activate
E lancia il setup vero e proprio (se non stai usando il virtual environment assicurarti di lanciarlo con python3)
python setup.py install
Configurazione
Apri il file real.yml con un editor di testo e cambia il campo port in 10389 e quello password con la password di root di LDAP
ldap: host: localhost port: 10389 encryption: TLSv1.2 # Can either be None or TLSv1.2. Default: None ciphers: "HIGH" username: cn=root,dc=unit,dc=macaomilano,dc=org password: la_mia_password_di_root base_dn: dc=unit,dc=macaomilano,dc=org
Utilizzo
Creare un nuovo utente:
src/phicli adduser luther_blisset
Verranno chiesti diversi campi, premendo invio vengono lasciati i valori di default
Common name: [luther_blisset] Luther Last name: [luther_blisset] Blisset Mail: [luther_blisset@localhost] luther_blisset@autisitci.org Password: Retype password:
Aggiungerlo ai gruppi Wiki e Git:
src/phicli addtogroup luther_blisset WikiUsers src/phicli addtogroup luther_blisset GitUsers
E abbiamo finito.
Usando Apache Directory Studio (vecchio metodo)
I servizi offerti da zaphoda sono tutti linkati ad un'unico LDAP, presente sulla macchina stessa. In attesa che phi sia completo, e renda quindi più semplice la gestione delle utenze, possiamo operare a mano.
Io non sono riuscito a far funzionare correttamente ldapvi (editor di ldap simile a vi), e ricorro quindi ad una applicazione ad interfaccia grafica: ApacheDirectoryStudio
Per installarlo su debian:
sudo apt install apacheds
Per usarlo, dato che LDAP è bindato solo in localhost, bisogna fare un forward locale con ssh. Io uso localmente la porta 10389 per parlare alla 389 (porta di LDAP) su localhost di zaphoda:
ssh -L 10389:localhost:389 mio_utente@abbiamoundominio.org -N -f
Si possono omettere -N -f, e il processo ssh non andrà in background.
Possiamo adesso usare ApacheDirectoryStudio parlando con ldap sul nostro localhost:10389.
Configurazione ApacheDirectoryStudio
Dal menu in alto a sinistra, andiamo su File > New
Selezioniamo LDAP Browser > LDAP Connection
Chiamiamo la connessione come vogliamo, ad esempio zaphoda-localhost e specifichiamo i seguenti parametri di connessione:
Hostname: locahost
Port: 10389 (o la porta su cui scegliamo di fare il bind locale nel passo precedente di ssh)
Encryption method: Use StartTLS extension
Clicchiamo Next e andiamo al pannello di inserimento delle credenziali del'utente root (quindi facciamo attenzione)
User: cn=root,dc=unit,dc=macaomilano,dc=org (Nell'immagine l'utente è diverso )
Password: ***************************************
Clicchiamo su Finish. A questo punto nel pannello in basso a sinistra dovremmo vedere la nostra connessione LDAP creata con nome zaphoda-localhost. Doppio click e ci connettiamo. Se appaiono errori di certificato TLS è abbastanza normale perché LDAP presenta un certificato TLS per un nome diverso da localhost. Continuiamo e dovremmo ottenere questa lista nel pannello di sinistra in alto:
Aggiunta utente
Aprendo la voce ou=Hackers possiamo vedere la lista utenti già esistenti.
Ogni utente è una voce LDAP con i seguenti campi:
Quelli in grasseto identificano il tipo di entry LDAP
inetOrgPerson
organizationalPerson
person
top
e sono attributi che hanno un'utilità interna allo schema LDAP che stiamo usando. I seguenti sono attributi qualificanti per l'utente:
cn
sn
mail
uid
userPassword
Solitamente, cn, sn e uid hanno lo stesso valore, ma il campo importante è uid.
Per aggiungere qualcun* possiamo cliccare su ou=Hackers col tasto destro e selezionare "New Entry".
Dobbiamo aggiungere tutti i campi elencati in grassetto sopra.
In alternativa possiamo clonare un utente e modicare i suoi dati.
In questo caso avremo la lista di campi necessari a LDAP già popolata
Per terminare dobbiamo scegliere un uid non esistente
Se abbiamo clonato un nuovo utente, ricordiamoci di aprire la voce del nuovo utente creato e modificare le voci
cn
sn
mail
userPassword
Che altrimenti resterebbero uguali a quelle dell'utente clonato. L'ultimo campo, la password, ha una modalità di modifica dedicata (tasto destro sul campo userPassword > Edit Value With > Password Editor)
Aggiunta ai gruppi
A questo punto possiamo aggiungere il nostro utente ai gruppi. Ci sono 5 gruppi esistenti.
Quelli di interesse sono
GitUsers per accedere a git.abbiamoundominio.org
IRCUsers per usare il quasselcore di abbiamoundominio.org
WikiUsers per avere accesso in scrittura a questa wiki
Per aggiungere un utente ad un gruppo, selezioniamo il gruppo in questione
Tasto destro su members > New Value e aggiungiamo la stringa che identifica il nostro utente. Ad esempio
uid=pinco,dc=unit,dc=macaomilano,dc=org
E abbiamo finito.