Guida rapida all’installazione
Questo capitolo è dedicato a chi vuole vedere velocemente come installare un server FUSS ed un client.
Topologia di una tipica rete didattica
Prima di mostrare come installare server e client, vediamo nella seguente figura la tipica topologia di rete dove FUSS può trovare applicazione.
Tipica topologia di una rete FUSS
Un server FUSS deve avere almeno 2 interfacce di rete. La prima serve per la connessione alla WAN (Wide Area Network) mentre la seconda è collegata alla rete locale (LAN-1) della scuola. La presenza di una terza porta Ethernet sul server e di una seconda LAN nella scuola alla quale sono connessi degli access point WiFi sono i presupposti per poter installare sul server FUSS una rete WiFi Guest che offre la possibilità a dispositivi satellite di accedere ad internet previa autenticazione.
Installazione di FUSS server dal template cloud-init ready
A partire dalla versione 10 è disponibile una modalità di installazione più veloce del FUSS server partendo da una immagine di macchina virtuale preinstallata con il supporto per la tecnologia di autoconfigurazione cloud-init.
Questa modalità può essere utilizzata solo con un sistema di virtualizzazione, qui verrà illustrato come farlo con la piattaforma di virtualizzazione Proxmox, adottata dal progetto, che supporta la tecnologia indicata consentendo di gestire tutte le caratteristiche della macchina virtuale direttamente dalla sua interfaccia web.
In particolare diventa possibile:
gestire indirizzi di rete, gateway e DNS dall’interfaccia web
gestire hostname e dominio dell’interfaccia web
allargare automaticamente il disco radice una volta ridimensionato sull’interfaccia web
Installazione della macchina virtuale
Il primo passo è scaricare l’immagine predisposta dal progetto per inserirla fra i dump disponibili per il ripristino. Questa è disponibile all’indirizzo http://iso.fuss.bz.it/cloud-init/vzdump-qemu-fuss-server-13-latest.vma.zst e la cosa più semplice è scaricarla direttamente sul server Proxmox su cui sarà utilizzata collegandosi con SSH ed eseguendo:
# cd /var/lib/vz/dump/
# wget http://iso.fuss.bz.it/cloud-init/vzdump-qemu-fuss-server-13-latest.vma.zst
Nota
se si è configurato in Proxmox uno storage diverso da local per
le immagini dei dump ci si ponga nella rispettiva directory invece
che sotto /var/lib/vz/dump/.
Una volta completato il download l’immagine comparirà fra in contenuti
dello storage (dall’interfaccia web) e si potrà iniziare il ripristino
anche direttamente dall’interfaccia selezionandola ed usando il pulsante
«Restore» che creerà una nuova macchina virtuale sul primo VMID libero,
l’interfaccia comunque consente di indicarne uno specifico diverso. Si
abbia cura di indicare, sempre nella finestra di ripristino, l’uso di
local-lvm come storage di ripristino e mettere la spunta sulla
casella «Unique».
Si tenga presente che perché questo funzioni regolarmente occorre avere
configurato Proxmox per l’uso di FUSS, la macchina virtuale infatti assume la
presenza di almeno due diverse interfacce di rete, una sulla rete esterna
(vmbr0) ed una sulla rete interna (vmbr1); qualora non fosse così si
potranno comunque cambiare le assegnazioni delle interfacce una volta
ripristinata la macchina virtuale.
Alternativamente si può eseguire il ripristino dalla riga di comando (si assume che si sia configurato lo storage su LVM con il nome utilizzato nella installazione di default di Proxmox) con:
qmrestore /var/lib/vz/dump/vzdump-qemu-fuss-server-13-latest.vma.zst \
106 -storage local-lvm -unique
dove al posto di 106 si può usare un qualunque VMID libero. Lo storage
deve essere local-lvm (come l’installazione diretta) e l’uso di -unique
consente di generare un MAC address della nuova VM che non confligga con altri
eventualmente presenti (è poco probabile, a meno che non si reistallino più
macchine dalla stessa immagine di partenza, ma è buona norma farlo).
Una volta ripristinata l’immagine gli si deve associare l’immagine del disco di configurazione con:
qm set 106 --ide2 local-lvm:cloudinit
Nota
se si ottiene un errore del tipo:
lvcreate 'pve/vm-106-cloudinit' error: Logical Volume "vm-106-cloudinit" already exists in volume group "pve"
si rimuova la precedente istanza del volume logico con:
lvremove pve/vm-106-cloudinit
e si ripeta il comando.
A questo punto prima di avviare la macchina per la prima volta si potrà
configurare la rete dall’interfaccia web, nella sezione Cloud-Init,
impostando: gli IP sulle interfacce di rete, il default gateway per
l’interfaccia esterna, una chiave SSH di accesso a root, il dominio ed il
server DNS. Quest’ultimo deve essere sempre 127.0.0.1, ed il nome a
dominio dovrà essere quello che verrà poi utilizzato nella configurazione
finale eseguita dal comando fuss-server.
Avvertimento
si deve sempre configurare il server DNS come 127.0.0.1 e
il nome a dominio uguale a quello che verrà usato poi con il comando
fuss-server altrimenti si rischia che in una successiva esecuzione di
fuss-server, o nella riesecuzione dell’inizializzazione di cloud-init,
ci siano interferenze e sovrascritture reciproche
Tutte queste operazioni si possono fare anche a riga di comando; per inserire
i suddetti parametri nelle configurazioni di cloud-init (si adattino gli
indirizzi di rete alle proprie esigenze) si esegua:
qm set 106 --ipconfig0 ip=10.0.101.79/24,gw=10.0.101.1
qm set 106 --ipconfig1 ip=192.168.0.1/24
qm set 106 --searchdomain fusslab.blz
qm set 106 --nameserver 127.0.0.1
qm set 106 --sshkey ~/.ssh/id_rsa.pub
l’ultimo comando, se si ha un elenco di chiavi, può essere sostituito da:
qm set 106 --sshkey elencochiavissh.txt
dove elencochiavissh.txt è un file contenente l’elenco di chiavi pubbliche
(una per riga) che verranno abilitate per la macchina in questione; lo si può
generare da un elenco di file di chiavi con qualcosa tipo cat *.pub >
elencochiavissh.txt.
Oltre alla configurazione della rete è opportuno impostare dall’interfaccia
web anche l’hostname della macchina. Questo corrisponde di default al nome
usato da Proxmox per la relativa VM (quello mostrato insieme al VMID
nell’interfaccia). Nell’immagine distribuita si è usato come nome di default
fuss13 che si potrà modificare nella sezione Options dell’interfaccia
web. Anche in questo caso la modifica si può fare a riga di comando con:
qm set 106 --name serverhostname
Avvertimento
benché sia possibile impostare l’hostname della macchina in un
secondo tempo all’interno della stessa con hostnamectl, dato
che la configurazione iniziale della rete viene gestita comunque
da cloud-init, è opportuno configurare l’hostname direttamente in
questa sezione e verrà correttamente propagato anche nelle varie
configurazioni.
Avvertimento
si tenga presente che se si cambia uno qualunque di questi parametri in un secondo tempo, tutte le configurazioni da lui gestite verranno rigenerate da cloud-init al successivo riavvio. Questo comprende anche le chiavi SSH del server, con la conseguenza che le precedenti non saranno più valide; per cui se ci si è già collegati alla macchina si otterrà il solito avviso che le fingerprint delle chiavi del server non corrispondono, e sarà necessario rimuoverle e riaccettarle da capo.
Si dovranno inoltre modificare i parametri hardware della macchina virtuale (dalla omonima sezione Hardware nell’interfaccia web), per aumentare la memoria ed allargare il disco quanto necessario, ed eventualmente aggiungere le interfacce di rete mancanti (ad esempio quella per la rete WiFi Guest). Si dovrà anche abilitare l’accensione automatica della macchina virtuale all’avvio, dalla sezione Options e abilitare l’uso del guest-agent di QEMU. Anche per modificare queste caratteristiche si può continuare ad operare direttamente a riga di comando, con qualcosa del tipo:
qm set 106 --memory 4096
qm set 106 --onboot 1
qm set 106 --agent 1
qm resize 106 scsi0 500G
dove si aumenta la RAM assegnata alla macchina virtuale a 4G, si richiede il lancio automatico al riavvio di Proxmox, e si allarga il disco a 500G. Se però si decide di dedicare un disco separato per le home quest’ultima operazione non deve essere eseguita, a meno che i 32G assegnati nell’immagine di default al disco della radice risultino insufficienti, nel qual caso comunque la si esegua con una dimensione opportuna.
Le immagini fornite hanno già attivato il discard sul disco di installazione (quest’ultima opzione ha senso solo se, come nell’esempio, si ha un disco che è stato estratto da uno storage che supporta il discard, come LVM-thin), qualora fosse assente o non necessario lo si può attivare/disattivare rispettivamente con:
qm set 106 --scsi0 local-lvm:vm-106-disk-0,discard=on
qm set 106 --scsi0 local-lvm:vm-106-disk-0,discard=off
Si tenga presente che le opzioni indicate verranno applicate al successivo
riavvio, anche per la parte di allargamento del disco, che verrà eseguita
automaticamente da cloud-init (con l’avvertenza però che questo è
possibile solo grazie allo specifico partizionamento usato dall’immagine
fornita dal progetto).
Alla fine del primo avvio della macchina virtuale vengono mostrate nella
console (accessibile dall’interfaccia web di Proxmox) le fingerprint delle
chiavi generate per il server SSH, che è possibile usare per verificarne la
correttezza alla prima connessione. Le si possono trovare in un secondo tempo
nel file /var/log/cloud-init-output.log.
Configurazioni post-installazione
Una volta finita l’installazione non è in genere necessario eseguire nessuna altra configurazione, a meno di non avere necessità di mantenere le home su un disco separato, che è una buona pratica qualora serva mantenere le quote disco, e che consentirà, in futuro, di eseguire un aggiornamento solo per la parte di sistema, senza dover reinstallare i file nella home.
Si perde però in questo caso la capacità di avere un ridimensionamento automatico del disco come avviene per il filesystem di root, in quanto cloud-init gestisce questa funzionalità solo per quest’ultimo. Essendoci pro e contro si lascia la valutazione dell’uso delle home separate a chi esegue l’installazione, tratteremo comunque qui le modalità per configurare le home su disco separato.
Creazione di un disco aggiuntivo per le home
Per installare le home su un disco separato si provveda ad aggiungere un disco di dimensione opportuna alla macchina virtuale dall’interfaccia web (sezione «Hardware», «Add->Hard Disk»). Si può eseguire la stessa operazione dalla riga di comando con qualcosa del tipo:
pvesm alloc local-lvm 106 '' 100G
qm set 106 --scsi1 local-lvm:vm-106-disk-1,discard=on
(di nuovo l’opzione discard=on ha senso solo se si usa uno storage come
local-lvm).
A questo punto una volta avviato il server disco verrà visto all’avvio come
/dev/sdb. Ci si colleghi come root e si verifichi che il disco sia
effettivamente riconosciuto come /dev/sdb; a questo punto lo si dovrà
partizionare e creare il filesystem per le home, questo si può fare con:
echo "start=2048, type=83" | sfdisk /dev/sdb
mkfs.ext4 /dev/sdb1
si recuperi l’UUID del disco e lo aggiunga a /etc/fstab, questo si può
fare con:
echo -e "# /home was on /dev/sdb1 during installation" >> /etc/fstab
echo -e "$(blkid -o export /dev/sdb1|grep ^UUID=) /home ext4 defaults,grpquota,usrquota 0 2" >> /etc/fstab
Si sostituisca /dev/sdb1 con l’opportuno file di dispositivo se se ne è
usato un altro. A parte l’aggiunta di un commento esplicativo il comando
estrae l’UUID del filesystem appena creato e crea una voce corretta per le
home con le opzioni per avere le quote e il giusto numero di sequenza nella
scansione iniziale del filesystem check.
Una volta verificato che nella installazione di cloud-init non ci siano file o
directory sotto /home (potrebbe restare la home dell’utente ausiliario di
installazione debian, che può essere rimosso con userdel -r debian) si
potrà montare il disco home con mount -a.
Configurazione iniziale per le quote
Sia che si sia usato un disco aggiuntivo per /home, sia che si siano
attivate successivamente le quote sulla radice (aggiungendo
grpquota,usrquota alla sua voce in /etc/fstab) è necessario
inizializzare le quote con:
quotacheck -a -f
quotacheck -ag -f
dove l’opzione - f è necessaria qualora (come avviene se si aggiungono le
opzioni di mount per le quote sulla radice) per forzare la scrittura dei file
delle quote a sistema attivo. Si possono ignorare gli avvertimenti che i dati
potrebbero essere imprecisi, verranno comunque corretti al primo riavvio.
Una volta attive le quote si potranno usare i comandi repquota e
repquota -g per verificare la effettiva presenza delle quote. Se detti
comandi non sono presenti si possono installare con apt install quotatool
(sono stati comunque inclusi nell’immagine di cloud-init).
Se non si riavvia la macchina dopo aver eseguito i comandi precedenti ed
attivato le quote nelle opzioni di montaggio, o se si aggiungono le opzioni
grpquota,usrquota in un secondo tempo rimontando il filesystem, e si forza
il calcolo delle quote a filesystem montato usando anche l’opzione -m con
i due comandi precedenti, occorrerà anche attivare le quote esplicitamente
con:
quotaon -a
Installazione di FUSS server tradizionale
Per installare FUSS Server su di una macchina fisica, è necessario partire da un’installazione di Debian 13 «trixie», su cui è basato il FUSS server. Le immagini si possono ottenere dall’indirizzo
https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/
prendendo il file debian-<versione>-amd64-netinst.iso.
Si deve disporre di una chiavetta USB della capacità minima di 1 GB
sulla quale va copiata l’immagine ISO scaricata. In GNU/Linux si può
usare il comando dd. Dopo aver inserito la chiavetta nel PC ove è
disponibile l’immagine, verificare con il comando lsscsi quale
dispositivo è stato assegnato alla chiavetta. Nell’esempio usiamo
/dev/sdX dove X può essere una delle lettere a, b, c
ecc. Come root, dare il comando:
# dd if=/PERCORSO_IMMAGINE/fuss-server-8.0-amd64-201708221233.iso \
of=/dev/sdX bs=4M status=progress
Preparata la chiavetta USB, inserirla nel server e dopo averlo avviato premurarsi di scegliere come dispositivo di boot la chiavetta stessa.
Installazione di Debian
Configurazioni iniziali
Se si è correttamente configurato l’avvio della macchina virtuale dalla ISO del Netinstall si otterrà la seguente schermata iniziale:
si scelga una installazione testuale, verranno chieste nell’ordine la lingua:
e si scelga l’italiano; la posizione (per il fuso orario):
e si scelga Italia; la tastiera:
e si scelga quella italiana.
Per la rete si usi come interfaccia per l’installazione quella corrispondente alla WAN del server (quella che si affaccia su Internet):
l’installer tenterà la configurazione automatica della rete, che deve essere interrotta (si prema invio durante l’acquisizione per cancellarla, o si torni indietro qualora sia avvenuta). In questo modo si potrà selezionare esplicitamente una configurazione manuale per l’IP «esterno» del fuss-server:
e si effettuino le impostazioni standard della rete (indirizzo IP, netmask e default gateway e DNS):
Verrà poi chiesto il nome della macchina, si inserisca subito quello definitivo:
si prosegua poi impostando il dominio:
verranno poi chieste la password di root e l’utente iniziale, da impostare a piacere.
Si dovrà poi effettuare il partizionamento dei dischi per l’installazione del sistema.
La scelta più sicura, per evitare problemi di riempimento della radice,
è usare filesystem separati per /home, /var, /tmp. Questo
però con il partizionamento diretto rende meno flessibile la eventuale
riallocazione dello spazio disco.
Si tenga presente infatti che anche avendo disponibile spazio disco per
poter allargare le partizioni, l’allargamento avverrebbe sul «fondo»
pertanto sarebbe facile ridimensionare soltanto l’ultima partizione (nel
caso la /home, che pur essendo quella più probabile, non è detto sia
davvero quella che ha bisogno dello spazio disco aggiuntivo).
Per questo si suggerisce, per avere maggiore flessibilità, al costo di una leggera perdita di prestazioni in I/O, di installare usando LVM, selezionando «guidato - usa l’intero disco e imposta LVM»:
quindi selezionare il disco da partizionare:
l’uso dei filesystem separati:
e confermare la configurazione di LVM:
e l’uso di tutto lo spazio disponibile per il gruppo di volumi:
e poi la formattazione finale:
Una volta completato il partizionamento ed esaurita l’installazione del sistema base verrà chiesto se aggiungere ulteriori CD o DVD, rispondere di No:
quindi alla richiesta di configurare i repository dei pacchetti, si utilizzi il mirror più vicino, non sarà necessario, essendo sulla WAN, utilizzare un proxy.
Si risponda come si preferisce alla richiesta di partecipare o meno alla indagine del popularity contest, e nella selezione del software si scelgano soltanto le voci «server SSH» e «utilità di sistema standard»:
e si completi l’installazione con GRUB installato sul Master Boot Record del disco:
Completata l’installazione si riavvi il server, eventualmente rimuovendo il CD di installazione e ripristinando l’ordine di avvio al boot.
Configurazioni post-installazione
Completata l’installazione di Debian occorre finalizzare le configurazioni
iniziali della macchina prima di poter lanciare fuss-server create. Il
primo passo è configurare la seconda interfaccia di rete per la LAN, si dovrà
modificare /etc/network/interfaces per aggiungere la relativa
configurazione con qualcosa del tipo:
# lan
allow-hotplug enp2s0
iface enp2s0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
ed attivare l’interfaccia con ifup enp2s0.
Occorrerà poi configurare le sorgenti software per i pacchetti,
aggiungendo in /etc/apt/sources.list.d/debian.sources la stanza di
configurazione dei backports:
Types: deb
URIs: <mirror>
Suites: trixie-backports
Components: main contrib
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
e in /etc/apt/sources.list.d/fuss.sources quella relativa al
repository di FUSS:
Types: deb
URIs: http://archive.fuss.bz.it/
Suites: trixie
Components: main contrib
Signed-By: /usr/share/keyrings/fuss-keyring.gpg
infine si dovrà installare il pacchetto con le chiavi GPG del repository di FUSS con:
# wget https://archive.fuss.bz.it/pool/main/f/fuss-archive-keyring/fuss-archive-keyring_0.20250620_all.deb
# apt install ./fuss-archive-keyring_*.deb
# apt update
a questo punto si potrà installare il pacchetto del fuss-server:
# apt install fuss-server
Una volta completata la configurazione iniziale della macchina, si potrà proseguire con la configurazione del fuss-server come già illustrato nella sezione Configurazione del server.
Installazione tradizionale di FUSS Client
Si passa ora all’installazione del primo client.
Preparazione chiavetta USB
Come prima cosa è necessario scaricare l’ultima versione dell’immagine
ISO live Xfce di Debian 13 «trixie» prendendo dall’indirizzo
https://cdimage.debian.org/mirror/cdimage/release/current-live/amd64/iso-hybrid/
il file debian-live-<versione>amd64-xfce.iso
È necessaria una chiavetta USB con taglia minima di almeno 4 GB sulla
quale va copiata l’immagine ISO scaricata. Come detto anche sopra, in
GNU/Linux si può usare il comando dd. Dopo aver inserito la
chiavetta nel PC ove è disponibile l’immagine, verificare con il comando
lsscsi quale dispositivo è stato assegnato alla chiavetta.
Nell’esempio usiamo /dev/sdX dove X può essere una delle lettere
a, b, c ecc.
Nell’ipotesi che la ISO scaricata si per architettura amd64, come root,
dare il comando
dd if=/PERCORSO_IMMAGINE/debian-live-<versione>-amd64-xfce.iso of=/dev/sdX bs=4M status=progress
Preparata la chiavetta USB, inserirla nel PC/notebook e dopo averlo avviato premurarsi di scegliere come dispositivo di boot la chiavetta stessa.
Procedura di installazione guidata
Per immagini viene mostrata di seguito la procedura di installazione del primo client. Si è scelto l’installer da console (Debian Installer). In alternativa si può optare per l’installer grafico (Graphical Debian Installer).
Nota
Se si vuole utilizzare FUSS in modalità LIVE, si scelga la
prima opzione. Le credenziali dell’utente di default sono user -
live.
Scelta di lingua e tastiera.
Inserire il nome del host.
Il dominio interno nel quale si colloca il host, come definito durante l’installazione del server.
Impostazione della password di root.
Creazione di un utente locale.
Partizionamento dei dischi. Si scelga il partizionamento manuale impostando una partizione di swap ed una per la radice (/ o root) del filesystem.
Al termine scrivere le modifiche sul disco.
Inizia l’installazione del sistema.
L’installer cerca i pacchetti nel CD-ROM di installazione che non esiste. Semplicemente ignorare l’errore e proseguire premendo Continua.
Scegliere un mirror di rete.
Impostare il proxy a http://proxy:8080 dove proxy risponde al
FUSS Server.
Installare il boot loader GRUB nel master boot record del disco sul quale si sta installando il sistema.
Al termine la macchina va riavviata.
Configurazione FUSS Client
Dopo il riavvio si acceda come root. La password preimpostata è fuss
e si consiglia di cambiarla con il comando passwd.
È necessario configurare i repository FUSS. Abilitare pertanto trixie
backports in /etc/apt/sources.list.d/debian.sources:
Types: deb
URIs: <mirror>
Suites: trixie-backports
Components: main contrib
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
e in /etc/apt/sources.list.d/fuss.sources i repository di FUSS:
Types: deb
URIs: http://archive.fuss.bz.it/
Suites: trixie
Components: main contrib
Signed-By: /usr/share/keyrings/fuss-keyring.gpg
Se invece si ha la necessità di scaricare anche i pacchetti non-free si
aggiungano alle voci components delle varie stanze anche contrib e
non-free oltre a main e non-free-firmware già presenti.
Nota
Se si è dietro un FUSS server, perché sia possibile scaricare
la chiave di firma di APT, occorre prima definire export
http_proxy=http://proxy:8080 ed export
https_proxy=http://proxy:8080
Installare, se non già presente, il pacchetto wget:
# apt update
# apt install wget
infine si dovrà installare il pacchetto con le chiavi GPG del repository di FUSS e aggiornare con apt i pacchetti con:
# wget https://archive.fuss.bz.it/pool/main/f/fuss-archive-keyring/fuss-archive-keyring_0.20250620_all.deb
# apt install ./fuss-archive-keyring_*.deb
# apt update
# apt dist-upgrade
All’occorrenza aggiungere i pacchetti Debian necessari a seconda del contesto in cui viene installato il FUSS Client.
Creazione di un’immagine del client con Clonezilla
Al fine di velocizzare l’installazione del FUSS Client sui PC/notebook
rimanenti, si consiglia di creare con Clonezilla un’immagine del primo
FUSS Client. Il FUSS Server monta un’istanza di Clonezilla, eseguibile
da qualsiasi macchina presente nella LAN via PXE Boot (network boot).
Pertanto, riavviando il FUSS CLient appena creato e scegliendo l’opzione
di boot «PXE Boot», verrà caricato Clonezilla dal server e sarà
possibile creare un’immagine del primo client che verrà salvata nella
cartella /var/clonezilla sul server. Clonezilla chiederà la password
dell’utente clonezilla, che è memorizzata sul server nel file
/root/clonezilla_cred.txt.
Al termine della procedura di salvataggio del clone sul server, sarà possibile installare agevolmente nuovi client lanciando parimenti Clonezilla via network boot e scegliendo di fare il restore di un’immagine.
Ad ogni client va attribuito un nome di host diverso. E` necessario
intervenire, pertanto, sui file /etc/hostname ed /etc/host
riavviando al termine il client.
Join del client al server
Infine va effettuato il join del client al server lanciando da terminale
il comando fuss-client come segue:
fuss-client -a
Come unica interazione viene chiesto, qualora configurato, a quale cluster associare il host (es: aula-01, aula-insegnanti, ecc.). Inoltre va inserita per tre volte la password di root del server.
Installazione con FUSS-FUCC
FUCC è l’acronimo di Fully Unattended Clonezilla Cloning
Compilazione della lista dei computer
Nella cartella /srv/clonezilla (normalmente cartella standard di
clonezilla) o su altra cartella sul server FUSS che contiene le immagini
da clonare, si trova il file computerList.txt in cui bisogna
elencare i nomi che si vogliono assegnare ai computer specificando
il mac-address e l’immagine di clonezilla che si vuole
installare sul computer.
Sono possibili le seguenti opzioni (e parametri, ove richiesti):
[ join CLUSTER [ wifi ] || standalone ] [ light ] [ locale LOCALE ] [ keyboard KBD ]
joinSeguito dal parametro CLUSTER, permette di agganciare il computer al dominio e di includerlo nel gruppo CLUSTER.wifiConsente di configurare i client per permettergli di contattare automaticamente il server attraverso la WLAN. I parametri wifi-ssid e wifi-pass vengono letti nel file /srv/clonezilla/clientScripts/wireless_conf, se esiste e i parametri non sono vuoti, altrimenti ci viene chiesto di inserirli interattivamente. Esempio di file wireless_conf:wifissid: FUSS_LAN wifipass: MYSUPERSECRETPASSWORD
standaloneAlternativo a join, permette di installare la macchina standalone.lightNel caso si parta da un’immagine clonezilla light permette di installare la macchina (joinata o standalone) senza i pacchetti fuss-kids, fuss-children e fuss-education.localeSeguito dal parametro LOCALE, permette di modificare la lingua di sistema (default it_IT.UTF-8). L’elenco dei possibili locale si può trovare nel file /srv/clonezilla/clientScripts/locale.txtkeyboardSeguito dal parametro KBD, permette di modificare il layout della tastiera (default it). L’elenco dei possibili layout si può trovare nel file /srv/clonezilla/clientScripts/keyboard_layout.txt
Esempi:
dm-info1-03 00:0b:fe:d7:4a:cc cloneImage-img join aula_info1
arc-aula37 7a:2d:b4:59:d6:f3 cloneImage-img join piano-primo locale de_IT.UTF-8 keyboard de
aula-04 6c:4b:90:26:4d:72 cloneImage-img standalone light locale es_ES.UTF-8 keyboard es
lab-102 3c:7b:30:46:1e:8a cloneImage-img join piano-terzo wifi keyboard us locale en_GB.UTF-8 light
Nota
Si noti che l’ordine non ha importanza, purchè si rispettino la sintassi e la corrispondenza tra opzione e parametro.
La creazione del file /srv/clonezilla/computerList.txt può essere
effettuata anche automaticamente lanciando lo script:
fuss-fucc octolist NOME-IMMAGINE-CLONEZILLA
Viene creato il file computerList.txt.octo-new che può essere
copiato al posto di /srv/clonezilla/computerList.txt. Verificare che
la lista contenga tutti i pc che si intende aggiornare.
In questo modo, se si reinstalla in modalità automatica, ai client vengono assegnati gli stessi hostname e cluster di prima.
Nota
Le opzioni standalone, light, locale, keyboard, wifi dovranno eventualmente essere aggiunte a mano.
Modifiche recenti
Tra la fine del 2024 e l’inizio del 2025 sono state introdotte due modifiche allo script clientScript al fine di evitare che tutti i pc clonati con clonezilla ereditassero dall’immagine lo stesso machine-id e le stesse chiavi ssh che le rendevano indistinguibili nel file /root/.ssh/known_hosts . Lo stesso ssh ci avvisa quando ci colleghiamo per la prima volta ad una macchina che la stessa chiave è presente in diversi altri client.
Per «sanare» la situazione nei client già installati si possono utilizzare gli stessi comandi riportati nel seguente script bash:
#! /bin/bash
# Cancella le vecchie chiavi
rm /etc/ssh/ssh_host_*
# Rigenera le nuove chiavi
dpkg-reconfigure openssh-server
# Rimuovi i vecchi machine-id
rm -f /etc/machine-id /var/lib/dbus/machine-id
#Rigenera i nuovi machine-id
dbus-uuidgen --ensure=/etc/machine-id && dbus-uuidgen --ensure
# Riavviare la macchina per evitare conflitti tra vecchio e nuovo machine-id
reboot
Nota
Prevedendo lo script un riavvio, si raccomanda di lanciare lo stesso, o la serie di comandi che contiene, solo quando non vi sono utenti loggati.
Installazione del client
Una volta eseguito quanto sopra indicato si avviino in network
boot(PXE) i PC da installare (in genere si preme il tasto F12 ma
potrebbe variare a seconda del computer).
Il menu presenta due possibili scelte, automatica o manuale ,
come indicato nello screenshot seguente. La modalità automatica è il
default ma richiede ovviamente che il file computerList.txt sia
compilato correttamente.
In modalità automatica non occorre praticamente fare nulla, l’immagine viene copiata, il client viene rinominato e joinato o meno alla rete ed eseguite le altre opzioni come indicato in computerList.txt. Nel caso la computerList contenga errori o incongruenze ci verranno poste delle domande in modo interattivo.
Clonezilla boot
Sempre in modalità automatica, se il mac-address non compare nella computerList ci verrà chiesto di inserire le varie opzioni interattivamente anche attraverso finestre di scelta che possono semplificare parecchio il lavoro.
In caso qualcosa non vada a buon fine, si può optare per
l’installazione manuale. In tal caso il client carica clonezilla, ma per
il resto si installa il client quasi come se si usasse una chiavetta, la
partizione contenente le immagini viene montata previa autenticazione
con password (si scelga skip al momento di scegliere la sorgente).
Clonata l’immagine bisognerà lanciare:
fuss-client -H <hostname>
per rinominare il client ed agganciarlo al server.
Configurazione del cambio automatico della password di root
FUCC è in grado di modificare automaticamente la password di root dei
client clonati con una criptata che gli viene passata. Per
configurare il cambio password eseguire sul server lo script:
fuss-fucc rootpw
ed inserire due volte la password di root da dare ai client. Di norma questo script dev’essere ovviamente eseguito prima di iniziare a clonare le macchine.
Accesso all’interfaccia di amministrazione OctoNet
Aprendo il browser da un qualsiasi PC/notebook della LAN all’indirizzo http://proxy:13402, è possibile accedere all’interfaccia OctoNet di configurazione della rete didattica e da questa, tra le altre funzioni, si possono creare le utenze della rete didattica. L’amministratore è l’utente root e la password è la Master Password impostata durante l’esecuzione di fuss-server.
Questa modalità però comporta che tutto il traffico passi in chiaro, pertanto è fortemente sconsigliata, si utilizzi un tunnel SSH come illustrato nel paragrafo dedicato all’uso di OctoNet, che non espone al rischio di intercettazione delle credenziali di accesso.
Reti WiFi
La configurazione delle reti WiFi può essere effettuata sia contestualmente alla configurazione generale del Fuss Server (secondo le istruzioni di Installazione di FUSS server tradizionale) che in un secondo tempo.
In particolare si suppone che siano già correttamente configurate le interfacce di rete per la rete interna (quella rivolta verso le macchine delle aule) ed esterna (quella da cui si accede ad internet).
Il Progetto FUSS propone la creazione delle seguenti 3 reti WiFi sulla base dell’esperienza maturata nelle scuole:
WiFi «Guest» (precedentemente chiamata «Hotspot»): questa rete prevede autenticazione WPA2 Enterprise attraverso Freeradius ai soli utenti autorizzati lato server e facenti parte del gruppo «wifi». E” prevista per dispositivi personali e/o forniti dalla scuola per i quali l’accesso al dispositivo è esclusivo.
WiFi «LAN» (precedentemente chiamata «WiFi Corporate»): questa rete prevede l’autenticazione di tipo WPA2 Personal da parte del dispositivo in modo del tutto trasparente all’utente; è prevista solo per client FUSS (tipicamente PC portatili) che intendano usare la connessione WiFi quale alternativa alla rete cablata per la rete interna.
Wifi «Devices»: è prevista per tutti quei dispositivi condivisi da più utenti (MIM, smart tv, visori 3D, ecc.) che necessitino di una connessione ad internet diretta facile da configurare in modalità WPA2 Personal.
Gli SSID delle reti WiFi LAN e WiFi Devices possono essere nascosti, qualora ciò non sia causa di problemi di connessione per alcuni dispositivi.
Vediamo ora la configurazione di ciascuna rete.
WiFi «Guest»
In un’ottica di costante miglioramento dal punto di vista tecnologico e dell’esperienza utente, a partire dal FUSS Server 12 la rete WiFi non viene più gestita tramite un Captive Portal. Il server espone la porta del servizio FreeRadius e demanda agli AccessPoint, attraverso il protocollo WPA Enterprise, l’autenticazione degli utenti.
E” necessario disporre di una terza interfaccia di rete sulla quale
sia già assegnato un IP statico da destinare al server FUSS. Negli
esempi successivi assumeremo che si tratti di ens20.
Questa interfaccia non necessariamente dovrà essere quella cui si collegano fisicamente gli access-point (di seguito AP); questi ultimi possono anche essere collegati alla rete interna del server: in questo secondo caso, visto che l’interfaccia della rete interna dovrà gestire anche il traffico del WiFi, si consiglia di fare il bond di due o più interfacce (protocollo 802.3ad - LACP «Link Aggregation Control Protocol») al fine di offrire una maggior larghezza di banda garantendo anche il failover automatico.
Per installare il necessario a gestire la rete Wi-Fi con la nuova
infrastruttura occorre eseguire il comando fuss-server create con
l’opzione --wifi-guest:
fuss-server create --wifi-guest
che provvederà a richiedere, qualora non siano già definiti, i dati
necessari alla configurazione. Come per gli altri questi vengono
mantenuti nel file /etc/fuss-server/fuss-server.yaml In particolare
saranno richiesti:
interfaccia di rete su cui attestare la rete WiFi (nell” esempio
ens20)indicazione della rete IP e relativa maschera (ad esempio
172.16.0.0/19)
Un esempio di sessione di configurazione è la seguente:
Configuration of «Guest» WiFi Interface
Il server FUSS, una volta ultimata la configurazione, esporrà la porta 1812 per l’autenticazione RADIUS da parte del controller / degli access point e permetterà (ma registrerà) il traffico verso la WAN. Solo le porte 80 e 443 sono permesse.
Nota
l’installazione della rete WiFi crea il gruppo wifi (si
vedano a tal proposito i due file /etc/group ed
/etc/octofuss/octofuss.conf). Di default gli utenti di una rete
scolastica non appartengono al gruppo wifi e pertanto non hanno
l’autorizzazione per accedere alla rete WiFi; devono essere
esplicitamente autorizzati in OctoNet.
Abilitazione di un IP ad eseguire query verso FreeRadius
La policy di default configurata da FUSS Server prevede di rigettare tutte le query che pervengono a FreeRadius.
Si rende pertanto necessario inserire l’IP del controller ed altri eventuali dispositivi che dovranno contattare FreeRadius nel file /etc/freeradius/3.0/clients.conf:
# FUSS ARUBA AP
client 172.16.31.250/32 {
secret = testing123
nas_type = other
}
...
Sostituire l’IP del controller wifi 172.16.31.250 con quello effettivo nonché il parametro secret, qui valorizzato con testing123, con un’opportuna password generata randomicamente.
Autenticazione via RADIUS su controller Aruba
Come prima cosa è necessario collegarsi via browser all’interfaccia web di management del controller ed eseguire l’accesso.
Selezionare quindi «Configurazione» > «Reti».
I parametri da modificare sono i medesimi sia che si crei una nuova rete sia che se ne modifichi una esistente.
Una volta aperta la procedura di creazione/modifica della rete WiFi, selezionare «Mostra opzioni avanzate» in basso a sinistra.
Giungere allo step 3 (Sicurezza).
Una volta selezionato «Enterprise» come «Livello di sicurezza» e «WPA2-Enterprise» come «Gestione chiavi», la voce «Server di autentic. 1» diventa configurabile. Crearne uno nuovo (o selezionare quello già creato se più reti WiFi sono presenti) come in figura.
L’indirizzo IP del server dipende dalla rete scelta durante la
configurazione fatta con fuss-server cp. Nell’immagine è stato
scelto 10.1.0.1, mentre nel nostro esempio va inserito
172.16.0.1.
La configurazione della rete risulterà quindi come di seguito:
Salvare la configurazione della rete e verificare che questa funzioni correttamente in modalità WPA2-Enterprise.
WiFi «LAN»
Questa rete viene proposta per i client FUSS (PC portatili) che dispongono solo di connessione WiFi e per i quali l’utilizzo della rete cablata per l’accesso alla LAN delle scuole non è praticabile. Questa rete non viene gestita dal fuss-server, i client sono visti come collegati alla LAN.
Schema di funzionamento
Attraverso il multi-SSID e l’utilizzo delle VLAN, i client privi di connessione cablata vengono equiparati a quelli che invece ne sono dotati. La LAN viene trasportata sull’infrastruttura WiFi e consegnata al dispositivo. Divenendo, di fatto, come qualsiasi altro PC presente nella rete, una volta configurato, il suo funzionamento al di fuori della portata della rete WiFi sarà impossibile se non in modalità off-line.
L’esperienza utente sarà del tutto equiparata ai PC fissi, permettendo l’autenticazione sul server, l’accesso ai file memorizzati nella home, alle cartelle condivise, ecc. per questo non è necessario nessun cambiamento sul server FUSS.
Interconnessione della LAN all’infrastruttura WiFi
Si rende necessario far sì che gli AccessPoint dispongano di un collegamento verso la rete LAN perché venga trasmessa attraverso un SSID dedicato. La soluzione più rapida è quella di trasportare la LAN sulla rete del WiFi attraverso una VLAN.
Consegna del bridge su interfacce multiple lato Proxmox VE
Consiste nel riconfigurare il virtual bridge dedicato alla LAN per consegnare su più di una porta, più specificamente sia sulla scheda di rete dedicata alla LAN sia su una VLAN sulla scheda di rete del WiFi.
Ciò è realizzabile anche con soli switch unmanaged; qualora, invece, si utilizzino switch managed è opportuno configurare con attenzione le VLAN associandole alle porte. Se gli AP sono stati connessi alla porta fisica dedicata alla rete interna (LAN) del server FUSS, la configurazione sarà più semplice e si consegnerà direttamente sulla LAN.
Esempio di configurazione
Si prenda come esempio la seguente configurazione iniziale:
In questo esempio i bridge sono configurati come di seguito:
vmbr0, dedicato alla WAN, ha come interfaccia genitore eth0;
vmbr1, dedicato alla LAN, ha come interfaccia genitore eth1;
vmbr3, dedicato al WiFi, ha come interfaccia genitore ens5f1.
Sarà sufficiente modificare la configurazione del vmbr1 aggiungendo la stessa interfaccia del WiFi e la VLAN di consegna separate da un punto.
Configurazione degli AP Aruba
Collegarsi al controller Aruba Instant On quindi, dal menu laterale, scegliere “Configurazione” → “Reti”. Premere sul pulsante di aggiunta “+”.
Al primo passo, inserire il nome della rete e lasciare le altre impostazioni come predefinite.
Al secondo passo, selezionare “Statica” come “Assegnazione VLAN client” ed inserire l’ID VLAN scelto in precedenza.
Al terzo passo, impostare la passphrase per l’accesso tramite “WPA2-Personal”.
Terminare l’ultimo passo confermando le impostazioni predefinite.
Per evitare confusione da parte degli utenti, è possibile modificare la rete appena creata, selezionare “Mostra opzioni avanzate in basso a sinistra” e, sotto “Varie”, selezionare “Nascondi” per SSID per rendere la rete nascosta, ove ciò non comporti problemi di accesso per alcuni dispositivi (client FUSS).
Provisioning degli apparati condivisi
È consigliabile eseguire la prima configurazione del client utilizzando la rete cablata. Può essere eseguito il provisioning classico utilizzando FUSS FUCC.
Una volta effettuato il join del client alla rete sarà sufficiente
eseguire fuss-client passando come argomenti l’SSID della rete
WiFi estensione della LAN e la password. Verrà automaticamente
riattivato Network Manager ed impostata la connessione alla rete
all’avvio.:
fuss-client -U --wifi-ssid 'FUSS_LAN' --wifi-pass 'PASSWORD'
Fatto questo, la connessione cablata non sarà più richiesta all’avvio ed il client contatterà automaticamente il server attraverso la WLAN.
Prima di riavviare il client, verificare che il wifi non sia disabilitato:
nmcli radio wifi
Qualora risulti disabled, attivarlo con:
nmcli radio wifi on
WiFi «Devices»
Questa rete è dedicata a tutti quei dispositivi condivisi da più utenti (MIM, smart tv, visori 3D, ecc.) che necessitino di una connessione ad Internet diretta, facile da configurare in modalità WPA2 Personal. La connessione a Internet viene gestita dal server FUSS, che fornisce DHCP, DNS e routing verso Internet.
Configurazione lato Proxmox VE
E” necessario creare un nuovo bridge associandovi una VLAN
sull’interfaccia prevista per il WiFi. Partendo dall’esempio mostrato
poco sopra per la rete WiFi LAN, si può creare il bridge
vmbr4 al quale associare la VLAN 1200 sull’interfaccia ens5f1.
Rendere effettive la configurazione fatta premendo «Apply configuration».
Sulla VM del server FUSS nella sezione «Hardware» aggiungere un nuovo
network device sul bridge vmbr4. Il server FUSS vedrà ora una
nuova interfaccia di rete. Sia essa a titolo d’esempio ens21.
Configurazione di fuss-server
Per installare il necessario a gestire la rete Wi-Fi Devices con la
nuova infrastruttura occorre eseguire il comando fuss-server create
con l’opzione --wifi-devices:
fuss-server create --wifi-devices
che provvederà a richiedere, qualora non siano già definiti, i dati
necessari alla configurazione. Come per gli altri questi vengono
mantenuti nel file /etc/fuss-server/fuss-server.yaml In particolare
saranno richiesti:
interfaccia di rete su cui attestare la rete WiFi (nell” esempio
ens21)indicazione della rete IP e relativa maschera (ad esempio
10.10.0.0/20)
e tramite l’esecuzione di fuss-server verranno eseguite le seguenti operazioni:
la nuova interfaccia sarà configurata con uno specifico file in
/etc/network/interfaces.dassegnando il primo indirizzo IP della rete indicata dadevices_networkal server FUSS;sull’interfaccia sarà attivato il servizio DHCP, e saranno accessibili dai client i servizi DNS e NTP sull’IP del server, pubblicati via DHCP. Il range del DHCP lascerà disponibili per configurazioni statiche i primi e gli ultimi 20 indirizzi della rete indicata da
devices_network;il server FUSS farà da default gateway per la rete, consentendo un accesso diretto a Internet senza nessun filtraggio.
Un esempio di sessione di configurazione è la seguente:
Configuration of «Devices» WiFi Interface
Configurazione degli AP Aruba
Collegarsi al controller Aruba Instant On quindi, dal menu laterale, scegliere “Configurazione” → “Reti”. Premere sul pulsante di aggiunta “+”.
Seguire gli stessi passi indicati nella sezione Configurazione degli AP Aruba per la rete WiFi LAN variando, ovviamente, i parametri: scegliere un nuovo SSID (nome della rete), assegnare l’ID VLAN come configurato in Proxmox VE poco sopra (1200 nell’esempio) ed impostare una passphrase per questa nuova rete WPA2 Personal.