1. Homepage
  2. Articoli
  3. Video
  4. Bash scripting
  5. Sistema
  6. Tips
  7. News


GNU/Linux Internet Point

» Author: Andrea Ganduglia Date: 2005-12-07 12:09:22 Copyright: (c)2005 Andrea Ganduglia

Sono molte le occasioni in cui si ha la necessità di rendere pubblica una postazione Internet e si vuole allo stesso tempo che questa non sia utilizzata per altri scopi o che gli utenti navighino al di fuori di un certo sito. Penso in primo luogo agli Internet Point gratuiti dentro le università o altre istituzioni (o perché no, per strada), a certi PC dentro le aziende o le biblioteche, dedicati esclusivamente alla consultazione via web di database, ai PC presenti negli stand in occasioni di manifestazioni, fiere o altri eventi pubblici.

Queste postazioni hanno un nome semi tecnico Kiosk Web Browser o Kiosk Client e in breve si tratta di PC che come unica funzione hanno quella di permettere di accedere al web attraverso un browser, mentre tutte le altre funzioni sono disabilitate o necessitano di autenticazione (username e password). Esistono ovviamente molte soluzioni, soprattutto commerciali, che permettono di fare questo, via software o con hardware dedicato, ma quella che propone questo articolo ha tre vantaggi indiscutibili: 1) è gratuita, 2) è facile da implementare, 3) ha una grande flessibilità.

Cosa serve

Gli ingredienti di base sono soltanto due:

  1. Debian Sarge
  2. Opera Browser

Prima di andare avanti, lasciatemi spiegare perché Opera e non Firefox. Opera, ancorché gratuito, è un software proprietario e quindi stona un pochino con il titolo di questo articolo, ma l'ho scelto perché è uno straordinario browser ed ha una modalità Kiosk che funziona molto bene ed è molto flessibile, contrariamente a quella di Firefox (IMHO, intendo). Comunque, coloro che seguono Openclose.it sanno che il sottoscritto ha comunque un debole per il browser norvegese :-/.

Fortunatamente, GNU/Linux è una piattaforma così libera che vi darà modo di ignorare quello che dirò su Opera e scegliere il browser che più vi piace.

Al lavoro

Come prima cosa occorre installare Debian Sarge; fermatevi all'installazione di base, perché davvero servono pochissimi altri pacchetti e non vale la pena installare tutto l'ambiente desktop. Ricordatevi ovviamente di abilitare la rete!

Installazione dei pacchetti necessari

Terminata l'installazione date:

root:~# apt-get install x-window-system-core gdm

Questi due pacchetti dovrebbero portarsi dietro tutte le dipendenze necessarie per avviare X11 e il login manager gdm.

A seguire scaricate il pacchetto .deb di Opera e installatelo con:

root:~# dpkg -i opera.version.deb

Se scegliete la versione static non avete problemi di dipendenze, altrimenti seguite le istruzioni di apt per risolverle.

Configurazioni preliminari

Prima di tutto creiamo un utente con cui lavorare, sarà poi l'utente che farà girare il nostro Kiosk:

root:~# adduser webuser

Ora, il primo passo è quello di editare il file ~/.Xsession relativo a questo utente, una configurazione minima è:

/usr/bin/opera

Avviamo gdm con /etc/init.d/gdm start e autentichiamoci come webuser. Ci troveremo di fronte ad una versione di Opera a tutto schermo, senza possibilità di ridimensionare la finestra, non abbiamo infatti installato alcun Window Manager); tuttavia questa modalità ci darà l'occasione di personalizzare Opera (font, toolsbar, plug-in, etc.). Quando siamo contenti usciamo da Opera e fermiamo gdm.

L'ultima cosa da fare è rinominare il nostro file ~/.Xsession in modo che sia possibile tornare a questa modalità in qualsiasi momento.

mv /home/webuser/.Xsession /home/webuser/.Xsession.old

Configurare la sessione X

Il comportamento di una sessione X può essere controllato attraverso il file ~/.Xsession nella $HOME dell'utente che la esegue. Noi useremo questo file per far sì che all'utente webuser appaia una versione di Opera spogliata di molte funzionalità e che gli permetta soltanto di esplorare il web, ma non ad esempio, di stampare, scaricare file, cambiare le configurazioni, etc. Editiamo quindi il file ~/.Xsession e scriviamo:

1 	/usr/bin/X11/xset -dpms
2 	/usr/bin/X11/xset s off
3 	/usr/bin/opera -kioskmode -kioskresetstation -nochangebuttons
  	-nochangefullscreen -nocontextmenu -nohotlist -nomaillinks
  	-nominmaxbuttons -nodownload -noexit -noprint -nosave -nosplash
	-nosysmenu -nomenu -resetonexit 
	http://www.openclose.it

Le prime due righe indicano alla sessione di non spegnere mai il monitor (Energy Star, vedi man xset) e di non attivare eventuali screensaver, in questo modo il video sarà sempre attivo e sempre visibile. La terza riga, invece, istanzia Opera nella modalità kioskmode; al termine di questa linea c'è la URL a cui Opera deve collegarsi. I numeri di linea ovviamente, non devono essere riportati all'interno del file.

Opera Kioskmode

Come dicevo in apertura, Opera possiede una modalità kioskmode davvero ben fatta e molto flessibile. Attraverso una serie di argomenti passati da linea di comando è possibile personalizzare il browser per adattarlo a credo qualsiasi esigenza nel contesto in cui ci stiamo muovendo.

Da questo screenshot è possibile vedere come la sessione X sia stata ridotta alla sola finestra del browser, browser che dopo un certo tempo di inattività tornerà alla homepage, non può essere ridimensionato né chiuso, non ha menù contestuali, non permette all'utente alcuna personalizzazione dell'interfaccia, non ha accesso al filesystem, e viene resettato nel momento in cui viene chiusa la sessione.

Un elenco completo delle opzioni si trova nella documentazione di Opera, anch'essa fatta bene e molto chiara.

Opera6.ini

Le ulteriori configurazioni di Opera si devono fare attraverso il file ~/.opera/opera6.ini che come suggerisce l'estesione ha la struttura tipica degli INI file.

Settare la homepage
[Personal Info]
Home URL = http://www.openclose.it
Tempo di inattività

Se si desidera che il browser torni alla homepage dopo un tempo espresso in secondi di inattività:

[Special]
Go Home Time Out = 120
Limitare il dominio

Se si desidera che Opera navighi solo all'interno di un certo dominio o un gruppo di domini:

[Adv User Prefs]
URL Filter File = /home/webuser/.opera/filterurl.ini

filterurl.ini conterrà le istruzioni per limitare i domini e avrà una struttura simile alla seguente:

[prefs]
prioritize excludelist=0

[include]
http://www.openclose.it/*

[exclude]
*

Per una spiegazione esaustiva di opera6.ini fare riferimento alla pagina operaini sul sito di Opera.

Autologin per webuser

Fino a questo punto il nostro kiosk client è compatibile anche con xdm o altro login manager. Abbiamo però installato gdm per un motivo specifico: l'autologin. gdm permette infatti il login automatico di un utente al primo avvio, e il login temporizzato dopo un certo tempo di inattività. Entrambe le cose possono essere fatte direttamente dall'interfaccia grafica di gdm, ma per chiarezza elenco le configurazioni da apportare al file /etc/gdm/gdm.conf, anch'esso un file INI.

[daemon]
AutomaticLoginEnable=true
AutomaticLogin=webuser
TimedLoginEnable=true
TimedLogin=webuser
TimedLoginDelay=3

A questo punto al primo avvio la macchina lancerà la sessione X di webuser con le configurazioni viste sopra, mentre se la sessione dovesse finire per qualche motivo, basterà aspettare 3 secondi e il nostro kiosk client sarà di nuovo a disposizione degli utenti.