iTALC su ubuntu 8.04

Introduzione

Dato che il pacchetto iTALC 1.0.7 presente nei repository di ubuntu 8.04 è gravemente buggato e che la versione 1.0.9 dei backports presenta seri problemi di dipendenze non risolte, dopo un po’ di test, abbiamo individuato una versione funzionante nella 1.0.9rc4( una pre-release della 1.0.9 pensata per la Intrepid compatibile con Hardy). I pacchetti .deb sono resi disponibili qui:

Installazione

Sul server principale

Abilitiamo i backports in /etc/apt/sources.list

deb http://it.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse
deb-src http://it.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse

Aggiorniamo le liste dei pacchetti

sudo apt-get update

Installiamo iTALC

cd /tmp
wget http://simone.argolinux.org/misc/bin/iTALC-1.0.9rc4-per8.04/iTALC-1.0.9rc4.zip
unzip iTALC-1.0.9rc4.zip
cd iTALC-1.0.9rc4-per8.04
dpkg -i \*.deb

Nota

L’installazione fallirà per dipendenze non soddisfatte: è normale.

Le dipendenze mancanti si potranno installare successivamente lanciando

sudo apt-get install -f

Nella chroot

Montiamo i filesystem virtuali del server

sudo mount --bind /proc /opt/ltsp/i386/proc
sudo mount --bind /dev /opt/ltsp/i386/dev
sudo mount --bind /sys /opt/ltsp/i386/sys

Nota

in realtà per le operazioni attuali potrebbe essere trascurabile.

Entriamo interattivamente nell’ambiente chroot

sudo chroot /opt/ltsp/i386

E ripetiamo le operazioni fatte per il server...

Abilitiamo i backports in /etc/apt/sources.list

deb http://it.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse
deb-src http://it.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse

Aggiorniamo le liste dei pacchetti

sudo apt-get update

Installiamo iTALC

cd /tmp
wget http://simone.argolinux.org/misc/bin/iTALC-1.0.9rc4-per8.04/iTALC-1.0.9rc4.zip
unzip iTALC-1.0.9rc4.zip
cd iTALC-1.0.9rc4-per8.04
dpkg -i \*.deb

Nota

L’installazione fallirà per dipendenze non soddisfatte; è normale.

Installiamo anche le dipendenze mancanti

sudo apt-get install -f

Rimuoviamo i file scaricati ed usciamo dalla chroot

rm -rf /tmp/iTALC-1.0.9rc4-per8.04
exit

Smontiamo quindi i filesystem precedentemente montati

sudo umount /opt/ltsp/i386/*

Stesse chiavi per server e chroot

Dal server

cp -av /etc/italc/keys/* /opt/ltsp/i386/etc/italc/keys/

Note sulla sicurezza (da tute pdf)

iTALC utilizza la crittografia asimmetrica per autenticare l’applicazione Master sui client ed evitare che persone non autorizzate possano prendere il controllo dei PC. Pertanto alla prima installazione è necessario creare una coppia di chiavi:

  1. la chiave privata da lasciare sulla postazione Master
  2. la chiave pubblica da distribuire ai client

Sulla postazione docente eseguiamo, come root, il comando

ica -role teacher -createkeypair

che provvederà alla creazione di una nuova coppia di chiavi nella directory /etc/italc/keys.

Pertanto nella directory /etc/italc/keys: troveremo due sotto-directory:

  • /etc/italc/keys/private dovrebbe essere leggibile solo dagli utenti autorizzati ad eseguire italc per il controllo dei client. Questa directory deve essere presente solo sul computer docente.
  • /etc/italc/keys/public: dovrebbe essere leggibile da tutti (ciò e fatto di default dal processo di creazione). Questa directory, invece, deve essere presente su tutti i computer dell’aula, pertanto e opportuno copiarla sugli altri computer.

Un modo per rendere la directory /etc/italc/keys/private leggibile solo agli account necessari potrebbe essere lanciare, come root

addgroup italc
adduser <account-insegnante1> italc
adduser <account-insegnante2> italc
chgrp -R italc /etc/italc/keys/private
chmod -R o-rwx /etc/italc/keys/private

Oppure, come abbiamo fatto nel caso Idra, strutturare permessi/ownership nel modo seguente

/etc/italc/
`-- [drwxr-xr-x root     root    ]  keys
    |-- [drwxr-xr-x root     root    ]  private
    |   |-- [drwxr-xr-x root     root    ]  admin
    |   |   `-- [-r--r----- root     admins  ]  key
    |   |-- [drwxr-xr-x root     root    ]  supporter
    |   |   `-- [-r--r----- root     admins  ]  key
    |   `-- [drwxr-xr-x root     root    ]  teacher
    |       `-- [-r--r----- root     docenti ]  key
    `-- [drwxr-xr-x root     root    ]  public
        |-- [drwxr-xr-x root     root    ]  admin
        |   `-- [-r--r--r-- root     admins  ]  key
        |-- [drwxr-xr-x root     root    ]  supporter
        |   `-- [-r--r--r-- root     admins  ]  key
        `-- [drwxr-xr-x root     root    ]  teacher
            `-- [-r--r--r-- root     docenti ]  key

Se si dispone di una condivisione di rete (AFS, NFS, Samba, ecc.) si puo:

  • copiare la directory /etc/italc/keys/public in una cartella condivisa ::

    # cp -R /etc/italc/keys/public <condivisa>

  • impostare i giusti permessi ai file

    # chmod -R go=r <condivisa>
    
  • Montare la cartella condivisa e creare un link simbolico file:/etc/italc/keys/public su ogni client in modo che punti alla condivisione.

    # mount -t smbf <condivisa> <dest>/italc-key
    # ln -s <dest>/italc-key /etc/italc/kes/public
    

Terminata la configurazione dell’ambiente di sicurezza, possiamo finalmente avviare iTALC sulla postazione docente con il comando

italc

Primo avvio di italc: creare una classe ed aggiungervi i pc

  • Dal menù a sx => click su Classroom-Manager
  • click DX nel C.M. => Add classroom => Inserire nome della classe

Aggiunta dei computer ad una classe

  • Dal menù a sx => click su Classroom-Manager

  • click DX su nome classe aggiunta => Add Computer

  • Inserire i dati richiesti e fare OK

    Nota

    • Gli unici dati che è indispensabile inserire sono IP/hostname e Name.

    • Nel caso si stesse aggiungendo un thinclient, si dovrà puntare ai client così

      <ip-server>:10<ultimo-numero-ip>

      Questi sarebbero i dati da utilizzare per raggiungere due thinclient aventi ip 192.168.11.24 e 192.168.11.130

      192.168.11.253:10024

      e

      192.168.11.253:10130

      Mentre per i client non ltsp, basterà puntare semplicemente all’ip del client (porta di default).

  • Click SX sul pulsante Classroom in alto a sx => selezionare il nome della classe aggiunta

Rendere globale la propria configurazione

Una volta creata la propria classe, si potrà trovare la configurazione appena creata in ~/.italc. La versione di italc che funziona con ubuntu 8.04.4, pare non supporti correttamente l’uso delle direttive globali come indicato nella documentazione di iTalc. Per rendere la configurazione disponibile, per esempio, a tutti i docenti, si dovrà copiare la directory .italc nella loro home, e cambiarne opportunamente ownership/groupship.

Per automatizzare l’operazione, si potrà usare la script seguente

#!/bin/bash

DEFAULT_GROUP='docenti'
HOME_BASE='/home/users'


### qualche test
[ -z "$1" ] && echo "Dammi la directory da copiare nelle home" && exit 1
[ ! -d "$1" ] && echo "$1 non é una directory valida" && exit 1
dir_tºcopy=$1

#### Inizio...

utenti=$(isi-groupcat $DEFAULT_GROUP)

for utente in $utenti; do
    dest_path="$HOME_BASE/$DEFAULT_GROUP/$utente"

    echo "copio $dir_tºcopy => ~$utente/"
    cp -r $dir_tºcopy $dest_path/
    chown -R $utente.$DEFAULT_GROUP $dest_path/$(basename $dir_tºcopy)
done

Una volta resa eseguibile, la script andrà lanciata passandole come argomento la dir .italc da copiare a tutti gli utenti (per esempio ~d_test/.italc).