Client Linux

Per i sistemi Linux non esiste un’operazione analoga al join dei sistemi Microsoft ma è comunque possibile avere:

  1. Autenticazione unica su server centrale: questo significa che tutti gli utenti sono riconosciuti da ogni client e la password con cui si autenticano è la medesima (che potrebbe anche essere differente da quella usata per il logon su windows)
  2. La home è servita dal fileserver: se il server è anche PDC la home è la medesima sia sotto windows che sotto Linux. Il server esporta la HOME degli utenti via nfs. Fare riferimento a quel capitolo per capire come configurare anche il client.

Ubuntu e isi-tux-join

La distribuzione Ubuntu ha un paccchetto che facilita la gestione del sistema di autenticazione: auth-client-config. Basandosi su questo ReteISI aggiunge un comando che permette di ottenere queste due configurazioni in un solo comando: isi-tux-join

Modifica il sistema di autenticazione del client ubuntu per usare
un server di autenticazione ldap e rimappa /home per usare il filesystem nfs
esportato dal server.
Usa auth-client-config che è disponibile solo in Ubuntu (non in Debian)
NOTA: al termine è necessario dare un reboot perché la home venga montata.
  usage: %prog [options]
    -s, --server=SERVER: usa SERVER come server per tutti i servizi (ldap + nfs)
    -p, --password=PASS: usa PASS per connetterti al server ldap (bind autenticato)
    , --nfs=NFS_SERVER: use NFS_SERVER for NFS_SERVER (default SERVER)
    -t, --test: mostra tutti gli utenti riconosciuti
    -x, --proxy-server=PROXY: use proxy as proxy_server (default SERVER
    -u, --proxy-user=USER: use USER as proxy user (default apt)
    -U, --proxy-password=PASS: use PASS as password for user
    -P, --proxy-port=PORT: usa PORT (default 8128)
    -W, --windbind: check and use winbind
    -b, --basedn=BASE: default dc=isi,dc=lan

Per installare il pacchetto (potete fare un unico taglia ed incolla) ricordate che però è necessario che il proxy sia configurato in modo da fare passare la richiesta:

sudo su -c 'echo deb http://apt.argolinux.org lenny main > /etc/apt/sources.list.d/isi.list'
sudo su -c 'echo deb http://apt.reteisi.org lenny main >> /etc/apt/sources.list.d/isi.list'
sudo wget -O-  http://apt.reteisi.org/dists/lenny/public.key| sudo apt-key add -
sudo wget -O-  http://apt.argolinux.org/dists/lenny/public.key| sudo apt-key add -
sudo apt-get update
sudo apt-get install isi-tux-join

Per cambiare la configurazione (sostiture ‘server’... :-):

sudo isi-tux-join -s server

Nota

Di default isi-tux-join configura il sistema per accedere al server ldap remoto utilizzando il metodo di bind non-autenticato. Per utilizzare il metodo autenticato( default fino a non molto tempo fa) basterà specificare la password del server ldap utilizzando l’opzione “-p”

sudo isi-tux-join -s server -p pass

Si veda le modalità di binding

Se esiste l’utente apt sul server e viene passata la password con l’opzione -U viene anche creata /etc/apt/apt.conf.d/proxy.

sudo isi-tux-join -s server -p -U xxx

lasciamo solo per informazione dei più curiosi la vecchia documentazione che spiegava come fare le operazioni “a mano”:

Nota

E’ importante che il server sia capace di risolvere il nome del client. Si può ottenere questo via una risoluzione statica in /etc/hosts o tramite una risoluzione dinamica via dynamic-dhcp, come è ad esempio il caso se usare dnsmasq come server dhcp e server dns. La mancanza di questa risoluzione comporta lentezze considerevoli nella risposta del server.

Test effettuati da isi-tux-join prima di configurare il sistema

  • Ricerca porta tcp aperta per nfs/ldap su server remoto.
  • Le credenziali ldap fornite vengono verificate con una query ldap.
  • Un test nfs creerà una cartella temporanea in cui innestare il filesystem remoto.

Modifiche effettuate da isi-tux-join

  • Dopo aver testato i dati forniti
  • A seconda della distribuzione in uso verrà applicato un profilo auth-client od un altro

Consentire ad un utente ldap l’utilizzo di stick usb e dell’audio del client ubuntu.

In Ubuntu un utente ldap riesce a far funzionare uno stick usb solo in lettura e non ha accesso all’audio della macchina. Questo dipende dal fatto che per utilizzare l’audio e vedere montato il proprio dispositivo usb in lettura/scrittura l’utente deve essere membro dei gruppi locali plugdev(46) e audio (29), il che è automatico per gli utenti locali ma non succede per quelli remoti. Occorre quindi implementare un meccanismo che assegni automaticamente l’appartenenza (membership) a questi gruppi agli utenti autenticati dal server ldap. Fortunatamente la cosa è piuttosto semplice, anche se comporta un riprocessamento di tutti gli utenti remoti. Vediamo quanto è necessario.

LATO SERVER

1. creare i gruppi ldap plugdev, audio e fuse (attenzione, quei gruppi esistono già sul server come gruppi locali, saranno quindi duplicati come gruppi ldap

2. assegnare gli utenti a cui si vuole consentire l’uso dei dispositivi usb e audio del client (potenzialmente tutti) ai gruppi plugdev e audio (eventualmente ad altri)

il tutto si ottiene con i comandi:

isi-addgroup --system plugdev audio fuse

LATO CLIENT

Per assegnare on the fly la membership ai gruppi locali agli utenti ldap occorre ricorrere a pam_group.so, lo si fa aggiungedo al file /etc/pam.d/common-auth la linea:

auth     optional        pam_group.so

A questo punto non resta che configurare pam_group. Lo si fa aggiungendo in testa al suo file di configurazione /etc/security/group.conf le righe seguenti:

gdm; *; *; Al0000-2400; audio, video, cdrom, floppy, plugdev
kdm; *; *; Al0000-2400; audio, video, cdrom, floppy, plugdev
login; *; *; Al0000-2400; audio, video, cdrom, floppy, plugdev

(le prove fatte rivelano che i gruppi video, cdrom e floppy, possono essere omessi, in ogni caso male non fanno)

Fare il reboot del client e godersi l’effetto

isi-gnome-menu

E` possibile fare in modo che gli utenti linux vedano le stesse cartelle definite nel file logon.conf creando degli opportuni file di configurazione nella HOME degli utenti. Il comando che permette di fare questo è isi-gnome-menu:

Crea (o modifica) il file ``$UTENTE/.gtk-bookmarks`` aggiungendo i riferimenti
alle share ISI definite per l'utente in ``/etc/isi/logon.conf``,
E' possibile lavorare su singoli utenti, gruppi o tutti gli utenti.
Senza opzioni lavora sull'utente corrente. In un contesto LTSP cio'
permette, usando opportunamente ``$UTENTE/.xsessionrc``, di reimpostare
le share ad inizio sessione-grafica dell'utente.
  usage: %prog [ -v ][ -u user] [ -g group] [ -a ]
    -u, --user=user: lavora su un singolo utente
    -g, --group=group: lavora per un gruppo di utenti
    -a, --all: lavora su tutti gli utenti, ad eccezione di root
    -v, --verbose: modo verboso

Dopo avere generato il file sarà possibie andare in risorse e vedrete aggiunti i puntatori come illustrato in figura.

LTSP

Una menzione particolare per i client LTSP. Per questi client non c’è molto da dire, in quanto gli utenti sono definiti sul server LTSP per il quale potete seguire esattamente le istruzioni scritte sopra.

Dual Boot

Per installare grub sui client in modo da permettere il dual boot potete seguire le istruzioni di Installazione GRUB sui client. Se avete un client linux solo e volete aggiungere la possibilità di boot via gPXE, prelevare l’eseguibile per tutti i driver e formato per linux kernel da room-o-matic e aggiungere il riferimento (con ovia sostituzione del nome in caso cambi la versione di gPXE):

title Linux via gPXE  (thin/fat client)
kernel /gpxe-1.0.0-gpxe.lkrn

Dividere il carico fra più server

Qualora ci siano molti client LTSP e non sia possibile suddividere la rete, è possibile suddividere il carico fra più server lasciando al server dhcp il compito di assegnare non solo l’indirizzo di rete ma anche il server da cui prendere il root filesystem da caricare via nfs.

Questa operazione è particolarmente facile tramite l’interfaccia Interfaccia web ed il server dnsmasq che è l’attuale soluzione suggerita. Se state usando invece dhcpd-server potete seguire le informazioni qui sotto.

La direttiva da usare è next-server ed indica quale sia il server successivo dopo quello che ha fornito il kernel. Un esemio per due macchine che usino rispettivamente il server ltsp 192.168.1.1 e 192.168.1.2 potrebbe essere così:

host ltsp01 {
    hardware ethernet    00:a0:24:52:5a:bc;
    fixed-address        192.168.1.50;
    next-server  192.168.1.1;
}
host ltsp02 {
    hardware ethernet    00:a0:24:52:5a:bc;
    fixed-address        192.168.1.51;
    next-server  192.168.1.2;
}

APT

Ricordate che per potere usare apt attraverso un proxy web dovrete Configurare apt dei client per passare da squid