Installare e configurare Debian edu (Skolelinux)

Da Guide@Debianizzati.Org.
Versione del 13 ago 2014 alle 12:00 di Franziski (discussione | contributi) (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...')
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca

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.

Prerequisiti

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

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:172. 16 . 200 . 20

Subnet Mask:255. 255 . 255 . 0

Default gateway:172. 16 . 200 . 254

Primary DNS:172. 16 . 200 . 254

Secondary DNS:8 . 8 . 8 . 8 (Google DNS)


Menù “Network → LAN”


IP Address:10 . 0 . 0 . 1

Subnet Mask: 255 . 0 . 0 . 0


IGMP: disable


[[Image:]]


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”

In caso di reset del router, l'IP del web login è: 192.168.0.1

(con DHCP LAN abilitato)

3) INSTALLAZIONE


» Al boot di installazione, selezionare con i tasti freccia “64 bit install”, quindi premere il tasto Tab e modificare il seguente parametro: desktop=xfce


»Non usare per il primo utente userID = password (l'utente non viene creato, sembra un bug)


» Rispondere SI' alla domanda: “Sicuri di usare il partizionamento guidato?”

» Rispondere NO alla domanda: “Si desidera partecipare all'indagine sui pacchetti?”

Alt+F4: console syslog (stato download pacchetti, estrazione, configurazione ecc.)

Alt+F1: ritorna all'installer

[[Image:]] 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

[[Image:]]


Le procedure di questo paragrafo possono essere eseguitein automatico dallo script postinstall:$ sh postinstall.sh



4.1) Sincronizzare la lista dei pacchetti disponibili


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.


  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


4.2) Aggiornare etckeeper


Scaricare una versione più recente della 0.63 installata; eviterà warning nell'uso di dpkg/apt.


  wget \         
  http://http.debian.net/debian/pool/main/e/etckeeper/etckeeper_1.12_all.deb 
  sudo dpkg -i etckeeper*.deb
  rm etckeeper*.deb

4.3) Aggiornare os del server


sudo apt-get update

sudo apt-get -y upgrade


4.4) Aggiornare os dei fat client


sudo ltsp-chroot -m apt-get update

sudo ltsp-chroot -m apt-get -y upgrade

sudo ltsp-update-kernels

4.5) Installare un nuovo pacchetto sui fat client

sudo ltsp-chroot -m apt-get install nomepacchetto

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


sudo apt-get install killer gksu gitk


4.7) Installare localizzazioni/stili


Installare la lingua italiana e stile gtk per la gui di open-office e chromium:

sudo ltsp-chroot -m \

apt-get install libreoffice-gtk libreoffice-l10n-it chromium-l10n


sudo apt-get install libreoffice-gtk libreoffice-l10n-it \ chromium-l10n


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):

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


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:


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


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


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

mkdir /etc/skel/public_html mkdir /etc/skel/public_html/cgi-bin exit


5) AMMINISTRAZIONE DI SISTEMA CON GOsa2


Menu delle applicazioni > Sistema > Gosa


oppure aprire con un browser: 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”


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

Menù Gosa > Users > Teachers > newteacher > POSIX


[[Image:]] 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:


$ sudo mousepad /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.


5.1.3) Aggiungere un singolo utente


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 proposta. Se si è apportata la modifica al punto precedente, sarà possibile definire una userid diversa da quelle proposte.


[[Image:]]


La home dir. dell'utente è:


/skole/tjener/home0/userid


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:]]


[[Image:]]


Tutti gli utenti devono essere dello stesso modello: docenti o studenti



La tabella non deve avere intestazione (il primo utente deve essere definito nella riga 1)


Non usare l'apostrofo o il doppio apice

es. D'Avino va scritto: D Avino


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:$ getent passwd | grep “mario.rossi”

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 3b.csv creato al punto 2 > Selezionare il modello della lista utenti (es. NewStudent)

> Premere il pulsante [Import] in basso a destra


[[Image:]]


5.1.6) Abilitare un utente al sudo


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)


[[Image:]]


5.2) AMMINISTRAZIONE DI MACCHINE E DEVICE DI RETE


5.2.1) Assegnare a un client sempre lo stesso IP e nome


La sottorete per i client è preconfigurata: 192.168.0.0/24


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.


E' consigliabile, però, far assegnare a un client sempre uno stesso IP e uno stesso nome:


1) Far collegare unicamente il client che si desidera configurare e aspettare la schermata LTSP login


2) Lanciare sul server lo script :


sudo sitesummary2ldapdhcp -a -d


dare la passwd 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”.


3) Editare il client cambiandogli il nome da “auto-mac-...” secondo un tema a scelta (es. tc001, client001, 001, ecc.)


4) Impostare un IP non utilizzato da .21 a .252 e:


> abilitare DHCP: (tjener) DHCP

> abilitare DNS zona: TJENER/subnet00.intern:


[[Image:]]

Il client dell'esempio avrà come nome completo: tc001.subnet00.intern


[[Image:]]


Si consiglia di:
      1. Assegnare l'IP 192.168.0.253 al client cattedra (in uso al docente)
      2. 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 ↔ tcyyy (yyy=xxx-020)


6) APPENDICE


6.1) Installare ed eseguire epoptes (controllore di aula)


[[Image:]]


La procedura di installazione è contenuta nello script postinstall:$ sh postinstall.sh



Installazione:

1) Lanciare da utente sudo:


  sudo apt-get install epoptes
  sudo ltsp-chroot -m  apt-get  install  epoptes-client

sudo ltsp-chroot -m epoptes-client -c


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:


sudo service epoptes restart


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


   epoptes


[[Image:]][[Image:]]


Solo gli utenti del gruppo teachers 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 Ctrl+A

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:


sudo /opt/ltsp/i386/etc/lts.conf


e modificare le impostazioni di default con due direttive:


[Default]

       USE_LOCAL_SWAP=Y
       NBD_SWAP=N


[[Image:]]


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


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:


sudo vi /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


[[Image:]]


Il client utilizzato dal docente/amministratore è consigliabile

che sia impostato come thin (deve operare sul server)



6.4) Abilitare la sintassi evidenziata in vi


Aprire il file rc globale di vi:

sudo vi /etc/vim/vimrc


e inserire come prima riga:


syntax on


Ripetere la stessa modifica per il vimrc dei client fat:


sudo vi /opt/ltsp/i386/etc/vim/vimrc


6.5) Abilitare il web dell'home utente


Il modulo userdir è gia abilitato; occorrerà solo configurarlo.


1) Da server eseguire:


sudo -s

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

vi userdir.conf


e sostituire la riga:


<Directory /home/*/public_html/>


con


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


[[Image:]] Anche senza questa modifica, il server web sembra gestire

correttamente le pagine nella dir. public_html

2) Riavviare il demone http:


service restart apache2

exit

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 è index.html, che sarà raggiungibile (nell'ambito del dominio .intern) all'URL:


   http://www/~userid


oppure


   http://10.0.2.2/~userid


[[Image:]] Se si vuole rendere visibile lo spazio web del primo utente (creato durante l'installazione) occorrerà un $ chmod o+x 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:


sudo vi /etc/apache2/mods-enabled/userdir.conf


e aggiungere in coda la seguente direttiva:


<Directory /skole/tjener/home*/*/public_html/cgi-bin/>

Options ExecCGI

SetHandler cgi-script

</Directory>


Riavviare il demone httpd:


sudo service restart apache2

2) Far creare all'utente collegato dal fat client, la propria directory cgi-bin e settarne i permessi:


$ cd

~$ cd public_html

~$ mkdir cgi-bin$ chmod 755 cgi-bin


3) Creare un nuovo file di prova hello.c nella dir. cgi-bin:


#include <stdio.h>


int main(void)

{

printf("Content-Type:text/html\n\n");

printf("Hello World!");

return 0;

}


4) Compilare il cgi:


$ gcc -o hello.cgi hello.c


5) Eseguire il cgi sul server web:


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


6.7) Non consentire ai fat client di accedere a internet


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


sudo vi /etc/init.d/enable-nat


Modificare il corpo della funzione is_enabled() come segue:


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:


sudo service enable-nat stop


Per riabilitarlo:


sudo service enable-nat start


6.8) Copiare un file su tutte le home degli studenti


Il seguente script (cptostud.sh), 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


#!/bin/bash


DIR="Scaricati"

FILE="/skole/tjener/home0/frank/ex01.c"


UHOME="/skole/tjener/home0"

GRP_NAME="students"

GRP_ID=$(getent group $GRP_NAME | cut -d: -f3)

FILENAME=$(basename $FILE)


_USERS="$(getent passwd | awk -v X=$GRP_ID -F ':' '{if ( $4 == X ) print $1 }')" 


for u in $_USERS

do

_dir="${UHOME}/${u}/${DIR}"

if [ -d "$_dir" ]

then

yes | /bin/cp -v "$FILE" "$_dir"

chown -v $(id -un $u):$GRP_NAME "${UHOME}/${u}/${DIR}${FILENAME}"

fi

done== Indice generale == 1) CONFIGURAZIONE BIOS E BOOT USB DELL' HP DL380 G71

1.1) Accedere alla configurazione del RAID1

1.2) Accedere al RBSU (BIOS)1

1.3) Abilitare boot da USB 1

2) CONFIGURAZIONE ROUTER TP-LINK TL-WR841N 2

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

4.8) Installare strumenti e ambienti di sviluppo 4

4.9) Installare LAMP4

4.10) Impostare xfce di default anche per le sessioni locali 4

4.11) Creare la struttura di directory per il web degli utenti5

5) AMMINISTRAZIONE DI SISTEMA CON GOsa25

5.1) AMMINISTRAZIONE DEGLI UTENTI5

5.1.1) Modificare i template “newstudent” e “newteacher”5

5.1.2) Modificare gli username proposti da Gosa nella creazione di un utente6

5.1.3) Aggiungere un singolo utente6

5.1.4) Cambio della password7

5.1.5) Importare lista di nuovi utenti definita in un foglio elettronico7

5.1.6) Abilitare un utente al sudo8

5.2) AMMINISTRAZIONE DI MACCHINE E DEVICE DI RETE8

5.2.1) Assegnare a un client sempre lo stesso IP e nome8

6) APPENDICE10

6.1) Installare ed eseguire epoptes (controllore di aula)10

6.2) Utilizzare la flash del thin come swap locale !!! da testare !!!11

6.3) Configurare uno o più client come thin e non come fat11

6.4) Abilitare la sintassi evidenziata in vi12

6.5) Abilitare il web dell'home utente12

6.6) Abilitare i CGI nell'home utente13

6.7) Non consentire ai fat client di accedere a internet14

6.8) Copiare un file su tutte le home degli studenti15