Installare e configurare Debian edu (Skolelinux): differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
(Creata pagina con 'In questa guida verranno descritte note sull'installazione e la configurazione iniziale di un server Debian edu 7.1, per un laboratorio di informatica scolastico (I.T.I), compost...')
 
(+ Paragrafo "Collegamenti esterni")
 
(368 versioni intermedie di 4 utenti non mostrate)
Riga 1: Riga 1:
In questa guida verranno descritte note sull'installazione e la configurazione iniziale di un server Debian edu 7.1, per un laboratorio di informatica scolastico (I.T.I), composto da 24 thin client e un unico server.
In questa guida verranno descritte le sequenze di installazione e configurazione di '''Debian edu 7 (Wheezy)''', che sono state seguite per la creazione di un ambiente LTSP in un laboratorio di informatica scolastico (ITIS "Ettore Majorana" di Somma Vesuviana, Napoli) principalmente dedicato allo sviluppo di pagine web (HTML,PHP/MySQL,CGI C) e applicazioni in C/C++/Java.
{{Versioni_compatibili}}
__TOC__
= Prerequisiti =
[[Image:debianedu_combi_net.jpg|right|thumb|350px|Topologia della soluzione "combined server" con router WAN/LAN.]] La tipologia di installazione più comune di una Debian Edu 7 è quella "combined server", che installa, su un'unica macchina, due profili server:
# Server LTSP/thinclient, che gestisce il netboot di thin client e fat client 
# Server "main", che fornisce il desktop per i client e i servizi di rete necessari: LDAP, web, DNS, SQL ecc.
<br />
Questa soluzione richiede che sul server siano presenti almeno due interfacce di rete:


''' Prerequisiti </tt>
*eth0: collegata alla rete backbone (e quindi a internet mediante un gateway della stessa rete)  
 
*eth1: collegata a una sottorete dedicata esclusivamente al netboot di thin/fat-client
La tipologia di installazione più comune di una Debian Edu 7.1 è quella "combined server", che installa, su un'unica macchina, due profili server:
<br />
 
La configurazione predefinita di queste due interfacce è la seguente:
1) Server LTSP: che consente il netboot di thin client e fat client
2) Server "main": che fornisce il desktop per i client e i servizi di rete necessari: LDAP, web, DNS, SQL ecc.
 
Questa soluzione richiede che sul server siano installate due interfacce di rete:
 
eth0: collegata alla backbone della rete aziendale (subnet WAN)
eth1: collegata alla subnet dei client netboot (subnet LAN LTSP)
 
La configurazione predefinita delle due interfacce è la seguente:
 
eth0: rete 10.0.0.0/8 - gateway 10.0.0.1 (nome: INTERN)
eth1: rete 192.168.0.0/24 - gateway 192.168.0.254 (nome: subnet00.INTERN)
 
L'IP della macchina server è preconfigurato: 10.0.2.2 (nome: tjener)
 
La distribuzione, una volta installata, è pronta all'utilizzo con una configurazione di rete predefinita, che non si può, almeno facilmente, modificare. Debian edu 7.1 è, infatti, "LDAP-centrica" ovvero gran parte della configurazione dei servizi di rete è messo tutto sotto LDAP, quindi molto più difficile da modificare rispetto ai semplici file testo.
 
Nel caso la configurazione di rete della propria azienda non sia una classe A occorrerrà interporre un router fra la macchina e la rete.
 
 
'''Menù “Network → WAN”'''
 
 
WAN Connection Type: Static IP
 
 
IP Address:<tt>172. 16 . 200 . 20</tt>
 
Subnet Mask:<tt>255. 255 . 255 . 0</tt>
 
Default gateway:<tt>172. 16 . 200 . 254</tt>
 
Primary DNS:<tt>172. 16 . 200 . 254</tt>
 
Secondary DNS:<tt>8 . 8 . 8 . 8 </tt>(Google DNS)
 
 
'''Menù “Network → LAN”'''
 
 
IP Address:1<tt>0 . 0 . 0 . 1</tt>
 
Subnet Mask:<tt> 255 . 0 . 0 . 0</tt>
 
 
IGMP: disable
 
 
 
{| style="border-spacing:0;"
| style="border:none;padding:0.097cm;"| [[Image:]]
 
 
 
| style="border:none;padding:0.097cm;"| Il DHCP server del router deve essere disabilitato: per connessioni
 
Wired/Wireless dal router assegnare un IP statico libero della subnet
 
10.0.0.0/8 eccetto il range: 10.0.16.20...10.0.31.254, con gateway: 10.0.0.1, netmask: 255.0.0.0, DNS: 8.8.8.8
 
 
In caso di non collegamento a internet, rivolgersi all'amministratore della
 
rete di istituto, per i nuovi parametri della rete “WAN”


{| class="wikitable"
! scope="col"|Int.
! scope="col"|IP
! scope="col"|Netmask
! scope="col"|Rete (nome)
! scope="col"|IP gateway
|-
|eth0
|10.0.2.2
|255.0.0.0
|10.0.0.0/8 (intern)
|10.0.0.1
|-
|-
| style="border:none;padding:0.097cm;"| In caso di reset del router, l'IP del web login è: 192.168.0.1
|eth1
 
|192.168.0.254
(con DHCP LAN abilitato)
|255.255.255.0
 
|192.168.0.0/24 (subnet00.intern)
|
|}
|}
'''3) INSTALLAZIONE'''


'''L'IP del server è dunque 10.0.2.2 (tjener.intern)''', il quale offre anche i servizi di DNS e DHCP per boot da rete di client attestati sia sulla rete <code>intern</code>, che sulla <code>subnet00.intern</code>, nelle seguenti gamme di indirizzi:


» Al boot di installazione, selezionare con i tasti freccia “'''64 bit install'''”,  quindi premere il tasto '''Tab''' e modificare il seguente parametro: '''desktop=xfce'''
{| class="wikitable"
 
! scope="col"|Rete
 
! scope="col"|DHCP Range
»Non usare per il primo utente userID = password (l'utente non viene creato, sembra un bug)
|-
 
|intern
 
|10.0.16.20...10.0.31.254
» Rispondere SI' alla domanda: ''“Sicuri di usare il partizionamento guidato?”''
|-
 
|subnet00.intern
» Rispondere NO alla domanda: “''Si desidera partecipare all'indagine sui pacchetti?”''
|192.168.0.21...192.168.0.253
 
|-
<tt>Alt+F4: </tt>console syslog (stato download pacchetti, estrazione, configurazione ecc.)
|subnet01.intern
 
|192.168.1.21...192.168.1.253
<tt>Alt+F1:</tt> ritorna all'installer
{| style="border-spacing:0;"
| style="border:none;padding:0.097cm;"| [[Image:]]
| style="border:none;padding:0.097cm;"| I comandi elencati nelle pagine successive vanno eseguiti dall'utente
 
iniziale, quello creato durante l'installazione (oppure da qualsiasi altro
 
utente autorizzato al sudo ).
 
|}
|}
= 4) POST INSTALLAZIONE =
{| style="border-spacing:0;"
| style="border:none;padding:0.097cm;"| [[Image:]]




È disponibile una seconda subnet (<code>subnet01.intern</code>), nel caso il numero di client sia elevato (per assicurare buone prestazioni, un uplink da 1Gbps dovrebbe servire al massimo 12...15 client)


| style="border:none;padding:0.097cm;"| Le procedure di questo paragrafo possono essere eseguitein automatico dallo script postinstall:<tt>$ sh postinstall.sh</tt>
Debian edu, quindi, esce "dalla scatola" con una configurazione di rete, che non si può, almeno facilmente, modificare. Essa è, infatti, "LDAP-centrica" ovvero gran parte della configurazione dei servizi di rete è messa sotto LDAP. Con l'installazione viene fornito uno [[script]] (<code>/usr/share/debian-edu-config/tools/subnet-change</code>) che dovrebbe rendere automatiche queste modifiche, ma ci sono testimonianze discordanti sul suo effettivo "funzionamento" (personalmente non ha funzionato). <br />


<br />[[Image:PorteWANLAN.jpg‎|left|frame|thumb|Un router/AP domestico ha una porta WAN e generalmente quattro porte LAN]]Nel caso la rete della propria azienda non sia una classe A e quindi non abbia una configurazione di rete che collimi con quella di Debian edu, la soluzione più semplice è quella di interporre un router fra questa e il server, basta un router/AP domestico (che abbia una porta WAN, diversamente non è idoneo allo scopo) come il [http://www.tp-link.it/products/details/?model=TL-WR841N TP-LINK TL-WR841N (ND)] (dal costo di 20-30 Euro) oppure un modello cablato come il [http://www.tp-link.it/products/details/?model=TL-R402M TL-R402M] della stessa Casa.


<br clear="all"/>


= Configurazione del router TP-LINK TL-WR841N(ND) =


|}
La configurazione di seguito descritta è applicabile anche ad altri modelli router wired/wireless TP-Link, compresi quelli di altre marche (lo schema di configurazione è sostanzialmente identico per ogni router). Come gran parte dei router "domestici", la configurazione riguarda due "versanti", WAN e LAN:
'''4.1) Sincronizzare la lista dei pacchetti disponibili'''


* WAN, rete aziendale, la quale offre anche l'instradamento verso internet mediante un gateway
* LAN, rete locale del server alla quale è collegata anche l'interfaccia eth0 del server


Sincronizzare la lista locale (server e fat client) dei pacchetti disponibili con quella remota presente sul server degli aggiornamenti; eviterà warning nell'uso di dpkg/apt.
La prima configurazione è accessibile tramite un browser all'indirizzo: '''<nowiki>http://192.168.0.1</nowiki>''' ,inserendo le credenziali di default: admin/admin
<br />


== Configurazione WAN ==
I dati della rete "WAN" devono essere relativi alla configurazione della propria rete aziendale/scolastica ('''quelli riportati sono solo a titolo d'esempio'''). Devono essere quindi forniti dall'amministratore di rete. Per il router in questione, la configurazione è accessibile tramite il menù web: “Network → WAN”


  wget \
<br />
  http://http.debian.net/debian/dists/wheezy/main/binary-amd64/Packages.gz
WAN Connection Type: Static IP (oppure DHCP)
  gunzip Packages.gz
<br />
  sudo dpkg --update-avail Packages
{| class="wikitable"
  mv Packages /opt/ltsp/i386/tmp
! IP Address
  sudo ltsp-chroot dpkg --update-avail /tmp/Packages
| 192.168.1.20
  sudo ltsp-chroot rm /tmp/Packages
|-
 
! Subnet Mask
 
| 255.255.255.0
'''4.2) Aggiornare etckeeper '''
|-
 
! Default gateway
 
| 192.168.1.254
Scaricare una versione più recente della 0.63 installata; eviterà warning nell'uso di dpkg/apt.
|-
 
! Primary DNS
 
| 192.168.1.254
  wget \       
|-
  http://http.debian.net/debian/pool/main/e/etckeeper/etckeeper_1.12_all.deb
! Secondary DNS
  sudo dpkg -i etckeeper*.deb
| 8.8.8.8
  rm etckeeper*.deb
 
'''4.3) Aggiornare os del server'''
 
 
<tt>sudo apt-get update </tt>
 
<tt>sudo apt-get -y upgrade</tt>
 
 
'''4.4) Aggiornare os dei fat client'''
 
 
<tt>sudo ltsp-chroot -m apt-get update </tt>
 
<tt>sudo ltsp-chroot -m apt-get -y upgrade </tt>
 
<tt>sudo ltsp-update-kernels</tt>
 
'''4.5) Installare un nuovo pacchetto sui fat client '''
 
<tt>sudo ltsp-chroot -m apt-get install nomepacchetto</tt>
 
'''4.6) Installare killer,gksu, gitk'''
 
Killer ogni ora individua processi server di utenti che non sono collegati al sistema e li killa.gksu/gksudo sono gli equivalenti gtk di su/sudo. gitk è una GUI per git
 
 
<tt>sudo apt-get install killer gksu gitk</tt>
 
 
'''4.7) Installare localizzazioni/stili'''
 
 
Installare la lingua italiana e stile gtk per la gui di open-office e chromium:
 
<tt>sudo ltsp-chroot -m \</tt>
 
<tt>apt-get install libreoffice-gtk libreoffice-l10n-it chromium-l10n </tt>
 
 
<tt>sudo apt-get install libreoffice-gtk libreoffice-l10n-it \ chromium-l10n </tt>
 
 
'''4.8) Installare strumenti e ambienti di sviluppo '''
 
 
Installazione di g++, eclipse con cdt, geany (ottimo e leggero IDE)
 
 
  sudo ltsp-chroot -m  apt-get install g++ eclipse eclipse-cdt geany
  sudo apt-get install g++ apt-get install eclipse eclipse-cdt geany
 
'''4.9) Installare LAMP'''
 
 
Occorre installare solo MySQL server e client (PHP e Apache già sono preconfigurati):
 
<tt>sudo apt-get install mysql-server mysql-client  sudo ltsp-chroot -m apt-get install mysql-client</tt>
 
 
'''4.10) Impostare xfce di default anche per le sessioni locali '''
 
 
L'installazione da DVD/USB installa anche gnome (pur avendo richiesto xfce); mentre la ''netinstall ''scarica e installa solo xfce
 
 
Per consentire di usare xfce in modalità predefinita (e non Gnome) anche in sessione locale:
 
 
<tt>sudo update-alternatives --config x-session-manager</tt>
 
 
quindi selezionare il numero associato a: <tt>/usr/bin/xfce4-session</tt>
 
 
'''4.11) Creare la struttura di directory per il web degli utenti'''
 
 
Con la creazione di un nuovo utente verranno anche create le directory per lo spazio web personale:
 
  sudo -s
 
<tt>mkdir /etc/skel/public_html</tt> <tt>mkdir /etc/skel/public_html/cgi-bin exit</tt>
 
 
'''5) AMMINISTRAZIONE DI SISTEMA CON GOsa2'''
 
 
'''Menu delle applicazioni > Sistema > Gosa '''
 
 
oppure aprire con un browser: [https://www/gosa https://www/gosa]
 
La login è quella dell'utente creato durante l'installazione
 
 
E' possibile aggiungere altri utenti Gosa aggiungendoli al gruppo gosa-admins
 
 
'''5.1) AMMINISTRAZIONE DEGLI UTENTI'''
 
 
'''5.1.1) Modificare i template “newstudent” e “newteacher”'''
 
Per la creazione di un nuovo utente “studente” e “insegnante”, Gosa eredita le proprietà di due utenti predefiniti, rispettivamente, “newstudent” e “newteacher”.
 
 
E' preferibile che ogni utente venga aggiunto a un solo gruppo primario: students o teachers (di default, invece, il modello utente prevede la creazione di un gruppo primario dello stesso nome dell'utente: tanti utenti, tanti gruppi!).
 
 
Menù Gosa > Users > '''Students''' > newstudent > POSIX
 
[[Image:]]
 
 
'''Cambiare il primary group da '''
 
'''“Newstudent” a “Students”'''
 
 
<div align="right">Analogamente cambiare il primary group in “teachers” per l'utente newteacher, accedendo al menù</div>
 
'''Menù Gosa > Users > Teachers > newteacher > POSIX'''
 
 
{| style="border-spacing:0;"
| style="border:none;padding:0.097cm;"| [[Image:]]
| style="border:none;padding:0.097cm;"| Ogni utente del modello “newteacher” oltre che al gruppo “teachers” viene
 
aggiunto anche al gruppo “students”
 
|}
|}
'''5.1.2) Modificare gli username proposti da Gosa nella creazione di un utente'''
Per la creazione di un nuovo utente, Gosa propone diversi userid formati da lettere del nome e del cognome e dell'utente, ma non consente di definire un userid a piacere (es. nome.cognome). Per aggirare questo limite:
<tt>$ sudo mousepad /etc/gosa/gosa.conf </tt>
cercare il tag: <tt>location name="Debian Edu"</tt>
e modificarlo, nel modo seguente, prima della parentesi di chiusura “<tt>>”</tt> :
...dc=skolelinux,dc=no" '''allowUIDProposalModification = "true"''' >
A destra degli userid proposti da Gosa comparirà un'icona: cliccando su di essa, sarà ora possibile immettere un qualsiasi uid valido.
'''5.1.3) Aggiungere un singolo utente'''
'''<nowiki>Menù Users > [ Actions ] > Create > User</nowiki>'''
Selezionare quindi il template: newstudent o newteacher, rispettivamente se si tratta di uno studente o di un docente.
Scegliere dalla list-box, l'userid proposta. Se si è apportata la modifica al punto precedente, sarà possibile definire una userid diversa da quelle proposte.
{| style="border-spacing:0;"
| style="border:none;padding:0.097cm;"| [[Image:]]
| style="border:none;padding:0.097cm;"| La home dir. dell'utente è:
<tt>/skole/tjener/home0/userid</tt>
L'utente può cambiare la password iniziale
accedendo a Gosa con le sue credenziali
|}
'''5.1.4) Cambio della password'''
L'utente al primo accesso sarà invitato a cambiare la password accedendo a Gosa mediante le proprie credenziali; un utente non amministratore in Gosa visualizza solo le sue proprietà di cui può modificare solo la password.
'''5.1.5) Importare lista di nuovi utenti definita in un foglio elettronico'''
1) Creare un nuovo file con Libreoffice Calc, in cui ogni colonna rappresenti:  uid, cognome, nome, password iniziale. Esempio:
[[Image:]]
{| style="border-spacing:0;"
| style="border:none;padding:0.097cm;"| [[Image:]]
| style="border:none;padding:0.097cm;"| Tutti gli utenti devono essere dello stesso modello: docenti o studenti


== Configurazione LAN ==
I dati della rete "LAN" sono invece mandatori, in quanto rigidamente legati alla configurazione di rete di Debian edu. Il router in questione configura il versante LAN definendo l'indirizzo IP del router e la subnet netmask e quindi, di conseguenza, anche la classe della rete LAN. Si accede alla configurazione LAN tramite il menù: “Network → LAN”


{| class="wikitable"
! IP Address
| 10.0.0.1
|-
|-
| style="border:none;padding:0.097cm;"| La tabella non deve avere intestazione  (il primo utente deve essere definito nella riga 1)
! Subnet Mask
 
| 255.0.0.0
 
Non usare l'apostrofo o il doppio apice
 
es. <tt>D'Avino </tt>va scritto: <tt>D Avino</tt>
 
 
Riempire sempre il campo cognome e nome
 
 
La password deve essere di almeno cinque caratteri
 
 
Se l'importazione trova una userid giù utilizzata, segnala l'errore
 
e non importa le righe successive (quindi controllare prima se l'userid è
 
libero) . Per controllare se la userid mario.rossi è già utilizzata, eseguire da
 
shell:<tt>$ getent passwd | grep “mario.rossi”</tt>
 
|}
|}
2) Salvare il file in formato “Text CSV“ con delimitatore di campo “,” esempio: 3b.csv (ignorare il warning di Calc)


N.B. '''Dopo questa modifica l'indirizzo IP 10.0.0.1 costituirà quindi il nuovo IP del router''' e quindi le successive configurazioni tramite il pannello web saranno possibili aprendo l'indirizzo: '''<nowiki>http://10.0.0.1</nowiki>'''


3) Andare in Gosa > Addons > LDAP Tools > CSV import
== Disabilitazione del server DHCP ==


Il DHCP server del router va disabilitato, solo se si prevede il netboot anche da client collegati alla rete <code>intern</code>. Se , invece, si prevede solo il boot da rete sulle due subnet 00 e 01, tale servizio può rimanere abilitato.<br />
Scegliere il menu "DHCP → DHCP Settings" e attivare l'opzione "Disable"
<br />
Eventuali altre connessioni wired/wireless al router da workstation o notebook (non netboot) dovranno quindi essere configurate mediante un IP statico libero che non appartenga ai range DHCP della rete <code>intern</code> (10.0.16.20...10.0.31.254)
<br />


> Selezionare il file <tt>3b.csv</tt> creato al punto 2 > Selezionare il modello della lista utenti (es. NewStudent)
= Installazione e primo avvio =


<nowiki>> Premere il pulsante [Import] in basso a destra</nowiki>
L'installazione può essere fatta mediante CD/DVD o pendrive USB. Il sito [http://ftp.skolelinux.org/ http://ftp.skolelinux.org/] consente di scaricare diverse immagini ISO, per creare CD, DVD e USB autoavvianti. Fra queste si segnalano due in particolare:


* CD: [http://ftp.skolelinux.org/skolelinux-cd/debian-edu-7.1+edu0-CD.iso debian-edu-7.1+edu0-CD.iso] (655MB): l'installazione viene avviata da un CD, quindi vengono scaricati i pacchetti necessari dalla rete (richiede molte ore usando una connessione ADSL tipica da 7Mbps).


[[Image:]]
* USB: [http://ftp.skolelinux.org/skolelinux-cd/debian-edu-7.1+edu0-USB.iso debian-edu-7.1+edu0-USB.iso] (5,4GB): l'installazione viene avviata da un pendrive USB che contiene gran parte dei pacchetti richiesti. È comunque necessario il collegamento alla rete in quanto viene scaricato qualche aggiornamento o pacchetto aggiuntivo (richiede meno tempo della installazione da CD).


Qualunque sia l'immagine scelta è necessario scaricare anche due file per il successivo controllo integrità con [[MD5]], che andranno salvati sempre nella stessa directory di download dell'ISO:


'''5.1.6) Abilitare un utente al sudo'''
*http://ftp.skolelinux.org/skolelinux-cd/wheezy/MD5SUMS
*http://ftp.skolelinux.org/skolelinux-cd/wheezy/MD5SUMS.asc


== Creazione del supporto di installazione (Linux) ==


'''Menù Administration > Sudo rules'''
Prima della creazione è necessario fare il checksum dell'ISO scaricata. Nella directory dove sono stati salvati il file .ISO e il file MD5SUMS eseguire:


<pre>$ md5sum -c MD5SUMS</pre>


Selezionare dalla lista, la regola del primo utente (quello creato con l'installazione)
In caso di risultato "non riuscito" relativo all'immagine scaricata (ignorare i warning delle altre ISO) occorrerà cancellare la stessa immagine e provvedere a un nuovo download. Per la masterizzazione CD fare riferimento alla [https://www.debian.org/CD/faq/#record-unix FAQ Debian]


Per la creazione del pendrive USB avviabile occorrerà innanzitutto identificare il device name del pendrive (es. <code>/dev/sdb</code>). Portarsi, quindi, nella directory dove è stata salvata la ISO e lanciare i seguenti comandi:
<pre>
# umount /dev/sdb
# cat debian-edu-7.1+edu0-USB.iso > /dev/sdb ; sync
</pre>


Nel riquadro '''“Users and groups”''', click sul pulsante “'''Add from list” '''e selezionare l'utente al quale si vogliono applicare le stesse regole sudo del primo utente (nell'esempio il I utente è: frank)
== Creazione del supporto di installazione (Windows) ==


Il check di integrità dell'immagine scaricata può essere eseguito con l'utility gratuita [http://www.nullriver.com/downloads/Install-winMd5Sum.exe winMD5Sum], mentre la masterizzazione del CD usare uno dei seguenti [https://www.debian.org/CD/faq/#record-windows programmi].
<br />
Mentre uno dei pochi software gratuiti in grado di creare un pendrive USB effettivamente funzionante è PowerISO (per inciso UNetbootbin non va bene). Si consiglia la [http://www.oldapps.com/poweriso.php?old_poweriso=6849 vecchia versione 4.9] che non installa adware. Lanciato il programma, dal menù "Strumenti > Create Bootable USB driver" sarà possibile creare il proprio pendrive avviabile con l'installer Debian edu.
 


[[Image:]]
== Fase di installazione ==


La fase di installazione, anche se fatta da supporto CD/USB, richiede una connessione internet funzionante. In questa fase, anche se non necessario, è comunque preferibile avere già interposto e configurato correttamente il router come descritto sopra, così da testare la funzionalità del router stesso. <br />
La procedura di seguito descritta fa riferimento a una '''CPU server a 64-bit, CPU client a 32-bit e a una singola unità disco''' (ovvero un array di dischi in RAID gestiti da un controller hardware). Per un'eventuale configurazione RAID software fare riferimento alle Guide: [[Installare Debian: configurazione LVM| 1]],[[Installare Debian: configurazione RAID| 2]] e [[Installare Debian con Raid1 software e LVM| 3]]; quindi '''non a questa procedura'''.


'''5.2) AMMINISTRAZIONE DI MACCHINE E DEVICE DI RETE'''


=== Scelta del dispositivo di boot  ===


'''5.2.1) Assegnare a un client sempre lo stesso IP e nome'''
All'avvio del server occorrerà selezionare il boot device, premendo un tasto generalmente indicato sullo schermo all'avvio del sistema (es. F11). Il dispositivo di boot dovrà essere il lettore CD oppure l'USB se si sta usando come supporto di installazione, rispettivamente, un CD-ROM oppure un pendrive. Nel caso il sistema non faccia il boot da USB, consultare il manuale del proprio server su come attivare la funzionalità USB boot.
[[Image:Debianedu_install_boot_device.gif|center|frame|Menù selezione boot device in un server HP]]


=== Scelta di xfce come desktop per i client ===
Al boot di installazione, selezionare con i tasti freccia “'''64 bit install'''”,  quindi premere il tasto '''Tab''' e modificare il seguente parametro: '''desktop=xfce'''. In questo modo i client avranno come desktop predefinito xfce4, che è notoriamente più leggero di GNOME e KDE.
[[Image:debianedu_install_001.jpg|center|thumb|350px|Prima schermata di installazione]]


La sottorete per i client è preconfigurata:''' '''<tt>192.168.0.0/24</tt>
Alcune note su questo step:


* Non modificando il parametro desktop verrà installato '''KDE anche per i client; opzione al momento sconsigliata''' in quanto c'è un [[bug]] non risolto che provoca un elevato tempo di avvio dei client.


I client non richiedono l'autorizzazione in Gosa (a differenza delle workstation): Debian Edu automaticamente assegna a un client che si collega al LTSP server, un IP e un nome.
* È possibile installare LXDE invece di Xfce, specificando come parametro '''desktop=lxde'''. LXDE occupa meno di risorse di Xfce (circa 80MB di RAM in meno) e ha un'interfaccia utente simile a quella classica Windows con menù start. N.B. il parametro 'lxde' sembra non funzionare con l'installazione da USB.


* Le installazioni fatte mediante CD/USB, pur impostando "desktop=xfce", installeranno comunque anche GNOME, che costituirà la sessione predefinita per gli accessi locali (sui client invece ci sarà comunque Xfce). L'installazione fatta mediante ISO netinstall, invece, installa solo il desktop richiesto.


E' consigliabile, però, far assegnare a un client sempre uno stesso IP e uno stesso nome:
* È possibile selezionare anche la modalità "Expert install", ma solo se effettivamente si sa bene cosa selezionare; diversamente ci si può ritrovare, dopo ore di lavoro, con un'installazione incompleta o non funzionante.




1) Far collegare unicamente il client che si desidera configurare  e aspettare la schermata LTSP login
Successivamente l'installazione chiederà l'impostazione della lingua, della tastiera e configurerà la rete per lo scaricamento dei pacchetti.


=== Scelta dei profili da installare ===
Verrà quindi presentato il menù per la scelta dei profili Debian edu da installare. Se non si hanno ulteriori esigenze lasciare le impostazioni predefinite ossia: 1) Server principale 2) Workstation 3) Server thin client
[[Image:debianedu_install_profilodebianedu.png|center|thumb|350px|Selezione dei profili da installare]]


2) Lanciare sul server lo script :
=== Richiesta di partizionamento guidato con LVM ===
Selezionare "Sì" alla successiva richiesta: ''“Sicuri di usare il partizionamento guidato?”''. In questo modo l'installer configurerà automaticamente il disco con LVM secondo la particolare struttura della Debian edu (es. un volume logico verrà assegnato al punto di mount <code>/skole/tjener/home0</code> che rappresenta la directory radice delle home directory degli utenti)
[[Image:debianedu_install_partizionamentoguidato.png|center|thumb|350px|Richiesta di partizionamento guidato]]


=== Monitoraggio dello stato di installazione con la console virtuale ===
Durante l'intero processo di installazione è possibile attivare delle console virtuali in particolare:
* <code>Alt+F4: </code>console syslog (stato download pacchetti, estrazione, configurazione ecc.)
* <code>Alt+F1: </code> ritorna all'installer


<tt>sudo sitesummary2ldapdhcp -a -d</tt>
=== Creazione del primo utente ===
Dopo la richiesta di partecipare all'indagine sull'uso dei pacchetti (va bene lasciare il NO predefinito), si arriverà alla creazione del primo utente, che costituirà l'utente amministratore, abilitato al [[sudo]] e all'uso di GOsa, lo strumento di amministrazione usato da Debian edu. '''Si consiglia di non scegliere la password uguale al nome utente''', non solo per ovvi motivi di sicurezza, ma anche perché è capitato che non venisse creato effettivamente l'utente.
[[Image:debianedu_install_creautente.png|center|thumb|350px|Creazione del primo utente]]


=== Creazione del sistema thin client e conclusione dell'installazione  ===
Successivamente all'installazione del sistema base, si arriva allo stage: "Creazione del sistema thin client", che è quello che dura più in assoluto dell'intero processo di installazione. La barra di avanzamento si ferma al 85%, per qualche ora, dando l'impressione che l'installazione sia in stallo. Non è così, come è possibile controllare aprendo la console virtuale <code>Alt+F4</code>
[[Image:Debianedu_install_creazione_sistema_tc_in_corso.png|center|thumb|350px|Creazione del sistema thin client]]


dare la passwd di LDAP (coincide con quella di root) quando richiesto.
Se tutto è andato per il meglio, si arriverà alla conclusione dell'installazione e al riavvio del sistema:
[[Image:Debianedu_install_completata.png|center|thumb|350px|Termine dell'installazione]]


== Primo avvio ==


In Gosa > System, click sull'icona di “reload list”: apparirà il client collegato, con il nome generico: “<tt>auto-mac-xx:xx:xx:xx:xx:xx</tt>”.
Al boot comparirà il classico Grub menù in stile Debian-edu 7:


[[Image:Debianedu_run_grub.jpg|center|thumb|350px|Boot menu]]


3) Editare il client cambiandogli il nome da “auto-mac-...” secondo un tema a scelta  (es. <tt>tc001, client001, 001, ecc.</tt>)
e quindi la schermata di login, in cui si consiglia di selezionare la sessione Xfce, potrebbe essere avviato di default GNOME (nel post-install verrà definito Xfce come [[Desktop Environment|DE]] predefinito)


[[Image:debian_edu_run_xfce_session.jpg|center|thumb|350px|LDM]]


4) Impostare un IP non utilizzato da <tt>'''.21 '''</tt>a <tt>.'''252'''</tt> e:
Dopo la scelta predefinita del pannello Xfce, il primo desktop in tutta la sua semplicità ed efficienza (provare per credere ;-).  


[[Image:debianedu_run_xfce_desktopavvio.jpg|center|thumb|350px|xfce desktop]]


> abilitare DHCP: <tt>(tjener) DHCP</tt>
= Post-installazione =
Di seguito la sequenza di passi che è stata seguita per la fase di post-installazione.


> abilitare DNS zona: <tt>TJENER/subnet00.intern:</tt>
N.B. I comandi elencati di seguito vanno eseguiti dall'utente iniziale (o da qualsiasi altro utente abilitato a sudo) e nell'ordine in cui sono descritti.


=== Sincronizzare la lista dei pacchetti disponibili ===
Fra versione installata e versione corrente ci potrebbero essere delle differenze nella lista dei pacchetti. Questi comandi si sono resi necessari dopo l'installazione (effettuata con l'immagine USB.iso) al fine di evitare errori e warning nell'uso di [[APT|apt]] e [[dpkg]]:
<pre>
$ wget http://http.debian.net/debian/dists/wheezy/main/binary-amd64/Packages.gz
$ gunzip Packages.gz
$ sudo dpkg --update-avail Packages
$ mv Packages /opt/ltsp/i386/tmp
$ sudo ltsp-chroot dpkg --update-avail /tmp/Packages
$ sudo ltsp-chroot rm /tmp/Packages
</pre>


[[Image:]]
=== Aggiornamenti necessari ===


Il client dell'esempio avrà come nome completo: tc001.subnet00.intern
Alcuni pacchetti vanno necessariamente aggiornati perché correggono malfunzionamenti, senza ricorrere al [[pinning]] o ad aggiornamenti alla versione [[testing]]:
<pre>
$ wget http://http.debian.net/debian/pool/main/e/etckeeper/etckeeper_1.13_all.deb
$ wget http://http.debian.net/debian/pool/main/d/debian-edu-config/debian-edu-config_1.719_all.deb
$ sudo dpkg -i etckeeper_1.13_all.deb
$ sudo dpkg -i debian-edu-config_1.719_all.deb
$ rm etckeeper_1.13_all.deb
$ rm debian-edu-config_1.719_all.deb
</pre>
Modificare la versione dei due pacchetti scaricati in caso di sopravvenuti aggiornamenti. Vedere anche qui<sup>[[#Collegamenti esterni|[1][2]]]</sup>.
=== Aggiornare os del server ===
<pre>
$ sudo apt-get update
$ sudo apt-get -y upgrade
</pre>


=== Aggiornare os dei fat client ===
<pre>
$ sudo ltsp-chroot -m apt-get update
$ sudo ltsp-chroot -m apt-get -y upgrade
$ sudo ltsp-update-kernels
</pre>


=== Installare script e applicazioni utili ===
[[Cron]] ogni ora lancia lo script killer, il quale individua processi server di utenti che non sono collegati al sistema e li killa. <code>gksu/gksudo</code> sono gli equivalenti GTK di <code>su</code> e <code>sudo</code>. <code>epdfview</code> è un leggero PDF viewer. <code>xarchiver</code> un gestore di file compressi.


{| style="border-spacing:0;"
<pre>$ sudo apt-get -y install killer gksu gksudo epdfview xarchiver</pre>
| style="border:none;padding:0.097cm;"| [[Image:]]


=== Installare localizzazioni/stili ===
Installare lo stile GTK per la GUI di <code>Openoffice</code> e la lingua italiana, anche per <code>chromium</code> ed <code>epdfview</code>:
<pre>
$ sudo ltsp-chroot -m apt-get -y install libreoffice-gtk libreoffice-l10n-it chromium-l10n epdfview xarchiver
$ sudo apt-get -y install libreoffice-gtk libreoffice-l10n-it chromium-l10n epdfview xarchiver
</pre>


=== Installare OpenJDK 7 ===
Sul server e per i fat client risulta già installato il JRE 6, che conviene lasciare; anche se si vuole usare il JRE/JDK 7 è bene installare anche il JRE/JDK 6 (richiesto da alcuni programmi) per poi impostare di default le versioni 7. Invece il plugin <code>icedtea</code> versione 6 va tolto perché va in conflitto con l'omologo della 7.
<pre>
$ sudo apt-get -y remove icedtea-6-plugin
$ sudo apt-get -y install default-jdk icedtea-7-plugin openjdk-7-jdk
</pre>


| style="border:none;padding:0.097cm;"| Si consiglia di:
Configurare quindi il JRE predefinito:


#
<pre>$ sudo update-alternatives --config java</pre>
##
### Assegnare l'IP 192.168.0.253 al client cattedra (in uso al docente)
### Identificare i client con la seguente associazione IP ↔ nome:Client n.1: 192.168.0.21 ↔ tc001Client n. 2: 192.168.0.22 ↔ tc002 … ↔ ...Client n. xxx: 192.168.0.'''xxx''' ↔ tc'''yyy '''(yyy=xxx-020)


scegliendo: <code>/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java</code> , e il JDK predefinito:
<pre>$ sudo update-alternatives --config javac</pre>


scegliendo: <code>/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java</code>


|}
'''6) APPENDICE'''


'''Ripetere la stessa installazione per i fat client:'''
<pre>
$ sudo ltsp-chroot -m apt-get -y remove icedtea-6-plugin
$ sudo ltsp-chroot -m apt-get -y install openjdk-7-jdk icedtea-7-plugin
</pre>


'''6.1) Installare ed eseguire epoptes (controllore di aula)'''
Configurare quindi il JRE predefinito sui client:


<pre>$ sudo ltsp-chroot -m update-alternatives --config java</pre>


scegliendo: <code>/usr/lib/jvm/java-7-openjdk-i386/jre/bin/java</code> , e il JDK predefinito:
<pre>$ sudo ltsp-chroot -m update-alternatives --config javac</pre>


{| style="border-spacing:0;"
scegliendo: <code>/usr/lib/jvm/java-7-openjdk-i386/bin/javac</code>
| style="border:none;padding:0.097cm;"| [[Image:]]


=== Installare strumenti di sviluppo per C/C++ ===
Installazione di g++, gcc e geany :
<pre>
$ sudo ltsp-chroot -m  apt-get -y install build-essential geany
$ sudo apt-get -y install build-essential geany
</pre>
=== Installare Infinality font ===


Infinality font migliora notevolmente l'antialiasing dei caratteri, sia sul server che sui client:
<pre>
$ sudo echo "deb http://ppa.launchpad.net/no1wantdthisname/ppa/ubuntu trusty main" | sudo tee /etc/apt/sources.list.d/infinality.list
$ sudo echo "deb-src http://ppa.launchpad.net/no1wantdthisname/ppa/ubuntu trusty main" | sudo tee -a  /etc/apt/sources.list.d/infinality.list
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E985B27B
$ sudo apt-get update
$ sudo apt-get -y install fontconfig-infinality
$ sudo echo 4 | bash /etc/fonts/infinality/infctl.sh setstyle
$ sudo sed -i '712s/.*/USE_STYLE="OSX"/' /etc/profile.d/infinality-settings.sh
$ sudo ltsp-chroot -m apt-get -y install fontconfig-infinality
$ sudo ltsp-chroot -m echo 4 | bash /etc/fonts/infinality/infctl.sh setstyle
$ sudo ltsp-chroot -m sed -i '712s/.*/USE_STYLE="OSX"/' /etc/profile.d/infinality-settings.sh
</pre>


| style="border:none;padding:0.097cm;"| La procedura di installazione è contenuta nello script postinstall:<tt>$ sh postinstall.sh</tt>
=== Installare LAMP ===
 
Occorre installare solo MySQL server e client (PHP e già installato e Apache già preconfigurato per lo sviluppo PHP/mysqli). Al termine dell'installazione di <code>mysql-server</code> verrà richiesta la creazione di una password per l'utente [[root]] di mysql.
 
<pre>
 
$ sudo ltsp-chroot -m apt-get -y install mysql-client
 
$ sudo apt-get -y install mysql-server mysql-client
|}
</pre>
Installazione:
 
'''1) '''Lanciare da utente sudo:
 
 
  sudo apt-get install epoptes
  sudo ltsp-chroot -m apt-get install epoptes-client
 
<tt>sudo ltsp-chroot -m epoptes-client -c </tt>
 
 
'''2)''' Effettuare la seguente modifica per la corretta gestione dei gruppi LDAP (nella versione 0.5.6):
 
 
  sudo update-rc.d -f epoptes remove
  sudo update-rc.d epoptes default 30 70
 
 
'''3)''' Aggiungere il gruppo teachers al file di default epoptes:
 
 
  echo 'SOCKET_GROUP=teachers' | sudo tee --append /etc/default/epoptes
 
 
4) Riavviare il servizio:
 
 
<tt>sudo service epoptes restart</tt>
 
 
Eseguire il controllore dal Menù delle applicazioni > Internet > Epoptesoppure da shell (senza permessi di root) con:
 
 
    epoptes
 
 
{| style="border-spacing:0;"
| style="border:none;padding:0.097cm;"| [[Image:]][[Image:]]
 
 
 
| style="border:none;padding:0.097cm;"| Solo gli utenti del gruppo <tt>teachers</tt> sono autorizzati ad avviare epoptes
 
e quindi controllare in remoto i client.
 
 
Il controllore può essere invocato sul server o su thin clientma non su un fat client.
 
 
Per operare su tutti i client (es. inviare messaggio a tutti i client), non
 
selezionare nessuna miniatura desktop oppure premere <tt>Ctrl+A</tt>
 
|}
'''6.2) Utilizzare la flash del thin come swap locale !!! da testare !!!'''
 
 
L'utilizzo di uno swap locale, piuttosto che di rete, potrebbe migliorare le prestazioni.
 
 
1) Partizionare l'intera memoria flash di ogni client con id 82 (swap linux).  (si può usare system-rescue-cd usb bootable e fdisk o gparted)
 
 
2) Aprire con vi il file lts.conf:
 
 
<tt>sudo /opt/ltsp/i386/etc/lts.conf </tt>
 
 
e modificare le impostazioni di default con due direttive:
 
 
<tt><nowiki>[Default]</nowiki></tt>
 
        USE_LOCAL_SWAP=Y
        NBD_SWAP=N
 
 
 
{| style="border-spacing:0;"
| style="border:none;padding:0.097cm;"| [[Image:]]
 
 
 
| style="border:none;padding:0.097cm;"| Sui thin client HP la selezione del boot device dovrebbe essere fatta
 
premendo '''F10''' all'accensione (da verificare!!!)
 
 
 
 
|}
'''6.3) Configurare uno o più client come thin e non come fat'''


=== Impostare Xfce di default anche per le sessioni locali ===
L'installazione da CD/USB installa anche GNOME (pur avendo richiesto Xfce); mentre la [[netinst|netinstall]] scarica e installa solo Xfce. Per consentire di usare Xfce in modalità predefinita (e non GNOME) anche in sessione locale:
<pre>$ sudo update-alternatives --config x-session-manager</pre>


La modalità di funzionamento fat/thin di LTSP Debian edu (sulla subnet 192.168.0.0/24) è predefinita: se il client ha una RAM > 320MB la modalità è la fat , viceversa è thin.
quindi selezionare il numero associato a: <code>/usr/bin/xfce4-session</code> .


=== Installare un controllore di aula ===


Se si vuole forzare uno o più client a lavorare come thin, indipendentemente dalla quantità di RAM, occorre modificare il file lts.conf:
Un controllore di aula è un utile strumento che consente all'insegnante di interagire con le sessioni client. [http://www.epoptes.org/ Epoptes] è un ottimo programma, facile da installare e con una GUI intuitiva:
<pre>
$ sudo apt-get install epoptes
$ sudo ltsp-chroot -m apt-get install epoptes-client
$ sudo ltsp-chroot -m epoptes-client -c
$ sudo update-rc.d -f epoptes remove
$ sudo update-rc.d epoptes default 30 70
$ echo 'SOCKET_GROUP=teachers' | sudo tee --append /etc/default/epoptes
$ sudo service epoptes restart
</pre>


Eseguire il controllore dal Menù delle applicazioni > Internet > Epoptes oppure da [[shell]] (senza permessi di root) con:


<tt>sudo vi /opt/ltsp/i386/etc/lts.conf</tt>
<pre>$ epoptes</pre>


Per operare su tutti i client (es. inviare messaggio a tutti i client), non  selezionare nessuna miniatura desktop oppure premere <code>Ctrl+A</code> .


Supponendo che si voglia modificare un solo client, il cui MAC è: <tt>08:00:27:b8:96:68</tt>, si''' scriverà:'''
'''N.B.'''  
# Solo gli utenti del gruppo "teachers" sono autorizzati ad avviare <code>epoptes</code> e quindi controllare in remoto i client.
# Il controllore può essere invocato sul server o su thin client ma non su un fat client.


=== Creare la struttura di directory per il web degli utenti ===
Con la creazione di un nuovo utente verranno anche create le directory per lo spazio web personale. Questo step può essere saltato se nel laboratorio non si fa sviluppo di pagine web e CGI
<pre>
$ sudo mkdir /etc/skel/public_html
$ sudo mkdir /etc/skel/public_html/cgi-bin
</pre>


<tt>'''<nowiki>[08:00:27:b8:96:68] </nowiki>'''</tt>
=== Abilitare home page utenti (web e CGI) ===


<tt>'''LTSP_FATCLIENT=false '''</tt>
Le directory <code>~/public_html</code> e <code>~/public_html/cgi-bin</code> automaticamente create per ogni nuovo utente, hanno già correttamente impostati i permessi (755).


Per il '''solo utente iniziale''' (creato durante l'installazione), occorrerà creare le directory <code>~/public_html</code> e <code>~/public_html/cgi-bin</code> e impostare i permessi:
<pre>
$ cd
$ mkdir public_html
$ chmod 755 public_html
$ mkdir public_html/cgi-bin
$ chmod 755 public_html/cgi-bin
$ chmod o+x ~
</pre>


Passare quindi a root:


{| style="border-spacing:0;"
<pre>$ su -</pre>
| style="border:none;padding:0.097cm;"| [[Image:]]


Ed eseguire:
<pre>
# cd /etc/apache2/mods-enabled/
# cp userdir.conf userdir.orig.conf
# nano userdir.conf
</pre>


Nell'editor sostituire la riga:


| style="border:none;padding:0.097cm;"| Il client utilizzato dal docente/amministratore è consigliabile
<pre><Directory /home/*/public_html/></pre>


che sia impostato come thin (deve operare sul server)
con:


<pre><Directory /skole/tjener/home*/*/public_html/></pre>


Inoltre aggiungere in coda allo stesso file file la seguente direttiva:
<pre>
<Directory /skole/tjener/home*/*/public_html/cgi-bin/>
    Options ExecCGI
    SetHandler cgi-script
  </Directory>
</pre>


Riavviare quindi il [[demone]] httpd:


|}
<pre># service apache2 restart</pre>
'''6.4) Abilitare la sintassi evidenziata in vi'''


=== Test spazio web e CGI utenti ===


Aprire il file rc globale di vi:
'''Test web'''


<tt>sudo vi /etc/vim/vimrc</tt>
Creare una pagina indice di prova:
<pre>
$ cd ~/public_html/
$ nano index.html
</pre>
<pre>
<HTML>
<BODY>
  Prova web utente
  </BODY>
</HTML>
</pre>


Aprire la pagina sul sito:


e inserire come prima riga:
<pre>http://www/~userid/index.html</pre>




<tt>syntax on</tt>
'''Test CGI'''


 
Creare un nuovo file di prova <code>hello.c</code> :
Ripetere la stessa modifica per il vimrc dei client fat:
<pre>
 
$ cd ~/public_html/cgi-bin/
 
$ nano hello.c
<tt>sudo vi /opt/ltsp/i386/etc/vim/vimrc</tt>
</pre>
 
<pre>
 
#include <stdio.h>
'''6.5) Abilitare il web dell'home utente'''
 
 
'''Il modulo userdir è gia abilitato; occorrerà solo configurarlo.'''
 
 
'''1) '''Da server eseguire:  
 
 
<tt>sudo -s </tt>
 
<tt>cd /etc/apache2/mods-enabled/ cp userdir.conf userdir.orig.conf</tt>
 
<tt>vi userdir.conf </tt>
 
 
e sostituire la riga:
 
 
<tt><nowiki><Directory /home/*/public_html/></nowiki></tt>
 
 
con
 
 
<tt><nowiki><Directory /skole/tjener/home*/*/public_html/></nowiki></tt>
 
 
 
{| style="border-spacing:0;"
| style="border:none;padding:0.097cm;"| [[Image:]]
| style="border:none;padding:0.097cm;"| Anche senza questa modifica, il server web sembra gestire
 
correttamente le pagine nella dir. <tt>public_html</tt>
 
|}
'''2) '''Riavviare il demone http:
 
 
<tt>service restart apache2</tt>
 
<tt>exit</tt>
 
'''3) Far creare a ciascun utente, collegato da fat client, la seguente directory nella propria home e '''
 
'''impostarne i corretti permessi:'''
 
 
    '''$ cd'''
    '''~$ mkdir public_html '''
    '''~$ chmod 755 public_html'''
 
'''La pagina iniziale predefinita è <tt>index.html</tt>, che sarà raggiungibile (nell'ambito del dominio <tt>.intern</tt>) all'URL:'''
 
 
    '''http://www/~userid'''
 
 
oppure
 
 
    [http://10.0.2.2/~userid http://10.0.2.2/~userid]
   
   
int main(void)
{
    printf("Content-Type:text/html\n\n");
    printf("Hello World!");
    return 0;
}
</pre>


Compilarlo:


{| style="border-spacing:0;"
<pre>$ gcc -o hello.cgi hello.c</pre>
| style="border:none;padding:0.097cm;"| [[Image:]]
| style="border:none;padding:0.097cm;"| Se si vuole rendere visibile lo spazio web del primo utente (creato durante l'installazione) occorrerà un <tt>$ chmod o+x </tt>della sua home directory
 
|}
'''6.6) Abilitare i CGI nell'home utente'''
 
 
Il modulo CGI è già abilitato; occorrerà solo configurarlo anche per le home dir.
 
 
'''1) '''Da server eseguire:
 
 
<tt>sudo vi /etc/apache2/mods-enabled/userdir.conf </tt>
 
 
e aggiungere in coda la seguente direttiva:
 


<tt><nowiki><Directory /skole/tjener/home*/*/public_html/cgi-bin/> </nowiki></tt>
Eseguirlo sul server web:


<tt>Options ExecCGI </tt>
<pre>http://www/~userid/cgi-bin/hello.cgi</pre>


<tt>SetHandler cgi-script </tt>
= Amministrazione di sistema =


<tt><nowiki></Directory> </nowiki></tt>
Gran parte dei task amministrativi, vengono svolti in Debian edu tramite lo strumento Gosa che facilita le operazioni grazie a un'interfaccia utente semplice e intuitiva. Gosa è accessibile dal Menu delle applicazioni > Sistema > Gosa oppure aprendo con un browser l'URL: '''<nowiki>https://www/gosa</nowiki>'''


La login è quella dell'utente creato durante l'installazione. È possibile aggiungere altri utenti Gosa aggiungendoli al gruppo gosa-admins .


Riavviare il demone httpd:
== Modificare i modelli "newteacher" e "newstudent" ==


Per la creazione di un nuovo utente “studente” e “insegnante”, Gosa eredita le proprietà di due utenti predefiniti, rispettivamente, “newstudent” e “newteacher”. È preferibile che ogni utente venga aggiunto a un solo gruppo primario: students o teachers (di default, invece, il modello utente prevede la creazione di un gruppo primario dello stesso nome dell'utente: tanti utenti, tanti gruppi).


<tt>sudo service restart apache2</tt>
Gosa > '''Users > Students > newstudent > POSIX''' e cambiare il primary group da  “Newstudent” a “Students” :


'''2)''' Far creare all'utente collegato dal fat client, la propria directory cgi-bin e settarne i permessi:
[[File:Debianedu_gosa_modificatemplate.png|center]]


Analogamente cambiare il primary group in “teachers” per l'utente newteacher, accedendo al menù :


<tt>$ cd</tt>
Gosa >''' Users > Teachers > newteacher > POSIX'''


<tt>~$ cd public_html</tt>
N.B. Ogni utente del modello “newteacher” oltre che al gruppo “teachers” viene aggiunto anche al gruppo “students”.


<tt>~$ mkdir cgi-bin$ chmod 755 cgi-bin</tt>
== Scegliere un userid diverso da quelli proposti ==


Per la creazione di un nuovo utente, Gosa propone un limitato numero di userid formati da lettere del nome e del cognome e dell'utente, ma non consente di definire un userid a piacere (es. "nome.cognome"). Per aggirare questo limite:


'''3)''' Creare un nuovo file di prova <tt>hello.c </tt>nella dir. cgi-bin:
<pre># nano /etc/gosa/gosa.conf </pre>


cercare il tag: '''<location name="Debian Edu">''' e modificarlo, nel modo seguente, prima della parentesi di chiusura “>” :


<tt><nowiki>#include <stdio.h> </nowiki></tt>
<pre>...dc=skolelinux,dc=no" '''allowUIDProposalModification = "true"''' ></pre>


A destra degli userid proposti da Gosa comparirà un'icona: cliccando su di essa, sarà ora possibile immettere un qualsiasi [[UID]] valido.


<tt>int main(void) </tt>
== Creare un nuovo utente ==


<tt>{ </tt>
Gosa > '''Menù Users > [ Actions ] > Create > User'''


<tt>printf("Content-Type:text/html\n\n"); </tt>
Selezionare quindi il template: newstudent o newteacher, rispettivamente se si tratta di uno studente o di un docente. Scegliere dalla list-box, l'userid proposto. Se si è apportata la modifica al punto precedente, sarà possibile definire un userid diverso da quello proposto.


<tt>printf("Hello World!"); </tt>
N.B. La home directory dell'utente creato è: <code>/skole/tjener/home0/userid</code> .


<tt>return 0; </tt>
Si consiglia di creare due utenti iniziali: 'studente' e 'docente', che serviranno per i test, ma anche per quota.


<tt>} </tt>
== Importare una lista di nuovi utenti (es. classe) ==


È possibile importare massivamente un elenco di utenti definito in un foglio di calcolo.


'''4) '''Compilare il cgi:
[[File:debianedu_gosa_importadacalc.png | center]]


# Creare un nuovo file con Libreoffice Calc, in cui ogni colonna rappresenti: userid, cognome, nome, password iniziale, come nella figura di esempio sopra riportata. Occorre prestare attenzione ad alcune regole:
#* Tutti gli utenti devono essere dello stesso modello: (es o tutti 'NewTeacher' o tutti 'NewStudent')
#* La tabella non deve avere intestazione (il primo utente deve essere definito nella riga 1)
#* Non usare l'apostrofo o il doppio apice, es. Dell'Aglio va scritto: Dell Aglio
#* Riempire sempre il campo cognome e nome (anche con "cognome" e "nome")
#* La password deve essere di almeno cinque caratteri
#* Se l'importazione trova un userid già utilizzato interrompe l'importazione anche se gli utenti successivi hanno userid valido. Quindi occorre controllare prima se l'userid è libero. Per controllare se l'userid "mrossi" è già utilizzato, eseguire da shell:
#:  <code>$ getent passwd | grep mrossi</code>
# Salvare il file in formato "Text CSV" con delimitatore di campo "," . Esempio: <code>3B.CSV</code> (ignorare il warning di Calc)
# Andare in Gosa > Addons > LDAP Tools > CSV import
#* Selezionare il file creato al punto 2 (es. <code>3B.CSV</code> )
#* Selezionare il modello della lista utenti (es. NewStudent)
#* Premere il pulsante [Import] in basso a destra
[[File:debianedu_gosa_csvimport.png|center]]


<tt>$ gcc -o hello.cgi hello.c</tt>
== Cambiare la password utente ==
L'utente al primo accesso sarà invitato a cambiare la password accedendo a Gosa mediante le proprie credenziali; un utente - non amministratore - in Gosa visualizza solo le sue proprietà, di cui può modificare solo la password.


== Abilitare un utente al sudo ==


'''5) '''Eseguire il cgi sul server web:
Gosa > '''Menù Administration > Sudo rules'''


Selezionare dalla lista, la regola del primo utente (quello creato con l'installazione). Nel riquadro “Users and groups”, click sul pulsante “Add from list” e selezionare l'utente al quale si vogliono applicare le stesse regole sudo del primo utente (nell'esempio il I utente è: frank).


<tt>http://www/~userid/cgi-bin/hello.cgi</tt>
[[File:Debianedu_gosa_sudo.png|center]]


== Assegnare a un client IP e nome univoci ==


'''6.7) Non consentire ai fat client di accedere a internet'''
I client non richiedono l'autorizzazione in Gosa (a differenza delle workstation): Debian Edu automaticamente assegna a un client che si collega al LTSP server, un IP e un nome. È consigliabile, però, far assegnare a un client sempre uno stesso IP e uno stesso nome:
* Far collegare unicamente il client che si desidera configurare e aspettare la schermata LTSP login
* Lanciare sul server lo script : <pre># sitesummary2ldapdhcp -a -d </pre> dare la password di LDAP (coincide con quella di root) quando richiesto.
* In Gosa > System, click sull'icona di "reload list": apparirà il client collegato, con il nome generico: <code>auto-mac-xx:xx:xx:xx:xx:xx</code>. Editare il client cambiandogli il nome da <code>auto-mac-...</code> secondo un tema a scelta (es. tc001, client001, ws001, ecc.)
* Impostare un IP non utilizzato da <code>192.168.x.'''21'''</code>  a   <code>192.168.x.'''253'''</code>
* Abilitare DHCP: <code>(tjener) DHCP</code>
* Abilitare DNS zona: <code>TJENER/subnet00.intern</code>


Esempio:


E' possibile, all'occorrenza, disabilitare temporaneamente l'accesso internet a tutti i fat client della subnet 192.168.0.0/24 :
[[File:Debianedu gosa modificahost.png|center]]


== Forzare un client in modalità thin ==


<tt>sudo vi /etc/init.d/enable-nat</tt>
La modalità di funzionamento fat/thin di LTSP Debian edu (sulla subnet 192.168.0.0/24) è predefinita: se il client ha una RAM > 320MB la modalità è la fat , viceversa è thin. Se si vuole forzare uno o più client a lavorare come thin, indipendentemente dalla quantità di RAM, occorre modificare il file lts.conf:


<pre># nano /opt/ltsp/i386/etc/lts.conf</pre>


Modificare il corpo della funzione<tt> is_enabled()</tt> come segue:
Supponendo che si voglia modificare un solo client, il cui MAC è: <code>08:00:27:b8:96:68</code>, si scriverà:
<pre>
[08:00:27:b8:96:68]
    LTSP_FATCLIENT=false
</pre>


'''N.B'''. Il client utilizzato dal docente/amministratore è consigliabile che sia impostato come thin (deve operare sul server).


<tt>is_enabled() { </tt>
== Bloccare l'accesso a internet dai fat client ==


<tt>if (do_status | grep -q "$NETWORK_TO_NAT") '''|| '''</tt>
È possibile, all'occorrenza, disabilitare temporaneamente l'accesso internet a tutti i fat client della subnet 192.168.0.0/24 :


<tt>'''(do_status | grep -q "thinclientnet/24")''' <nowiki>; then </nowiki></tt>
<pre># nano /etc/init.d/enable-nat</pre>
 
<tt> true </tt>
 
<tt>else </tt>
 
<tt> false </tt>
 
<tt>fi </tt>
 
<tt>}</tt>


Modificare il corpo della funzione <code>is_enabled()</code> come segue (in grassetto le aggiunte):
<pre>
is_enabled() {
  if (do_status | grep -q "$NETWORK_TO_NAT") '''||  (do_status | grep -q "thinclientnet/24'''") ; then
      true
  else
      false
  fi
}
</pre>


Per disabilitare l'accesso internet ai fat client:
Per disabilitare l'accesso internet ai fat client:


 
<pre># service enable-nat stop</pre>
<tt>sudo service enable-nat stop</tt>
 


Per riabilitarlo:
Per riabilitarlo:


<pre># service enable-nat start</pre>


<tt>sudo service enable-nat start</tt>
== Aprire una sessione di root nel chroot /opt/ltsp/i386 ==
<pre>
$ su -p
# ltsp-chroot -m
</pre>


<code>Ctrl+D</code> oppure <code>exit</code> per ritornare al sistema.


'''6.8) Copiare un file su tutte le home degli studenti'''
== Aggiornare OS del server ==
<pre>
$ sudo apt-get update
$ sudo apt-get -y upgrade
</pre>


== Aggiornare os dei fat client ==
<pre>
$ sudo ltsp-chroot -m apt-get update
$ sudo ltsp-chroot -m apt-get -y upgrade
$ sudo ltsp-update-kernels
</pre>


Il seguente script (<tt>cptostud.sh</tt>), lanciato con sudo, copia un file in tutte le home directory dei soli utenti '''che hanno gruppo primario “Students” '''e ne assegna la proprietà. Il file se è già presente nella directory destinazione viene sovrascritto. La variabile $DIR specifica un'eventuale sottodirectory dell'home utente (es. “Scaricati”). Lasciandola vuota ( $DIR=”” ) il file viene copiato nella home dir. radice: /skole/tjener/home0/uid
== Impostare una quota disco per gli studenti ==


È consigliabile limitare lo spazio disco per tutti gli utenti del gruppo "students", impostando quindi una quota sui blocchi. Fare riferimento anche alla [[Attivare le quote su un filesystem | Guida su quota]].


<tt><nowiki>#!/bin/bash </nowiki></tt>
'''N.B. Eseguire questa procedura quando è collegato al sistema solo l'utente root'''


Installare <code>quota</code> e <code>quotatool</code>:


<tt>DIR="Scaricati" </tt>
<pre># apt-get install quota quotatool</pre>


<tt>FILE="/skole/tjener/home0/frank/ex01.c" </tt>
Aprire il file <code>fstab</code>:


<pre># nano /etc/fstab</pre>


<tt>UHOME="/skole/tjener/home0" </tt>
Individuare la riga:


<tt>GRP_NAME="students" </tt>
<pre>/dev/mapper/vg_system-skole+tjener+home0 /skole/tjener/home0 ext4 nosuid 0 2</pre>


<tt>GRP_ID=$(getent group $GRP_NAME | cut -d: -f3) </tt>
e accodare a “nosuid” (senza nessun spazio) la stringa:


<tt>FILENAME=$(basename $FILE) </tt>
<pre>,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0</pre>  


prestando attenzione a mettere tutto su una sola riga, che deve quindi apparire come (in grassetto la stringa aggiunta):


_USERS="$(getent passwd | awk -v X=$GRP_ID -F ':' '{if ( $4 == X ) print $1 }')"
<pre>/dev/mapper/vg_system-skole+tjener+home0 /skole/tjener/home0 ext4 nosuid''',usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0''' 0 2</pre>


Quindi dare in sequenza i comandi (ignorare eventuali warning):
<pre>
# quotaoff -avug
# touch /skole/tjener/home0/aquota.user
# touch /skole/tjener/home0/aquota.group
# chmod 600 /skole/tjener/home0/aquota.user
# chmod 600 /skole/tjener/home0/aquota.group
# mount -o remount /skole/tjener/home0
# quotacheck -avugcmf
# quotaon -avug
</pre>


<tt>for u in $_USERS </tt>
Applicare i limiti di quota blocchi (es. 80MB/100MB) a un utente studente qualsiasi (es. mrossi):


<tt>do </tt>
<pre># quotatool -v -u mrossi -b -q 80M -l 100M /skole/tjener/home0/</pre>


<tt>_dir="${UHOME}/${u}/${DIR}" </tt>
E il periodo di grazia (es. 7 giorni):


<tt><nowiki>if [ -d "$_dir" ] </nowiki></tt>
<pre># quotatool -u -b -t "1 week" /skole/tjener/home0/</pre>


<tt>then </tt>
Assicurarsi che all'utente mrossi sia stata applicata la giusta quota, dal report delle quote:


<tt>yes | /bin/cp -v "$FILE" "$_dir" </tt>
<pre># repquota -agus</pre>


<tt>chown -v $(id -un $u):$GRP_NAME "${UHOME}/${u}/${DIR}${FILENAME}" </tt>
Copiare le impostazioni di quota di mrossi a tutti gli utenti del gruppo studenti (GID=10004):


<tt>fi </tt>
<pre># edquota -p mrossi `getent passwd | awk -v X=10004 -F ':' '{if ( $4 == X ) print $1 }'`</pre>


<tt>done</tt>== Indice generale ==
Per disattivare tutte le quote utente/gruppo:
'''1) CONFIGURAZIONE BIOS E BOOT USB DELL' HP DL380 G71'''


'''1.1) Accedere alla configurazione del RAID1'''
<pre># quotaoff -avug</pre>


'''1.2) Accedere al RBSU (BIOS)1'''
N.B. Nell'assegnazione dei limiti, tenere conto che lo spazio home occupato da un utente appena creato su Skolelinux è di circa 55MB.


'''1.3) Abilitare boot da USB 1'''
== Installare un pacchetto per i fat client ==
 
'''2) CONFIGURAZIONE ROUTER TP-LINK TL-WR841N 2'''
<pre>$ sudo ltsp-chroot -m apt-get install nomepacchetto</pre>
 
'''3) INSTALLAZIONE2'''
 
[#__RefHeading__3216_855006261 4) POST INSTALLAZIONE3]
 
'''4.1) Sincronizzare la lista dei pacchetti disponibili3'''
 
'''4.2) Aggiornare etckeeper 3'''
 
'''4.3) Aggiornare os del server3'''
 
'''4.4) Aggiornare os dei fat client3'''
 
'''4.5) Installare un nuovo pacchetto sui fat client 4'''
 
'''4.6) Installare killer,gksu, gitk4'''


'''4.7) Installare localizzazioni/stili 4'''
== Installare un pacchetto sul server (e quindi anche per i thin client) ==


'''4.8) Installare strumenti e ambienti di sviluppo 4'''
<pre># apt-get install nomepacchetto</pre>


'''4.9) Installare LAMP4'''
== Gestire in remoto il server con un tunnel reverse SSH ==


'''4.10) Impostare xfce di default anche per le sessioni locali 4'''
Un tunnel SSH inverso consente di avere una shell sul server Debian edu (senza conoscerne la password), anche se esso si trova dietro un NAT, come un firewall o un modem/router ADSL. Per fare questo, occorre avere un accesso a un server [[SSH]] remoto, visibile da internet, che magari si può implementare sulla propria Linux box mediante <code>openssh</code>, il router domestico e un DDNS.


'''4.11) Creare la struttura di directory per il web degli utenti5'''
Ogni qualvolta si accederà al server SSH, automaticamente, si avrà un re-indirizzamento alla shell sul server Debian Edu.


'''5) AMMINISTRAZIONE DI SISTEMA CON GOsa25'''
Sul server Debian-edu verrà quindi installato un servizio backdoor, il cui script <code>init.d</code> è preso da questo sito: [https://wiki.debian.org/DebianEdu/FAQ/Maintenance/OpenSSHBackDoor/script OpenSSHBackDoor Debian edu], il quale andrà scritto su un file <code>open-backdoor</code>, copiato e chmoddato nel modo seguente:
<pre>
# cp open-backdoor /etc/init.d
# chown root.root /etc/init.d/open-backdoor
# chmod 755 /etc/init.d/open-backdoor
# update-rc.d open-backdoor defaults
</pre>


'''5.1) AMMINISTRAZIONE DEGLI UTENTI5'''
Quindi creare il file di configurazione:


'''5.1.1) Modificare i template “newstudent” e “newteacher”5'''
<pre># nano /etc/default/open-backdoor</pre>


'''5.1.2) Modificare gli username proposti da Gosa nella creazione di un utente6'''
In cui si andranno a definire i valori di tre variabili:
<pre>
RPORT  porta del server SSH remoto (compresa nel range: 1025...32767)
RHOST  nome/IP pubblico del server SSH remoto
RUSER  userid del server SSH remoto
</pre>


'''5.1.3) Aggiungere un singolo utente6'''
Esempio di file  <code>/etc/default/open-backdoor</code> :
<pre>
RPORT=12345
RHOST=myserver.ddns.net
RUSER=root
</pre>


'''5.1.4) Cambio della password7'''
Riavviando il server oppure mediante il comando:


'''5.1.5) Importare lista di nuovi utenti definita in un foglio elettronico7'''
<pre># service open-backdoor start</pre>


'''5.1.6) Abilitare un utente al sudo8'''
Verrà avviata la backdoor.  


'''5.2) AMMINISTRAZIONE DI MACCHINE E DEVICE DI RETE8'''
Mediante ssh da qualsiasi computer:


'''5.2.1) Assegnare a un client sempre lo stesso IP e nome8'''
<pre>$ ssh ­p 12345 ­l root myserver.ddns.net</pre>


'''6) APPENDICE10'''
avremo così una shell di root sul server Debian-edu.


'''6.1) Installare ed eseguire epoptes (controllore di aula)10'''
= Conclusioni ed esperienza d'uso =


'''6.2) Utilizzare la flash del thin come swap locale !!! da testare !!!11'''
Debian edu/Skolelinux consente a chiunque di ottenere, pronta all'uso, una sofisticata distribuzione Linux con funzionalità avanzate.


'''6.3) Configurare uno o più client come thin e non come fat11'''
Dopo alcuni mesi di funzionamento, le riflessioni sull'esperienza d'uso sono state:


'''6.4) Abilitare la sintassi evidenziata in vi12'''
# Stabilità
# Sensibilmente lenta nel caricamento dell'OS e nel funzionamento "thin" rispetto Ubuntu 12.04LTS (forse perché Skole usa NFS invece di NBD)  
# Comodità nell'amministrazione: 1) GOsa semplifica i compiti 2) non occorre aggiornare alcuna immagine dopo le modifiche sull'OS "fat"
# Poco amata (forse!) dagli studenti, per via dell'interfaccia grafica minimale e la qualità dei font, sinceramente inferiore rispetto a Ubuntu 12.04LTS.


'''6.5) Abilitare il web dell'home utente12'''
Francesco Parisi, 2014/7


'''6.6) Abilitare i CGI nell'home utente13'''
= Collegamenti esterni =
[1] [http://debian.spnet.net/debian/pool/main/e/etckeeper/ Pacchetti di ''etckeeper'' in Debian main]<br/>
[2] [http://debian.spnet.net/debian/pool/main/d/debian-edu-config/ Pacchetti di ''debian-edu-config'' in Debian main]


'''6.7) Non consentire ai fat client di accedere a internet14'''
{{Autori
|Autore=[[Utente:Franziski|Franziski]]
}}


'''6.8) Copiare un file su tutte le home degli studenti15'''
[[Categoria:Debian Pure Blends]]

Versione attuale delle 10:07, 16 dic 2015

In questa guida verranno descritte le sequenze di installazione e configurazione di Debian edu 7 (Wheezy), che sono state seguite per la creazione di un ambiente LTSP in un laboratorio di informatica scolastico (ITIS "Ettore Majorana" di Somma Vesuviana, Napoli) principalmente dedicato allo sviluppo di pagine web (HTML,PHP/MySQL,CGI C) e applicazioni in C/C++/Java.

Debian-swirl.png Versioni Compatibili

Tutte le versioni supportate di Debian

Prerequisiti

Topologia della soluzione "combined server" con router WAN/LAN.

La tipologia di installazione più comune di una Debian Edu 7 è quella "combined server", che installa, su un'unica macchina, due profili server:

  1. Server LTSP/thinclient, che gestisce il netboot di thin client e fat client
  2. Server "main", che fornisce il desktop per i client e i servizi di rete necessari: LDAP, web, DNS, SQL ecc.


Questa soluzione richiede che sul server siano presenti almeno due interfacce di rete:

  • eth0: collegata alla rete backbone (e quindi a internet mediante un gateway della stessa rete)
  • eth1: collegata a una sottorete dedicata esclusivamente al netboot di thin/fat-client


La configurazione predefinita di queste due interfacce è la seguente:

Int. IP Netmask Rete (nome) IP gateway
eth0 10.0.2.2 255.0.0.0 10.0.0.0/8 (intern) 10.0.0.1
eth1 192.168.0.254 255.255.255.0 192.168.0.0/24 (subnet00.intern)

L'IP del server è dunque 10.0.2.2 (tjener.intern), il quale offre anche i servizi di DNS e DHCP per boot da rete di client attestati sia sulla rete intern, che sulla subnet00.intern, nelle seguenti gamme di indirizzi:

Rete DHCP Range
intern 10.0.16.20...10.0.31.254
subnet00.intern 192.168.0.21...192.168.0.253
subnet01.intern 192.168.1.21...192.168.1.253


È disponibile una seconda subnet (subnet01.intern), nel caso il numero di client sia elevato (per assicurare buone prestazioni, un uplink da 1Gbps dovrebbe servire al massimo 12...15 client)

Debian edu, quindi, esce "dalla scatola" con una configurazione di rete, che non si può, almeno facilmente, modificare. Essa è, infatti, "LDAP-centrica" ovvero gran parte della configurazione dei servizi di rete è messa sotto LDAP. Con l'installazione viene fornito uno script (/usr/share/debian-edu-config/tools/subnet-change) che dovrebbe rendere automatiche queste modifiche, ma ci sono testimonianze discordanti sul suo effettivo "funzionamento" (personalmente non ha funzionato).


Un router/AP domestico ha una porta WAN e generalmente quattro porte LAN

Nel caso la rete della propria azienda non sia una classe A e quindi non abbia una configurazione di rete che collimi con quella di Debian edu, la soluzione più semplice è quella di interporre un router fra questa e il server, basta un router/AP domestico (che abbia una porta WAN, diversamente non è idoneo allo scopo) come il TP-LINK TL-WR841N (ND) (dal costo di 20-30 Euro) oppure un modello cablato come il TL-R402M della stessa Casa.


Configurazione del router TP-LINK TL-WR841N(ND)

La configurazione di seguito descritta è applicabile anche ad altri modelli router wired/wireless TP-Link, compresi quelli di altre marche (lo schema di configurazione è sostanzialmente identico per ogni router). Come gran parte dei router "domestici", la configurazione riguarda due "versanti", WAN e LAN:

  • WAN, rete aziendale, la quale offre anche l'instradamento verso internet mediante un gateway
  • LAN, rete locale del server alla quale è collegata anche l'interfaccia eth0 del server

La prima configurazione è accessibile tramite un browser all'indirizzo: http://192.168.0.1 ,inserendo le credenziali di default: admin/admin

Configurazione WAN

I dati della rete "WAN" devono essere relativi alla configurazione della propria rete aziendale/scolastica (quelli riportati sono solo a titolo d'esempio). Devono essere quindi forniti dall'amministratore di rete. Per il router in questione, la configurazione è accessibile tramite il menù web: “Network → WAN”


WAN Connection Type: Static IP (oppure DHCP)

IP Address 192.168.1.20
Subnet Mask 255.255.255.0
Default gateway 192.168.1.254
Primary DNS 192.168.1.254
Secondary DNS 8.8.8.8

Configurazione LAN

I dati della rete "LAN" sono invece mandatori, in quanto rigidamente legati alla configurazione di rete di Debian edu. Il router in questione configura il versante LAN definendo l'indirizzo IP del router e la subnet netmask e quindi, di conseguenza, anche la classe della rete LAN. Si accede alla configurazione LAN tramite il menù: “Network → LAN”

IP Address 10.0.0.1
Subnet Mask 255.0.0.0

N.B. Dopo questa modifica l'indirizzo IP 10.0.0.1 costituirà quindi il nuovo IP del router e quindi le successive configurazioni tramite il pannello web saranno possibili aprendo l'indirizzo: http://10.0.0.1

Disabilitazione del server DHCP

Il DHCP server del router va disabilitato, solo se si prevede il netboot anche da client collegati alla rete intern. Se , invece, si prevede solo il boot da rete sulle due subnet 00 e 01, tale servizio può rimanere abilitato.
Scegliere il menu "DHCP → DHCP Settings" e attivare l'opzione "Disable"
Eventuali altre connessioni wired/wireless al router da workstation o notebook (non netboot) dovranno quindi essere configurate mediante un IP statico libero che non appartenga ai range DHCP della rete intern (10.0.16.20...10.0.31.254)

Installazione e primo avvio

L'installazione può essere fatta mediante CD/DVD o pendrive USB. Il sito http://ftp.skolelinux.org/ consente di scaricare diverse immagini ISO, per creare CD, DVD e USB autoavvianti. Fra queste si segnalano due in particolare:

  • CD: debian-edu-7.1+edu0-CD.iso (655MB): l'installazione viene avviata da un CD, quindi vengono scaricati i pacchetti necessari dalla rete (richiede molte ore usando una connessione ADSL tipica da 7Mbps).
  • USB: debian-edu-7.1+edu0-USB.iso (5,4GB): l'installazione viene avviata da un pendrive USB che contiene gran parte dei pacchetti richiesti. È comunque necessario il collegamento alla rete in quanto viene scaricato qualche aggiornamento o pacchetto aggiuntivo (richiede meno tempo della installazione da CD).

Qualunque sia l'immagine scelta è necessario scaricare anche due file per il successivo controllo integrità con MD5, che andranno salvati sempre nella stessa directory di download dell'ISO:

Creazione del supporto di installazione (Linux)

Prima della creazione è necessario fare il checksum dell'ISO scaricata. Nella directory dove sono stati salvati il file .ISO e il file MD5SUMS eseguire:

$ md5sum -c MD5SUMS

In caso di risultato "non riuscito" relativo all'immagine scaricata (ignorare i warning delle altre ISO) occorrerà cancellare la stessa immagine e provvedere a un nuovo download. Per la masterizzazione CD fare riferimento alla FAQ Debian

Per la creazione del pendrive USB avviabile occorrerà innanzitutto identificare il device name del pendrive (es. /dev/sdb). Portarsi, quindi, nella directory dove è stata salvata la ISO e lanciare i seguenti comandi:

# umount /dev/sdb 
# cat debian-edu-7.1+edu0-USB.iso > /dev/sdb ; sync

Creazione del supporto di installazione (Windows)

Il check di integrità dell'immagine scaricata può essere eseguito con l'utility gratuita winMD5Sum, mentre la masterizzazione del CD usare uno dei seguenti programmi.
Mentre uno dei pochi software gratuiti in grado di creare un pendrive USB effettivamente funzionante è PowerISO (per inciso UNetbootbin non va bene). Si consiglia la vecchia versione 4.9 che non installa adware. Lanciato il programma, dal menù "Strumenti > Create Bootable USB driver" sarà possibile creare il proprio pendrive avviabile con l'installer Debian edu.


Fase di installazione

La fase di installazione, anche se fatta da supporto CD/USB, richiede una connessione internet funzionante. In questa fase, anche se non necessario, è comunque preferibile avere già interposto e configurato correttamente il router come descritto sopra, così da testare la funzionalità del router stesso.
La procedura di seguito descritta fa riferimento a una CPU server a 64-bit, CPU client a 32-bit e a una singola unità disco (ovvero un array di dischi in RAID gestiti da un controller hardware). Per un'eventuale configurazione RAID software fare riferimento alle Guide: 1, 2 e 3; quindi non a questa procedura.


Scelta del dispositivo di boot

All'avvio del server occorrerà selezionare il boot device, premendo un tasto generalmente indicato sullo schermo all'avvio del sistema (es. F11). Il dispositivo di boot dovrà essere il lettore CD oppure l'USB se si sta usando come supporto di installazione, rispettivamente, un CD-ROM oppure un pendrive. Nel caso il sistema non faccia il boot da USB, consultare il manuale del proprio server su come attivare la funzionalità USB boot.

Menù selezione boot device in un server HP

Scelta di xfce come desktop per i client

Al boot di installazione, selezionare con i tasti freccia “64 bit install”, quindi premere il tasto Tab e modificare il seguente parametro: desktop=xfce. In questo modo i client avranno come desktop predefinito xfce4, che è notoriamente più leggero di GNOME e KDE.

Prima schermata di installazione

Alcune note su questo step:

  • Non modificando il parametro desktop verrà installato KDE anche per i client; opzione al momento sconsigliata in quanto c'è un bug non risolto che provoca un elevato tempo di avvio dei client.
  • È possibile installare LXDE invece di Xfce, specificando come parametro desktop=lxde. LXDE occupa meno di risorse di Xfce (circa 80MB di RAM in meno) e ha un'interfaccia utente simile a quella classica Windows con menù start. N.B. il parametro 'lxde' sembra non funzionare con l'installazione da USB.
  • Le installazioni fatte mediante CD/USB, pur impostando "desktop=xfce", installeranno comunque anche GNOME, che costituirà la sessione predefinita per gli accessi locali (sui client invece ci sarà comunque Xfce). L'installazione fatta mediante ISO netinstall, invece, installa solo il desktop richiesto.
  • È possibile selezionare anche la modalità "Expert install", ma solo se effettivamente si sa bene cosa selezionare; diversamente ci si può ritrovare, dopo ore di lavoro, con un'installazione incompleta o non funzionante.


Successivamente l'installazione chiederà l'impostazione della lingua, della tastiera e configurerà la rete per lo scaricamento dei pacchetti.

Scelta dei profili da installare

Verrà quindi presentato il menù per la scelta dei profili Debian edu da installare. Se non si hanno ulteriori esigenze lasciare le impostazioni predefinite ossia: 1) Server principale 2) Workstation 3) Server thin client

Selezione dei profili da installare

Richiesta di partizionamento guidato con LVM

Selezionare "Sì" alla successiva richiesta: “Sicuri di usare il partizionamento guidato?”. In questo modo l'installer configurerà automaticamente il disco con LVM secondo la particolare struttura della Debian edu (es. un volume logico verrà assegnato al punto di mount /skole/tjener/home0 che rappresenta la directory radice delle home directory degli utenti)

Richiesta di partizionamento guidato

Monitoraggio dello stato di installazione con la console virtuale

Durante l'intero processo di installazione è possibile attivare delle console virtuali in particolare:

  • Alt+F4: console syslog (stato download pacchetti, estrazione, configurazione ecc.)
  • Alt+F1: ritorna all'installer

Creazione del primo utente

Dopo la richiesta di partecipare all'indagine sull'uso dei pacchetti (va bene lasciare il NO predefinito), si arriverà alla creazione del primo utente, che costituirà l'utente amministratore, abilitato al sudo e all'uso di GOsa, lo strumento di amministrazione usato da Debian edu. Si consiglia di non scegliere la password uguale al nome utente, non solo per ovvi motivi di sicurezza, ma anche perché è capitato che non venisse creato effettivamente l'utente.

Creazione del primo utente

Creazione del sistema thin client e conclusione dell'installazione

Successivamente all'installazione del sistema base, si arriva allo stage: "Creazione del sistema thin client", che è quello che dura più in assoluto dell'intero processo di installazione. La barra di avanzamento si ferma al 85%, per qualche ora, dando l'impressione che l'installazione sia in stallo. Non è così, come è possibile controllare aprendo la console virtuale Alt+F4

Creazione del sistema thin client

Se tutto è andato per il meglio, si arriverà alla conclusione dell'installazione e al riavvio del sistema:

Termine dell'installazione

Primo avvio

Al boot comparirà il classico Grub menù in stile Debian-edu 7:

Boot menu

e quindi la schermata di login, in cui si consiglia di selezionare la sessione Xfce, potrebbe essere avviato di default GNOME (nel post-install verrà definito Xfce come DE predefinito)

LDM

Dopo la scelta predefinita del pannello Xfce, il primo desktop in tutta la sua semplicità ed efficienza (provare per credere ;-).

xfce desktop

Post-installazione

Di seguito la sequenza di passi che è stata seguita per la fase di post-installazione.

N.B. I comandi elencati di seguito vanno eseguiti dall'utente iniziale (o da qualsiasi altro utente abilitato a sudo) e nell'ordine in cui sono descritti.

Sincronizzare la lista dei pacchetti disponibili

Fra versione installata e versione corrente ci potrebbero essere delle differenze nella lista dei pacchetti. Questi comandi si sono resi necessari dopo l'installazione (effettuata con l'immagine USB.iso) al fine di evitare errori e warning nell'uso di apt e dpkg:

$ wget http://http.debian.net/debian/dists/wheezy/main/binary-amd64/Packages.gz
$ gunzip Packages.gz
$ sudo dpkg --update-avail Packages
$ mv Packages /opt/ltsp/i386/tmp
$ sudo ltsp-chroot dpkg --update-avail /tmp/Packages
$ sudo ltsp-chroot rm /tmp/Packages

Aggiornamenti necessari

Alcuni pacchetti vanno necessariamente aggiornati perché correggono malfunzionamenti, senza ricorrere al pinning o ad aggiornamenti alla versione testing:

$ wget http://http.debian.net/debian/pool/main/e/etckeeper/etckeeper_1.13_all.deb 
$ wget http://http.debian.net/debian/pool/main/d/debian-edu-config/debian-edu-config_1.719_all.deb
$ sudo dpkg -i etckeeper_1.13_all.deb 
$ sudo dpkg -i debian-edu-config_1.719_all.deb
$ rm etckeeper_1.13_all.deb
$ rm debian-edu-config_1.719_all.deb

Modificare la versione dei due pacchetti scaricati in caso di sopravvenuti aggiornamenti. Vedere anche qui[1][2].

Aggiornare os del server

$ sudo apt-get update
$ sudo apt-get -y upgrade

Aggiornare os dei fat client

$ sudo ltsp-chroot -m apt-get update 
$ sudo ltsp-chroot -m apt-get -y upgrade 
$ sudo ltsp-update-kernels

Installare script e applicazioni utili

Cron ogni ora lancia lo script killer, il quale individua processi server di utenti che non sono collegati al sistema e li killa. gksu/gksudo sono gli equivalenti GTK di su e sudo. epdfview è un leggero PDF viewer. xarchiver un gestore di file compressi.

$ sudo apt-get -y install killer gksu gksudo epdfview xarchiver

Installare localizzazioni/stili

Installare lo stile GTK per la GUI di Openoffice e la lingua italiana, anche per chromium ed epdfview:

$ sudo ltsp-chroot -m apt-get -y install libreoffice-gtk libreoffice-l10n-it chromium-l10n epdfview xarchiver
$ sudo apt-get -y install libreoffice-gtk libreoffice-l10n-it chromium-l10n epdfview xarchiver

Installare OpenJDK 7

Sul server e per i fat client risulta già installato il JRE 6, che conviene lasciare; anche se si vuole usare il JRE/JDK 7 è bene installare anche il JRE/JDK 6 (richiesto da alcuni programmi) per poi impostare di default le versioni 7. Invece il plugin icedtea versione 6 va tolto perché va in conflitto con l'omologo della 7.

$ sudo apt-get -y remove icedtea-6-plugin
$ sudo apt-get -y install default-jdk icedtea-7-plugin openjdk-7-jdk

Configurare quindi il JRE predefinito:

$ sudo update-alternatives --config java

scegliendo: /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java , e il JDK predefinito:

$ sudo update-alternatives --config javac

scegliendo: /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java


Ripetere la stessa installazione per i fat client:

$ sudo ltsp-chroot -m apt-get -y remove icedtea-6-plugin
$ sudo ltsp-chroot -m apt-get -y install openjdk-7-jdk icedtea-7-plugin

Configurare quindi il JRE predefinito sui client:

$ sudo ltsp-chroot -m update-alternatives --config java

scegliendo: /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java , e il JDK predefinito:

$ sudo ltsp-chroot -m update-alternatives --config javac

scegliendo: /usr/lib/jvm/java-7-openjdk-i386/bin/javac

Installare strumenti di sviluppo per C/C++

Installazione di g++, gcc e geany :

$ sudo ltsp-chroot -m  apt-get -y install build-essential geany 
$ sudo apt-get -y install build-essential geany

Installare Infinality font

Infinality font migliora notevolmente l'antialiasing dei caratteri, sia sul server che sui client:

$ sudo echo "deb http://ppa.launchpad.net/no1wantdthisname/ppa/ubuntu trusty main" | sudo tee /etc/apt/sources.list.d/infinality.list
$ sudo echo "deb-src http://ppa.launchpad.net/no1wantdthisname/ppa/ubuntu trusty main" | sudo tee -a  /etc/apt/sources.list.d/infinality.list
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E985B27B
$ sudo apt-get update
$ sudo apt-get -y install fontconfig-infinality
$ sudo echo 4 | bash /etc/fonts/infinality/infctl.sh setstyle
$ sudo sed -i '712s/.*/USE_STYLE="OSX"/' /etc/profile.d/infinality-settings.sh
$ sudo ltsp-chroot -m apt-get -y install fontconfig-infinality
$ sudo ltsp-chroot -m echo 4 | bash /etc/fonts/infinality/infctl.sh setstyle
$ sudo ltsp-chroot -m sed -i '712s/.*/USE_STYLE="OSX"/' /etc/profile.d/infinality-settings.sh

Installare LAMP

Occorre installare solo MySQL server e client (PHP e già installato e Apache già preconfigurato per lo sviluppo PHP/mysqli). Al termine dell'installazione di mysql-server verrà richiesta la creazione di una password per l'utente root di mysql.

$ sudo ltsp-chroot -m apt-get -y install mysql-client
$ sudo apt-get -y install mysql-server mysql-client

Impostare Xfce di default anche per le sessioni locali

L'installazione da CD/USB installa anche GNOME (pur avendo richiesto Xfce); mentre la netinstall scarica e installa solo Xfce. Per consentire di usare Xfce in modalità predefinita (e non GNOME) anche in sessione locale:

$ sudo update-alternatives --config x-session-manager

quindi selezionare il numero associato a: /usr/bin/xfce4-session .

Installare un controllore di aula

Un controllore di aula è un utile strumento che consente all'insegnante di interagire con le sessioni client. Epoptes è un ottimo programma, facile da installare e con una GUI intuitiva:

$ sudo apt-get install epoptes
$ sudo ltsp-chroot -m apt-get install epoptes-client
$ sudo ltsp-chroot -m epoptes-client -c 
$ sudo update-rc.d -f epoptes remove
$ sudo update-rc.d epoptes default 30 70
$ echo 'SOCKET_GROUP=teachers' | sudo tee --append /etc/default/epoptes
$ sudo service epoptes restart

Eseguire il controllore dal Menù delle applicazioni > Internet > Epoptes oppure da shell (senza permessi di root) con:

$ epoptes

Per operare su tutti i client (es. inviare messaggio a tutti i client), non selezionare nessuna miniatura desktop oppure premere Ctrl+A .

N.B.

  1. Solo gli utenti del gruppo "teachers" sono autorizzati ad avviare epoptes e quindi controllare in remoto i client.
  2. Il controllore può essere invocato sul server o su thin client ma non su un fat client.

Creare la struttura di directory per il web degli utenti

Con la creazione di un nuovo utente verranno anche create le directory per lo spazio web personale. Questo step può essere saltato se nel laboratorio non si fa sviluppo di pagine web e CGI

$ sudo mkdir /etc/skel/public_html
$ sudo mkdir /etc/skel/public_html/cgi-bin

Abilitare home page utenti (web e CGI)

Le directory ~/public_html e ~/public_html/cgi-bin automaticamente create per ogni nuovo utente, hanno già correttamente impostati i permessi (755).

Per il solo utente iniziale (creato durante l'installazione), occorrerà creare le directory ~/public_html e ~/public_html/cgi-bin e impostare i permessi:

$ cd
$ mkdir public_html
$ chmod 755 public_html
$ mkdir public_html/cgi-bin
$ chmod 755 public_html/cgi-bin
$ chmod o+x ~

Passare quindi a root:

$ su -

Ed eseguire:

# cd /etc/apache2/mods-enabled/
# cp userdir.conf userdir.orig.conf
# nano userdir.conf

Nell'editor sostituire la riga:

<Directory /home/*/public_html/>

con:

<Directory /skole/tjener/home*/*/public_html/>

Inoltre aggiungere in coda allo stesso file file la seguente direttiva:

 <Directory /skole/tjener/home*/*/public_html/cgi-bin/>
    Options ExecCGI
    SetHandler cgi-script
  </Directory>

Riavviare quindi il demone httpd:

# service apache2 restart

Test spazio web e CGI utenti

Test web

Creare una pagina indice di prova:

$ cd ~/public_html/
$ nano index.html
 <HTML>
 <BODY>
   Prova web utente
  </BODY>
 </HTML>

Aprire la pagina sul sito:

http://www/~userid/index.html


Test CGI

Creare un nuovo file di prova hello.c :

$ cd ~/public_html/cgi-bin/
$ nano hello.c
 #include <stdio.h>
 
 int main(void)
 {
    printf("Content-Type:text/html\n\n");
    printf("Hello World!");
    return 0;
 }

Compilarlo:

$ gcc -o hello.cgi hello.c

Eseguirlo sul server web:

http://www/~userid/cgi-bin/hello.cgi

Amministrazione di sistema

Gran parte dei task amministrativi, vengono svolti in Debian edu tramite lo strumento Gosa che facilita le operazioni grazie a un'interfaccia utente semplice e intuitiva. Gosa è accessibile dal Menu delle applicazioni > Sistema > Gosa oppure aprendo con un browser l'URL: https://www/gosa

La login è quella dell'utente creato durante l'installazione. È possibile aggiungere altri utenti Gosa aggiungendoli al gruppo gosa-admins .

Modificare i modelli "newteacher" e "newstudent"

Per la creazione di un nuovo utente “studente” e “insegnante”, Gosa eredita le proprietà di due utenti predefiniti, rispettivamente, “newstudent” e “newteacher”. È preferibile che ogni utente venga aggiunto a un solo gruppo primario: students o teachers (di default, invece, il modello utente prevede la creazione di un gruppo primario dello stesso nome dell'utente: tanti utenti, tanti gruppi).

Gosa > Users > Students > newstudent > POSIX e cambiare il primary group da “Newstudent” a “Students” :

Debianedu gosa modificatemplate.png

Analogamente cambiare il primary group in “teachers” per l'utente newteacher, accedendo al menù :

Gosa > Users > Teachers > newteacher > POSIX

N.B. Ogni utente del modello “newteacher” oltre che al gruppo “teachers” viene aggiunto anche al gruppo “students”.

Scegliere un userid diverso da quelli proposti

Per la creazione di un nuovo utente, Gosa propone un limitato numero di userid formati da lettere del nome e del cognome e dell'utente, ma non consente di definire un userid a piacere (es. "nome.cognome"). Per aggirare questo limite:

# nano /etc/gosa/gosa.conf 

cercare il tag: <location name="Debian Edu"> e modificarlo, nel modo seguente, prima della parentesi di chiusura “>” :

...dc=skolelinux,dc=no" '''allowUIDProposalModification = "true"''' >

A destra degli userid proposti da Gosa comparirà un'icona: cliccando su di essa, sarà ora possibile immettere un qualsiasi UID valido.

Creare un nuovo utente

Gosa > Menù Users > [ Actions ] > Create > User

Selezionare quindi il template: newstudent o newteacher, rispettivamente se si tratta di uno studente o di un docente. Scegliere dalla list-box, l'userid proposto. Se si è apportata la modifica al punto precedente, sarà possibile definire un userid diverso da quello proposto.

N.B. La home directory dell'utente creato è: /skole/tjener/home0/userid .

Si consiglia di creare due utenti iniziali: 'studente' e 'docente', che serviranno per i test, ma anche per quota.

Importare una lista di nuovi utenti (es. classe)

È possibile importare massivamente un elenco di utenti definito in un foglio di calcolo.

Debianedu gosa importadacalc.png
  1. Creare un nuovo file con Libreoffice Calc, in cui ogni colonna rappresenti: userid, cognome, nome, password iniziale, come nella figura di esempio sopra riportata. Occorre prestare attenzione ad alcune regole:
    • Tutti gli utenti devono essere dello stesso modello: (es o tutti 'NewTeacher' o tutti 'NewStudent')
    • La tabella non deve avere intestazione (il primo utente deve essere definito nella riga 1)
    • Non usare l'apostrofo o il doppio apice, es. Dell'Aglio va scritto: Dell Aglio
    • Riempire sempre il campo cognome e nome (anche con "cognome" e "nome")
    • La password deve essere di almeno cinque caratteri
    • Se l'importazione trova un userid già utilizzato interrompe l'importazione anche se gli utenti successivi hanno userid valido. Quindi occorre controllare prima se l'userid è libero. Per controllare se l'userid "mrossi" è già utilizzato, eseguire da shell:
    $ getent passwd | grep mrossi
  2. Salvare il file in formato "Text CSV" con delimitatore di campo "," . Esempio: 3B.CSV (ignorare il warning di Calc)
  3. Andare in Gosa > Addons > LDAP Tools > CSV import
    • Selezionare il file creato al punto 2 (es. 3B.CSV )
    • Selezionare il modello della lista utenti (es. NewStudent)
    • Premere il pulsante [Import] in basso a destra
Debianedu gosa csvimport.png

Cambiare la password utente

L'utente al primo accesso sarà invitato a cambiare la password accedendo a Gosa mediante le proprie credenziali; un utente - non amministratore - in Gosa visualizza solo le sue proprietà, di cui può modificare solo la password.

Abilitare un utente al sudo

Gosa > Menù Administration > Sudo rules

Selezionare dalla lista, la regola del primo utente (quello creato con l'installazione). Nel riquadro “Users and groups”, click sul pulsante “Add from list” e selezionare l'utente al quale si vogliono applicare le stesse regole sudo del primo utente (nell'esempio il I utente è: frank).

Debianedu gosa sudo.png

Assegnare a un client IP e nome univoci

I client non richiedono l'autorizzazione in Gosa (a differenza delle workstation): Debian Edu automaticamente assegna a un client che si collega al LTSP server, un IP e un nome. È consigliabile, però, far assegnare a un client sempre uno stesso IP e uno stesso nome:

  • Far collegare unicamente il client che si desidera configurare e aspettare la schermata LTSP login
  • Lanciare sul server lo script :
    # sitesummary2ldapdhcp -a -d 
    dare la password di LDAP (coincide con quella di root) quando richiesto.
  • In Gosa > System, click sull'icona di "reload list": apparirà il client collegato, con il nome generico: auto-mac-xx:xx:xx:xx:xx:xx. Editare il client cambiandogli il nome da auto-mac-... secondo un tema a scelta (es. tc001, client001, ws001, ecc.)
  • Impostare un IP non utilizzato da 192.168.x.21 a 192.168.x.253
  • Abilitare DHCP: (tjener) DHCP
  • Abilitare DNS zona: TJENER/subnet00.intern

Esempio:

Debianedu gosa modificahost.png

Forzare un client in modalità thin

La modalità di funzionamento fat/thin di LTSP Debian edu (sulla subnet 192.168.0.0/24) è predefinita: se il client ha una RAM > 320MB la modalità è la fat , viceversa è thin. Se si vuole forzare uno o più client a lavorare come thin, indipendentemente dalla quantità di RAM, occorre modificare il file lts.conf:

# nano /opt/ltsp/i386/etc/lts.conf

Supponendo che si voglia modificare un solo client, il cui MAC è: 08:00:27:b8:96:68, si scriverà:

 [08:00:27:b8:96:68] 
     LTSP_FATCLIENT=false 

N.B. Il client utilizzato dal docente/amministratore è consigliabile che sia impostato come thin (deve operare sul server).

Bloccare l'accesso a internet dai fat client

È possibile, all'occorrenza, disabilitare temporaneamente l'accesso internet a tutti i fat client della subnet 192.168.0.0/24 :

# nano /etc/init.d/enable-nat

Modificare il corpo della funzione is_enabled() come segue (in grassetto le aggiunte):

 is_enabled() { 
   if (do_status | grep -q "$NETWORK_TO_NAT") '''||  (do_status | grep -q "thinclientnet/24'''") ; then
      true
   else 
      false
   fi 
 }

Per disabilitare l'accesso internet ai fat client:

# service enable-nat stop

Per riabilitarlo:

# service enable-nat start

Aprire una sessione di root nel chroot /opt/ltsp/i386

$ su -p
# ltsp-chroot -m

Ctrl+D oppure exit per ritornare al sistema.

Aggiornare OS del server

$ sudo apt-get update
$ sudo apt-get -y upgrade

Aggiornare os dei fat client

$ sudo ltsp-chroot -m apt-get update 
$ sudo ltsp-chroot -m apt-get -y upgrade 
$ sudo ltsp-update-kernels

Impostare una quota disco per gli studenti

È consigliabile limitare lo spazio disco per tutti gli utenti del gruppo "students", impostando quindi una quota sui blocchi. Fare riferimento anche alla Guida su quota.

N.B. Eseguire questa procedura quando è collegato al sistema solo l'utente root

Installare quota e quotatool:

# apt-get install quota quotatool

Aprire il file fstab:

# nano /etc/fstab

Individuare la riga:

/dev/mapper/vg_system-skole+tjener+home0 /skole/tjener/home0 ext4 nosuid 0 2

e accodare a “nosuid” (senza nessun spazio) la stringa:

,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0

prestando attenzione a mettere tutto su una sola riga, che deve quindi apparire come (in grassetto la stringa aggiunta):

/dev/mapper/vg_system-skole+tjener+home0 /skole/tjener/home0 ext4 nosuid''',usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0'''  0 2

Quindi dare in sequenza i comandi (ignorare eventuali warning):

# quotaoff -avug 
# touch /skole/tjener/home0/aquota.user 
# touch /skole/tjener/home0/aquota.group 
# chmod 600 /skole/tjener/home0/aquota.user 
# chmod 600 /skole/tjener/home0/aquota.group 
# mount -o remount /skole/tjener/home0
# quotacheck -avugcmf 
# quotaon -avug 

Applicare i limiti di quota blocchi (es. 80MB/100MB) a un utente studente qualsiasi (es. mrossi):

# quotatool -v -u mrossi -b -q 80M -l 100M /skole/tjener/home0/

E il periodo di grazia (es. 7 giorni):

# quotatool -u -b -t "1 week" /skole/tjener/home0/

Assicurarsi che all'utente mrossi sia stata applicata la giusta quota, dal report delle quote:

# repquota -agus

Copiare le impostazioni di quota di mrossi a tutti gli utenti del gruppo studenti (GID=10004):

# edquota -p mrossi `getent passwd | awk -v X=10004 -F ':' '{if ( $4 == X ) print $1 }'`

Per disattivare tutte le quote utente/gruppo:

# quotaoff -avug

N.B. Nell'assegnazione dei limiti, tenere conto che lo spazio home occupato da un utente appena creato su Skolelinux è di circa 55MB.

Installare un pacchetto per i fat client

$ sudo ltsp-chroot -m apt-get install nomepacchetto

Installare un pacchetto sul server (e quindi anche per i thin client)

# apt-get install nomepacchetto

Gestire in remoto il server con un tunnel reverse SSH

Un tunnel SSH inverso consente di avere una shell sul server Debian edu (senza conoscerne la password), anche se esso si trova dietro un NAT, come un firewall o un modem/router ADSL. Per fare questo, occorre avere un accesso a un server SSH remoto, visibile da internet, che magari si può implementare sulla propria Linux box mediante openssh, il router domestico e un DDNS.

Ogni qualvolta si accederà al server SSH, automaticamente, si avrà un re-indirizzamento alla shell sul server Debian Edu.

Sul server Debian-edu verrà quindi installato un servizio backdoor, il cui script init.d è preso da questo sito: OpenSSHBackDoor Debian edu, il quale andrà scritto su un file open-backdoor, copiato e chmoddato nel modo seguente:

# cp open-backdoor /etc/init.d
# chown root.root /etc/init.d/open-backdoor
# chmod 755 /etc/init.d/open-backdoor
# update-rc.d open-backdoor defaults

Quindi creare il file di configurazione:

# nano /etc/default/open-backdoor

In cui si andranno a definire i valori di tre variabili:

RPORT  porta del server SSH remoto (compresa nel range: 1025...32767)
RHOST  nome/IP pubblico del server SSH remoto 
RUSER  userid del server SSH remoto 

Esempio di file /etc/default/open-backdoor :

RPORT=12345
RHOST=myserver.ddns.net 
RUSER=root

Riavviando il server oppure mediante il comando:

# service open-backdoor start

Verrà avviata la backdoor.

Mediante ssh da qualsiasi computer:

$ ssh ­p 12345 ­l root myserver.ddns.net

avremo così una shell di root sul server Debian-edu.

Conclusioni ed esperienza d'uso

Debian edu/Skolelinux consente a chiunque di ottenere, pronta all'uso, una sofisticata distribuzione Linux con funzionalità avanzate.

Dopo alcuni mesi di funzionamento, le riflessioni sull'esperienza d'uso sono state:

  1. Stabilità
  2. Sensibilmente lenta nel caricamento dell'OS e nel funzionamento "thin" rispetto Ubuntu 12.04LTS (forse perché Skole usa NFS invece di NBD)
  3. Comodità nell'amministrazione: 1) GOsa semplifica i compiti 2) non occorre aggiornare alcuna immagine dopo le modifiche sull'OS "fat"
  4. Poco amata (forse!) dagli studenti, per via dell'interfaccia grafica minimale e la qualità dei font, sinceramente inferiore rispetto a Ubuntu 12.04LTS.

Francesco Parisi, 2014/7

Collegamenti esterni

[1] Pacchetti di etckeeper in Debian main
[2] Pacchetti di debian-edu-config in Debian main




Guida scritta da: Franziski Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized