linux-pro

Page 1

Pos IItaliane Poste aliane Spa - Ta Tariffa R R.O.C. - Abb. Post. - D.L. 353/2003 (conv. In L. 27/02/2004 n. 46) art. 1, comma 1, DCB Milano - In caso di mancato recapito inviare al CMP di Roserio per la restituzione al mittente - Distributore: M-Dis Distribuzione SPA Milano R.O

N. 108 - SETTEMBRE 2011 - RIVISTA + DVD € 5,90

BackTrack 5 Δ Sabayon 6 Δ FreeNAS 8.0 Δ Kongoni 2011 Δ Aura 1.7 Δ Firefox 5.0.1 Δ WINE 1.3.24 Δ Wireshark 1.6.1 Δ

Diventa protagonista nel mondo Linux

PRO

D V D O L RN II E V T O ’I N TR LL A

Δ App Android con animazioni Δ Firefox 5 al massimo

Testa la solidità delle difese della tua rete trasformandoti in pirata con BackTrack CAMERA OSCURA Tutti gli strumenti per diventare fotografi di livello professionale

ACCESSIBILITÀ Cosa offre il Free Software per aiutare gli utenti con disabilità

HTC FLYER IIl ttablet able ab lett 7 7’’’ co conn ppennino per prendere pren pr ende dere re gglili aappunti pppun untii aall vo vvolo olo lo

FFINESTRE A DIETA

SEMPRE ORGANIZZATI

X è il Window Manager super Xfce leggero per non rinunciare a nulla le

Mai più foglietti e post-it, ora le note si gestiscono con Tomboy

SOFTWARE PER TUTTI Come funziona Mono: la soluzione per creare programmi cross-platform con tecnologia .Net

L I N U X PRO N °108 - M E N S - A N N O I X-11 € 5,90


FRITZ!Box - e la casa è tutta in rete!

ADSL VDSL

WLAN

Phone

DECT

Media

FRITZ!Box Fon WLAN 7390 – Internet, telefonia, media in tutta la casa FRITZ!WLAN Repeater N/G FRITZ!WLAN Repeater estende la portata della rete wireless semplicemente premendo un pulsante, indipendentemente dal router WLAN o dallo standard utilizzati. Con l’uscita audio e il minitrasmettitore FM integrato, FRITZ!WLAN Repeater trasmette la tua musica preferita all’impianto stereo o alla radio.

NUOVO!

Connessione a banda larga in tutte le stanze? Con FRITZ!Box Fon WLAN 7390 è facile, perché è compatibile con ogni tipo di standard e di apparecchio. E ti porta in Internet a una velocità incredibile. ADSL e VDSL con performance fino a 100 MBit/s Dual WLAN N per l’impiego contemporaneo di frequenze da 2,4 e 5 GHz Centralino per telefonia fissa e VoIP e stazione base DECT integrati Disco di rete integrato con funzione NAS Media server per distribuire in rete musica, immagini e film Gigabit Ethernet e due porte USB 2.0 Su www.fritzbox.eu trovi tutte le novità sui prodotti FRITZ! Seguici anche su www.facebook.com/FRITZBox.it

11/010

Il pluripremiato FRITZ!Box:

www.fritzbox.eu


Editoriale

Finalmente BackTrack Vi abbiamo fatto attendere un po’ l’annunciata serie di articoli sulla distro BackTrack, dedicata alla sicurezza, ma a nostra volta stavamo aspettando che venisse rilasciata la nuova versione del sistema. Ora che BackTrack 5 è finalmente disponibile, la potete avviare dal lato A del DVD di questo mese, potrete poi leggere i segreti di chi si occupa, per professione, di penetration test nell’articolo di copertina e in quelli che seguiranno nei prossimi mesi. Man mano imparerete a pensare e ad agire come i pirati informatici, l’unico modo per essere in grado di verificare sul serio la solidità dei firewall e delle altre difese informatiche di una rete. I nostri esperti non vi mostreranno tutte le possibili opzioni degli strumenti che andranno a utilizzare, piuttosto si concentreranno nello spiegarvi come interpretarne i risultati. In questo modo sarete in grado di agire anche in situazioni diverse rispetto a quelle evidenziate nei nostri articoli. Questo è il piatto forte del numero, ma non è certo l’unica pietanza. Subito dopo l’articolo di cover trovate altri due pezzi molto interessanti. Il primo riguarda Tomboy, uno dei migliori strumenti liberi per prendere note sul computer, ma anche su smartphone e tablet Android. Il secondo, invece, illustra alcuni software che consentono l’uso del computer a quelle persone che soffrono di qualche tipo di disabilità. In questo il Free Software ha fatto molto,

ma ancora di più può fare. Ci siamo poi divertiti a giocare con l’accelerometro del nostro smartphone Android programmando delle animazioni, mentre chi ha una mezza idea di creare una Web App può studiare il codice del nostro sito di raccolta segnalibri realizzato con CakePHP. Proseguendo, invece, nell’esame delle distro o dei programmi meno diffusi iniziato da qualche numero, la sezione Primi passi di questo mese vi mostra come si può adottare un Window Manager leggero come Xfce senza rinunciare a nulla. La sezione dei test, tra le altre cose, vede di nuovo la comparsa di un netbook con Linux (in particolare Ubuntu) preinstallato. Lo commercializza Asus, la società che per prima ha avuto l’idea di produrre questi piccoli portatili, e che dopo molto tempo accantona, almeno in alcuni suoi modelli, Windows 7 Starter per preferirgli l’amato Pinguino. Il tutto a un costo alla portata di tutti, come avrebbero dovuto essere i netbook fin dall’inizio… Tutto sommato crediamo di aver preparato un buon numero per il ritorno dalle vacanze: se avete suggerimenti o proposte di articoli, scrivete in redazione e cercheremo di accontentarvi, se possibile. Buona lettura.

LINUX PRO PRO

Massimiliano Zagaglia Responsabile di redazione

CONTATTI Domande alla redazione: redazione@linuxpro.it Abbonamenti: abbonamenti@linuxpro.it Arretrati: arretrati@linuxpro.it Problemi con il DVD: aiutocd@sprea.it Sito Web: www.linuxpro.it Oppure inviate le vostre lettere a: Linux Pro, Sprea Editori S.p.A., Via Torino 51, 20063 Cernusco S/N Telefono: 02.92432.1 LXP108 SETTEMBRE 2011 1


Sommario

Sommario LXP 108 Settembre 2011

LINUX

PRO

Benvenuti nel centottesimo numero di Linux Pro, la vostra guida definitiva a Linux e al mondo Open Source

In primo piano

Hacker d’assalto L’arte 10 dell’intrusione: per testare veramente la robustezza delle difese informatiche gli esperti si “travestono” da attaccanti. Noi vi mostriamo quali tool usano per farlo

08 Coreboot 2 LXP108 SETTEMBRE 2011

22 Tomboy

26 Accessibilità


Sommario 04 Newsdesk

Attenzione!

Recensioni

Le novità del mondo Open Source

47 I test del mese

06 Mailserver

Approfondimenti

Le recensioni di questo mese: Δ MeeGo 1.2 Netbook Edition Δ Endian UTM Mercury Δ Asus 1011PX Δ In libreria: Creare applicazioni con Google Earth e Google Maps; Atmel AVR Microcontroller Development

10 L’arte dell’intrusione

56 Da non perdere

I segreti dei pentester

Quattro applicazioni libere da provare!

22 Tomboy

Tutorial

Filo diretto con la redazione

08 FAQ: Coreboot Il sostituto libero del vecchio BIOS

Il modo migliore per prendere appunti

60 Primi passi

26 Accessibilità

Le meraviglie di Xfce

I tool che consentono a chiunque di usare il computer

64 Foto professionali

30 Filesystem

I migliori strumenti per organizzare e ritoccare gli scatti digitali proprio come fanno i professionisti

Il funzionamento della FAT

34 Trucchi per sysadmin Tutto ciò che dovete sapere su Mono

Android 38 News Android

70 Firefox Come sfruttare al massimo il browser

76 CakePHP Create un sistema di registrazione e gestione di segnalibri

Tutte le novità sul sistema di Google

80 Bash e Zenity

40 HTC Flyer Il tablet con il pennino

Uno sguardo alle finestre di dialogo più elaborate utilizzabili negli script

41 Xperia Play

86 Certificazione LPI

Smartphone per videogiocatori incalliti

Imparate a gestire i processi

41 Devo WeWeb

90 Hardcore Linux

Il televisore diventa smart con Android

Rendete più sicure le installazioni Kickstart viste lo scorso numero

42 Programmazione Imparate a sfruttare il sensore di gravità e l’accelerometro del vostro smartphone

96 Guida software Guida al software presente nel DVD

40 HTC Flyer

www.linux.it/LUG

L’eco dei LUG Uno spazio aperto ai gruppi di utenti Linux in Italia per segnalare appuntamenti, iniziative e nuovi progetti

A PAG 94

Linux Pro è disponibile in un’unica edizione, rivista + DVD doppia faccia da 8 GB. Il DVD è all’interno

IL DVD IN BREVE LATO A Δ DESKTOP Δ Qtractor 0.4.9 Δ Rapid Photo Downloader 0.4.1 Δ Sawfish 1.8.1 Δ Sunflower 0.1a Δ Task Coach 1.2.24 Δ Wxcam 1.1 Δ DISTRIBUZIONI Δ BackTrack 5 Δ FreeNAS 8.0 Δ SMS 1.6.1 Δ GIOCHI Δ FreeLords 0.4.2 Δ Hydra Slayer Δ Pushover 0.0.3 Δ Solumns 0.1 Δ SuperTuxKart 0.7.2 Δ INTERNET Δ Aria2 1.12.0 Δ BaGoMa 1.10 Δ Barefoot 1.0.0 Δ BlueGriffon Δ RIVISTA Δ Caesar’s Code 0.1 Δ Enable Viacam 1.5 Δ Powder Toy 47.4 Δ Synergy 1.4.2 Δ Firefox 5.0.1 Δ SICUREZZA Δ Wireshark 1.6.1 Δ SISTEMA Δ WineTricks Δ SVILUPPO Δ gEcrit 2.7 LATO B Δ DISTRIBUZIONI Δ Aptosid Δ Kongoni Δ Sabayon 6 Δ PCLinuxOS Quando trovi questo bollo negli articoli, cerca il software nel DVD

PRO dentro il

RISPARMIA! ABBONATI A LINUX PRO Vai a pagina 74 LXP108 SETTEMBRE 2011 3


Newsdesk

Ogni mese tutte le novità dal mondo delle aziende e della comunità Open Source

Licenze

Creative Commons v. 3.0

http://creativecommons.it è il punto di riferimento per chi vuole saperne di più sulle licenze CC in Italia

I

l 25 giugno scorso, il centro NEXA del Politecnico di Torino, che segue per l’Italia il progetto Creative Commons, ha annunciato la nascita della terza versione delle licenze CC sul sito creativecommons.it gestito e diretto dallo stesso centro NEXA. Le licenze Creative Commons (CC) vennero ideate nel 2001 dal professore statunitense Lawrence Lessig, ispirato anche dal movimento per il Software Libero, nato nei primi anni ‘80 su impulso di Richard M. Stallman, che ha rivoluzionato il modo di gestire il diritto d’autore con particolare riferimento al software. Le licenze CC, infatti, richiamano al loro interno le famose “quattro libertà” concesse dalla licenza GNU/GPL: libertà di riprodurre; libertà di creare opere derivate;

4 LXP108 SETTEMBRE 2011

libertà di ridistribuire l’opera nella sua forma originaria o modificata. Nel corso degli anni le licenze CC hanno subito una fortissima diffusione e la stessa enciclopedia libera, Wikipedia, le ha adottate per distribuire i contenuti. È crescente anche il numero degli autori che affidano le loro opere a una licenza di tipo CC.

Lo scopo della licenza Con le licenze CC, in sostanza, si è voluto creare uno strumento duttile attraverso il quale ogni autore “illuminato” e desideroso di concedere a chiunque di godere in modo libero delle sue opere, potesse farlo in modo semplice anche senza essere dotato di particolari competenze giuridiche. Il titolare dei diritti d’autore (unico soggetto legittimato a imporre una qualsiasi licenza all’opera)

ha a disposizione diverse licenze CC tra cui scegliere a seconda del grado di libertà che intenda concedere sull’opera stessa. Le licenze CC si differenziano tra di loro per una diversa modulazione di quattro clausole di base: BY (Attribution); NC (Non Commercial); ND (No Derivative Works); SA (Share Alike). Quasi tutte le licenze CC (tranne le licenze CC0 “no rights reserved”, o licenze di “public domain”, che non richiedono neppure di indicare l’autore originario) hanno in comune la clausola BY, ossia quella clausola che impone a chiunque riceva l’opera di indicare sempre chi sia l’autore originario dell’opera. Nell’ipotesi in cui, cioè, taluno crei un’opera derivata partendo da un’opera rilasciata sotto una qualsiasi licenza CC, non potrebbe in alcun caso eliminare i riferimenti

all’autore originario né imporre alcuna condizione relativa all’opera che restringa i termini contenuti nella stessa licenza CC. La clausola NC, invece, impedisce che l’opera venga utilizzata per scopi commerciali. Qualsiasi libertà concessa dalla licenza CC sarà limitata alle ipotesi in cui non venga fatto un uso che sia prevalentemente inteso o diretto al perseguimento di un vantaggio commerciale o di un compenso monetario privato. Si specifica, inoltre, che la diffusione delle opere coperte dalle licenze CC attraverso sistemi di condivisione digitale (ad esempio nelle reti P2P) non è mai considerato un uso commerciale, tranne nelle ipotesi in cui lo scambio digitale delle opere sia subordinato al pagamento di un compenso. Con la clausola ND il titolare vuole impedire a chiunque di utilizzare la sua opera per crearne un’altra derivata. La licenza Creative Commons contenente la clausola “Share Alike” (SA) consente tutte le libertà fondamentali consentite dalla stessa CC-BY ma impone all’autore delle opere derivate di applicare anche a queste ultime la medesima licenza applicata dall’autore dell’opera originaria. Quindi, ad esempio, qualora l’opera originaria sia rilasciata sotto licenza CC BY-NC, la medesima clausola NC dovrà essere imposta anche dalla licenza sull’opera derivata la quale, in sostanza, non potrà essere utilizzata per scopi commerciali. Le licenze Creative Commons, come tutte le licenze cosiddette di “copyleft” - in quanto pensate per concedere delle libertà, non per limitarle – non devono essere pensate come incompatibili con i concetti di diritto d’autore o di copyright! Non bisogna ritenere che esse si contrappongano allo sfruttamento del diritto d’autore,


Newsdesk ma anzi, concedono le libertà correlate sfruttando proprio le norme in materia di diritto d’autore. Le norme sul diritto d’autore, infatti, prevedono che sin dal momento della creazione dell’opera – che abbia particolari requisiti di originalità e di creatività – l’autore diventa titolare di determinati diritti sull’opera (negli ordinamenti come quello italiano si distingue tra diritto morale d’autore e diritto patrimoniale d’autore). Da quel momento l’autore dell’opera può decidere in quale modo gestire il diritto a lui spettante per legge sull’opera. Con le licenze l’autore manifesta la sua volontà riguardo la gestione del diritto d’autore a lui spettante sull’opera.

Le pagine del centro NEXA del Politecnico di Torino (http://selili. polito.it/) sono un’altra ottima fonte d’informazioni sulle CC

Libertà!

Le novità

Le licenze tradizionalmente intese vengono utilizzate al fine di regolamentare le restrizioni sulle opere in modo più forte e rigoroso rispetto a quanto previsto di “default” dalle leggi sul diritto d’autore. In questo modo, alla tutela di base – già fortemente limitativa per i fruitori dell’opera – si aggiunge quella disposta dal titolare dell’opera mediante le licenze. Con le licenze “libere” si sfruttano le tutele offerte per legge al titolare dell’opera in modo innovativo e – si potrebbe dire – rivoluzionario. È il titolare dell’opera che decide di fornire a chiunque delle libertà sull’opera rinunciando a parte delle garanzie che gli vengono offerte in modo pressoché automatico dalla legge sul diritto d’autore. Le licenze create in un particolare periodo storico possono trovarsi di fronte a modifiche normative, innovazioni tecnologiche o problemi di applicazione pratica tali da indurre gli ideatori delle stesse licenze ad apportare alle stesse delle modifiche in modo da restare fedeli ai principi ispiratori di libertà e di condivisione del sapere, affrontando le novità o gli “imprevisti” che si siano manifestati nel corso degli anni. Anche in quest’ottica le licenze Creative Commons hanno subito, nel corso degli anni, alcune modifiche e adattamenti fino ad arrivare all’odierna versione 3.0.

Tra le principali novità, degne di menzione nella terza versione delle licenze CC, deve, innanzitutto, menzionarsi la “localizzazione” delle stesse che, però, non deve essere intesa come una mera traduzione dall’inglese all’italiano, quanto, piuttosto, di un adattamento delle stesse alle peculiarità delle norme sul diritto d’autore dell’Ordinamento italiano e in genere europeo, rispetto alle norme sul copyright tipiche dell’Ordinamento statunitense. Bisogna evidenziare, però, che esistono anche versioni “unported” delle CC, ossia licenze non adattate e non “localizzate”

in Δ

a specifici ordinamenti giuridici ma rilasciate in versione “tradizionale”. Inoltre sono state introdotte indicazioni sulle licenze compatibili, in particolare con la CC-SA, come con la GNU/FDL (free documentation license). La versione 3.0 prevede, inoltre, che il linguaggio utilizzato dal creatore di un’opera derivata, nel menzionare l’autore originario, così come richiesto dalle CC-BY, non deve in alcun modo affermare o fare intendere che sussista un qualsiasi collegamento con l’autore originario o che quest’ultimo sponsorizzi o avalli il creatore dell’opera derivata: in questo modo si vuol consentire di preservare il prestigio e la

reputazione degli autori stessi. Un altro problema affrontato e risolto dalle licenze Creative Commons 3.0 è quello relativo al diritto sui generis sulle banche dati. Le banche dati sono protette sia dal diritto d’autore (che coprono la creatività e originalità dell’organizzazione dei dati al loro interno e, quindi, il complesso delle scelte organizzative) sia dal diritto “sui generis” (che, invece, tutela il lavoro fatto dal “costitutore” della banca dati nel raccogliere tutti i dati). Le licenze CC 3.0 per l’Europa sono dunque caratterizzate dalla completa rinuncia a far valere il diritto sui generis sulle banche dati. Resta impregiudicato il diritto d’autore sulla struttura della banca dati, diverso dal diritto “sui generis” come appena visto. Ciò che questo elemento di novità delle CC vuol garantire è il libero utilizzo dei fatti e delle informazioni contenute nella banca dati. Le licenze Creative Commons dimostrano di aver raggiunto un buon grado di maturità anche grazie al lavoro incessante e meritorio di persone come il Prof. Juan Carlos De Martin (leader del progetto Creative Commons Italia) e di tutti gli accademici e i professionisti che collaborano ai progetti che danno un forte incentivo alla diffusione della cultura libera. Avv. Francesco P. Micozzi - www.micozzi.it LXP

breve

VMware e OVH

OVH, leader europeo nell’ambito dell’hosting, ha deciso di standardizzare la propria offerta di cloud privata sulla tecnologia VMware. Con il Private Cloud, l’utente costruisce la propria infrastruttura su misura. Ogni cliente potrà gestire fino a 256 host, 64 TB di RAM, 25.600 GHz di CPU, 12.288 core, 10.000 macchine virtuali e 40 Gbps di banda passante. Una volta ordinate le risorse, queste saranno disponibili in meno di tre minuti! Questa flessibilità è ideale per gestire i picchi di attività. L’offerta Private Cloud si sviluppa in tre pack di

partenza (a partire da 428,00 € al mese), composti da due server e da uno spazio di archiviazione ognuno. Per ogni risorsa, il cliente potrà scegliere la modalità di fatturazione: all’ora o al mese. Per saperne di più: www.ovh.it/private_cloud/. Δ

Aggiornamenti da AVM

Una pioggia di novità da AVM per i suoi FRITZ!Box Fon WLAN 7390 e 7270, oltre a un firmware in italiano per FRITZ!Fon MT-F (il cordless di AVM). Tra le funzioni aggiunte trovate una opzione di controllo genitoriale più evoluta, l’aggiornamento completo a IPv6 e il potenziamento del segnale con la

funzione di ripetitore DECT. Anche l’app per Android e iPhone diventa più semplice e pratica, installano il nuovo firmware nel router. Δ

Mozilla e le aziende

Mozilla ha ristabilito il suo gruppo di lavoro dedicato al mondo delle imprese. Si tratta dell’Enterprise User Working Group, uno spazio dedicato a sviluppatori aziendali, staff IT e sviluppatori di Firefox nel quale confrontarsi sulle sfide, le idee, e le best practise per l’utilizzo ottimale del browser di casa Mozilla all’interno delle aziende. http://tinyurl. com/3jjvwqn

LXP108 SETTEMBRE 2011 5


Mailserver I nostri esperti offrono ogni mese i loro consigli di programmazione e di amministrazione del sistema

Scriveteci! Se avete dei dubbi di natura tecnica, o volete semplicemente commentare i contenuti della rivista e del DVD inviate una e-mail a redazione@linuxpro.it oppure spedite una lettera al seguente indirizzo: Linux Pro Sprea Editori S.p.A. Via Torino, 51 20063 Cernusco S/N (MI) Invitiamo inoltre tutti i lettori a partecipare al nostro forum che si trova all’indirizzo Web www.linuxpro.it, oppure a collegarsi al nostro canale IRC #lxp ospitato dalla rete irc.freenode.net.

Mirror di siti e Flash Salve, sono un vostro lettore da un po’ di tempo e mi sono appassionato a Linux. Ho un problema: vorrei scaricare totalmente dei siti Web per leggerli offline, ma non so come fare. Esiste qualche strumento che lo faccia? Inoltre, vorrei fare la stessa cosa con i filmati Flash: è possibile scaricarli sul disco fisso? Sto usando Ubuntu. Buon lavoro. Giorgio Ciao Giorgio. Per il tuo primo quesito, hai a disposizione due strade. La prima prevede l’uso di un tool da riga di comando, wget. Questo strumento serve per scaricare file da Internet e, tra le tante sue opzioni, ne trovi una che serve per fare la copia di un sito Web. La forma più semplice è wget -m http://indirizzo.sito.web che copia tutto quanto in locale. Se provi a digitare man wget scopri le altre opzioni, ad esempio -l per specificare la profondità massima dei link da seguire. Altri switch ti consentono di inserire eventuali nome utente e password, passare da un proxy, agire sui cookie e altro ancora. In alternativa puoi scaricare il tool grafico HTTracker Website Copier (lo trovi nell’Ubuntu Software Center). Tramite un’interfaccia Web, questo strumento ti guida passo passo nella configurazione del download del sito da compiere. Hai il massimo controllo sul tipo di file da scaricare, sulla profondità dei link da esplorare, sul numero di file

R

da scaricare in contemporanea e su tantissime altre voci. In pratica HTTracker Website Copier esegue lo stesso lavoro di wget, però dando all’utente la possibilità di controllare tutto tramite un’interfaccia Web e non dovendo ricordare tante opzioni. Passiamo ora al tuo secondo quesito, come scaricare in locale i filmati Flash che si trovano su YouTube o altri siti. Esistono diversi programmi aggiuntivi per Firefox adatti allo scopo, uno di questi è Flash and Video Download: una volta

NETFLY UP4 WNA A La chiave USB Wi-Fi NetFly UP4 WN (codice A02-UP4-W300N), è un prodotto di Atlantis (www.atlantis-land.com), azienda italiana impegnata nel settore del networking. Il dispositivo ha le dimensione ridotte, tipiche delle chiavi USB, ma al suo interno nasconde nuovissime caratteristiche tecniche che garantiscono prestazione senza precedenti. NetFly UP4 WN si basa su un client USB chipset Ralink 2870 compatibile con i sistemi Windows VISTA/XP/2000/7, Linux e MAC OS X. Il dispositivo supporta le più recenti specifiche IEEE 802.11n e la tecnologia radio MIMO (Multiple Input - Multiple Output) che permette sia una velocità di trasferimento dati fino a 300 Mbps, sia un’ampia copertura wireless. Inoltre la chiavetta è compatibile con una vasta gamma di apparati Samsung HDTV (LED, LCD e Plasma). Nel caso della compatibilità Linux, nella confezione si trova un CD con i driver, ma se avete un kernel della serie 2.6.29 la chiave viene riconosciuta senza fare nulla. Il prezzo dell’Atlantis NetFly UP4 WN è di 39,90 euro IVA inclusa.

GIOCATI UN SUDOKU, TE LO OFFRE: A S O LO

€1,00

ICOL A EDIC IN N Ì I D R E N E V I I T T U T LA REGOLA E’ UNA SOLA Per giocare a SUDOKU si deve riempire la griglia in modo che ogni riga, ogni colonna e ogni riquadro contengano le cifre da 1 a 9 una sola volta. Per esempio, una riga è formata da 9 quadretti. In ciascuno dei quali va scritta una cifra scelta tra 1,2,3,4,5,6,7,8,9. Nella riga ciascuna cifra deve comparire una sola volta. Ci sono 9 righe e in ciascuna vale sempre la stessa regola: Sempre la stessa regola vale anche per le colonne. Ci sono 9 colonne, da riempire con le stesse cifre da 1 a 9, senza che si ripetano. Infine ci sono i riquadri 3x3, per un totale di 9 quadretti. In ciascun riquadro ogni cifra a 1 a 9 deve comparire una sola volta. Il gioco consiste nel riempire di cifre tutte le 81 caselle, rispettando contemporaneamente le regole per le righe, le colonne e i riquadri.

Difficoltà semplice


MailSERVER installato, questo tool mette un’iconcina blu. Se ci clicci sopra con il mouse vedrai un elenco dei filmati Flash (*.swf) presenti nella pagina e che puoi scaricare con un semplice click.

Wi-Fi per il desktop Buongiorno, dopo aver installato Linux nel portatile ho deciso di farlo anche sul desktop. Però ho un problema: se volessi usare anche con il desktop la rete Wi-Fi, dovrei usare una chiave USB Wi-Fi, giusto? Me ne potete consigliare una? Massimo Ciao Massimo, per usare il Wi-Fi con il desktop puoi dotarti o di una scheda Wi-Fi interna, da installare, oppure usare una più pratica chiave USB, come suggerisci. Non tutte le chiavi USB Wi-Fi, però, funzionano al volo con Linux. Alcune non vanno proprio, altre vanno ma bisogna installare i driver, operazione non sempre facile. In questo senso, recentemente Broadcom ha semplificato il compito degli utenti. Per darti un esempio concreto, però, possiamo suggerirti una chiave USB che abbiamo provato di recente e che è compatibile con qualunque distro che adotti un kernel 2.6.29 (o successivo) e viene riconosciuta al volo, senza fare altro. Parliamo dell’Atlantis NetFly UP4 WN, di cui puoi leggere le caratteristiche nel box che vedi in queste pagine.

R

Kernel 2.6.39 in Ubuntu Salve, sto cercando di installare un kernel recente della serie 2.6.39 in Ubuntu. Non è ancora presente nei repository e ho trovato delle istruzioni in Internet, ma non funzionano. Potete aiutarmi? Guido Ciao Guido, ti indichiamo la procedura (almeno al momento di andare in stampa) che abbiamo seguito noi per installare il kernel che ci indichi. Siamo andati all’URL http://kernel.ubuntu. com/~kernel-ppa/mainline/v2.6.39.2-oneiric/ e abbiamo scaricato i file .deb per la nostra piattaforma, nel nostro caso a 32 bit, cioè i due .deb con i386 nel nome e poi quello con all. Se hai un PC con CPU a 64 bit devi scaricare i file .deb con amd64 nel nome, oltre a quello con all, che vale per tutte le piattaforme. Fatto ciò abbiamo cercato di installarli con sudo dkpg -i *.deb incappando in un errore: il sistema richiedeva una versione aggiornata di module-init-tools che però, al momento, non si trova nei repository. Siamo quindi andati all’indirizzo https://launchpad.net/ubuntu/oneiric/i386/ module-init-tools/3.13-1ubuntu1, abbiamo scaricato il file .deb e lo abbiamo messo assieme agli altri, ripetendo il comando d’installazione dei pacchetti che, a questo punto, è andato a buon fine. LXP

R

COME ACCEDERE CON IL CELLULARE AI CONTENUTI SPECIALI DI LINUX PRO All’interno della rivista si trovano dei “quadrati magici” chiamati QR, acronimo di Quick Response, che consentono di accedere velocemente a contenuti esclusivi. Per visualizzarli è necessario avere uno smartphone o cellulare abilitato alla connessione Internet. Ecco cosa bisogna fare per accedere ai contenuti esclusivi di Linux Pro: 1 Scaricare e installare il programma gratuito i-nigma La procedura deve essere effettuata solo la prima volta. Una volta scaricato e installato il programma per la lettura dei codici QR questo funzionerà per ogni successiva lettura. Il programma per leggere i QR funziona su tutti i cellulari e smartphone dotati di fotocamera e connessione a Internet. Per ottenere il software basta inviare un SMS al numero 0044 7797 882325 con la scritta i-nigma per aprire la pagina Web da cui scaricare il programma adatto al proprio smartphone. Oppure è possibile collegarsi al sito http://www.i-nigma.mobi. Comparirà una pagina in cui dovete cliccare sulla scritta Press here to install the reader on your device. Nel caso di uno smartphone Android salvate il file .apk, poi dalla pagina del download premete sul file e partirà la procedura per l’installazione. Cliccate su Installa e dopo pochi istanti i-nigma sarà pronto all’uso. 2 Inquadrare e scattare Dopo aver premuto l’icona del programma i-nigma non resta che puntare la fotocamera del dispositivo sul codice QR, avendo cura di restare a circa 10-15 cm dalla pagina della rivista, schermo del computer o iPad. Per conferma si dovrà premere ora il pulsante Accedi a Internet. Qualora si voglia velocizzare questo secondo passaggio occorre abilitare la voce Nessuna conferma all’interno del pannello Impostazioni e poi Connessione a Internet.

SCRIVICI CON UN CLICK Per scrivere a Linux Pro, non ti serve altro che fotografare con il tuo smartphone questo QR. Trovi le istruzioni nella pagina seguente.

LXP108 SETTEMBRE 2011

7


FAQ Coreboot

Alcune domande su...

Coreboot Pensate che il vostro computer sia libero? Sbagliato, quasi sicuramente state usando un BIOS proprietario. Linux Pro ha deciso di indagare su un progetto che sta provando a cambiare le cose definitivamente coreboot? È qualcosa » Allora, che ha a che fare con l’avvio del computer, giusto? Sì. Nello specifico, coreboot vuole sostituire il BIOS, vecchio di decenni e proprietario, che ancora si trova sulla maggior parte dei PC, con un’alternativa moderna e Open Source. aspetta! Che cos’è il BIOS? » Alt, BIOS sta per Basic Input/Output System. È un piccolissimo software memorizzato su un chip e a cui si ha accesso non appena il computer è acceso. Tutti sanno cos’è, almeno per caso: è la prima schermata che appare quando si accende il computer, di solito con sopra il logo del produttore. sì, che sembra sempre » Ah rimanere lì per secoli... Sì, beh, il BIOS di fatto fa un bel po’ di lavoro, perciò ha bisogno di un po’ di tempo. Il suo primo compito è di eseguire una serie di controlli che sono progettati, tra le altre cose, per scoprire quanta memoria è disponibile, inizializzare e catalogare tutte le periferiche disponibili e costruire un ambiente nel quale il sistema operativo del computer possa funzionare. Una volta fatta questa configurazione di base, identifica quale periferica è compatibile per l’avvio e passa il controllo a questa. sembra piuttosto complicato. » Wow, Ma se è ancora su così tanti PC oggi, deve funzionare piuttosto bene...? Nel qual caso, perché qualcuno sta provando a rimpiazzarlo? Anche se è vero che il BIOS funziona, ci sono almeno tre problemi seri legati al suo uso che hanno un pressante bisogno di essere risolti. sono? » EBeh, per cominciare ci sono un sacco di compiti duplicati. Gran parte dell’inizializzazione dei dispositivi che il BIOS fa era inclusa per supportare

8 LXP108 SETTEMBRE 2011

i vecchi sistemi operativi come il DOS. Questi non possedevano molti driver perciò avevano bisogno che il BIOS inizializzasse l’hardware e fungesse da collegamento. i sistemi operativi moderni » Invece includono i driver, giusto? Sì. I sistemi operativi come Windows, Linux e Mac OS includono un gran numero di driver. Il risultato è che una volta che il BIOS ha finito di caricare i suoi driver, l’intero processo è ripetuto di nuovo. Questo, ovviamente, non è molto efficiente e poiché i sistemi operativi moderni hanno un supporto dell’hardware migliore e caricano i driver più efficientemente, ha senso farlo quanto più possibile a livello di sistema operativo e non nel BIOS. poiché il BIOS è vecchio, rende » Quindi il mio computer più lento all’avvio? Giusto. Sebbene possa non sembrare un problema serio per l’utente qualunque, se siete l’amministratore di un enorme batteria di computer dove ogni sistema ha 128 GB di RAM e una dozzina di porte Ethernet, i controlli del BIOS possono richiedere molto tempo. bene, vedo che migliorare » Va questa situazione sarebbe utile, ma non mi sembra disperata. Cos’altro c’è? Bene, come abbiamo detto, il BIOS che viene fornito con la maggior parte dei PC è molto vecchio. Come risultato, ci sono poche persone che conoscono profondamente il suo funzionamento interno o gli strumenti diagnostici. quindi se rimango bloccato » Ah, al BIOS non avrò la più pallida idea di dove iniziare per sistemarlo? Esattamente, e non ci sono molte persone che saprebbero da dove iniziare. Lo stesso accadrebbe se tu avessi bisogno di estendere il BIOS per supportare un componente hardware insolito. Il BIOS È scritto in linguaggio Assembly per 8086 e qualunque sua estensione deve essere

scritta in questo linguaggio. La maggior parte degli sviluppatori ha molta poca esperienza con questo linguaggio. Fondamentalmente, aggiungere supporto per nuovo hardware sarebbe complicato. questo caso sembra più valido. » Umh... Qual è l’ultimo problema? L’ultimo problema è probabilmente il più serio, a seconda di quanto sei paranoico. Il BIOS fornito con la maggior parte dei sistemi è proprietario e, ovviamente, ha accesso illimitato all’hardware del computer al momento dell’avvio. Si potrebbe pensare che il BIOS si chiuda una volta trasferito il controllo al sistema operativo, ma non è così. Invece, rimane in esecuzione, il che significa che può avere accesso ai dischi, ai dati che scrivete su di loro e può fare quello che gli pare con la rete. Poiché si tratta di una massa binaria non esaminabile, scritta da chissà chi, se avete a cuore la sicurezza questo vi dovrebbe veramente spaventare. che mi preoccupa! Questo » Certo coreboot allora, risolve tutto questo? Come fa a farlo? Sì, lo fa. Il piano iniziale era soltanto di mettere Linux nella memoria Flash, cioè nel chip dove risiede di solito il BIOS. Questo avrebbe risolto tutti i problemi descritti prima, poiché molta gente conosce bene Linux, i driver sarebbero stati caricati una volta sola e, cosa più importante, è Open Source e quindi chiunque può esaminare il codice. Poiché il piano era semplicemente teso a rimpiazzare il BIOS con Linux, esso era chiamato originariamente LinuxBIOS. originario”? Sembra » “Piano che non abbia funzionato così. No... è venuto fuori che sebbene Linux possa eseguire molte configurazioni dell’hardware come il caricamento dei driver, ecc., se è in presenza di hardware che non è stato già acceso, presume proprio che sia disabilitato. In più, è venuto fuori che Linux non era capace di fare la configurazione iniziale di processori


Coreboot FAQ multicore e della memoria su alcuni sistemi. Questo ha significato che la squadra di coreboot ha dovuto scrivere un po’ di codice per compiere questa configurazione hardware di livello molto basso e poi cedere il controllo a Linux. dove vai a parare... questo » Vedo codice è un po’ come il “core” del processo di boot dal quale dipende tutto il resto. Perciò è il “coreboot”. Esattamente. se hanno scritto un sacco di codice » Ma nuovo, questo non cancella molti dei vantaggi di LinuxBIOS previsti originariamente? Non proprio. Per cominciare, coreboot è scritto quasi interamente in C e praticamente non contiene codice in linguaggio Assembly. Poiché il C è un linguaggio conosciuto, estenderlo, modificarlo o sistemarlo dovrebbe essere qualcosa che molti sviluppatori possono

fare. Coreboot è anche Open Source, perciò non c’è ragione di preoccuparsi di masse di codice binario non esaminabile in esecuzione sul vostro sistema. In più, poiché fa il minimo per ottenere l’ambiente configurato per Linux, evita anche la maggior parte dei compiti che con il BIOS sono duplicati. Questo approccio ha avuto anche qualche altro, inatteso, vantaggio. Quale? » Davvero? Beh, dopo che coreboot ha fatto le sue cose, lancia semplicemente un “payload”. Un payload è solo un altro programma che è memorizzato nel chip di memoria Flash accanto a coreboot e che svolge una specifica funzione. Potrebbe essere un kernel Linux, sebbene i chip di memoria Flash spesso non sono capienti abbastanza perché questa sia una possibilità realistica. Potrebbe anche essere, comunque, un bootloader come GRUB o SeaBIOS. Uno dei due vi permetterebbe

di avviare Windows, Linux o qualsiasi altro sistema operativo che possiate immaginare, da un disco fisso standard. Oppure potrebbe essere una serie di utility di sistema, o un gioco... c’è una lunga lista di possibilità. questo coreboot sembra » Wow, eccellente: veloce, sicuro e molto flessibile. Posso provarlo? Puoi, se hai un hardware supportato. In passato l’elenco dell’hardware compatibile era limitato, ma ha appena ricevuto un’accelerazione da AMD che ha annunciato che tutti i futuri prodotti che crea supporteranno coreboot. Per scoprire di più su coreboot, come iniziare e quale hardware è supportato, puoi controllare il suo sito Web www.coreboot.org. Vale la pena tenere presente che sostituire il BIOS è difficile e può rompere il tuo computer se fatto in modo errato. Fai attenzione e assicurati di sapere cosa stai facendo prima di iniziare. LXP

È un sostituto Open Source del BIOS

Attualmente supporta più di 230 schede madri diverse

È più veloce, più sicuro, più flessibile e più familiare

LXP108 SETTEMBRE 2011 9


Sicurezza

Dal Dal

Penetration Test all’ all’

AUDIT

Gli autori Paolo Sferlazza e Raoul Chiesa. Lavorano presso Mediaservice.

di di

Processo

Alla scoperta dei migliori strumenti usati dagli esperti di sicurezza per testare la qualità delle protezioni delle reti informatiche. In poche parole, l’arte dell’intrusione! al Penetration Test all’Audit di Processo: abbiamo pensato di utilizzare questo strano (e, magari per qualcuno, bizzarro) titolo come nome della rubrica i cui articoli vi accompagneranno nella scoperta di BackTrack (www.backtrack-linux. org) nel corso dei prossimi mesi. Molti di voi si staranno già chiedendo: cosa c’entra l’Audit di Processo con il Penetration Testing? Altri si domanderanno: perché mai si parla di Audit con BackTrack se ciò che a me interessa è solo bucare la rete del vicino per usare gratis la sua connettività? La prima e immediata risposta a quest’ultima domanda è molto semplice: bucare la rete del vicino è un reato penalmente perseguibile! Ma allora, stando così le cose, perché usare BackTrack… a cosa vi può servire una distribuzione Linux creata appositamente per il Penetration Test? Prima di iniziare a rispondere a tali questioni, ci sembra giusto spendere qualche parola sulle persone che cureranno questa serie di articoli che vi terranno compagnia almeno fino all’autunno. Siamo tre giovani auditor (Sandra, Fabrizio

D

10 LXP108 SETTEMBRE 2011

e Paolo) e lavoriamo per una Security Advisory Company; il nostro pane quotidiano sono quindi proprio gli audit e i penetration test. Insieme a noi collabora alla realizzazione di questa nuova rubrica Raoul Chiesa, che immagino tutti voi conosciate per il lavoro svolto negli ultimi quindici anni sul fronte dell’Ethical Hacking, sia nel nostro Paese che a livello internazionale. Prendendo spunto dall’articolo pubblicato su Linux Pro lo scorso gennaio 2011, BackTrack. Mettete alla prova la sicurezza del vostro sistema, in cui veniva fatta una prima panoramica generale sugli strumenti e le funzionalità messe a disposizione dalla distribuzione BackTrack, in questa serie di articoli vogliamo invece presentare alcuni tool che permettono di effettuare un’analisi esaustiva della sicurezza di una rete, non tanto concentrandoci sull’utilizzo dei programmi (esistono già tanti tutorial in Rete), quanto sull’esame dei risultati e su come usare questi ultimi per sfruttare eventuali falle di sicurezza del perimetro in oggetto, valutando nel contempo la sicurezza della vostra rete personale.

PRO dentro il k5 BackTrac GNOME


Sicurezza Sicurezza di processo e BackTrack Torniamo ora a parlare di audit di processo. Che cos’è e cosa ha a che fare con BackTrack? Quasi nessuno presta mai attenzione alla definizione completa che viene data di BackTrack sul sito ufficiale, pensando solo alla parte relativa al Penetration Testing e dimenticando quella riguardante la Security Auditing Linux Distribution. Fare una buona analisi preliminare, raccogliendo tutte le informazioni possibili, serve, per usare una metafora, a evitare di fare il viaggio da Roma a Milano passando per Palermo, Cagliari e Venezia, arrivando invece velocemente all’obiettivo. Nella nostra analisi e nel corso dei vari articoli con i quali vi accompagneremo in questo “viaggio” nel mondo BackTrack, faremo spesso riferimento alla metodologia OSSTMM. Per quanti di voi non conoscessero questa metodologia, l’Open Source Security Testing Methodology Manual è uno dei principali standard internazionali di riferimento per l’esecuzione di verifiche di sicurezza (www.osstmm.org). OSSTMM è in fase di sviluppo continuo da parte di ISECOM (vedi box a lato): il modello di riferimento per l’aggiornamento della metodologia in questione è infatti quello del peer-review. Si tratta di una metodologia scientifica che definisce esattamente quali elementi devono essere verificati, che cosa occorre fare prima, durante e dopo i test di sicurezza e come bisogna misurare i risultati ottenuti. Nello specifico, OSSTMM introduce una scala metrica per la misurazione del livello di sicurezza ed esposizione, permettendo quindi una valutazione oggettiva del rischio tecnologico legato al contesto oggetto di analisi. Questa metrica di sicurezza è definita RAV, acronimo per Risk Assessment Value, la quale trova un suo naturale impiego nell’instaurare un dialogo tra chi valuta gli aspetti tecnologici della sicurezza e chi, invece ne tocca gli aspetti più orientati ai processi, per eventuali approfondimenti vi rimandiamo al materiale informativo liberamente scaricabile all’indirizzo www.isecom.org/research/ravs.shtml. La metodologia OSSTMM, al fine di garantire la massima copertura del perimetro in esame, comprende cinque canali: Human, Physical, Wireless, Telecommunications e Data Networks. Nella nostra analisi ci concentreremo maggiormente sui Data Networks e sul Wireless. Inoltre, sebbene esuli dal discorso strettamente collegato alla distribuzione BackTrack, parlando di sicurezza di processo e per avere una panoramica completa sulla sicurezza logica, non si può non citare lo standard internazionale ISO/IEC 27001:2005. Questo standard è stato creato e pubblicato nell’ottobre 2005 a fini certificativi, in modo da costituire un sistema completo per garantire la gestione della sicurezza nella tecnologia dell’informazione: la sua pubblicazione ha sostituito la norma inglese BS 7799:2, che fino ad allora rappresentava la principale norma di riferimento per l’applicazione di un sistema di gestione per la sicurezza delle informazioni. Per eventuali approfondimenti vi rimandiamo a questo interessante documento: www.clusit.it/download/ Q05_web.pdf. L’obiettivo dello standard ISO 27001:05 è quello di proteggere i dati e le informazioni (in ogni forma) da minacce, al fine di assicurarne l’integrità, la riservatezza e la disponibilità, e fornire i requisiti per adottare un adeguato sistema che garantisca la sicurezza delle informazioni (SGSI), finalizzato a una corretta gestione dei dati sensibili dell’azienda. L’impostazione dello standard ISO 27001 si basa sull’approccio per processi, strutturato in politica per la sicurezza, identificazione, analisi dei rischi, valutazione

e trattamento dei rischi, riesame e rivalutazione dei rischi, utilizzo di procedure e di strumenti per l’audit interno, non conformità, azioni correttive e preventive, sorveglianza.

BackTrack 5 A proposito di versioni! Non ci eravamo ancora totalmente abituati a Nemesis (la release aggiornata di BackTrack 4 rilasciata lo scorso 24 novembre), che è già ora di pensare alla nuova release: BackTrack 5. Come potete leggere nella timeline, BT 5 è stata presentata in Europa durante il Salone Europeo Open Source che si è tenuto dal 10 al 12 maggio scorsi a Parigi. Gli sviluppatori hanno dato un taglio netto rispetto al passato, creando un sistema base ad hoc, pur se sempre basato su Ubuntu, con un’architettura di gestione completamente riprogettata. Tale cambiamento permette alla distro di essere maggiormente scalabile, così da supportare più architetture in modo semplice ed efficace, offrendo agli utenti la possibilità di scaricare, tramite un package manager,

œ

ISECOM ISECOM (Institute for Security and Open Methodologies) è un’organizzazione internazionale di ricerca senza scopo di lucro, fondata nel 2001 da Pete Herzog al fine di sviluppare e condividere metodologie Open Source nel campo della sicurezza delle

informazioni. ISECOM è inoltre un’autorità di certificazione riconosciuta e sostenuta da partner istituzionali.

Il piano dell’opera Δ In questo primo articolo, dopo una digressione su BackTrack, sulla sua storia e sui tipi di installazione possibili, andremo ad analizzare come si possano raccogliere informazioni sulla Rete con dei semplici tool. Nelle prossime pagine scoprirete come risalire alle informazioni riguardanti gli intestatari dei domini e degli indirizzi IP, proverete a vedere se sia possibile effettuare il c.d. DNS Zone Transfer, otterrete utili informazioni sui DNS e all’occorrenza anche sui Mail Server, ove presenti, e infine verificherete quanti e quali router (reti) sono posizionati tra voi e la rete che volete esaminare. La panoramica su come raccogliere informazioni terminerà parlando di motori di ricerca: un argomento che, anche se non strettamente legato alla distribuzione BackTrack, vi può fornire molteplici e utili informazioni sul target in esame. Δ Nel prossimo numero ci concentreremo invece su come si possa mappare la rete che vogliamo studiare, lanciando alcuni semplici comandi. Nella nostra analisi, oltre al classico Nmap utilizzeremo alcuni tool un po’ meno noti ai più. Al termine dell’articolo vedremo come sia possibile effettuare un’ipotesi probabilistica del sistema operativo installato sul target (OS fingerprinting). Δ In seguito, nella successiva uscita,

proseguiremo con uno degli argomenti che sicuramente stuzzicheranno molto la fantasia dei futuri utenti di BackTrack: la sicurezza delle reti wireless. Δ La nostra rubrica procederà poi con l’esame del framework Metasploit, sicuramente uno degli strumenti più completi per lo sviluppo e l’esecuzione di exploit verso una macchina remota. Δ In conclusione, nel corso dell’ultimo articolo di questa serie, andremo a verificare la sicurezza delle applicazioni Web, scoprendo come sia possibile rilevare classiche vulnerabilità, facendo riferimento a OWASP (The Open Web Application Security Project – www.owasp.org). Information Gathering

Port Scanning

Sicurezza delle reti wireless

Metasploit

Sicurezza delle applicazioni web

Piano dell’opera

LXP108 SETTEMBRE 2011 11


Sicurezza Timeline di BackTrack Ti

1.0 (maggio 2006)

2.0 (marzo 2007)

3.0 (luglio 2008)

Il progetto BackTrack rilascia la sua prima versione non-beta il 26 maggio. Questa distro nasce come LiveCD dalla fusione di due altre distribuzioni, WHAX e Auditor Security Collection. Il progetto originale fu ideato da Mati Aharoni, esperto di sicurezza in Rete, e Max Moser ed è attualmente il risultato di uno sforzo di collaborazione da parte di una comunità mondiale che ne cura lo sviluppo.

Il progetto BackTrack rilasciò successivamente due versioni Beta della nuova distribuzione (la release 2) nell’ottobre e nel novembre 2006. La versione stabile (2.0) fu rilasciata ufficialmente il 6 marzo dell’anno successivo. BackTrack 2 generò molteplici critiche, poiché la distribuzione non includeva i più popolari pacchetti di scan, a causa di problemi di licenze. Pochi mesi dopo (dicembre), anche a causa di queste difficoltà, la comunità rilasciava già la versione Beta di BackTrack 3.

La versione stabile BT3, studiata per avere maggiore compatibilità e flessibilità hardware, è stata rilasciata il primo luglio 2008. Tra le varie novità di questa release c’era l’inclusione, per la prima volta, del supporto per la lettura e scrittura in lingua giapponese.

1 In figura potete vedere le tante categorie in cui sono suddivisi i tool di BT5

i sorgenti di ogni applicazione, per poi compilare nella propria box l’applicazione in modo autonomo, con custom patch fuori dal circuito ufficiale. BackTrack supporta attualmente architetture a 32 e 64 bit, e in parte anche i dispositivi ARM (microprocessori RISC a 32 bit), il cui supporto crescerà ulteriormente in futuro. Al momento è possibile scaricare da www.backtrack-linux. org/downloads/ le immagini ISO di BT5 a 32 e 64 bit con GNOME e KDE 4. Come ormai consuetudine, per alcune versioni sono state rilasciate anche le immagini VMware. Nella versione 5 di BackTrack molti tool commerciali sono presenti in quasi piena usabilità (a parte piccole restrizioni su operazioni contemporanee) distribuiti sotto licenze free agli utilizzatori della distro. Nella nuova distribuzione la comunità di BackTrack ha incluso molti driver per migliorare il packet injection (vedi omonimo box) di svariate schede che hanno driver proprietari e i cui sorgenti non sono facilmente reperibili. Nelle precedenti versioni i tool erano organizzati in molteplici maniere, nell’attuale BackTrack 5 sono divisi in 12 categorie, come in Fig.1 (anche se la release è in continua evoluzione e la suddivisione in categorie dal primo rilascio a oggi è già stato modificato):

12 LXP108 SETTEMBRE 2011

Information Gathering Vulnerability Assessment Exploitation Tools Privilege Escalation Maintaining Access Reverse Engineering RFID Tools Stress Testing ¡ Forensics ¢ Reporting Tools 11 Services 12 Miscellaneous Alcune informazioni su queste categorie son già state presentate nel sopra citato articolo di Linux Pro (che trovate in formato PDF nel DVD allegato). Nei diversi articoli di questa rubrica ci concentreremo in particolare sulle prime quattro categorie; le ultime pagine di questo lungo articolo si focalizzeranno in particolare sugli strumenti messi a disposizione da BackTrack 5 per l’importantissima e delicata fase del cosiddetto Information Gathering.

Certificazione BackTrack Per quanti volessero approfondire la conoscenza di BackTrack, oltre a seguire la nostra serie di articoli, è possibile seguire i corsi per l’ottenimento della Offensive Security Certified Professional (OSCP), una certificazione di Ethical Hacking offerta da Offensive Security (www.offensivesecurity.com) che permette di approfondire la conoscenza dei tool di BackTrack. Per ottenere la certificazione OSCP è necessario attaccare con successo delle macchine presenti in un ambiente di test che riproduce un perimetro reale. Non sono richieste conoscenze specifiche preliminari, ma solamente la capacità di utilizzare i tool di BackTrack, sapendo soprattutto analizzare i risultati ottenuti da questi ultimi. A differenza di molte altre certificazioni, non è necessario rinnovarla annualmente. Il corso di preparazione (Pentesting con BackTrack), indispensabile per l’accesso


Sicurezza

4.0 (gennaio 2010)

5.0 (maggio 2011)

La release 4 viene rilasciata il 9 gennaio 2010. La nuova BackTrack 4, con nome in codice PwnSauce, lascia la sua base nativa SLAX adottando come base system la struttura di Ubuntu (Debian based). Questa distribuzione, proprio come Ubuntu, è munita di un proprio repository e di strumenti di sviluppo e aggiornamento, al fine di acquisire maggiore stabilità e facilità di utilizzo per gli utenti.

BackTrack 5 (Figura 3) è stata ufficialmente presentata in Europa durante il Salone Europeo Open Source che si è tenuto dal 10 al 12 maggio scorsi a Parigi. Rispetto alla versione 4, gli sviluppatori hanno voluto dare un taglio netto alla distribuzione Ubuntu, progettando un base system ad hoc, avente un’architettura di gestione completamente progettata per la distro.

all’esame di conseguimento della certificazione OSCP, viene offerto in due formati: nella classica formula del ciclo di lezioni in aula oppure in modalità online. Quest’ultimo è un pacchetto composto da video, PDF ed esercitazioni guidate di laboratorio. I laboratori sono accessibili attraverso una connessione Internet ad alta velocità e contengono una varietà di sistemi operativi e dispositivi di rete con i quali gli studenti possono testare i tool di BackTrack e rilevare le diverse vulnerabilità. Conclusa questa fase di formazione, si può sostenere l’esame di certificazione OSCP, che ha una durata di 24 ore in laboratorio. Per superarlo, è necessario documentare dettagliatamente le procedure utilizzate per il perimetro target e “bucare” il sistema in esame. In Italia il corso di preparazione al sostenimento dell’esame di certificazione OSCP è erogato, in lingua e con materiale in italiano, da Tiger Security (www.tigersecurity.it), nella sola forma di lezioni in aula ed esercitazioni di laboratorio. La certificazione OSCP dà diritto a 40 CPE (Continuing Professional Education), validi per il mantenimento delle certificazioni CISSP, CSSP, CISA, CISM o analoghe, richiedenti la formazione continuativa.

2 La schermata di partizionamento di BT5

non è possibile personalizzare BackTrack, installando e aggiornando i diversi tool. In effetti, come sicuramente ben sapete, non poter aggiornare gli strumenti a noi cari né installare gli ultimi plug-in rilasciati può essere un grosso limite,

Modalità d’uso BackTrack nasce come distribuzione pensata per essere utilizzata su LiveCD o LiveUSB, ma le modalità per avere a disposizione una BackTrack sul nostro PC o sulle spalle, nella borsa del portatile, sono molteplici. Partendo dall’assunto che tutti voi certamente sapete masterizzare un’immagine ISO e modificare il BIOS per far partire il boot da DVD, non ci soffermeremo su questo punto. Ci concentreremo piuttosto su alcuni aspetti riguardanti l’utilizzo da DVD o USB, che sicuramente è la modalità più semplice, adatta soprattutto ai meno esperti; in meno di cinque minuti (più una ventina di minuti per scaricare l’ultima ISO rilasciata sul sito ufficiale) e con una spesa di meno di un euro per l’acquisto di un DVD, avrete a disposizione la vostra copia di BackTrack. Sembra troppo facile però… dove sta l’inghippo? Con un LiveDVD

œ

Le origini di BT BackTrack deriva da due altre distro dedicate alla sicurezza. WHAX era una distribuzione a sua volta derivata da Whoppix 3.0, che, a differenza delle precedenti, basate su Knoppix, si basava su SLAX (si spiega così il nome WHAX). Auditor Security Collection, similmente a WHAX, era un distribuzione su LiveCD, basata però su Knoppix. Il progetto di Auditor Security Collection era stato sviluppato da Max Moser e includeva oltre trecento tool, organizzati in maniera molto

intuitiva. Da queste due soluzioni, Max Moser e Mati Aharoni hanno creato BT: a loro va sicuramente il merito di aver colmato una lacuna e soddisfatto una necessità della comunità internazionale di pentester! Da notare che al progetto partecipano anche alcuni italiani (Emanuele Gentili il primo italiano entrato nel gruppo ricopre il ruolo di coordinatore del progetto; Carlo Velletri, Emanuele Acri e Marco Rondini che fanno parte del team di sviluppo).

LXP108 SETTEMBRE 2011 13


Sicurezza Packet injection La packet injection è una tecnica usata per ottenere informazioni da una rete wireless inviandole pacchetti (che devono essere riconosciuti e accettati) per stimolarla a produrre di vettori di inizializzazione (IV). I prerequisiti per l’uso di tale tecnica furono individuati da tre ricercatori (Fluhrer, Mantin, Shamir) nel 1999 e sono: Δ primo byte in chiaro; Δ bisogna ottenere tanti pacchetti in modo

3 Macchina virtuale con BT5

da avere delle collezioni (ovvero insiemi di pacchetti con il medesimo IV); Δ necessità di almeno tre milioni di pacchetti per individuare una chiave (IV deboli). Una rete manipolabile con una Packet Injection può portare al recupero della chiave (quindi dall’accesso) da parte di terzi attraverso alcuni metodi di attacco quali Fragmentation Attack o Chop Chop.

che impatta sui risultati delle nostre analisi di sicurezza. Da notare come le stesse considerazioni possono essere fatte per l’installazione di BT su LiveUSB (a parte qualche euro in più per l’acquisto di una chiave USB da 4 GB). Anche se l’installazione su chiavetta è estremamente semplice, per completezza vi riportiamo i principali passi da seguire nel box Live su USB. Il tool che dovrete utilizzare per questa operazione è Unetbootin, che è possibile scaricare dal sito

http://unetbootin.sourceforge.net/unetbootin-linuxlatest. Assicuratevi di aver scaricato l’ISO più recente di BT 5 (Unetbootin può scaricare in automatico solo vecchie versioni della distro) e che la chiave USB sia formattata in FAT32 (se acquistate una chiavetta nuova dovreste già trovare questo filesystem). Forse qualche lettore si starà chiedendo se valga la pena “sprecare” così una chiavetta e se, per caso, non ci siano alternative migliori. La risposta a questa legittima domanda è: certo con un po’ di sforzo e qualche passaggio in più possiamo rendere persistente la nostra chiave USB. In questo modo avremo una distribuzione su chiavetta che potremo personalizzare a nostro piacimento, installando nuovi tool e aggiornandoli con continuità. Prima di illustrarvi come fare a rendere persistente la vostra chiavetta, lasciandovi un po’ di attesa e, speriamo, un pizzico di curiosità, vi presenteremo però altre due modalità d’installazione di BackTrack direttamente sulle vostre macchine, quindi senza l’ausilio di dispositivi rimovibili. Iniziamo parlandovi della classica installazione sull’hard disk del vostro PC. Con sette click e circa 25 minuti di paziente attesa, avrete la vostra BackTrack installata sul computer di casa o sul notebook. Prima di tutto dovete avere già pronto un LiveCD/DVD o un LiveUSB (soprattutto se volete installare BT su un netbook). Avviate normalmente il computer prestando attenzione a far partire il boot da supporto removibile (CD/DVD o USB). Una volta avviato BackTrack in versione live, vi troverete davanti la classica linea di comando. Digitate startx per avviare il motore grafico (per una volta si può anche usare la parte grafica). Sul desktop troverete un’unica icona (Install BackTrack), contenente uno script per avviare l’installazione. Un primo click e si avvierà il programma d’installazione. Vi verrà chiesto innanzitutto di selezionare la vostra posizione geografica, poi di impostare la lingua della tastiera. Un paio di click e vi verrà richiesto come volete partizionare il disco. Potete installare BackTrack su tutto il disco (ma non ve lo consigliamo, in quanto è meglio avere un’altra distribuzione come sistema operativo primario) oppure selezionare una parte di disco scegliendo l’installazione manuale. Circa 10 GB di spazio e 2 GB di swap saranno più che sufficienti. A questo punto è tutto pronto perché l’installazione possa partire: effettuate ancora un rapido controllo di tutte le informazioni immesse, soprattutto a quelle relative alle partizioni, e finalmente potrete installare. Un po’ di pazienza e potrete

Passo passo BT persistente

1

Inserire la chiave USB

Avviate il PC dal DVD o dalla chiave USB Live di BackTrack 5. Inserite poi la chiave USB su cui volete installare la vostra Persistent (deve avere una capacità di almeno 8 GB). Verificate che la chiave di memoria sia stata correttamente riconosciuta con il classico dmesg e prendete nota del dispositivo associato (molto probabilmente sarà sdb1 o sdc1).

14 LXP108 SETTEMBRE 2011

2

Partizionamento

Ora avviate lo script d’installazione che trovate sul desktop, come indicato in precedenza. Arrivati alla schermata di partizionamento, selezionate il dispositivo USB che avete inserito: fate attenzione a questo passaggio in quanto il programma di partizionamento seleziona come device di default l’hard disk della macchina da cui state eseguendo l’operazione.

3

Controllo finale

Procedete con i successi step fino ad arrivare alla schermata finale riepilogativa. A questo punto, prima di continuare, verificate nuovamente che il dispositivo selezionato sia effettivamente la vostra chiavetta USB, cliccando sul tasto Avanzato. A questo punto potete lanciare l’installazione... un po’ di pazienza e la vostra chiavetta sarà pronta per memorizzare tutte le personalizzazioni!


Sicurezza Passo passo Live su USB

1

Avviate il tool

Scaricate Unetbootin dal link indicato nel testo e rendete eseguibile il file. Avviatelo da terminale oppure con un doppio click dal file manager.

2

Caricate l’ISO

Attivate la voce Immagine disco, lasciate attiva l’opzione ISO e premete il pulsante sulla destra per selezionare l’ISO di BT5.

lanciare tutti i tool che BackTrack vi mette a disposizione direttamente dal PC, tenendoli sempre aggiornati.

Virtuale o persistente Ecco però che un nuovo quesito si affaccia spontaneo alla mente dell’installatore: supponiamo di avere già due distribuzioni e magari, per qualche strana ragione, di aver mantenuto quel bislacco sistema operativo che ci è stato fornito con il PC, oppure che l’hard disk sia già strapieno; siamo proprio costretti a installare il quarto sistema operativo? Ovviamente no! Anche se ormai siamo nell’era del Cloud Computing, possiamo sempre sfruttare le potenzialità che ci offrono i sistemi virtualizzati. Installare VMware Player (Fig.3) su qualsiasi distribuzione è un gioco da ragazzi. Se proprio siete pigri potrete scaricare dal sito ufficiale di BackTrack la macchina virtuale già confezionata, installata e pronta all’uso. Se invece siete più curiosi e smanettoni, il consiglio è di installare direttamente la distribuzione su macchina virtuale, senza utilizzare il pacchetto già confezionato. Tra l’altro, potrebbe essere anche un buon esercizio preliminare, nel caso decidiate successivamente di installare BackTrack sul vostro computer. Le ultime versioni di VMware Player vi permetteranno di creare una macchina virtuale, altrimenti potrete utilizzare uno dei tanti programmi free che consentono la creazione una macchina virtuale per VMware Player. Una volta generata la macchina virtuale, procedete con l’installazione di BackTrack, selezionando la sorgente da cui volete installare il sistema operativo: potete infatti decidere di installare BackTrack utilizzando il LiveDVD, oppure nel caso in cui non lo abbiate a disposizione, direttamente dall’immagine ISO. Unica limitazione è l’interfaccia di rete, che essendo un’interfaccia virtuale, potrebbe darvi qualche risultato sfalsato. Dopo avervi lasciato un po’ di suspence e aver esaminato quasi tutti i tipi di installazione di BackTrack, possiamo ora vedere la modalità forse più interessante: chiave USB persistent. Esistono diverse modalità per rendere una chiavetta USB con BackTrack “persistente”. A partire dalla nuova release 5, fortunatamente, non è più necessario come in passato effettuare passaggi macchinosi per sincronizzare il dispositivo e modificare i file di configurazione, correndo il rischio di sbagliare qualcosa e dover ripartire da zero. Per i più audaci inseriamo comunque il riferimento all’how-to per l’installazione “vecchia maniera”: www.backtrack-linux. org/wiki/index.php/Persistent_USB. I passaggi fondamentali per compiere questa operazione sono riportati nel box BT persistente. Seguite i passi indicati nel box;

3

Occhio all’unità

In basso nella finestra di Unetbootin verificate con cura di selezionare il giusto dispositivo USB su cui scrivere la distro, poi premete OK.

terminata l’installazione riavviate e fate il boot dalla chiave USB appena creata (attenzione: non spaventatevi se al riavvio, durante le fasi di boot, vi apparirà la schermata di Ubuntu 10.04, è solamente una questione di kernel; finita la procedura di avvio BackTrack 5 persistente sarà a vostra disposizione). Per verificare che la chiavetta sia realmente persistente salvate un qualsiasi file di testo sul desktop e riavviate. Se il procedimento è andato a buon fine, al riavvio il documento di testo dovrebbe essere sul vostro desktop. Ora che la vostra chiavetta è pronta, attaccate un cavo di rete e aggiornate subito BackTrack (con i comandi apt-get update e apt-get upgrade). Ricordatevi di mettere in stato up l’interfaccia di rete poiché alcune volte BackTrack non lo fa di default (usate il comando ifconfig) e di farvi dare tramite DHCP un indirizzo di rete (dhclient ethX dove X è il numero dell’interfaccia di rete, in genere 0) o di assegnarvi un indirizzo di rete valido sulla vostra rete di casa (operazione un po’ meno immediata, in quanto dovete essere sicuri che l’indirizzo IP non sia utilizzato da nessun altro dispositivo; inoltre dovete impostare gateway, netmask e DNS server).

Pronti ad attaccare Che confusione… ma allora LiveDVD, USB persistent, installata o virtuale? Che cosa è meglio? Beh, non esiste una risposta univoca a questa domanda. Potreste avere un’esigenza specifica, per la quale potrebbe risultare più utile un’installazione piuttosto che un’altra. Ad esempio, se volete solo imparare a usare i tool di BT, un semplice LiveDVD è più che sufficiente. Anche se non potete aggiornare o personalizzare la distribuzione non importa… ciò che conta è testare e imparare. Se invece lo scopo è avere la vostra distribuzione personalizzata sempre con voi, la soluzione ottimale è una persistent. Attenzione però! Perdere o dimenticare una chiavetta in giro è molto facile. Quindi uindi se nella vostra persistent ci sono risultati di Vulnerability bility Assessment o Penetration Test non è consigliabile portarsi la chiavetta sempre dietro… è molto più sicuro in questo to caso un’installazione su PC, magari utilizzando anche una cifratura completa del disco. Paolo, ad esempio, ha sempre un LiveCD nel baule della macchina, “per ogni evenienza” comee ricord ricorda da lui: “può sempre servire a recuperare i dati dal PC degli amici egli am micci che hanno un sistema operativo bislacco”. Bene, avendo endo ora a disposizione una copia del sistema operativo, installata nel modo che ci aggrada di più, possiamo iniziare a scoprire come utilizzarne i potenti strumenti, nti, partendo da quelli utili alla raccolta di informazioni: iniziamo quindi a parlare di Information Gathering.

œ

LXP108 SETTEMBRE 2011 15


Sicurezza L’autore Fabrizio Sensibile. Lavora presso Mediaservice.

Tip Vi consigliamo la versione a 32 bit di BackTrack (come quella che trovate nel lato A del DVD di questo mese), per evitare problemi con l’installazione di hardware “insolito” o vecchio con driver proprietari tipicamente rilasciati a 32 bit.

Tip Spesso il committente della verifica non ha molto chiara la sua situazione in termini di quanti sistemi siano presenti ed esposti su Internet, a causa di un cambio generazionale dei sistemisti, acquisizione di CED, espansione del settore informatico, eccetera.

Information Gathering Ora che abbiamo installato o avviato in modalità Live la nostra nuova distribuzione, come possiamo utilizzarla al meglio? Per evitare di impostare questo articolo come un libro game (facendovi saltare di qua e di la), cercheremo di non fare distinzioni tra chi potrebbe usare Backtrack per lavoro e chi la userà per interesse e cultura personale. È molto importante, sia che si operi professionalmente sia che lo si faccia per hobby, andare per ordine. Quando si pianifica un attacco è fondamentale raccogliere informazioni utili sul bersaglio, dall’altro lato chi deve eseguire una verifica di sicurezza si pone nei confronti di una rete oggetto d’analisi al pari di un attaccante, comportandosi proprio come se fosse un pirata che cerca di intrufolarsi. L’espressione informazioni utili potrebbe suonare un po’ troppo generica parlando di pianificazione di un test di sicurezza, quindi cerchiamo di schematizzare rapidamente quali informazioni dobbiamo raccogliere, vedremo in seguito invece come utilizzarle. Alla fine di questa prima fase dovremo ottenere, relativamente al target, una lista di nomi di dominio, una delimitazione di indirizzi IP, i sistemi attivi, una mappa logica della rete remota e infine una lista di nominativi ed e-mail del personale della realtà oggetto d’analisi.

Recuperare le informazioni Questa fase viene etichettata da sempre nelle definizioni di sicurezza informatica come Information Gathering e, non a caso, in Backtrack trovate un menu che riporta lo stesso termine (Fig.4). La prima cosa che gli addetti ai lavori noteranno in questo menu è la presenza di programmi e tools che normalmente vengono raggruppati come Network Security, questo perché la naturale evoluzione delle verifiche di sicurezza ha identificato come profilatura delle informazioni anche quegli elementi che una volta rientravano nella parte di penetrazione vera e propria, come il Port Scanning. Cercando di seguire un metodo di lavoro condiviso, procediamo con l’analizzare che tipologia di azioni dobbiamo intraprendere per ottenere le informazioni

4 Esplosione del menu “Information Gathering” di BackTrack 5

16 LXP108 SETTEMBRE 2011

necessarie a una verifica. La prima scelta che dovremo fare sarà in che ambiente operare, visto che nel sottomenu di Information Gathering troveremo quattro diversi ambiti d’applicazione: Network, Web Application, Database e Wireless. In questo articolo tratteremo solo la parte relativa alla Network Analysis, quindi la scelta è obbligata, và comunque detto che la maggior parte delle operazioni eseguite in questo ambito verranno poi utilizzate anche in ambienti applicativi o wireless.

Network Analysis: chi è chi? Seguendo l’ordine proposto da BackTrack, che riprende lo schema proposto dalla metodologia OSSTMM e il modus operandi di un attaccante reale, iniziamo con il cercare le informazioni basandoci sul nome del dominio di chi ci ha commissionato il test. Per cercare di esemplificare il più possibile prenderemo come esempio il dominio di fantasia cliente.it (Fig.5). La prima operazione da eseguire sarà l’interrogazione dei server whois per identificare i DNS di riferimento (autoritativi) e iniziare una profilatura dei responsabili IT della realtà oggetto d’analisi. BackTrack 5 propone molte scelte per eseguire questa richiesta, per praticità di lettura riportiamo un estratto dell’output generato dal comando whois cliente.it: Domain Name: CLIENTE:IT Administrative Contact , Technical Contact : Pinco, Pallino pinco@cliente.it Via del Cliente, 1 Torino, Italia 10100 Torino, Italy 1000 IT Phone: +39-011-1234567890 Fax: +39-011-1234567891 Domain servers in listed order: DNS.CLIENTE.IT 11.22.33.2 DNS2.CLIENTE.IT 11.22.33.3 Come possiamo notare dal listato, abbiamo evidenziato i risultati di interesse, tra cui identifichiamo due indirizzi IP


Sicurezza contigui (stessa subnet) assegnati ai DNS autoritativi del dominio su cui abbiamo eseguito la ricerca. L’ottica con cui dovremmo leggere i risultati delle interrogazioni fatte dovrà già essere di natura analitica. Il passaggio immediatamente successivo consisterà nel ripetere l’operazione di interrogazione al server whois per vedere a chi appartengono gli indirizzi IP del DNS, lavorando con BackTrack 5 abbiamo a disposizione dimitry, ottimo tool per accorpare le richieste. Riportiamo un estratto dell’output generato dal comando whois 11.22.33.2: inetnum: 11.22.33.0 – 11.22.33.255 netname: CLIENTE-NET1 descr: Cliente NOC country: IT admin-c: PP579-RIPE tech-c: PP579-RIPE status: ASSIGNED PA remarks: NOC Italia mnt-by: INTERB-MNT source: RIPE # Filtered Con questo risultato abbiamo ottenuto le informazioni necessarie a delimitare il nostro campo d’azione (Fig.6). Questo ci permette di lavorare nei limiti delle leggi: il nostro committente può autorizzarci a compiere delle azioni che, se non concordate, rappresenterebbero un reato. Abbiamo quindi la delimitazione della rete IP da testare, 11.22.33.0/24, una posizione geografica della sede legale, dei numeri telefonici di riferimento e il nome del titolare della gestione della rete pubblica, sia in termini tecnici che amministrativi. Come avremo modo di vedere nel resto dell’articolo, questo passaggio dell’Information Gathering sarà da considerarsi concluso solo al termine delle successive operazioni, in quanto potremo identificare domini o indirizzi IP differenti da quelli riscontrati sino ad ora.

MX

10

;; ADDITIONAL SECTION: mail-ext.cliente.it. 3597 IN A 11.22.34.2 dns.cliente.it. 2511 IN A 11.22.33.2 dns2.cliente.it. 2511 IN A 11.22.33.3 Il risultato ci mostra come alcune informazioni siano reperibili per forza di causa maggiore (il mail server dovrà sempre essere noto se vogliamo ricevere e-mail al nostro indirizzo di posta), ma possono contenere informazioni aggiuntive; in questo caso si tratta di un indirizzo IP differente rispetto alla classe precedentemente identificata. Per comodità di lettura ipotizziamo che quell’indirizzo sia fuori dalla delimitazione legalmente autorizzabile. Dovremmo a questo punto cercare di identificare ulteriori elementi censiti nel DNS. Per fare questo genere di operazioni potremo tentare di trasferire la zona oppure richiedere il Reverse DNS per ogni possibile host della rete. BackTrack ci propone parecchi strumenti per eseguire queste operazioni, nell’esempio seguente abbiamo utilizzato dnsrecon per trasferire la zona e nmap per fare reverse dns sulla classe IP d’interesse: # dnsrecon.py -t axfr -d cliente.it [*] Testing NS Servers for Zone Transfer [*] Checking for Zone Transfer for cliente.it name servers [*] Trying NS server 11.22.33.2 [*] Zone Transfer was successful!! [*] SOA dns.cliente.it. [*] NS dns2.cliente.it. [*] MX @.cliente.it mail [*] A @.cliente.it 11.22.33.4 [*] A squid.cliente.it 11.22.33.27 [*] A mail.cliente.it 11.22.33.5 [*] A web.cliente.it 11.22.33.4 [...]

A NS NS

11.22.33.2 dns2.cliente.it. dns.cliente.it.

# nmap -sL 11.22.33.0/24 Starting Nmap 5.51 ( http://nmap.org ) at 2011-06-21 10:08 CEST

Scavando nei DNS Seguendo il nostro ordine metodologico, passiamo ora a interrogare i DNS autoritativi del dominio di riferimento per cercare di individuare sistemi presumibilmente attivi. Le informazioni che un DNS server ci può dare sono molteplici e spesso ci permetteranno non solo di censire i sistemi, ma di individuarne anche la natura. Per essere più comprensibile, se individuassimo una macchina censita su un DNS server come squid.cliente.it, avremmo identificato, oltre a un sistema probabilmente attivo, anche il suo posizionamento ideale e la probabile funzione di proxy Web. Gli approcci e le verifiche che potremmo eseguire su questa tecnologia sono molteplici ed è per questo che vedremo solo alcuni dei tool che BackTrack ci propone per ottenere i risultati desiderati, in questo caso specifico utilizzeremo dig con argomento ANY: ;; QUESTION SECTION: ;cliente.it. IN ANY

5 Plausibile rete del committente di cui non conosciamo alcun dettaglio

Tip I menu per richiamare i tool di sicurezza basati su linea di comando aprono direttamente dei terminali, posizionandoli quando necessario nelle directory dove si trovano binari o script.

“Chi deve eseguire una verifica di sicurezza si pone al pari di un attaccante”

;; ANSWER SECTION: cliente.it. 3597 IN mail-ext.cliente.it. cliente.it. 2269 IN cliente.it. 2269 IN cliente.it. 2269 IN

œ

LXP108 SETTEMBRE 2011 17


Sicurezza

6 La rete del cliente prende forma e viene delimitata nel suo perimetro

Tip Ogni dominio e ogni indirizzo IP pubblico devono essere presenti sul server whois di riferimento. Per quanto riguarda i domini è bene ricordarsi che molti gestori dei TLD nazionali sono consultabili solo attraverso il Web, mentre per gli indirizzi IP abbiamo ripe.net, arin.net, apnic.net rispettivamente per Europa, Nord America, Asia/Pacifico.

Nmap scan report for 11.22.33.0 Nmap scan report for 11.22.33.1 Nmap scan report for dns.cliente.it (11.22.33.2) Nmap scan report for dns2.cliente.it (11.22.33.3) Nmap scan report for web.cliente.it (11.22.33.4) [...]

Seguiamo la strada Attraverso le verifiche effettuate sino ad ora abbiamo continuato a raccogliere dati relativi al nostro target, dovremmo ora concentrarci sui punti di contatto che la rete pubblica del committente ha con il resto di Internet. Il mezzo più semplice per ottenere queste informazioni consiste nell’eseguire un traceroute verso uno dei sistemi oggetto d’analisi. Alcuni di voi potranno considerare il programma traceroute un sistema privo di affidabilità nell’identificazione dei punti di passaggio, cosa assolutamente vera

7 La rete ora mostra nel dettaglio i suoi elementi fornendoci anche i sistemi attivi

18 LXP108 SETTEMBRE 2011

se per eseguire questa operazione ci basiamo sui tool normalmente utilizzati a questo scopo. Che noi usiamo traceroute o tracert (rispettivamente Linux e Windows), difficilmente otterremo delle risposte. Questo avviene perché per recuperare il fatidico Time Exceed in Transit, ovvero quella risposta che mette a video hop n° e indirizzo, i programmi nativi utilizzano pacchetti UDP su porte randomizzate o pacchetti ICMP Echo request (ping) per sollecitare i sistemi di transito. Tuttavia la maggior parte dei firewall tende a scartare quelle tipologie di traffico. Ecco un esempio: # traceroute -d web.cliente.it 1 28.22.104.1 1.612 ms 1.580 ms 2.029 ms 2 10.251.190.57 1.664 ms 1.629 ms 1.561 ms 3 10.251.186.24 3.069 ms 2.029 ms 1.834 ms 4 *** 5 89.96.200.150 4.885 ms 7.744 ms 2.029 ms 6 89.96.200.117 8.429 ms 4.870 ms 4.642 ms 7 194.20.5.165 5.176 ms 7.394 ms 5.217 ms 8 62.196.52.190 9.901 ms 7.020 ms 9.161 ms 9 194.244.43.10 5.877 ms 5.817 ms 7.394 ms 10 * * * 11 * * * 12 * * * […] 30 * * * La soluzione quindi consiste nell’inviare delle richieste con TTL incrementale che possano essere interpretate da eventuali filtri di percorrenza come traffico lecito, ad esempio se il nostro obiettivo fosse un sito in SSL del committente basterebbe inviare un SYN alla porta 443 per essere sicuri di raggiungere con la sollecitazione il sistema finale. Backtrack ci propone tcptraceroute a questo scopo:


Sicurezza 8 La ricerca dei livelli di profondità ha portato alla luce un firewall non censito sul DNS, che non risponde a richieste dirette

Tip Durante la fase di OS fingerprinting potremmo avere molte difficoltà a identificare la versione corretta di sistema operativo remoto, questo perché i tool si basano sul kernel del sistema remoto, che in alcuni casi varia di pochissimo rispetto ai precedenti sulla parte di stack TCP/IP.

# tcptraceroute web.cliente.it 443 1 28.22.104.1 1.612 ms 1.580 ms 2.029 ms 2 10.251.190.57 1.664 ms 1.629 ms 1.561 ms 3 10.251.186.24 3.069 ms 2.029 ms 1.834 ms 4 10.251.187.1 2.035 ms 1.079 ms 1.129 ms 5 89.96.200.150 4.885 ms 7.744 ms 2.029 ms 6 89.96.200.117 8.429 ms 4.870 ms 4.642 ms 7 194.20.5.165 5.176 ms 7.394 ms 5.217 ms 8 62.196.52.190 9.901 ms 7.020 ms 9.161 ms 9 194.244.43.10 5.877 ms 5.817 ms 7.394 ms 10 11.22.100.8 5.877 ms 5.817 ms 7.394 ms 11 11.22.33.254 6.967 ms 9.156 ms 6.260 ms 12 web.cliente.it (11.22.33.4) [open] 6.199 ms 6.558 ms 9.685 ms Identificato il punto di contatto tra Internet e la rete target, proseguiamo con altre due operazioni legate a questo tipo di verifica: la creazione di un posizionamento logico dei sistemi nella rete (toccare le mura) e la ricerca per vedere se questa rete ha più di un punto di ingresso in base all’origine della chiamata. Toccare le mura significa

vedere, in base alla distanza in hop, i livelli di profondità dei sistemi presenti sul target, eseguendo un traceroute per ogni indirizzo attivo sulla rete target. Potremo così, in base al numero di hop riscontrati, continuare a creare una mappa logica della porzione Internet. Se, ad esempio, incontriamo un host a n hop di distanza, dieci host a n+1 hop e un host a n+2 hop, avremo identificato il router perimetrale, i sistemi in DMZ e un host situato in un secondo livello di DMZ, ad esempio un database di back-end. Infine andiamo a vedere se arrivando da continenti differenti abbiamo rotte finali differenti tra loro. Per far questo purtroppo non dovremo andare fisicamente in paradisi esotici per eseguire un traceroute, ci basterà utilizzare un sito come www.traceroute.org che ci permette di lanciare traceroute da sistemi geograficamente posizionati in giro per il mondo. Qualora individuassimo differenti ISP che forniscono connettività per lo stesso host, avremo individuato anche differenti punti di contatto su cui continuare a condurre il test (Fig.8).

“Concentriamoci sulla rete pubblica del committente”

Legalità e port scanning In Italia eseguire una scansione di porte non rappresenta di per sé un reato, ma solo un’aggravante se ad esso fanno seguito tentativi di intrusione. Questo vuol dire che se non si è autorizzati è meglio non eseguire questo tipo di operazioni, anche perché molti provider disciplinano questo genere di traffico vietandolo nel contratto.

Tip La grande differenza tra un attaccante o un tester amatoriale e un professionista consiste nell’approccio alla verifica stessa. Mentre per un attaccante lo scopo è normalmente quello di accedere o prendere dei dati senza essere autorizzato, per un professionista lo scopo ultimo consiste nell’evidenziare la situazione di sicurezza, sia essa negativa o positiva.

Server & servizi Proseguendo con il nostro metodo di lavoro dobbiamo aumentare i dettagli relativi ai sistemi oggetto di verifica. Finora abbiamo assegnato ai nostri target una funzione di rete basandoci su informazioni indirette (nell’esempio precedente abbiamo classificato squid.cliente.it come proxy basandoci sul nome del sistema), ora dovremmo cercare il maggior numero possibile di conferme basandoci su dati di fatto per poi confrontarli con le deduzioni logiche proposte fin qua. Per far questo dovremmo analizzare la natura dei servizi esposti e i sistemi operativi che li erogano. Esistono differenti metodi di individuazione dei servizi. Per proseguire con il nostro lavoro inizieremo con l’identificazione di quelli più immediati da censire,

œ

LXP108 SETTEMBRE 2011 19


Sicurezza Tip Eseguire verifiche di sicurezza prevede l’impiego di un team di tester. Lavorare in solitario in questo ambito rischia di dare risultati parziali e analisi troppo soggettive delle problematiche riscontrate. Normalmente in un team di sicurezza il numero massimo di tester coinvolti non supera le due persone ed è per questo motivo che la scelta dei membri della squadra è molto importante.

9 La profilatura della rete target a questo punto ricca di dettagli ci fornisce il quadro completo

ovvero i servizi basati su TCP. Siccome stiamo preparando il nostro piano d’attacco, non saremo esaustivi nella ricerca di servizi in questa fase, ma andremo a cercare quelli che potremmo definire legati all’operatività. Questa operazione ha come scopo secondario quello di verificare la tipologia di conoscenze tecnologiche necessarie all’interno del nostro team di verifica, o in caso di verifiche amatoriali, i limiti di approfondimento che potremmo avere su quella specifica infrastruttura. nmap -sV -p 21,25,80,110,443,1080,1433,3128, 3306,8080 11.22.33.0/24 Starting Nmap 5.51 ( http://nmap.org ) at 2011-06-21 12:44 CEST Nmap scan report for 11.22.33.27) 4 ports not showed are in state: closed Host is up (0.27s latency). 21/tcp open ftp Microsoft ftpd 25/tcp open smtp MailEnable smptd 0-4.2680/tcp open http Microsoft IIS httpd 7.0 110/tcp open pop3 MailEnable POP3 Server 443/tcp open https Microsoft IIS httpd 7.0 1080/tcp filtered socks 1433/tcp open ms-sql-s Microsoft SQL Server 2005 9.00.3042; SP2 3178/tcp filtered squid 3306/tcp filtered mysql 8080/tcp open http MailEnable httpd 5.0 Come si evince dall’output di Nmap, il nostro team di lavoro dovrà avere almeno uno specialista di database e un tester con buone conoscenze legate alle verifiche Web. Passiamo ora a identificare i servizi più complessi da individuare per la natura stessa del protocollo di trasporto utilizzato, ovvero quelli basati su UDP. Come ben saprete, l’UDP non prevede controlli di trasmissione e quindi presenta delle grosse difficoltà nell’identificare un servizio in ascolto. Infatti un pacchetto UDP inviato a una porta darà risposta (pacchetto ICMP port unreachable) solo se la troverà chiusa e se nella tratta non vi sono filtri che non permettono l’invio di quello specifico pacchetto ICMP. In tutti gli altri casi (porta aperta, pacchetto perso, firewall) il target non darà alcun tipo di risposta. Quindi possiamo dire che eseguire una scansione UDP rappresenta una grande sfida a causa delle limitazioni del trasporto. Per superare questa problematica proviamo a spostare il focus dell’operazione sulla parte applicativa dei servizi. Se noi mandiamo a un server DNS una richiesta

20 LXP108 SETTEMBRE 2011

Occhio alla condivisione La ricerca di informazioni aziendali su P2P sfrutta la leggerezza degli utenti che, muniti di portatile aziendale, non riescono a comprendere la differenza tra condividere cartelle in rete aziendale e condividere file su circuiti Peer to Peer, mettendo così a disposizione degli altri utenti fatture che riportano il numero della carta di credito aziendale, piani di progetto, carta intestata, eccetera.

di risoluzione nomi a prescindere dal fatto che questo ci permetta o meno di risolvere quel dominio, otterremo comunque un pacchetto UDP in risposta se il servizio è presente. Per far questo non dovremo far altro che utilizzare un port scanner che supporti l’invio di un payload applicativo. Il primo programma che ha introdotto questo tipo di interrogazione è Unicornscan, che purtroppo non è più presente sulla nuova versione di Backtrack. Fortunatamente Nmap ha fatto propria questa tecnica nelle ultime versioni. nmap -sU -sV -p 53,69,161,111,139 dns.cliente.it Starting Nmap 5.51 ( http://nmap.org ) at 2011-06-10 13:49 CEST Nmap scan report for dns.cliente.it (11.22.33.2) rDNS record for 11.22.33.2: dns.cliente.it PORT STATE SERVICE VERSION 53/udp open domain ISC BIND 9.8.0-P2 69/udp filtered tftp 111/udp open rpcbind 139/udp filtered netbios-ssn 161/udp filtered snmp Confrontando i due estratti otteniamo un buon riscontro sulla natura dei sistemi che stiamo analizzando e inoltre abbiamo un dato a disposizione per ridurre in seguito i margini d’errore nell’identificazione del sistema operativo remoto.

Impronta digitale del server Al termine dell’operazione di identificazione dei servizi passiamo all’ultima fase di raccolta informazioni direttamente estrapolate dai sistemi target. Per identificare il sistema operativo di un sistema remoto dovremmo utilizzare dei programmi che, basandosi sulla costruzione dello stack TCP/IP, riescano a identificare il kernel che li ha prodotti e di conseguenza l’OS. È buon norma, quando si esegue questo tipo di verifica, utilizzare almeno due applicativi di fingerprinting per diversificare i metodi d’indagine, nel nostro caso specifico Backtrack propone, oltre all’ormai noto Nmap, anche xprobe2. Vediamo ora un estratto delle due verifiche condotte sullo stesso sistema. Δ Estratto ottenuto con Nmap # nmap -O web.cliente.it Starting Nmap 5.51 ( http://nmap.org ) at 2011-06-21 15:14 CEST Nmap scan report for web.cliente.it (11.22.33.4) Host is up (0.035s latency). Not shown: 985 filtered ports PORT STATE SERVICE 21/tcp open ftp 25/tcp open smtp 80/tcp open http 110/tcp open pop3 443/tcp open https 1433/tcp open ms-sql-s


Sicurezza 3389/tcp open 8080/tcp open

ms-term-serv http-proxy

Running (JUST GUESSING): Microsoft Windows 2003 Server (88%), Newave embedded (88%) Aggressive OS guesses: Microsoft Windows 7 (58%), Microsoft Windows 98 (87%) Δ Estratto ottenuto mediante Xprobe2 # xprobe2 web.cliente.it Xprobe-ng v.2.1 Copyright (c) 2002-2009 fyodor@o0o.nu, ofir@sys-security.com, meder@o0o.nu [+] Target is web.cliente.it [+] Loading modules. [+] Following modules are loaded: [x] ping:icmp_ping - ICMP echo discovery module [x] ping:tcp_ping - TCP-based ping discovery module [...] [+] 16 modules registered [+] Initializing scan engine [+] Running scan engine Executing ping:icmp_ping Executing fingerprint:icmp_port_unreach […] [+] Primary Network guess: [+] Host 11.22.33.4 Running OS: “Microsoft Windows 2003 Server” (Guess probability: 81%) [+] Other guesses: [+] Host 11.22.33.4 Running OS: “Microsoft Windows 2000 Server SP4” (Guess probability: 100%) [+] Host 11.22.33.4 Running OS: “Microsoft Windows 2000 Workstation” (Guess probability: 100%) [+] Host 11.22.33.4 Running OS: “AIX 4.3.3” (Guess probability: 70%) [+] Host 11.22.33.4 Running OS: “Microsoft Windows 2008 Server” (Guess probability: 70%) [+] Cleaning up scan engine [+] Modules deinitialized [+] Execution completed. Come si può notare dal listato, abbiamo una notevole discordanza tra i due output, dobbiamo quindi iniziare a relazionare tra di loro i risultati delle precedenti fasi operative. Mentre per i nostri tool di identificazione del sistema operativo sono state identificate le due scelte Windows 2003 o Windows 2000, i nostri port scanner sono stati in grado di identificare la maggior parte dei servizi come appartenenti alla piattaforma 2003: questo rende molto più semplice prendere una decisione in merito (Fig.9).

probabilmente utilizzerà sistemi operativi aderenti a questo standard; Δ Partnership tecnologiche: una partnership con un determinato produttore software prevederà l’utilizzo di quella piattaforma in azienda; Δ Nominativi di personale informatico: cercando il loro curriculum avremo informazioni utili alla profilatura delle scelte tecnologhe in azienda; Δ Indirizzi e-mail: una volta identificati ci permetteranno di cercare eventuali discussioni mail di natura tecnologica aziendale. Adesso che è più chiaro il motivo della ricerca, proviamo a spiegare perché prima abbiamo indicato di cercare nelle versioni precedenti del sito del committente. Internet Archive (www.archive.org) offre un servizio di mirror cronologico dei siti Web, The Wayback Machine, che ci permette di vedere le evoluzioni temporali di siti Web in termini di contenuto. Il viaggio indietro nel tempo, se il dominio non è cambiato negli anni, ci permette di risalire fino al 1997, ma in alcuni casi basta anche solo un anno o pochi mesi per identificare delle falle di sicurezza delle informazioni ormai corrette, ma che se indicizzate ci permetteranno di ottenere organigrammi dettagliati, indirizzi e-mail, piani ferie e tutte quelle informazioni che oggigiorno non verrebbero mai messe su un sito pubblico ma che in passato possono esservi transitate. Una volta trovato questo blocco di informazioni inizieremo a scavare nel Web servendoci di social network, motori di ricerca per newsgroup, portali di offerte di lavoro, in modo da completare la profilatura delle informazioni che volevamo ottenere.

Navigando

Correlare

L’ultima fase che dovremo completare per dichiarare conclusa la raccolta delle informazioni sarà quella relativa a una ricerca esaustiva dei dati presenti sul Web o su sistemi di condivisione P2P. Per completare questa fase dovremo armarci quindi di un browser Web: BackTrack offre Firefox 4.0.1. Siamo pronti a iniziare la nostra ricerca. Inizieremo analizzando il sito Web attuale del committente, ed eventuali revisioni precedenti, in cerca di informazioni quali: Δ Offerte di lavoro: se l’azienda cerca sistemisti POSIX

A questo punto possiamo finalmente correlare tutte le informazioni ottenute finora per completare la profilatura del committente, andando ad aggiungere man mano che proseguiamo nella verifica i risultati di interrogazioni sempre più specifiche in base all’ambiente di test. Per far questo il menu di BackTrack 5 ci propone analisi puntuali su tecnologie precise non sempre presenti nella realtà d’analisi, come possono essere ad esempio VPN, VOIP, IDS, ecc. Nel prossimo numero vedremo come utilizzare le informazioni che abbiamo trovato. LXP

10 Un viaggio indietro nel tempo fino all’anno 2002 per visualizzare un sito storico sulla sicurezza

“Eseguire una scansione UDP rappresenta una grande sfida”

LXP108 SETTEMBRE 2011 21


Tomboy

Organizzate la vostra vita con Tomboy Linux Pro raccoglie le sue note sparse, i suoi appunti e le sue idee usando un pratico tool Open Source e spiega come potete riuscirci anche voi e nostre vite sono immerse nell’informazione. Una volta i computer venivano usati come strumenti isolati per elaborare dati, ma con l’avvento della posta elettronica, dei social network, del telelavoro e con la nostra crescente accettazione del multitasking, il sovraccarico di informazioni è molto probabile. Ci sono un mucchio di strumenti che affermano di esservi utili nella gestione di questa situazione: scadenziari, programmi per il project management, software per organizzare le attività in scalette... la lista è infinita. Potreste pensare che Tomboy sia semplicemente un altro programma per raccogliere note – cosa c’è di così eccitante?

L

22 LXP108 SETTEMBRE 2011

Beh, la magia di questa applicazione è la facilità con cui si adatta al vostro modo di vivere. È la sua semplicità, combinata con qualche piccolo trucco organizzativo, che vogliamo condividere con voi. Per prima cosa daremo uno sguardo all’uso base di questo strumento, poi esploreremo le varie tecniche per rifinire Tomboy per l’uso nel vostro mondo. Tomboy è disponibile nella maggior parte delle distribuzioni, a portata del vostro gestore di pacchetti, e potete anche scaricarlo dal sito http://projects. gnome.org/tomboy. Dopo averlo installato, avviatelo e vedrete una finestra come quella nella figura a destra, anche se con un numero minore


Tomboy di note presenti. Vediamo di creare una nota, tanto per incominciare. Andate nel menu principale e scegliete la voce File D Nuova: apparirà una finestra, del tutto simile a quella di un qualsiasi editor di testo, anche nel funzionamento. Ogni nuova nota contiene sempre un titolo sottolineato e un testo iniziale standard. Cliccate sul titolo e cambiatelo nella frase ‘Leggere LinuxPro’, e se dopo averlo fatto guardate nella finestra principale, (quella che elenca le note), vedrete lì la nuova nota. A questo punto potete aggiungere svariati contenuti nel corpo della nota. Ogni nota di Tomboy ha vaste possibilità di formattazione che vi aiutano nello scriverla. Per esempio, potete creare un elenco puntato. Per fare questo digitate un testo (come ‘Comprare l’ultimo numero’) e selezionate quanto scritto con il vostro mouse: a questo punto, dal menu Testo della finestra dove state editando, scegliete l’opzione Elenco puntato. La stessa cosa accade se cliccate con il tasto destro del mouse sul testo selezionato: apparirà un menu a tendina, dal quale, scegliendo la voce Testo potrete accedere ovviamente agli stessi strumenti. Ora potete procedere esattamente come in un word processor: alla fine di ogni frase inserita, premete Invio se volete aggiungere un nuovo punto. Se poi date un’occhiata alle altre opzioni di formattazione offerte, potrete vedere che sono un discreto numero, e comprendono la scrittura in grassetto e italico, il formato dei font, l’evidenziatore e altro ancora. Vi consigliamo di giocarci un po’ per farvi un idea dello strumento.

Guadagnare la giornata Una caratteristica importante e sottile di Tomboy è che non avrete mai bisogno di salvare il vostro lavoro. Ogni volta che finite di editare una nota, vi basta chiudere semplicemente la finestra e tutto quello che avrete fatto verrà salvato. Questo rende Tomboy un piacere da usare: non dovrete mai pensare a dove sono le vostre note, o preoccuparvi di aver perso qualche informazione importante che non avete salvato. Per quanto visto fino a questo momento, Tomboy potrebbe sembrarvi nulla più che un editor di testi un po’ gonfiato con il salvataggio automatico. Tutto quello che avete fatto finora è possibile farlo anche con Gedit o un altro programma simile. Ciò che fa spiccare il volo a Tomboy, però, è il modo in cui supporta i link tra le diverse note. Per dimostrarvelo vi invitiamo ad aggiungere alla vostra lista di note una dal titolo ‘Riviste’. Fatto? Ora riaprite la prima nota che avete creato (quella intitolata ‘Leggere LinuxPro’) e aggiungete il testo ‘Leggere altre Riviste’. Se avete eseguito tutto correttamente, vedrete la parola ‘Riviste’ evidenziarsi automaticamente, essendo divenuta un hyperlink: cliccando su di essa apparirà anche la nota ‘Riviste’. Il tutto funziona così: se digitate il titolo di una nota all’interno di un’altra, Tomboy aggiungerà automaticamente un link per voi. I link non distinguono tra lettere maiuscole e minuscole, quindi avreste potuto digitare sia ‘Riviste’ che ‘riviste’ ottenendo lo stesso risultato. Potete anche digitare i nomi di altre note, trasformandoli in link in qualsiasi posizione del testo, della formattazione o dello stile voi li mettiate. Questa capacita di creare link senza sforzo

Usare Blocchi note Un altro suggerimento per l’uso di Tomboy è quello di usare Blocchi note. I Blocchi note sono raccolte di note tra loro legate (potreste averne uno per le note di lavoro e uno per quelle personali). Per aggiungerne uno, andate nella finestra principale di Tomboy che contiene le vostre note, cliccate con il tasto destro nel pannello Blocchi note e scegliete Nuovo.

è deliziosa da usare, e rende le vostre note immensamente utili e contestualmente rilevanti. Se avete creato una nota intitolata ‘Da fare’, ogni volta che la citate all’interno di un’altra disponete di uno strumento utile per vedere la vostra lista delle cose da fare in quel contesto. Tenuto a mente questo, potete rendervi conto dell’importanza che ha titolare le vostre note in maniera intelligente, in modo che esse vengano linkate dove e quando è più appropriato. Probabilmente ora accumulerete un mucchio di note a gran velocità, creandole per le liste della spesa, per le cose importanti da ricordare e altro. Qualcuna delle vostre note diventerà quello che noi chiamiamo ‘mobilia standard’: note a cui farete riferimento e che aggiornerete spesso per gestire la vostra vita. Altre saranno come gli scontrini della spesa o comunque avranno una durata temporanea (come quelle che vi serviranno per gestire un compito o un progetto particolare). Con questo sovrabbondare di note, è necessario che possiate trovare quella che vi interessa facilmente e rapidamente. Fortunatamente, la finestra principale con la lista di tutte le vostre note ha anche un potente strumento di ricerca che funziona basandosi sia sui nomi delle vostre note che sui loro contenuti. Questo significa che ogni parola o briciola di informazione nelle vostre note è indicizzata e sarà raggiungibile se la cercate con lo strumento apposito nella finestra principale. A parte la semplicità e l’eleganza di Tomboy come strumento per creare e gestire note, va ricordato che è parte integrante del desktop GNOME, e viene automaticamente installato da alcune distribuzioni (ad esempio da Ubuntu). Tutto questo implica una notevole e utile integrazione con il desktop. In funzione della distribuzione che state usando, alcune delle caratteristiche di integrazione saranno già abilitate, mentre altre dovranno essere scelte manualmente. Tomboy supporta una vasta gamma di add-in di terze parti, accessibili tramite la finestra di dialogo Preferenze alla quale si accede dal menu principale Modifica.

La finestra principale di Tomboy, con la lista delle note in evidenza

Valore aggiunto Uno dei primi add-in con cui dovreste fare conoscenza è il supporto alle indicazioni e notifiche. Se usate una distribuzione Ubuntu completa, con il suo sistema di notifica, un indicatore per Tomboy è disponibile se si installa il relativo add-in. Se lo fatte, avrete una piccola icona a forma di blocco note nel pannello degli indicatori, che vi permette un accesso rapido alle caratteristiche principali di Tomboy così come a una lista delle note che avete letto più LXP108 SETTEMBRE 2011 23


Tomboy

Tomboy fornisce una vasta gamma di opzioni di formattazione, incluse le familiari grassetto e italico

Tomboy ha numerose estensioni, con gran varietà di add-in forniti da terze parti

di recente. Se usate invece una distribuzione che usa ancora il vecchio sistema del vassoio delle notifiche, c’è comunque un’icona simile. Un’altra caratteristica utile è la capacità di Tomboy di integrarsi con il calendario e il lettore di e-mail di Evolution. Se avete l’add-in di supporto per Evolution installato, potete importare direttamente un messaggio e-mail o addirittura un intero thread dalla finestra del client di posta a una nota di Tomboy, e verrà aggiunto un link rappresentato da una piccola icona. Cliccando su di essa la mail viene caricata da Evolution. A questo punto è utile ricordare che Tomboy è solo uno strumento – non vi aiuterà a essere più organizzati senza il vostro impegno nell’adattarlo al modo in cui lavorate. Bene, ora che avete un’impressione sulle sue caratteristiche di base, focalizzatevi sulle diverse maniere in cui potete rendere Tomboy uno strumento centrale del vostro modo di lavorare e gestire le informazioni importanti. Il primo passo che dovete fare è pensare al vostro lavoro, ai vostri hobby e ai diversi modi in cui Tomboy può esservi utile. Per fare questo dividete le attività della vostra vita in due aree primarie: professionale e personale. Considerate il tipo di cose che fate nella vostra vita professionale. Siete abituati a prendere ogni giorno note a caso per fissare cosa dovete fare? Avete

Le vostre note ovunque Avere le vostre note sul computer è utile, ma averle disponibili anche altrove lo è anche di più. Eccovi alcune opzioni che vi permettono di dare alle vostre note l’attenzione che serve e vi consentono di accedere ad esse durante gli spostamenti: Δ Ubuntu One Il servizio Ubuntu One (http://one.ubuntu.com) vi permette di sincronizzare le vostre note su tutte le vostre macchine sia Ubuntu che Windows, e di accedere ad esse anche dal sito Web.

24 LXP108 SETTEMBRE 2011

Δ Tomdroid Potete trovare questa applicazione nella sezione Produttività dell’Android Market (http://market.android.com). Se volete leggere le vostre note sul vostro cellulare con Android a bordo, assicuratevi di installarlo. Δ Snowy Se preferite creare una vostra interfaccia Web per la sincronizzazione delle note, Snowy (https://live.gnome.org/ Snowy) è un server che vi permette di farlo. Può tornare utile se impiegate Tomboy come strumento aziendale.

spesso bisogno di trovare informazioni comuni (come i numeri di chiamata per le videoconferenze)? Ciascuna di queste necessità è servita in maniera efficiente da Tomboy. Create qualche nota standard che userete regolarmente. Ad esempio potete creare una nota ‘Cose importanti’, che contenga tutto quello a cui dovete prestare molta attenzione, e poi potete creare una nota ‘Oggi’ che possa essere usata come una lavagnetta dove possiate scarabocchiare note su quello che pianificate di fare durante la giornata. Adesso pensate alla vostra vita personale. Avete bisogno di usare regolarmente certe informazioni (ad esempio il numero della vostra banca, dentista, acconciatore e così via)? È forse possibile che dobbiate tenere una lista della spesa per segnarvi quello che dovete comprare la prossima volta che andate in negozio? Una nota di Tomboy potrebbe essere un ottimo mezzo per segnarsi idee regalo per compleanni, feste comandate e altre occasioni. Pensate semplicemente ai diversi modi in cui gestite le vostre informazioni.

Gestire un workflow Quando consideriamo la nostra vita professionale, la stragrande maggioranza di noi ha sempre a che fare con due ben definiti obiettivi: 1 Compiti Sono le cose che è necessario fare nel lavoro. Possono essere piccoli (ad esempio portare fuori la spazzatura) o grandi e molto più complessi (come creare il resoconto annuale di una qualche attività). 2 Progetti Sono obiettivi molto più grandi che comprendono una serie di compiti da portare a termine insieme. Tomboy diventa uno strumento fantastico se lo integrate con il vostro workflow. Per ogni progetto potete creare una nota in Tomboy che tenga traccia dei suoi progressi. Ogni nota può includere: 1 Progetto Il nome del progetto. 2 Obiettivo Una singola frase che sintetizzi in modo incisivo quello che ci si aspetta dal progetto. 3 Criteri di valutazione Una descrizione di come deve apparire il successo del progetto dato. Questo è un punto importante da capire – dovrete essere in grado di chiedere se i criteri di successo sono stati soddisfatti o meno, in ogni momento, e ottenere un ‘Sì’ o un ‘No’ come risposta. Se la risposta è ‘Può essere’, i vostri criteri di valutazione devono essere più incisivi. 4 Persone coinvolte Una lista di tutte le persone coinvolte nel progetto e delle parti di esso a cui lavorano. 5 Scadenze Accordarsi su una serie di scadenze e pietre miliari per le differenti parti del progetto. 6 Note Una sezione generale all’interno delle vostre note dove potete scarabocchiare a casaccio parti di informazione che non volete dimenticare. Dovete assicurarvi sempre che la vostra nota di progetto


Tomboy sia aggiornata: quando le scadenze cambiano, il lavoro si affina, emergono nuove informazioni o accadono altri eventi, aggiornate le vostre note di conseguenza. Come parte che lavora sul progetto, avrete sicuramente degli incontri a scadenza regolare con gli altri membri del gruppo di progetto. Vi illustriamo qui di seguito una tecnica utile per gestire questi incontri, che vi assicurerà che essi siano ben strutturati e che sia voi che i vostri ascoltatori abbiate sempre una lista di argomenti su cui lavorare. Per prima cosa, create una nota per ogni persona che partecipa all’incontro. Ad esempio create una nota per Tizio Caio. A questo punto potete aggiungere Tizio Caio come collaboratore nella sezione apposita della vostra nota di progetto e avere così un accesso veloce alla sua nota. Nella nota di Tizio Caio create le seguenti due sezioni: 1 Compiti rilevanti Sono i compiti che avete concordato nei precedenti incontri. 2 Nuovi compiti Sono i nuovi compiti che avete concordato nell’incontro presente. Quando voi e Tizio concordate qualcosa su cui lui deve lavorare, aggiornate la sezione ‘Nuovi compiti’. Quando fissate un nuovo compito, assicuratevi che sia chiaro quello che ci si aspetta da Tizio nella sua esecuzione. Alla fine di ogni incontro, copiate la lista delle azioni intraprese e inviatele per e-mail a Tizio, con un oggetto standard (ad esempio ‘Note dalla riunione – <Data>’). Con un oggetto di forma standard, Tizio può facilmente ricercare nel suo archivio delle e-mail tutte le note di una data riunione. A questo punto voi e Tizio avete completamente chiaro che cosa ci si aspetta che lui riesca a fare per il prossimo meeting. Durante quello presente, controllate lo stato di ciascuno dei compiti precedentemente concordati. Se uno di questi è stato completato, eliminatelo dalla lista. Se un compito non è stato completato, spostatelo nella sezione ‘Compiti rilevanti’. Ricordatevi che se un compito sta nella sezione dei rilevanti per troppo tempo, significa che è problematico. Un ottimo suggerimento è quello dato da Larry David, creatore della serie televisiva Curb Your Enthusiasm. Per risolvere problemi di ispirazione durante periodi particolari – spesso difficili – David ha un libriccino nero dove scrive le idee non appena gli vengono in mente. A scadenze irregolari di qualche mese, lui apre il libriccino e recensisce le varie idee, decidendo quali portare avanti. Dopo aver letto questa cosa in un’intervista, abbiamo cercato di riprodurre un simile schema sul nostro PC: abbiamo creato una nota Tomboy non solo per memorizzare idee, ma anche per annotare osservazioni, pensieri interessanti, concetti per articoli e presentazioni future, idee buffe, barzellette, liriche e altro. David ha visto giusto: avere una piccola lavagnetta è un grande modo per non dimenticare questi momenti aleatori di creatività.

Sincronizzare le vostre note Seguire i nostri consigli d’uso per Tomboy vi farà accumulare una notevole massa di note, molte delle quali conterranno preziose informazioni. Idealmente, desidererete un backup affidabile delle note, in maniera da non perdere il vostro lavoro se la macchina si guasta, ma potrebbe esservi utile accedere al loro contenuto anche se siete altrove. Potete farlo con la sincronizzazione. Tomboy ha un supporto integrato per sincronizzarsi con vari servizi (per maggiori informazioni leggete il riquadro Le vostre note ovunque). Per configurare il servizio, scegliete la voce Modifica D Preferenze dal menu e poi andate nella scheda Sincronizzazione. Se volete impostare la sincronizzazione tramite SSH, la procedura è più complicata di quello che dovrebbe, ma comunque è ben descritta nel manuale del programma. Se siete un utente di Ubuntu, allora la sincronizzazione è veramente semplice, potendo usare Ubuntu One. Per prima cosa dovete iscrivervi al servizio andando sul sito

Le vostre note non devono necessariamente essere limitate a una sola macchina: potete leggerle online e anche sincronizzarle con altri PC usando Ubuntu One oppure con lo smartphone

Web http://one.ubuntu.com – l’account gratis vi dà fino a 2 GB di memoria utile (Ubuntu One offre anche la sincronizzazione per file, contatti e brani musicali, e anche l’ascolto di flussi musicali). Procedendo nella configurazione, selezionate Ubuntu One dal menu a tendina Servizio. A questo punto premete il tasto Salva nel riquadro. Apparirà una finestra di dialogo che vi avvisa che la connessione è stabilita con successo e vi chiederà se volete procedere con la sincronizzazione: premete il pulsante Sì e poi Chiudi a sincronizzazione riuscita. Esiste anche un’opzione selezionabile che fa fare la sincronizzazione ogni 10 minuti: è un modo utile per assicurarsi che nessuna nota venga mai persa! Ubuntu One offre non solo la possibilità di sincronizzare le vostre note su tutte le vostre macchine Ubuntu, ma anche la capacità di vederle ed editarle dal vostro navigatore Web andando sul sito http://one.ubuntu.com.

Confezionare tutto Tomboy offre una maniera deliziosamente semplice e pratica di portare ordine nel caos che è l’informazione nell’era digitale. In questo articolo ve ne abbiamo dato un piccolo assaggio e ne abbiamo descritto le caratteristiche principali, ma vi ricordiamo che Tomboy ha molti più strumenti e capacità da esplorare. Vi raccomandiamo caldamente di provarlo, di integrarlo nel vostro workflow e di farvi aiutare a tenervi organizzati, sincronizzati ed energizzati. E a divertirvi! LXP

Tomboy contro Gnote Anche se Tomboy è sbandierata da molti come un’applicazione diabolicamente semplice e utile, qualche tifoso del Software Libero rifiuta di usarlo perché è scritto in C# e usa il framework Mono. Mono è stato un fenomeno controverso nella comunità, perché alcuni si preoccupano del fatto che – essendo basato sul framework .NET di Windows – può costituire una minaccia, visto che Microsoft potrebbe agire legalmente

contro il software che lo usa. Uno degli effetti di questa situazione è stata la creazione di Gnote (https://live. gnome.org/Gnote), un clone C++ di Tomboy che ha la stessa interfaccia, le stesse caratteristiche, la stessa funzionalità. Gnote è inferiore a Tomboy in termini di completezza, ma la maggior parte delle caratteristiche principali ci sono. Se Mono vi fa tremare le gambe, provate Gnote.

LXP108 SETTEMBRE 2011 25


Accessibilità Linux

Potere al popolo Come fate a usare un computer se non potete vedere lo schermo, udire gli altoparlanti o tenere un mouse in mano? Linux Pro ha cercato di scoprirlo accedere al computer è vitale per le persone disabili in tutto il mondo. I computer sono diventati una parte centrale della nostra vita e del lavoro, e se non potete usarli, non potete partecipare pienamente alla vita sociale nella nostra società digitale. Infatti, il lavoro al computer è probabilmente la migliore possibilità d’impiego per la maggior parte degli utenti disabili, perché non ha nessuna importanza quale disabilità tu abbia se riesci a lavorare online o dal tuo ufficio di casa. Esiste, naturalmente, una ben definita gamma di soluzioni proprietarie per l’accessibilità disponibili per gli utenti Windows, come il lettore per lo schermo Jaws, l’ingranditore Zoomtext e il riconoscitore vocale Dragon. Si tratta in tutti i casi di programmi di alta qualità che eseguono il loro compito estremamente bene, ma sono anche aumenti estremamente onerosi al prezzo base del computer, che può facilmente triplicare ancora prima di aver aggiunto il costo del software uso ufficio e per la sicurezza. Noi non

A

26 LXP108 SETTEMBRE 2011

vogliamo assolutamente che la persona disabile debba pagare più di ogni altra per avere un computer usabile e, anche se Microsoft fornisce già un supporto minimo con Narrator e con un ingranditore, il tutto è un po’ come dire a una persona su sedia a rotelle che può benissimo andare al tale ristorante, a patto che si porti dietro la sua rampa personale. Una compagnia delle dimensioni di Microsoft potrebbe facilmente acquisire le piccole compagnie che producono questo tipo di software e distribuirlo gratis a chi ne ha bisogno. Mac OS X fornisce ai suoi utenti Voiceover, un lettore di schermo, e la possibilità di ingrandimento a schermo intero di default, ma i suoi computer sono ancora troppo costosi se confrontati con desktop e laptop basati su PC di prestazioni equivalenti. Così se siete disabili in un modo che vi rende difficile usare un computer, provate Linux. Accendete il desktop GNOME e avrete a disposizione un gran numero di opzioni per l’usabilità, progettate per rendere la vostra vita più semplice.


Accessibilità Linux Inabilità motorie Impostazioni della tastiera Se trovate difficile usare la tastiera, esistono numerose impostazioni che possono essere scelte in Preferenze della tastiera (Sistema D Preferenze D Preferenze della tastiera o dal Centro di controllo). Se tendete a mantenere premuti i tasti troppo a lungo, potete aumentare il ritardo di ripetizione del carattere nella scheda Generale , sezione Ripetizione dei tasti, o disabilitare completamente la funzione spuntando la casella Ripetere il carattere quando il tasto è premuto. In quest’ultimo caso potete tener premuto il tasto per tutto il tempo che vi pare e verrà digitato un solo carattere. Se invece decidete di spuntare l’opzione Simulare pressioni di tasti simultanee nella sezione Tasti singoli della scheda Accessibilità, allora potrete digitare le combinazioni di tasti in sequenza anziché contemporaneamente. Ad esempio, per aprire un terminale potete digitare prima Ctrl, poi Alt poi T. Potete anche abilitate l’opzione Tasti lenti nella stessa scheda, se avete la tendenza a battere accidentalmente su tasti indesiderati. In questo caso i tasti vengono riconosciuti solo se sono premuti per un tempo sufficientemente lungo, da voi regolabile tramite il cursore dedicato. Se avete la tendenza a premere più volte lo stesso tasto, potete invece abilitare l’opzione Tasti rimbalzati, che impedisce di inserire lo stesso carattere più di due volte in una stessa riga di testo e a breve distanza di tempo. Infine, se non potete usare una tastiera ma potete utilizzare un mouse, usate una tastiera virtuale come Onboard, per digitare testo e comandi con un click.

Impostazioni del mouse Se avete delle difficoltà nel muovere o nel cliccare con il mouse, potete regolarne la configurazione nel gestore Preferenze del mouse (Sistema D Preferenze D Preferenze del mouse). Per esempio, potete regolare i parametri Accelerazione e Sensibilità con i cursori dedicati nella scheda Generale se avete delle difficoltà nel controllo del puntatore del mouse. Se non riuscite a cliccare velocemente due volte, potete aumentare il Tempo disponibile per doppio-click. Se tutto questo non è ancora sufficiente, abilitate Click secondario simulato, spuntando l’opportuna casella nella scheda Accessibilità: in questo modo, dopo che il tasto del mouse viene premuto, per generare automaticamente un secondo click basta rilasciarlo. Se non siete in grado di usare per nulla i tasti del mouse, allora potete attivare l’opzione Click automatico, e così un click di caratteristiche totalmente configurabili verrà generato non appena il puntatore del mouse

si sofferma su un oggetto nello schermo per più di un tempo prefissato. Infine, se non potete usare il mouse ma solo la tastiera, attivate Controllare il puntatore usando il tastierino numerico in Preferenze della tastiera. Potrete allora spostare il puntatore del mouse con il tastierino numerico, regolando Accelerazione, Velocità e Ritardo; abilitando anche Click automatico potrete fare con la tastiera tutto ciò che è si fa con il mouse.

La tastiera virtuale “Onboard” mostrata in modalità ‘full’

Soluzioni software Esistono due diversi tipi di software per interagire con un PC senza passare attraverso la tastiera o il mouse. I programmi di riconoscimento gestuale trasformano movimenti fisici in comandi. Mousetrap usa una webcam per calcolare la posizione della vostra fronte e spostare il mouse di conseguenza. Se lo usate con Click automatico e la tastiera virtuale Onboard potreste, in teoria, navigare con il computer ed editare testi con piccoli cenni del capo. In pratica, la cosa è molto più difficile di quello che sembra. Il software di riconoscimento vocale vanta una lunga tradizione. Qualche pacchetto consente l’uso di comandi vocali semplici ma nessuno di quelli attualmente disponibili è in grado di gestire la dettatura continua. Comunque, gli strumenti per Linux sono di utilità limitata e privi della capacità di convertire un discorso fluente in testo. Per digitare un testo dovreste usare comandi vocali semplici per navigare in una tastiera virtuale. La ragione principale per cui un software di questo tipo non esiste ancora sotto Linux è la mancanza di modelli sufficientemente complessi del segnale acustico rilasciati con licenze Open Source. Voxforge è un progetto comunitario il cui scopo è creare modelli di questo tipo: chiunque può contribuire visitando il sito www.voxforge. org e registrando poche frasi predefinite in un’applet Java.

La sordità

Simon fornisce un sistema di riconoscimento vocale per il desktop KDE e suddivide i comandi secondo numerosi gruppi, probabilmente quelli che possono servire all’utente tipico di computer

Senza voler banalizzare l’impatto della sordità e delle forti disabilità all’udito sulla vita delle persone, possiamo comunque dire che questa non è, in se stessa, uno degli impedimenti più gravi all’uso dei computer. I computer moderni sono principalmente interfacce grafiche, anche se sono in grado di riprodurre suoni, e in generale non è necessario essere in grado di sentirli per essere capaci di usarli in maniera efficace. La maggior parte degli eventi su un computer è segnalata visivamente, ad esempio con un pop-up o con un’icona lampeggiante nel vassoio di sistema o sulla barra delle applicazioni. Se necessario, è anche possibile far lampeggiare

la barra del titolo o addirittura l’intera finestra di un’applicazione abilitando l’opzione Suggerimenti visivi per i suoni nella sezione Riscontro audio accessibilità tastiera accessibile mediante pressione del tasto dedicato che si trova nella scheda Accessibilità del gestore delle Preferenze della tastiera. L’unico ambito dove gli utenti sordi sono ovviamente svantaggiati è quello della riproduzione di file multimediali. Il player Totem supporta di default i sottotitoli nei DVD, se, naturalmente, sono disponibili, anche se l’utente deve installare le librerie libvdcss2 dall’archivio Medibuntu nel caso voglia vedere DVD commerciali criptati.

LXP108 SETTEMBRE 2011 27


Accessibilità Linux Inabilità sensoriale Disabilità visiva Esiste una vasta gamma di soluzioni, in funzione della gravità dei problemi visivi. Nei casi meno gravi, la soluzione può essere quella di aprire semplicemente il gestore Preferenze dell’aspetto (a cui potete accedere come al solito da menu Sistema D Preferenze D Aspetto o direttamente dal Centro di controllo), aumentare la dimensione dei caratteri, scegliere Ottimizza contrasto come Resa a schermo, e scegliere il tema Contrasto elevato inverso, caratteri grandi (che riduce significativamente il riverbero dallo schermo). Esistono molti temi per GNOME (e KDE) che offrono caratteri /icone grandi, contrasti alti/bassi e colori in negativo in una gran varietà di combinazioni. Non tutti questi temi sono installati di default, ma sono facilmente ottenibili, per esempio installando il pacchetto gnome-accessibility-extras. Questa strategia ha comunque dei limiti perché all’ingrandirsi del carattere la finestra di lavoro espande i suoi limiti al di là della dimensione dello schermo utile. Inoltre queste impostazioni non hanno effetto su Firefox: potete certamente imporgli di usare le impostazioni di sistema fissate nel Centro di controllo, ma così facendo potreste ottenere dei risultati molto strani, diversi da quelli desiderati. Per una migliore usabilità di Firefox, provate invece a usare gli strumenti di ingrandimento controllati con le combinazioni di tasti Ctrl+Shift++ / Ctrl+Shift+-, che cambiano dinamicamente il formato dei font in funzione del sito che si sta visitando.

Usare lo zoom Il prossimo passo che si può fare è usare un ingranditore per lo schermo. Xzoom è un semplice strumento di questo tipo che apre una piccola finestra dalle dimensioni regolabili a piacere. Cliccando su di essa con il tasto sinistro del mouse e trascinandola sulla parte dello schermo che vi interessa, potete ingrandirla o rimpicciolirla a piacere mediante pressione dei tasti Uguale (=) e Trattino (–). Comunque, una soluzione molto più efficiente è usare un ingranditore a schermo intero, che ridirige l’immagine originale dello schermo su un monitor fittizio che ne mostra una porzione ingrandita. Al momento esistono due ingranditori a schermo intero disponibili per gli utenti Linux. Gnome-Magnifier – che normalmente è parte integrante del desktop di GNOME assieme al lettore di schermo Orca – vi consente di ingrandire lo schermo, invertire i colori, usare un cursore personalizzato e/o aggiungere un mirino costituito da due assi coordinati sullo schermo che inseguono il cursore. Inoltre consente il caret tracking ossia segue automaticamente il cursore se, mentre scrivete, uscite dalla zona inquadrata. Comunque, il movimento può procedere a scatti sui computer

Unity e GNOME 3 GNOME e Ubuntu hanno fornito fino ad ora i sistemi Open Source per i disabili più accessibili e facili da usare. Ma recentemente Ubuntu è passata a Unity e GNOME 3 è stato rilasciato. Nessuno dei due è completamente accessibile agli utenti disabili e potrebbe essere necessario un anno buono per cambiare la situazione. A complicare ulteriormente le cose c’è il fatto che tutti e due dipendono dalla tecnologia grafica 3D e quelle applicazioni che sono ancora

28 LXP108 SETTEMBRE 2011

predisposte per una tecnologia 2D sono scritte usando strumenti differenti e possono essere rese accessibili solo affrontando difficoltà di ordine superiore. Ottimisticamente parlando, in un anno o due sia Unity che Gnome Shell saranno almeno accessibili quanto lo è GNOME 2. Nel frattempo, la maggior parte dei disabili continuerà a usare il classico GNOME. Le anime più avventurose forse si cimenteranno nell’esplorazione di desktop più leggeri, come Xfce o LXDE.

Gnome-Magnifier con il ‘mirino’ abilitato

più vecchi, a meno che non navighiate usando le combinazioni di tasti invece del mouse, e può essere molto instabile se avete una scheda video delle più recenti. E questo ci conduce a Compiz e ai suoi plug-in per l’accessibilità. Il nuovo arrivato usa la tecnologia compositing 3D per fornire l’ingrandimento a schermo pieno così come il filtraggio/inversione dei colori. È più veloce e più fluido, ma richiede una scheda video 3D. Non fa ancora il caret tracking, quindi per seguire il testo che state digitando dovete continuare a muovere il mouse (a meno che non abbiate abilitato i tasti per la navigazione sostitutivi del mouse) e non ha la l’opzione per l’arrotondamento dei caratteri ingranditi, che ve li mostra con il bordo liscio anziché segmentato secondo i pixel.

Cecità Un monitor Braille è molto costoso, ha centinaia di delicate parti mobili e non è conveniente come una soluzione completamente software, quindi un’opzione alternativa è quella di usare un lettore da schermo. I lettori più popolari in ambiente Linux per terminale sono Speakup e Suse-Blinux (SBL). Entrambi vi permettono di ascoltare la digitazione, di ascoltare il testo completo digitato, di leggere e manipolare il testo e navigare con una semplice interfaccia ncurses. Se desiderate un’interfaccia grafica utente di aspetto più moderno avete una sola possibilità, vale a dire Orca, a cui abbiamo già accennato brevemente, che si integra nel desktop GNOME e con la stragrande maggioranza delle applicazioni basate su GTK (KDE e le applicazioni basate su Qt non sono attualmente accessibili tramite lettori da schermo). Orca vi permette di navigare sulle icone del desktop GNOME, i pannelli e i menu principali usando combinazioni di tasti predefinite. Potete anche usare i tasti cursore per spostarvi dalle une alle altre, e attivarle con il tasto Invio. Potete ascoltare quello che state digitando nei campi per l’immissione di dati, e anche editare e leggere facilmente il testo usando le combinazioni di tasti appropriate. Anche se non è stabile e veloce come un lettore di schermo su terminale, Orca funziona notevolmente bene su GNOME, con la sua selezione di applicazioni GTK e Libre/OpenOffice. Comunque Orca fatica a funzionare con Firefox, l’unico navigatore Web con interfaccia grafica e lettore di schermo disponibile in Linux, e questo è sicuramente un punto su cui gli sviluppatori dovranno lavorare. Tutto quello che un lettore di schermo fa è riconoscere testo e quindi passarlo a un sintetizzatore vocale: i campioni in questo ambito sono Espeak e Festival, entrambi capaci di fornire il servizio in una discreta varietà di linguaggi. Quale dei due suoni meglio è in un certo modo soggettivo: mentre Festival ha un suono più realistico, Espeak sembra essere più semplice da usare – e potete anche scegliere l’accento.


Accessibilità Linux Distribuzioni Linux Quale desktop usare Anche se quasi tutte le distribuzioni più grandi forniscono qualche opzione per migliorare l’accessibilità, in realtà è la scelta del desktop di default che determina largamente quanto effettivamente siano accessibili. GNOME, KDE, Xfce e LXDE offrono tutti una buona accessibilità a mouse e tastiera, e un utente sordo potrebbe trovarsi ugualmente bene anche con Fluxbox o JWM. Comunque, esiste veramente un’unica opzione se avete una disabilità visiva, ed è GNOME. È senza dubbio il migliore in circolazione quando si tratta di accessibilità, quindi, per gli utenti disabili, cercate distribuzioni basate su questo ambiente, come Ubuntu, Fedora e Debian.

Adriane Knoppix Il CD della versione speciale della distribuzione Knoppix, ottimizzato da Klaus Knopper per gli utenti ciechi e chiamato Adriane in onore della moglie disabile alla vista, è progettato in modo tale da essere d’uso facile anche per persone che non hanno mai utilizzato un computer. All’utente viene presentato un menu testuale di default, aperto in un terminale. Si possono usare i tasti cursore per scorrerlo e scegliere l’applicazione che interessa eseguire, oppure si può digitare il numero che identifica la voce desiderata e premere il tasto Invio per avviarla. Viene così fornita una semplice versione testuale di tutte le applicazioni più comuni, e il parlato viene generato con SBL. Se tutto questo non vi basta, potete avviare una shell Bash oppure passare direttamente ad applicazioni con interfaccia grafica come Iceweasel, LibreOffice o addirittura a un desktop LXDE con tutte le comodità, reso accessibile da Orca e dall’ingrandimento a schermo intero di Compiz (naturalmente solo nel caso che questo sia supportato dalla vostra scheda grafica). Una piccola noia è che le applicazioni grafiche che necessitano dei privilegi di root, come Synaptic e Gparted, non sono accessibili tramite Orca, ma possono comunque essere facilmente lanciate usando aptitude, cfdisk e l’installatore testuale nel modo terminale di default. È una soluzione ideale per l’utente disabile alla vista, che voglia installare un sistema accessibile ma leggero su una macchina a basse prestazioni o come sistema Live portatile su CD o chiavetta USB.

Vinux Si tratta di una versione di Ubuntu pesantemente personalizzata, anche questa orientata principalmente a quegli utenti con disabilità alla vista, ma che fa del suo meglio anche per fornire

Il desktop Vinux con il tema Dusk

supporto a tutta una gamma di disabilità. Viene fornito con una buona varietà di software per l’accessibilità pre-installato, abilitato e configurato per l’uso quando il CD ha eseguito il boot. Non appena GNOME è in funzione, Orca vi dà il benvenuto e Speakup vi sta già aspettando per lanciare una sessione su terminale (e la maggior parte delle interfacce USB in Braille è supportata automaticamente). L’ingrandimento a schermo intero con Compiz può essere attivato con la combinazione di tasti Ctrl+Alt+3, mentre Gnome-Magnifier lo si può lanciare con Ins+G, nel caso la vostra scheda grafica non supporti le animazioni 3D. Ci sono anche due ulteriori lettori da schermo, e tutti e quattro usano lo stesso sintetizzatore Espeak. Altre disabilità possono essere assistite con Mousetrap, Onboard e le opzioni standard per mouse e tastiera di GNOME. Vinux ha un aspetto molto diverso dal desktop di default di Ubuntu, e anche le applicazioni disponibili sono differenti. Ad esempio Pidgin è preferito a Empathy e l’utilità di installazione/rimozione di GNOME è preferita all’Ubuntu Software Center. Diverse applicazioni con interfaccia grafica possono essere lanciate con combinazioni di tasti personalizzate, e per gli utenti più navigati esiste una moltitudine di strumenti a interfaccia testuale molto potenti. Comunque, la forza più grande di Vinux è la grande disponibilità della comunità internazionale di utenti disabili che ha saputo raccogliere attorno a sé. Gli utenti che si dedicano al supporto sono accoglienti e amichevoli, e potete parlare in chat direttamente con gli sviluppatori. In conclusione, Vinux è un sistema operativo ideale a basso costo per utenti disabili, e può essere anche usato da tutta la famiglia senza doverlo modificare sostanzialmente. LXP

Software di uso comune o specializzato

Il desktop LXDE di Adriane Knoppix

Gli utenti disabili devono poter accedere agli stessi prodotti e servizi pensati per la maggior parte delle persone oppure devono usare prodotti e servizi specialistici? I contrari all’approccio specialistico affermano che così facendo si emarginano ancora di più i disabili e si fornisce alle grandi organizzazioni un alibi per non curarsi di loro. I favorevoli affermano invece che i prodotti e i servizi destinati alla maggior parte delle persone non potranno mai essere completamente compatibili

con le esigenze dei disabili, perché sono richieste troppe modifiche. Idealmente sarebbe giusto che tutte e due le opzioni fossero disponibili, in modo tale che sia l’utente finale a decidere quale sia meglio per lui. I grandi fornitori dovrebbero rendere i loro prodotti e servizi il più accessibile possibile e i produttori di nicchia dovrebbero colmare il divario tra quello che è disponibile e quello che serve agli utenti disabili che non riescono a usare prodotti di tipo generale.

LXP108 SETTEMBRE 2011 29


Filesystem

Viaggio al centro del filesystem! Iniziate lo studio dei filesystem con l’analisi di uno dei sistemi più diffusi: FAT

L’autore Maurizio Russo Laureato in Informatica presso l’Università “La Sapienza” di Roma, con una tesi sperimentale sullo stack TCP/IP del kernel Linux, è un utente del Pinguino dal 2001. Nella sua carriera si è occupato di formazione, sicurezza, progettazione e sviluppo di software.

1 Ogni filesystem FAT è suddiviso in tre aree: l’area riservata, che ospita il boot sector, l’area dedicata alle FAT (per garantire una maggiore robustezza, generalmente sono presenti due copie identiche della FAT) e l’area dati, che ospita file e directory

ile Allocation Table (FAT) è il nome di uno dei filesystem più longevi tra quelli tuttora in uso. Introdotto nel lontano 1980 come filesystem per i floppy disk, è stato poi esteso per consentire il supporto dei primi hard disk, divenendo il filesystem di default per Windows 95 e Windows 98. Abbandonato da Microsoft in favore di NTFS, anche a causa delle limitazioni nella dimensione massima dei file (pari a 4 GB), ha vissuto recentemente una nuova giovinezza, in concomitanza con la diffusione in commercio dei dispositivi di memoria basati su tecnologia Flash (come Memory Card e chiavi USB), generalmente formattati proprio con FAT.

F

Creazione dell’ambiente di test Prima di addentrarsi nei dettagli del filesystem, è necessario procedere alla realizzazione dell’ambiente di test: Δ da shell, operando come root, è possibile creare un file dalle dimensioni ridotte (70 MB) ricorrendo a dd. dd if=/dev/zero of=test-fat.dd bs=1024 count=70000 Δ formattate il file con FAT, per mezzo di mkfs.vfat (o di mkdosfs, di cui mkfs.vfat è un link simbolico). mkfs.vfat -F 32 -s 2 test-fat.dd Δ a questo punto il filesystem, pronto per l’uso, può essere montato in una directory vuota, precedentemente realizzata, che chiamerete test. mount -o loop test-fat.dd test/ Δ entrando nella directory test (che, in seguito al mount, rappresenta la root directory del vostro filesystem) potete creare un file di prova che risulterà utile nel proseguo: echo ‘ecco un file di prova’ > prova.txt

Boot sector La struttura di un filesystem FAT è molto semplice, e si articola in tre aree principali (Fig.1): Δ l’area riservata, il cui inizio coincide con il primo byte del filesystem; Δ l’area che ospita la File Allocation Table (la struttura

Area Riservata Area delle FAT

Area Dati

2 L’unica area suddivisa in cluster è l’area dati. Al primo cluster, che ha inizio in concomitanza con il primo settore dell’area dati, viene assegnato l’indirizzo

30 LXP108 SETTEMBRE 2011

Il boot sector FAT Il boot sector FAT è posizionato nei primi 512 byte di ogni partizione, ed è suddiviso in campi, la cui posizione è specificata dall’offset (in byte) rispetto all’inizio del boot sector stesso: il primo byte è il byte n.0, il secondo (posto a un offset, rispetto all’inizio, di 1 byte) è il byte n.1, il terzo è il byte n.2, e così via. Tra i campi principali, ricordiamo: Δ il campo OEM Name, una stringa da cui è possibile evincere la versione del sistema operativo con cui è stato formattato il disco/partizione e/o il tool di formattazione adoperato (byte 3-10); Δ il campo che specifica il numero di byte per settore (byte 11-12); Δ il campo settori per cluster (byte 13); Δ la dimensione dell’area riservata (byte 14-15); Δ il numero di FAT del filesystem (byte 16); Δ il numero totale di settori del filesystem (byte 33-35); Δ la dimensione di ogni FAT (byte 36-39); Δ l’indirizzo del cluster che ospita la root directory (byte 44-47).

dati principale del filesystem), eventualmente replicata, per motivi di robustezza, in due copie identiche; Δ l’area devoluta ai dati, ovvero file e directory. Tutte le aree sono suddivise in unità elementari dalle dimensioni costanti, dette settori, a cui per semplicità assegneremo un indirizzo crescente, partendo dal numero 0. A questa suddivisione si aggiunge, nell’ambito dell’area dati, un’ulteriore aggregazione: più settori contigui sono infatti raggruppati per costituire un cluster, che rappresenta l’unità minima di allocazione dei file. Come mostra la Fig.2, al primo cluster del filesystem, che inizia in concomitanza con il primo settore dell’area dati, viene assegnato l’indirizzo 2: si tratta di una delle peculiarità di FAT, da tenere bene in mente nel proseguo dell’analisi. Terminata questa breve introduzione, iniziamo l’osservazione del filesystem, visualizzando i contenuti del boot sector (posto nei primi 512 byte dell’area riservata) attraverso il comando (Fig.3) dd if=test-fat.dd bs=512 count=1 | hexdump -C Con l’ausilio di quanto detto nel box Il boot sector FAT potete esaminarne i contenuti, soffermandovi in particolare sui seguenti campi: Δ il campo OEM Name, che comprende i byte dal n.3 al n.10, contiene il valore mkdosfs, dal nome del programma che avete utilizzato per formattare il file; Δ il numero di byte per settore del filesystem, rappresentato da un intero a 16 bit posto nei byte n.11 e n.12 del boot sector, è pari a 512. I byte n.11 e n.12 contengono infatti rispettivamente il valore di 00H e 02H (H sta per esadecimale, trattandosi di numeri in base 16): per via dell’endianess (vedi il box Little endian e big endian), ciò equivale al numero 0200H, e quindi a 512 in base 10;


Filesystem Little endian e big endian

3 Il boot sector FAT, svelato grazie alla combinazione dei comandi dd e hexdump

Δ ci sono due settori per ogni cluster, come testimoniato dal valore del byte n.13; Δ l’area riservata, come stabilito dai byte n.14 e 15, ha una dimensione di 32 settori (0020H); Δ nell’area che ospita la FAT sono presenti due copie della struttura (come da contenuto del byte n.16), ognuna delle dimensioni di 543 settori (ovvero 0000021fH, il valore dei byte n.36, n.37, n.38 e n.39); Δ il filesystem si estende per un totale di 140.000 settori (equivalente a 000222e0H, il valore dei byte compresi tra il n.33 e il n.35); Δ la root directory del filesystem è situata al primo cluster, il numero 2, come confermano i byte del boot sector compresi tra il n.44 e il n.47). Queste informazioni vi consentono di ricostruire, nelle sue linee essenziali, la struttura del filesystem, delimitando con certezza le aree in cui questo si suddivide: Δ l’area riservata, costituita da 32 settori, si estende dal settore n.0 al settore n.31; Δ l’area che ospita la FAT, costituita da 543+543=1086 settori, ha inizio nel settore n.32 e termine nel settore n.1117 (la prima FAT è compresa tra il settore n.32 e il settore 32+543-1=574; la seconda tra il settore n.575 e il settore n.1117); Δ l’area dati si estende dal settore n.1118 fino all’ultimo settore del filesystem (il numero 139.999, visto che in totale il filesystem si compone di 140.000 settori), e di conseguenza il primo cluster (il cluster avente indirizzo 2), che ospita la root directory, si compone dei settori 1118 e 1119. Potete avere una verifica di quanto appena asserito ricorrendo all’output del comando fsstat test-fat.dd che, come mostrato in Fig.4, conferma le conclusioni circa Δ il nome OEM; Δ la dimensione e il numero di settori e di cluster; Δ l’estensione, in settori, dell’area riservata; Δ la dimensione e i settori assegnati a ciascuna FAT; Δ l’estensione, in settori, dell’area dati.

Nella pratica quotidiana, siete abituati a scrivere i numeri a partire dalla cifra più significativa fino a quella meno significativa. Ad esempio, nel numero 1234 (milleduecentotrentaquattro) la prima cifra si riferisce alle migliaia (la cifra più pesante, ovvero la più significativa), la seconda alle centinaia, la terza alle decine e la quarta, l’ultima, alle unità, ovvero alla cifra meno significativa. Nei computer, al contrario, questa regola non è sempre rispettata: per rappresentare in memoria i numeri più grandi di un byte, le architetture hardware adottano due notazioni differenti, chiamate little-endian e big-endian. La notazione little-endian, in uso nei processori Intel e AMD, prevede che i byte che compongono un dato siano scritti in memoria dal meno significativo al più significativo, mentre il big-endian, utilizzato dai processori Motorola, Sun e IBM, immagazzina i byte in memoria dal più significativo al meno significativo. Segue che, per uno stesso numero, potranno esistere (su macchine diverse, caratterizzate da un’architettura hardware differente) due rappresentazioni alternative. Ad esempio, il numero (esadecimale) 1234H, della dimensione di due byte, sarà immagazzinato: Δ nella rappresentazione little-endian, come 3412 (anteponendo il byte meno significativo, avente valore 34H, al byte più significativo, contenente 12H);

34

12

PRIMO BYTE

SECONDO BYTE

Δ nella rappresentazione big-endian, come 1234.

12

34

PRIMO BYTE

SECONDO BYTE

Nel corso di queste puntate, faremo riferimento unicamente alla notazione little-endian: ricordatevi di invertire l’ordine dei byte, prima di interpretare i contenuti di una locazione di memoria!

ad esempio, nell’immagine di test, un file di 2,5 KB potrebbe essere allocato nei cluster numero 22, 71 e 90. Il legame tra questi ultimi è stabilito proprio dalla File Allocation Table, una tabella che presenta un elemento per ogni cluster del filesystem (Fig.5): Δ nel caso in cui il cluster numero x è allocato, l’elemento corrispondente della tabella contiene l’indirizzo del cluster seguente, oppure il valore EOF (ffffffffH) se si tratta dell’ultimo blocco del file;

FAT Oltre ad avvalorare le nostre ipotesi in merito al contenuto del boot sector, l’output di fsstat ci consente di introdurre la struttura dati che dà il nome a questo filesystem: stiamo parlando della File Allocation Table, o FAT. Si tratta di una struttura dati che ricopre un ruolo fondamentale nell’economia del filesystem, in quanto rappresenta l’unico modo per ricavare i cluster di allocazione di un determinato file. La maggior parte dei file, infatti, per via delle dimensioni, è allocato in più cluster, non necessariamente contigui:

4 L’output di fsstat mostra molte delle informazioni desumibili dal boot sector del filesystem, come il nome OEM, la dimensione e il numero di settori e di cluster o l’estensione delle tre aree in cui si suddivide il filesystem LXP108 SETTEMBRE 2011 31


Filesystem Directory entry Una directory entry è costituita da 32 byte, e si riferisce a uno dei file contenuti nella directory, di cui registra le proprietà principali. Tra i campi più importanti dell’entry, ricordiamo: Δ il campo Nome (byte 1-11), contenente il nome del file in formato 8.3; Δ la dimensione del file, in byte (byte 28-31); Δ l’indirizzo del cluster iniziale, i cui due byte meno significativi sono posizionati in corrispondenza dei byte 26 e 27 della entry, mentre quelli più significativi sono posti a un offset pari a 20 e 21 byte dall’inizio dell’entry.

5 Un esempio di FAT, i cui primi tre cluster sono allocati per il medesimo file

6 L’output di ‘fls -Fr’ mostra tutti i file contenuti nel filesystem

7 La root directory del filesystem, comprensiva della entry del file di prova, evidenziata in rosso

Δ altrimenti, l’elemento della tabella contiene un valore ad hoc (00000000H) che segnala la possibilità di allocare il relativo cluster. L’ultima sezione dell’output di fsstat, non a caso chiamata FAT CONTENTS, è dedicata proprio alla tabella, di cui sono mostrati i soli elementi corrispondenti a cluster allocati. Ogni elemento è individuato tramite l’indirizzo dei settori che lo compongono, ed è legato al relativo contenuto per mezzo di una freccia (->). Nel caso dell’immagine di test, questa rappresentazione si esaurisce in due sole righe: la prima riguarda il cluster n.2 (settori 1118 e 1119), la seconda il cluster n.3 (settori 1120 e 1121). I due blocchi ospitano due file distinti, entrambi allocati in un unico cluster, come testimonia il contenuto (EOF) dei relativi elementi della FAT.

presenti nel filesystem, attraverso il comando fls -Fr test-fat.dd Se si escludono i file ‘speciali’ $MBR, $FAT1 e $FAT2 (che rappresentano rispettivamente il boot sector e le due copie della FAT) l’output di fls mostra (Fig.6) unicamente il file prova.txt, verosimilmente allocato proprio nel cluster numero 3. Potete verificare questa congettura andando a esaminare i contenuti della root directory (localizzata nel cluster 2, e quindi nei settori 1118 e 1119), con il comando (Fig.7) seguente: dd if=test-fat.dd bs=512 count=2 skip=1118 | hexdump -C La root directory, così come qualsiasi altra directory in FAT, può essere assimilata a una tabella suddivisa in elementi (o record) della dimensione di 32 byte, chiamati directory entry. Ogni entry si riferisce a uno dei file contenuti nella directory, di cui registra lo short name (in formato 8.3, ovvero utilizzando al massimo 8 caratteri per il nome e 3 per l’estensione), gli attributi, la dimensione, i tempi di modifica, accesso e creazione e, soprattutto, l’indirizzo del cluster iniziale. Per superare gli angusti limiti imposti dalla notazione 8.3, particolari entry sono dedicate unicamente a conservare il nome del file: come si può notare dalla Fig.7, esse precedono le ‘normali’ entry. Leggendo il box Directory entry, potete analizzare l’entry relativa al file prova.txt (evidenziata in rosso), rilevando in particolare che: Δ la dimensione del file (byte 28-31) è pari a 16H byte, ovvero 22 byte (uno per ogni carattere della stringa contenuta nel file); Δ il primo cluster del file (il cui indirizzo è specificato dai byte 20, 21, 26, 27) è il cluster n.3. Verificata la bontà della nostra ipotesi, non resta che stampare a video il contenuto del cluster (allocato nei settori 1120 e 1121), con il comando seguente (Fig.8): dd if=test-fat.dd bs=512 count=2 skip=1120 | hexdump -C Ricapitolando, l’accesso ai contenuti del file creato all’inizio dell’articolo si è snodato attraverso le seguenti fasi: 1) lettura del boot sector, per ottenere a) la dimensione di settori e cluster; b) la dimensione delle tre aree, da cui desumere il settore di inizio dell’area dati e quindi l’indirizzo del primo cluster del filesystem; c) l’indirizzo del cluster in cui è localizzata la root directory; 2) lettura della root directory e in particolare della entry che si riferisce al file di prova, al fine di ottenere l’indirizzo del cluster iniziale; 3) accesso al cluster per leggere i contenuti del file. Da una finestra del vostro file manager preferito, al contrario, la lettura di un file di testo è un’operazione banale, che si esaurisce in pochi secondi: quante operazioni si nascondono dietro ogni click! LXP

Le directory entry Se il file a cui fa riferimento il cluster 2 è già noto, trattandosi come visto della root directory, cosa potete dire del file allocato nel cluster 3? Per rispondere a questa domanda andate a elencare tutti i file

32 LXP108 SETTEMBRE 2011

8 Ecco il contenuto del file di prova creato all’inizio dell’articolo, ottenuto accedendo direttamente al cluster in cui il file è allocato


Per iPad, iPhone e iPod News, prove e guide passo a passo


Sysadmin

Premiata Amministreria

Dottor Brown

Dr Chris Brown Il Dottore si occupa di formazione, scrittura di articoli e consulenze su Linux. Trova che il suo PhD in fisica delle particelle non sia di alcun aiuto in questo tipo di lavoro.

Niente di nuovo sotto il sole Molti di noi probabilmente pensano che i tablet PC siano dei nuovi giocattoli piuttosto interessanti (non riesco davvero a giustificarne l’acquisto per me: la nicchia funzionale tra il mio smartphone e il mio PC portatile è troppo piccola per un altro gadget). Beh, forse sono interessanti, ma nuovi no, almeno come concetto. Nel 1968 Alan Kay mostrava al mondo un modello di cartone di un apparecchio portatile, chiamato Dynabook, che somigliava in maniera impressionante a un odierno tablet. Per dare un senso alla scala temporale: quanti anni avevate nel 1968? I vostri genitori si erano già incontrati? In qualche modo non abbiamo ancora dei Dynabook come li intendeva Alan, cioè “un personal computer intimo che può... agire come amplificatore delle imprese umane, specialmente dei bambini”. Ci stiamo arrivando. Cercate ‘alan kay dynabook’ su Google se siete interessati.

Pensato per non funzionare! L’immagine qui sotto (giuro che non l’ho falsificata) è chiaramente l’equivalente per il desktop dello strumento a riga di comando chiamato false, il cui unico scopo nella vita è quello di non lavorare e restituire uno stato di uscita di errore.

Tecniche esoteriche per i sysadmin direttamente dai recessi più impenetrabili della sala server

A grande richiesta Tendenze nel mercato del lavoro La conoscenza di Linux è sempre più richiesta. Quale distro è al top? La richiesta di programmatori COBOL è in calo. Come lo so? Ho scoperto un sito di ricerche di lavoro (www.indeed.com, ne esiste anche una versione italiana http://it.indeed. com/) che permette di ottenere i grafici delle richieste di lavoro negli ultimi sei anni, in base alla ricerca per parole chiave all’interno della descrizione della posizione cercata (la versione italiana non sembra per ora dotata di questa funzionalità). Ho passato una divertente mezz’ora facendo grafici di qualsiasi cosa mi passasse per la testa. La richiesta di spazzacamini è trascurabile, ma la cosa non mi preoccupa perché soffro di vertigini. Invece la ricerca di figure che possiedano conoscenze su Linux è in costante crescita. Uno dei molti grafici che ho prodotto mostra la popolarità relativa nel mercato del lavoro di Red Hat, Fedora, SUSE e Ubuntu (Fig.1). Questi dati rispecchiano grosso modo quello che vedo nei miei corsi per quanto riguarda l’adozione delle varie distro, con Red Hat al primo posto. Ho poi prodotto un grafico analogo basato sugli acronimi delle varie certificazioni: RHCE (Red Hat), NCLP (Novell) e UCP (Ubuntu) e di nuovo

Red Hat risulta largamente dominante, mentre la curva di UCP è sostanzialmente piatta. Nonostante le incoraggianti pendenze verso l’alto nel grafico della figura, i valori reali sull’asse verticale sono piuttosto piccoli (persino Red Hat ha un picco di solo 0,15%). Per avere degli elementi di confronto ho quindi provato con alcune altre parole chiave. Non ho lo spazio sufficiente per mostrarvi tutti i grafici che ho prodotto, ma potete vedere qualche dato nella tabella qui sotto. Fate un salto sul sito e date un’occhiata. Non si sa mai, potreste trovare un nuovo lavoro! Parola chiave

Statistiche, bugie e parziali verità I dati di www.indeed.com si basano verosimilmente su una ricerca meccanica di parole chiave all’interno delle descrizioni delle posizioni richieste, quindi se viene trovato ad esempio “Linux” non è detto che le conoscenze su Linux siano la principale richiesta per quel lavoro. Il sito http://jobindex.recruit.net vi permette invece di selezionare le parole chiave, il paese e persino una città specifica per i grafici.

34 LXP108 SETTEMBRE 2011

1 I grafici sull’andamento delle richieste di lavoro prodotti dal sito Indeed mostrano che Red Hat domina

Percentuale

Microsoft

10.0%

Windows

4.7%

Java

3.5%

SQL Server

2.8%

Linux

2.4%

Perl

1.2%

MySQL

0.8%

Python

0.6%

Ruby

0.4%


Sysadmin

Applicazioni multipiattaforma Mono Mettiamo a confronto gli ambienti runtime e di sviluppo di Mono con le corrispondenti offerte di Microsoft per .NET I lettori più assidui di questa rubrica (e il mio ego mi assicura che ce ne sono un po’) già sanno che mi guadagno da vivere tenendo corsi Linux, ma ho anche un lato oscuro: insegno C# e .NET! Mi viene spesso domandato come mai tenga un piede nell’Open Source e un altro nelle tecnologie Microsoft. A dire il vero nel mio cervello si libererebbe un po’ di prezioso spazio se abbandonassi una delle due tecnologie, ma il fatto è che entrambe mi danno da lavorare, cosa che mi rende difficile lasciarle. Sostanzialmente .NET è un ambiente che gestisce l’esecuzione runtime delle applicazioni grazie anche a una enorme collezione di librerie di classi. Tutto questo consente un buon grado di isolamento tra le applicazioni e il sistema operativo. Tipicamente un’applicazione .NET non fa nessuna chiamata diretta al sistema operativo sottostante, rendendo possibile, almeno in teoria, la creazione e l’esecuzione dell’applicazione su qualsiasi piattaforma per cui sia disponibile un runtime .NET. Il linguaggio principale per lo sviluppo in .NET è il C#. Si tratta di un linguaggio orientato agli oggetti che somiglia molto a Java e, dal punto di vista della sintassi, appartiene decisamente alla famiglia del linguaggio C. Anche Visual Basic è molto popolare; esistono poi compilatori .NET per numerosi altri linguaggi, tra cui Perl, PHP, Python, Fortran, COBOL e molti altri. Questi compilatori producono un linguaggio intermedio (qualcosa di analogo al bytecode prodotto dal compilatore Java) che viene convertito al volo dal runtime .NET in codice macchina per mezzo di un compilatore just in time. Questa architettura rende relativamente facile l’integrazione tra linguaggi diversi. Potete scrivere classi in differenti linguaggi (all’interno della medesima applicazione) e addirittura definire una classe

L’architettura .NET Un’applicazione .NET inizia la sua vita come codice sorgente in C# o VB o in un qualsiasi linguaggio per cui esista un compilatore .NET. I compilatori generano assembly (file EXE o DLL) che contengono Intermediate Language (simile al bytecode di Java),

che viene convertito in codice macchina al momento dell’esecuzione da un compilatore just-in-time all’interno del runtime .NET. Il caricatore di assembly carica anche assembly predefiniti dalle librerie di classi di .NET in base alle richieste dell’applicazione.

di base in (ad esempio) C# ed ereditare da essa in una classe derivata scritta in VB. La stragrande maggioranza degli sviluppatori che scrivono applicazioni in .NET usa Windows sia per lo sviluppo (con Microsoft Visual Studio) che per l’esecuzione. Esiste però un crescente numero di persone che usa sia strumenti di sviluppo (MonoDevelop) che runtime .NET (Mono) ospitati su Linux. Alcune applicazioni di cui forse avete sentito parlare usano Mono: Tomboy (un’applicazione per prendere appunti), Beagle (uno strumento di indicizzazione e ricerca), F-Spot (un’applicazione per la gestione delle foto) e Banshee (un riproduttore multimediale). Su www.mono-project. com/Software c’è una lista molto più lunga.

Confronti È passato qualche anno da quando ho dato un’occhiata a Mono. All’epoca il compilatore C# funzionava, mentre gli strumenti di sviluppo erano tutti a riga di comando, le librerie di classi erano limitate e il tutto non sembrava permettere

œ

File sorgente VB

Compilatore VB

Assembly (DLL o EXE)

File sorgente C#

Compilatore C#

Assembly (DLL o EXE)

Build time

Compilatore JIT

Run time

Applicazione in esecuzione

Binario nativo Librerie di classi .NET

Gli assembly sono un concetto fondamentale in .NET. Sono le unità di base che compongono le applicazioni LXP108 SETTEMBRE 2011 35


Sysadmin 2 Aguzzate la vista! Una semplice applicazione Winforms .NET in esecuzione su Windows (a sinistra) e Linux (a destra)

Scimmie Mono in spagnolo significa scimmia (da qui la scelta del logo). È stato creato da Miguel de Icaza e Nat Friedman, che all’epoca (attorno al cambio di secolo) lavoravano per Ximian, un’azienda in seguito acquisita da Novell. Ximian è una maniera alternativa di scrivere simian (scimmiesco in inglese) e il logo dell’azienda è la silhouette di una scimmia. Questo spiega anche il nome Bonobo (un specie di grande scimmia) e l’impronta di una zampa di scimmia nel logo di GNOME. Credo che il mio prossimo capolavoro in .NET lo chiamerò Pileated Gibbon (gibbone dal berretto).

di andare molto oltre un’applicazione “Ciao Mondo” per console. I tempi sono sicuramente cambiati, perciò in questo articolo cercheremo di rispondere a due domande. Primo: come si pone il runtime Mono rispetto al runtime .NET di Microsoft? Ad esempio, fino a che punto è possibile prendere assembly creati su Windows ed eseguirli su Linux? Secondo, in cosa differisce l’esperienza di uno sviluppatore .NET su Windows e Linux? In altre parole, che differenze ci sono tra MonoDevelop e Visual Studio? Ho deliberatamente evitato di discutere qualsiasi questione ideologica riguardante l’uso di tecnologie Microsoft da parte di sviluppatori Open Source oppure di commentare le strategie di marketing di Microsoft o di preoccuparmi delle questioni di brevetti relative a .NET. Inizialmente speravo di usare SLED o OpenSUSE per questo: dopo tutto Novell è lo sponsor di Mono, quindi si potrebbe immaginare che offra un buon supporto a questa tecnologia nella sua versione di Linux. Sfortunatamente però sono incappato in un link non funzionante sul sito di MonoDevelop per la versione OpenSUSE e in una bizzarra e non risolta dipendenza (riguardante tra l’altro Glibc!) quando ho provato a installarlo su SLED. Quindi ho tolto quattro house point a Novell e mi sono rivolto a un sito (http://badgerports. org/) che mette a disposizione pacchetti Mono recenti per Ubuntu 10.04, su cui si sono installati senza problemi. Per la cronaca, sto usando Mono 2.6.7 e MonoDevelop 2.4.

Ambienti runtime 3 Le pagine Web all’URL http:// go-mono.com/status/ forniscono una visione dettagliata di quello che è implementato nelle librerie di classi Mono e di quello che manca

Ho scelto di partire dalle basi verificando se ero in grado di prendere una semplice applicazione Windows Forms, creata su Windows, ed eseguirla su Linux. Questa applicazione minima è il mio equivalente per Winforms del programma “Ciao Mondo”. Il test è consistito semplicemente nel copiare l’assembly .NET (il file .EXE) da Windows a Linux e nell’eseguirlo sotto Mono. Come mostrato dall’immagine qui sopra (Fig.2) il programma ha funzionato bene. Chiariamo quello che sta succedendo: non si tratta

36 LXP108 SETTEMBRE 2011

di semplice compatibilità a livello di codice sorgente; ho preso un’applicazione compilata, creata su Windows, e l’ho eseguita su Linux. Funziona anche per applicazioni più complesse? Questa domanda si riduce alla seguente: “Quante classi del framework Microsoft .NET sono correttamente implementate in Mono?”. Per dare un’idea delle proporzioni, ci sono (mi hanno detto) circa 11.000 classi nelle librerie .NET. Dato che la maggior parte di queste classi espone 20 o più metodi e proprietà, si tratta di un numero davvero considerevole. Il sito Web del progetto Mono, all’URL www.mono-project.com/Compatibility, fornisce una visione di alto livello delle funzionalità di .NET che sono implementate in Mono e di quelle che non lo sono. Il sommario della pagina recita: “La maniera più semplice per descrivere cosa è attualmente supportato da Mono è: tutto in .NET 4.0 eccetto WPF, EntityFramework e WF, parte di WCF”. Notate in particolare che non esiste un piano per supportare Windows Presentation Foundation (WPF). Informazioni molto più dettagliate sono disponibili sulle Mono Class Status Pages all’URL http://go-mono.com/status/. Qui, in quello che è sostanzialmente un navigatore in una gerarchia di oggetti, possiamo muoverci all’interno dei namespace .NET, passare poi alle classi, ai metodi e infine alle proprietà, per vedere esattamente cosa è implementato in Mono e cosa non lo è. Nell’esempio qui sotto (Fig.3) sono partito dal namespace System.Drawing, all’interno del quale ho trovato numerose classi, tra cui Bitmap, Brush e Graphics (visualizzate in verde), che sono implementate completamente, mentre la classe BufferedGraphics ha un metodo (Render) dotato di una versione (in overload) che non può essere implementata nella libreria libgdiplus.

Questioni di portabilità Armato di tutti questi dettagli (tenete presente che l’immagine mostra solo circa il 10% di uno dei 50 namespace) uno sviluppatore potrebbe, in teoria, esaminare il suo codice e scoprire se ha usato qualcosa che non è supportato in Mono. Se state pensando che questo sia un compito estremamente noioso, che dovrebbe essere svolto da un computer avete ragione! C’è infatti un programma chiamato Moma (Mono Migration Analyzer) che fa proprio questo. Moma riceve in ingresso l’insieme degli assembly (file EXE e DLL) che formano un’applicazione, li esamina e poi visualizza un sommario contenente le eventuali funzionalità non implementate. Il semplice fatto che Moma stampi un bel segno di spunta verde per la vostra applicazione, però, non è una garanzia che questa funzionerà correttamente su Linux. Ci sono molti modi in cui uno sviluppatore può scrivere del codice che implicitamente fa delle ipotesi sulla piattaforma su cui sta girando. Potrebbe, ad esempio, cercare dei file in una locazione specifica di Windows, oppure dare per


Sysadmin scontato che esista un server IIS locale in esecuzione. Però Moma è sicuramente uno strumento utile per identificare i potenziali problemi; si tratta, ovviamente, di un’applicazione .NET. È difficile estrapolare da tutti questi dettagli una risposta alla più ampia domanda se Mono sia una strada praticabile per scrivere applicazioni reali che siano portabili tra Windows e Linux. La mia sensazione è che questo obiettivo è raggiungibile se uno sviluppatore lavora con la portabilità in mente fin dall’inizio, ma un’applicazione che sia stata scritta originariamente su Windows senza tener conto della portabilità ha molte meno possibilità di girare su Linux senza ritoccare il codice sorgente, cioè senza una fase di porting.

Ambienti di sviluppo Passiamo ora al confronto tra ambienti di sviluppo. Qui è meno chiaro cosa confrontare con cosa. Microsoft fornisce una gamma di strumenti di sviluppo progressivamente più potenti (a prezzi progressivamente più alti), partendo da Visual C# Express (che è gratuito) fino a Visual Studio Professional, e alle e edizioni Premium e Ultimate. È probabilmente meglio fare i confronti con il prodotto Express, dato che con qualsiasi altro le differenze sarebbero troppo grandi. Lo strumento di sviluppo primario per Mono è MonoDevelop. Questo era il mio primo incontro con MonoDevelop e sono rimasto piacevolmente sorpreso di trovare un prodotto rifinito e pieno di funzionalità. Comprende un editor per il codice con possibilità di folding del codice, in grado di evidenziare la sintassi per mezzo dei colori e un esteso sistema di aiuto sensibile al contesto, simile all’IntelliSense di Microsoft. Ci sono poi i template di codice (Microsoft li chiama snippet) che vi permettono ad esempio di inserire un ciclo for vuoto con un paio di colpi di mouse. Ha un debugger integrato, che comprende breakpoint condizionali, proprio come Visual Studio. Anche l’editor delle proprietà è simile. Anche se ci sono alcune differenze significative tra i due il passaggio da Visual Studio a MonoDevelop è stato per me un’esperienza abbastanza indolore. Ho provato a creare un semplice form e sono rimasto sconcertato nello scoprire che si basa sul toolkit GTK: mi aspettavo di trovare lo stesso ambiente per la progettazione dei form e lo stesso portafoglio di controlli di Windows Form. Retrospettivamente devo dire che era una supposizione ingenua, ma tenete presente che arrivavo fresco fresco da esperienze con Visual Studio/Winforms. La definizione dei form è significativamente diversa in GTK, dato che si basa molto più sui controlli contenitori per determinare la disposizione degli altri controlli, mentre in Winforms è pratica comune posizionarli usando coordinate assolute (per saperne di più vedere www.mono-project.com/ GtkSharp:_Widget_Layout_and_Packing). In effetti esiste un programma per Mono che permette di progettare form Winforms (vedere www.mono-project.com/ WinForms_Designer). È chiamato mwf-designer. L’ho scaricato e ci ho giocato un po’, ma mi sono trovato subito d’accordo con il commento che si trova sulla sua homepage: “non è ancora pronto per un uso regolare”. È possibile

disegnare un semplice form, ma ci sono parecchie funzionalità non implementate. Inoltre non è possibile compilare, eseguire e fare il debug dei form creati: occorre salvare il codice del form in un file esterno che può essere compilato da riga di comando (o, presumibilmente, caricato nel designer di Visual Studio, ma non ci ho provato). Non è assolutamente adatto per il grande pubblico. Mono comprende anche un’ampia gamma di strumenti a riga di comando simili a quelli che si trovano nell’SDK di Microsoft. Ad esempio, c’è gacutil, un programma per gestire la Global Assembly Cache (GAC) in cui vivono tutti gli assembly condivisi. C’è poi wsdl (uno strumento per scrivere proxy per servizi Web) e monodies (uno strumento per disassemblare gli assembly e vedere l’Intermediate Language), che fornisce funzionalità simili a ildasm di Microsoft.

4 Moma evidenzia un potenziale problema nell’esecuzione della mia applicazione .NET su Linux. Cliccando sul link “View Detail Report” si possono ottenere i dettagli del metodo che dà problemi

L’importanza di Mono Chiaramente molte persone intelligenti hanno speso parecchio tempo nello sviluppo di Mono. Secondo il sito Web del progetto Mono è in grado di girare sui sistemi operativi Android, BSD, iOS, Linux, Mac OS X, Windows, Solaris e UNIX e sui sistemi operativi di alcune console di gioco, ad esempio quelli di PlayStation 3, Wii e XBox 360. L’unico che ho verificato di persona è Linux. La promessa “scrivi una volta, fai girare dovunque” è allettante, ma Mono dovrà sempre rincorrere Microsoft, che continua a innovare e a introdurre nuova tecnologia in .NET ed è difficile dire se alle software house converrà orientare i loro prodotti verso qualcuno di questi sistemi operativi per cui è disponibile .NET. È forse troppo presto per valutare il valore a lungo termine di .NET come framework indipendente dalla piattaforma e di Mono come sua implementazione. Il tempo ce lo dirà. LXP

Eseguire programmi Mono A differenza degli eseguibili compilati o degli script di shell, i programmi .NET non possono essere eseguiti su Linux semplicemente usando il nome del programma come comando. Il file ha bisogno di essere esplicitamente caricato con Mono, più o meno così: $ mono lamiaapplicazionedotnet.exe Una semplice soluzione a questo problema consiste nel creare un piccolo script shell per ogni applicazione .NET. Tutti i programmi di utilità nella distribuzione Mono usano

questo sistema. Ad esempio, l’utility gcautil si trova in /usr/lib/mono/2.0/gacutil.exe e c’è uno script corrispondente in /usr/bin/gacutil composto solo dalla seguente riga: exec /usr/bin/mono $MONO_OPTIONS /usr/lib/mono/2.0/gacutil.exe “$@” C’è anche un modulo del kernel, chiamato binfmt che permette di registrare formati di file eseguibili che vengono riconosciuti al momento del lancio e passati ad applicazioni in spazio utente.

LXP108 SETTEMBRE 2011 37


L’angolo di

Android News, recensioni e guide sul sistema operativo libero per smartphone

Tutti i browser di Android Da Firefox a Opera, al nuovo Dolphin HD: il browser Internet non deve essere per forza quello di Google. A voi la scelta!

U

no dei punti di forza di Android è sicuramente il browser: veloce e leggero, permette di navigare anche nei siti più complessi senza problemi. Anche la compatibilità con i contenuti Flash di Adobe è ottima, a condizione naturalmente che il vostro smartphone abbia un processore sufficientemente veloce per gestirli e che sia aggiornata almeno alla versione 2.2 Froyo. Questo però non significa che sia perfetto, manca infatti la possibilità di inserire i tab, di importare i bookmark in maniera semplice e immediata e magari anche di sfruttare qualche gesture in più. Tutte queste mancanze, e anche qualcuna in più, vengono ampiamente coperte dai browser alternativi presenti nel market che hanno tra l’altro il grande vantaggio di essere completamente gratuiti. Purtroppo

38 LXP108 SETTEMBRE 2011

però sono tutti abbastanza “pesanti” per il sistema e richiedono dispositivi recenti per funzionare al meglio. Se però avete uno smartphone con non più di un anno di vita, il consiglio è sicuramente quello di provarli almeno una volta.

Firefox Mobile 5 La quinta generazione del browser più diffuso dopo Internet Explorer, sbarca anche sui dispositivi Android. E finalmente esce anche dallo stadio di beta, rivelandosi decisamente più stabile e anche meno “pesante” per il sistema. Purtroppo non è compatibile con tutti i dispositivi; per vedere se siete tra i fortunati vi consigliamo di controllare sul sito di Mozilla oppure di provare direttamente

a scaricarlo dal market. Il principale vantaggio di Firefox è quello di potersi sincronizzare con il browser che avete sul PC: avrete così a disposizione anche sullo smartphone segnalibri, cronologia e persino le password salvate. Inoltre gran parte delle estensioni che hanno fatto la fortuna della “volpe di fuoco” sono disponibili anche per Android e si installano senza problemi. Tra gli altri punti forti di Firefox non possiamo non ricordare la possibilità di aprire più schede e quella di salvare il contenuto della pagina in PDF, in modo da visualizzarlo successivamente offline. Anche le funzioni della privacy sono state migliorate.

Opera Mobile 11 Il browser Opera è celebre da sempre per leggerezza e velocità di caricamento. Il trucco sta in un particolare sistema di compressione che consente di diminuire fino al 70% il peso delle singole pagine permettendo così di aprirle più velocemente. Nella

Linkè possibile sincronizzare i propri bookmark con quelli del PC o anche di un altro smartphone che usa Opera. Inoltre è possibile impostare la visualizzazione “desktop” in modo da aprire tutti siti in visualizzazione standard e non rimanere bloccati dalle versioni mobile che sempre più spesso sono a pagamento (vedi Corriere.it). Infine anche Opera consente di salvare le pagine che vi interessano per vederle successivamente offline.

Dolphin HD 6 Gli sviluppatori del browser Dolphin si sono ritagliati un loro spazio tra gli utenti Android soprattutto grazie al sistema di “gesture” che permette di muoversi all’interno del browser senza aprire menu e finestre, ma semplicemente “segnando” la funzione che interessa. L’ultima versione del browser non si limita però a migliorare ulteriormente le gesture permettendovi di costruirne una per ciascun sito, ma introduce importanti novità come la disponibilità di oltre 50 nuove estensioni che spaziano da Google Translate a Password Manager, a YouTube Search. Inoltre è possibile recuperare pagine chiuse per crash di sistema e salvarle per vederle anche offline. Infine è interessante la gestione dei plug-in Flash, che vengono attivati solo se interessano realmente rendendo così più veloce e scorrevole la navigazione.

“Con Firefox Mobile è possibile sincronizzare bookmark, cronologia e password con il browser del PC” sua ultima versione gli sviluppatori di Opera hanno completamente modificato l’interfaccia rendendola più “fumettosa” e facile da usare. Facebook e Twitter sono integrati e attraverso il servizio Opera


News L’angolo di Android

Android sempre protetto Una soluzione completa per proteggere il vostro smartphone, anche nello sfortunato caso in cui doveste perderlo

A

vere uno smartphone che per potenza e capacità di archiviazione è ormai un vero e proprio PC in miniatura offre molti vantaggi, ma richiede anche un buon grado di sicurezza in più. E non solo per il rischio di prendere qualche virus o malware, ma anche per proteggere i vostri dati nel malaugurato caso in cui doveste mai perdere o farvi rubare il vostro Android. Symantec, uno dei nomi più noti nel settore degli antivirus e della protezione durante la navigazione Web, ha realizzato Norton Mobile Security per Android,

un’app scaricabile dal Market che ha lo scopo di identificare eventuali virus e di bloccare o rintracciare un telefono rubato o smarrito. Rispetto ad altre applicazioni simili, Norton Mobile Security è più leggera, occupa circa due Megabyte di memoria e può essere installata su qualsiasi dispositivo Android, anche su quelli più vecchi. Una volta che l’avrete installata, vi verrà chiesto per prima cosa di impostare una password di sicurezza e quindi un elenco di persone fidate che potranno attraverso l’invio di un SMS bloccare, sbloccare o anche localizzare a distanza il dispositivo.

Per maggior sicurezza, nel caso che venga sostituita la SIM, lo smartphone viene immediatamente bloccato e richiede l’inserimento della password per potere essere utilizzato. È possibile impostare una scansione antimalware periodica, così come attivare il sistema di protezione Web che impedisce l’accesso ai siti che Symantec pensa possano essere sospetti. Attualmente, e ancora per qualche tempo, Norton Mobile Security sarà in fase beta, e per questo motivo è sicuramente consigliabile provarlo sul vostro dispositivo.

Gli smartphone Android sono protetti a 360 gradi grazie a Norton Mobile Security

400 effetti speciali Il miglior toor per gli amanti degli scatti digitali

U

no dei pochi campi in cui iPhone è superiore ad Android è quello delle applicazioni per la modifica e la gestione delle immagini. Ora però che anche per Android è finalmente disponibile un programma completo come Pho.to Lab le cose sono

destinate a cambiare. La caratteristica più importante del programma è che esegue le elaborazioni delle immagini sui propri computer e quindi richiede un collegamento Internet attivo, per poter funzionare. L’elaborazione in remoto è da una parte un vantaggio, in quanto permette di sfruttare

in Δ

Gli effetti di Pho.to Lab sono così tanti che difficilmente riuscirete a provarli tutti

la potenza di un vero PC, ma di fatto rende il programma inutilizzabile se non è presente un collegamento Web. Gli effetti a disposizione sono più di 400 e permettono di realizzare avatar personalizzati, fotomontaggi e caricature, così come e-card e sfondi per il proprio telefono. Esiste una versione gratuita

del programma che comprende però solo una piccola parte degli effetti speciali e soprattutto visualizza una filigrana pubblicitaria in fondo a ogni immagine modificata. Il consiglio perciò è di provare prima la versione free e poi, se interessati, spendere i due euro necessari all’acquisto della versione full. LXP

breve

Tethering a rischio?

Che i gestori di telefonia non amino il tethering, la possibilità cioè di trasformare lo smartphone in un hotspot Wi-Fi, è risaputo. Ma che potessero riuscire a convincere Google a toglierlo dal suo sistema operativo non lo credeva nessuno. Eppure è quello che è successo negli Stati Uniti con i dispositivi distribuiti attraverso gli operatori AT&T e Verizon, i cui clienti dopo l’ultimo aggiornamento non hanno più la possibilità di utilizzare questa comoda funzione. L’unica alternativa a questo punto è quella di usare un’app specifica, che però richiede i privilegi di root per poter funzionare e quindi un dispositivo

sbloccato. Speriamo solo che questa tendenza non arrivi dalla nostra parte dell’oceano.

A questo punto per Amazon è solo questione di chi arriva primo. Δ

Δ

Kindle con Android

Il sistema operativo di Google è ormai diffuso dappertutto, dalle autoradio ai sistemi di navigazione GPS, e per questo non ci siamo particolarmente stupiti nel sapere che in autunno sbarcherà anche sul lettore di ebook più diffuso sul pianeta, il Kindle di Amazon. La notizia non è ancora ufficialmente confermata, ma nel frattempo ci ha pensato Panasonic ad annunciare che il suo prossimo lettore di ebook con schermo sensibile a inchiostro elettronico avrà Android come sistema operativo.

SMS da Google+

Il social network di Google è ancora accessibile solo su invito, ma conta già oltre 20 milioni di iscritti. La novità interessante è che a partire dall’autunno chi ha installato l’app per Android potrà inviare e ricevere SMS e messaggi diretti dai propri contatti direttamente sul suo terminale Android. Nel frattempo continuano i miglioramenti all’app ufficiale, che ora prevede anche la possibilità di visualizzare i post delle persone che si trovano in un determinato raggio da noi. Peccato solo che sia veramente troppo pesante e intrusiva.

LXP108 SETTEMBRE 2011 39


L’angolo di Android HTC Flyer

HTC Flyer Il tablet con una caratteristica unica: il pennino per disegnare e prendere appunti

D

urante la conferenza di presentazione di diversi dispositivi di HTC, qualche tempo fa, quello che ci aveva stupito di più era stato il piccolo tablet con schermo da 7 pollici chiamato HTC Flyer. Perché ci aveva colpito? Non per le dimensioni, non era certo il primo tablet così, né per l’aspetto. Il motivo era la presenza di Android 2.3 invece della 3.0 e di un pennino. Quest’ultimo dettaglio ci ha fatto subito venire in mente i tablet di qualche anno fa, con quel sistema operativo bislacco... Ma non potevamo basarci su quella prima impressione a caldo, per cui abbiamo deciso di provarlo.

Cura dei particolari Le caratteristiche software e hardware dell’HTC Flyer non sono all’ultimissimo grido (niente CPU dual core, ad esempio, e il già citato Android 2.3) eppure, dopo averlo provato a lungo, non abbiamo notato problemi nell’utilizzo, neanche con videogiochi o filmati. Evidentemente la CPU ARMv7 a 1,5 GHz, l’abbondante RAM (1 GB) e la GPU Adreno 205 compiono molto bene il proprio dovere,

Un tablet abbastanza piccolo, molto potente ma con hardware non all’ultimo grido

garantendo fluidità e prestazioni in ogni situazione. L’interfaccia HTC Sense è splendida come sempre, con un effetto 3D quando si passa da una homepage all’altra, e con tutti i tool accessori che semplificano e potenziano l’esperienza utente. La memoria interna è di 32 GB, più che sufficienti

anche per gli utenti più esigenti, ed è comunque sempre possibile espanderla grazie allo slot per schede microSD. Lo schermo capacitivo è decisamente luminoso, ha risoluzione pari a 1024x600 pixel e risponde molto bene al tocco. Non manca la fotocamera, anzi ce ne sono due, una frontale da 1,3 Megapixel e una posteriore da 5 Megapixel con autofocus. La fotocamera posteriore è di qualità più che discreta. Ma stiamo dimenticando la connettività: oltre al collegamento Wi-Fi 802.11 b/g/n, è presente anche l’alloggiamento per una SIM telefonica, quindi è possibile navigare sul Web (anche sui siti che usano Flash) e sfruttare i tanti servizi offerti dalla rete in qualunque luogo, basta che ci sia campo per il 3G. Il tutto è all’interno di uno chassis robusto in metallo e monoscocca, non è quindi possibile togliere la batteria. L’unico sportello presente serve per inserire scheda SD e SIM, ma la sua apertura ci è parsa un po’ scomoda. Le dimensioni sono abbastanza contenute, pur se è un po’ più alto rispetto ad altri tablet da 7 pollici, mentre il peso è di circa 650 grammi, non pochissimo. Per proteggere questo piccolo gioiello della tecnologia, nella confezione si trova una pratica custodia che può ospitare anche il pennino.

Già, il pennino…

Disegni, note, evidenziazioni: la penna dell’HTC Flyer può fare di tutto, tranne i miracoli

40 LXP108 XP108 SETTEMBRE 201 2011

Strano ma vero, il pennino è uno dei punti di forza di questo dispositivo. Chiariamo subito: non è affatto necessario per l’uso del tablet, per questo è più che sufficiente il dito. Il pennino, però, si rivela molto utile per chi, come noi, deve spesso prendere delle note di corsa, o segnarsi qualche appunto. Per non parlare poi per chi ama disegnare… In pratica, grazie alla tecnologia HTC Scribe,

è possibile usare il pennino per disegnare, colorare, scrivere appunti direttamente su pagine Web, libri o altri documenti, e persino ritoccare le foto o evidenziare il testo che si sta leggendo (ogni testo evidenziato viene memorizzato e archiviato). In basso a destra nel corpo del tablet c’è un pulsante che, se attivato con la penna, apre i relativi controlli, grazie ai quali è possibile cambiare il tipo di punta utilizzata, il colore e lo spessore del tratto. Un sistema di cattura automatica delle schermate consente di creare note che includono screenshot per poi aggiungervi degli appunti e anche dei commenti audio. Insomma, quella che sembrava un’aggiunta inutile si rivela invece estremamente versatile, almeno per un certo tipo di utenti anche se, siamo sicuri, anche chi pensa di non usarla prima o poi la proverà… Quindi è tutto perfetto? No, purtroppo. L’aspetto negativo è il prezzo: i 649 euro richiesti per l’acquisto ci sembrano un po’ troppi, nonostante le grandi qualità di questo tablet. Poi si potrebbe aggiungere la mancanza di una porta HDMI, viste le capacità multimediali del Flyer, e forse qualcuno gli preferirà dispositivi con il nuovo Android… LXP

Giudizio HTC Flyer Produttore: HTC Web: www.htc.com/it/ Prezzo: €649,90

Caratteristiche Dotazione Prestazioni Qualità/prezzo

7.5 7.5 8 6

Un tablet molto potente, con l’aggiunta di un pennino utile in varie occasioni. Peccato per il prezzo alto.

Il voto di

Linux Pro

7.5


Xperia Play/WeWeb L’angolo di Android

Sony Ericsson Xperia Play Smartphone o console portatile? Semplicemente entrambi

S

ony Ericsson ha già fatto in passato alcuni “normali” smartphone Android, di qualità abbastanza alta, ma con il suo Xperia Play si vuole rivolgere a un pubblico ben preciso, quello dei videogiocatori. Questo handset, infatti, presenta il doppio sistema di comandi della PlayStation Portable, posti nella base scorrevole con un’apertura a scatto simile a quello delle tastiere. Dal punto di vista della giocabilità, i controlli sono davvero precisi, però lo smartphone acquisisce uno spessore maggiore del solito, risultando un po’ ingombrante. Il processore non è un dual core di nuova generazione, bensì è un classico Snapdragon di Qualcomm a 1 GHz ed è affiancato dal chip grafico Adreno 205: questa accoppiata è comunque più che sufficiente

Giudizio Sony Ericsson Xperia Play Produttore: Sony Ericsson Web: www.sonyericsson.it Prezzo: €539,00

per eseguire al meglio ogni tipo di gioco. Tra quelli preinstallati trovate Asphalt 6, Crash Bandicoot e Fifa 10, tutti presenti nella scheda SD da 8 GB in dotazione. Ottima la qualità del doppio speaker. Il display capacitivo da 4 pollici ha una risoluzione insolita, 400x854 pixel: la risposta al tocco è più

Caratteristiche Anatomia Prestazioni Qualità/prezzo

che buona, mentre i colori non sono brillantissimi. La versione di Android è la 2.3, arricchita dalla classica interfaccia Timescape di Sony Ericsson; la resa telefonica è buona,

DEVO WeWeb Un dispositivo Android che fa diventare smart i televisori

D

a qualche tempo il mondo dei televisori ha vissuto due rivoluzioni: il 3D e l’accesso a Internet. I televisori con questa seconda capacità sono definiti Smart TV e consentono di fare alcune delle cose che si fanno con il PC, come navigare o chattare. Ma come fare se si vuole far diventare smart un vecchio televisore? Semplice, si può acquistare un dispositivo come il WeWeb di DEVO. Si tratta di un piccolo apparecchio con sistema operativo Android Froyo che si collega al TV tramite cavo HDMI (fornito in dotazione). A sua volta il WeWeb si può collegare a Internet via Ethernet o Wi-Fi. Il tutto si controlla tramite un telecomando che agisce anche da mouse, in modo simile a quanto si fa con i controller della Wii, per essere

con una funzione che mette in standby i giochi se si riceve una telefonata. Peccato che a volte il gioco non riprenda. La fotocamera è da 5 Megapixel e ha un illuminatore piuttosto potente, che consente di scattare foto in ogni condizione di luce. L’autonomia della batteria, infine, varia molto in base all’uso che si fa dello smartphone: difficilmente si arriva a fine giornata se si gioca per più di pochi minuti.

chiari. Purtroppo questo Air Mouse (così viene chiamato il telecomando) non è altrettanto preciso: ci vuole un po’ di tempo per adattarsi ad esso ed è scomodo soprattutto quando si deve scrivere qualcosa con la tastiera virtuale. Fortunatamente è possibile collegare mouse e tastiera a una delle tre porte USB presenti. Accendendo il WeWeb si vede l’interfaccia di Android 2.2 con le applicazioni tipiche di un media player, come un riproduttore video, un visualizzatore di foto, un browser compatibile con Flash 10.1 e un’app per accedere a YouTube.

7.5 6.5 7.5 6.5

Da non perdere se amate i giochi della PSP, altrimenti è da valutare con cura visto il prezzo abbastanza alto.

Il voto di

7

Linux Pro

la riproduzione video, il produttore indica la compatibilità con i video HD (480p, 720p e 1080p) ma nelle nostre prove i video più pesanti (MKV) sono stati riprodotti in modo poco fluido. Oltre che dalla Rete è possibile dare in pasto file al WeWeb tramite dischi o chiavette collegate via USB oppure schede SD tramite il relativo slot. LXP

Giudizio DEVO WeWeb Produttore: Devo Web: www.e-devo.com Prezzo: €169,00

Caratteristiche Dotazione Prestazioni Qualità/prezzo

È anche possibile installare altre app dal Market: abbiamo provato alcuni giochi, ma non sempre sono facilmente utilizzabili con il telecomando. Per quel che riguarda

7 7 6 6.5

Un prodotto discreto per chi vuole far diventare smart il proprio televisore. Peccato per la riproduzione video non perfetta.

Il voto di

Linux Pro

6.5

LXP108 SETTEMBRE 2011 41


L’angolo di Android Programmazione

Animazioni con Android Linux Pro vi guida alla scoperta delle potenzialità del vostro smartphone spiegandovi come costruire un’app veramente interattiva Negli scorsi numeri avete scoperto come impostare un piccolo progetto Android, come visualizzare informazioni e come ricevere l’input dell’utente. Nonostante tutto ciò avete avuto a che fare con una piccola parte della galassia di API Android. In questo numero vedrete come sfruttare gli aspetti peculiari dei dispositivi mobili. A differenza dei desktop, o dei notebook, gli smartphone sono veramente portatili. Si possono scuotere o ruotare – e, secondo gli spostamenti del dispositivo, è possibile fare in modo che il vostro codice si comporti adeguatamente. Le API di Android supportano molti sensori dai quali estrarre informazioni, che potrete utilizzare nelle vostre app. In questo tutorial sfrutterete il sensore di gravità e la sua relazione con l’accelerometro. Ma prima dovrete imparare a gestire la grafi ca della vostra app Android. Sullo schermo di Android, le coordinate 2D hanno origine dall’angolo in alto a sinistra e sono misurate in pixel. Questo indipendentemente dall’orientamento dello smartphone, che tuttavia infl uenzerà la scelta dell’angolo fi sico

da considerare alto a sinistra, in funzione del modo in cui è tenuto il telefono. In questa app, bloccherete l’orientamento in modo da non far cambiare la vista in seguito a rotazioni. Questo inoltre vi consentirà di trascurare il codice di adattamento del layout in risposta ai cambi di orientamento, concentrandovi sulle cose importanti. Per ottenere questo risultato, aprite il fi le AndroidManifest.xml e aggiungete l’attributo screenOrientation all’elemento activity per bloccare l’orientamento dello schermo: <activity android:name=“SpiritLevelActivity” android:label=“@string/app_name” android:screen Orientation=“portrait”> Il metodo setBounds(Rect bounds) appartiene a ShapeDrawable, ereditato da Drawable. Una volta defi nita outer, il passo successivo consiste nella creazione di un LayerDrawable. Nel caso avessimo avuto bisogno del solo rettangolo esterno questo non sarebbe stato necessario, tuttavia dato che si vuole gestire anche un elemento interno inner (per la bolla della livella) e la bolla stessa, la migliore strategia è l’utilizzo di un oggetto

Grafica Nelle precedenti puntate la classe View è stata utilizzata per visualizzare e organizzare le informazioni sullo schermo. Gli oggetti View sono i mattoncini che compongono l’interfaccia utente e ne gestiscono il disegno e gli eventi all’interno di un’area rettangolare. È possibile creare alberi e gerarchie di View per comporre layout complessi e mostrare animazioni e disegni, semplicemente inserendole all’interno di un oggetto View, che rimane, in verità, adatto solo per il contenuto statico. Nel caso stiate sviluppando un’applicazione grafica che debba rispondere con prontezza alle interazioni dell’utente – un’opzione migliore è l’uso della classe Canvas. Un oggetto Canvas è un interfaccia tra il programmatore e la bitmap da disegnare nell’area gestita dalla stessa. Questo tutorial vi vedrà impegnati nella creazione di un’app livella, che ridisegnerà lo schermo in funzione dell’inclinazione del dispositivo, perciò l’utilizzo di Canvas è ideale.

Due modi di usare Canvas 1 Creare il proprio componente personalizzato View e gestire il ridisegno tramite questi. Quest’opzione è ottima se l’app non richiede molta potenza e non deve ridisegnarsi molto spesso. 2 Utilizzare un thread separato e una SurfaceView. Questo approccio ridisegna lo schermo appena possibile, perciò è ideale per le app che necessitano di risposte grafiche veloci. La vostra livella non dovrà ridisegnarsi così spesso perciò, in questo caso, utilizzerete la prima opzione

42 LXP108 SETTEMBRE 2011

e creerete un componente View personalizzato. Per impostare un nuovo progetto scrivete: android create project --target android-10 --name spiritlevel \\ --path ~/android/spiritlevel --activity SpiritLevelActivity \\ --package com.example.spiritlevel (Si vedano i precedenti tutorial, o la documentazione di Android, per ulteriori spiegazioni). Quest’app verrà sviluppata su Android 2.3.3 (livello API 10), dato che il sensore di gravità è stato introdotto nel livello 9. Il primo passo consiste nella creazione della View personalizzata, che disegnerà la sagoma della livella. Non includeremo tutto il codice in queste pagine, perciò dovrete consultare il codice online per ottenere il listato completo. Il sorgente di questo primo passo, che migliorerete in seguito, risiede nel file SpiritLevelDrawableViewOne.java, e che dovrete rinominare in SpiritLevelDrawableView.java per farlo compilare adeguatamente. Il codice per la sagoma della livella è il seguente: public class SpiritLevelDrawableView extends View { private LayerDrawable layer; public SpiritLevelDrawableView(Context context) { super(context); int outerX = 80; int outerY = 50; int outerWidth = 150; int outerHeight = 300; ShapeDrawable outer =

new ShapeDrawable(); outer.getPaint(). setColor(0xFF9933FF); outer.setBounds(outerX, outerY, outerX + outerWidth, outerY + outerHeight); layer = new LayerDrawable(new Drawable[] {outer}); } protected void onDraw(Canvas canvas) { layer.draw(canvas); } } Un oggetto di tipo Drawable è una classe generica per tutti gli elementi che possono essere disegnati; viene estesa da classi come ShapeDrawable e LayerDrawable per aumentarne la specificità. La nuova variabile ShapeDrawable, outer (l’esterno della livella) verrà costruita con le impostazioni di default di RectShape, dato che il costruttore non riceve altri parametri. Successivamente, viene impostato il colore utilizzando un valore RGB e vengono definiti i limiti della forma. Si veda il box sul colore per approfondire l’argomento. Il colore utilizzato è un violetto ma potreste volerlo cambiare a piacimento. ShapeDrawable disegnerà la forma costruita (in questo caso RectShape) all’interno dei limiti forniti dal metodo setBounds. Questi attribuisce le coordinate x e y dell’angolo in alto a sinistra e in basso a destra. In pratica, viene definito il rettangolo dello schermo dove verrà disegnato ShapeDrawable.


Programmazione L’angolo di Android LayerDrawable, costruito tramite un array di oggetti Drawable. Defi nitelo al momento come variabile di classe dato che lo gestirete solo in seguito. Il contenuto di LayerDrawable verrà disegnato utilizzando passate successive, in funzione dell’ordine dell’array iniziale.

Costruire la bolla Una View necessita di un metodo onDraw per defi nire le operazioni di disegno. Molto semplicemente richiamate il metodo draw del LayerDrawable: protected void onDraw(Canvas canvas) { layer.draw(canvas); } Consultate il sorgente online (www.sprea.it/ download/linuxpro/android_lxp108.tgz) per gli elementi interni della livella (il liquido che contiene la bolla). Per la bolla utilizzerete la classe OvalShape e defi nirete i suoi limiti come quadrati, per produrre un cerchio: bubble = new ShapeDrawable(new OvalShape()); bubble.getPaint().setColor(0xFF000000); bubble.setBounds(bubbleX, bubbleY, bubbleX + bubbleDiam, bubbleY + bubbleDiam); layer = new LayerDrawable(new Drawable[] {outer, liquid, bubble}); Ora che avete creato la View personalizzata, dovrete aggiornare il metodo principale dell’applicazione SpiritLevelActivity per utilizzarla: public class SpiritLevelActivity extends Activity { SpiritLevelDrawableView spiritlevelView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); spiritlevelView = new SpiritLevelDrawableView(this); setContentView(spiritlevelView); } } Compilate l’Activity con ant debug, avviate android e un dispositivo di test, installate il nuovo codice con ant install -r bin/spiritlevel-debug.apk e avviate l’app. Eccola! Una semplicissima livella apparirà sullo schermo, che ovviamente non farà assolutamente nulla di interessante. Fino al prossimo intervento sul codice... Esistono dispositivi Android di molte dimensioni e con densità dello schermo diverse; in generale, quindi, non è una buona idea inserire valori in pixel nel codice. Esistono diverse alternative possibili: utilizzare l’unità di misura dp (pixel indipendenti dalla densità), utilizzare i layout XML o fornire bitmap alternative per densità di schermo diverse. Vedrete come gestire queste eventualità in seguito. Un modo veloce per scalare l’app su schermi diversi consiste nell’impostare android:anyDensity nel fi le AndroidManifest.xml: <manifest ... > <supports-screens android:anyDensity=“false” /> </manifest> Questa impostazione indica al sistema di scalare le coordinate assolute in pixel a runtime, invece

Gestire il colore I colori in Android sono definiti come packed int, con quattro byte, ognuno per alfa (trasparenza), rosso, verde e blu e ognuno in esadecimale. Un valore alfa di FF è opaco (mentre 00 è completamente trasparente). Il rosso opaco 0xFFFF0000; il nero opaco 0xFF000000. La classe Color definisce alcune costanti, come Color.BLACK e Color.YELLOW, tuttavia si tratta di una palette di colori limitati, perciò probabilmente utilizzerete gli interi. Il linea di massima, comunque, avere interi sparsi per il codice non è una buona idea – non aiuta la manutenibilità. Potreste invece memorizzare le definizioni di colore in un file risorsa, come res/values/colors.xml (il nome del file non importa, nonostante debba essere nella directory res/values/):

<?xml version=“1.0” encoding=“utf-8”?> <resources> <color name=“brightpurple”>#ff9933ff</color> <color name=“brightyellow”>#ffffff00</color> </resources> Potete fare riferimento a queste risorse nel codice: Resources res = getResources(); outer.getPaint().setColor(res.getColor( R.color.brightpurple)); Se utilizzate uno dei colori per cui è prevista una costante in Color, è buona pratica, che risparmia righe di codice, utilizzarla invece di aggiungere un nuovo colore: bubble.getPaint().setColor(Color.BLACK);

di prescalarle nel codice, secondo la densità dello schermo rilevata. Per il momento, questo trucco rapido è ideale per minimizzare il problema tuttavia non dovreste rilasciare codice con valori in pixel. Android supporta una notevole varietà di sensori hardware: accelerazione, gravità, giroscopio, luce, accelerazione lineare, campo magnetico, pressione, prossimità, vettore di rotazione e temperatura. Ognuno può essere rappresentato dalla classe Sensor e interrogato tramite la classe SensorManager. Gli eventi dei sensori sono rappresentati dalla classe SensorEvent, che mantiene i dati relativi all’evento (inclusi accuratezza e timestamp). La classe SensorEvent utilizza un set di coordinate diverso da quello del motore grafi co 2D. L’origine è il centro dello schermo; l’asse x è orizzontale (attraverso

Tip Nel caso adb non riesca a connettersi al dispositivo alla prima installazione del codice, semplicemente eseguitelo nuovamente.

œ

Specificate un rettangolo dando queste coordinate

2b+c=d quindi b=(d-c)/2 c è liquidHeight e d è outerHeight quindi la coordinata y dell’incrocio è e+(outerHeight-liquidHeight)/2 Applicate la stessa logica per ottenere la coordinata x

Calcolare i valori per la grafica LXP108 SETTEMBRE 2011 43


L’angolo di Android Programmazione Per i test Ringraziamo Acer per averci fornito lo smartphone Acer Liquid E per verificare il funzionamento delle applicazioni create.

lo schermo) e punta a destra; l’asse y è verticale e punta in alto; l’asse z attraversa il dispositivo e punta verso lo schermo e l’utente. Per capire come le classi Sensor, Management ed Event cooperino, impostate il sensore di gravità: public class SpiritLevelActivity extends Activity implements SensorEventListener { private SpiritLevelDrawableView spiritlevelView; private SensorManager manager; private Sensor gravity; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); spiritlevelView = new SpiritLevelDrawableView(this); setContentView(spiritlevelView); manager = (SensorManager) getSystemService(SENSOR_SERVICE); gravity = manager. getDefaultSensor(Sensor.TYPE_ GRAVITY); } } La prima parte del codice imposta la View personalizzata. In seguito il metodo getSystemService (ereditato dalla classe Activity) recupera il servizio di gestione dei sensori, che viene utilizzato per ottenere il sensore della gravità.

Gestire i sensori Potreste voler lasciare accesi i sensori per tutto il tempo, tuttavia consumereste la batteria in fretta. È una buona pratica, infatti, spegnerli quanto l’activity viene interrotta, e riattivarli al ripristino: protected void onResume() { super.onResume();

Tip Quando il dispositivo non è in movimento, l’output dell’accelerometro e del sensore di gravità dovrebbe essere identico. Perciò se volete eseguire il codice in Android 2.2 o precedente, che non include il supporto ai sensori di gravità, sostituite TYPE_GRAVITY con TYPE_ ACCELEROMETER nel codice. Assicuratevi di tenere ben saldo il dispositivo durante i test.

La livella in azione

44 LXP108 SETTEMBRE 2011

manager.registerListener(this, gravity, SensorManager.SENSOR_DELAY_GAME); } protected void onPause() { super.onPause(); manager.unregisterListener(this); } Alternative ai valori di ritardo nell’ascolto dei sensori sono SENSOR_DELAY_NORMAL e SENSOR_DELAY_FASTEST, tuttavia quello selezionato è perfetto per il vostro caso d’uso. Dovrete, infine, rispondere all’arrivo di nuovi dati dal sensore: public void onSensorChanged(SensorEvent event) { spiritlevelView.invalidate(); } Semplicemente avete fatto in modo che la vista della livella si debba aggiornare autonomamente. Fantastico ma è necessario che la View rifl etta i dati in arrivo dal sensore, contrariamente a ora. Il prossimo passo è quindi la raccolta dei dati per l’utilizzo in seguito. Il sensore restituisce un array di tre valori, rappresentanti un vettore 3D (x, y, z) con direzione e modulo della gravità. Ignorate il valore x e considerate il solo valore della direzione y (inclinazione alto – basso; la direzione x considera l’inclinazione sinistra – destra). Se il device è posizionato su una superfi cie perfettamente piatta, la gravità agirà completamente sull’asse z, che riporterà il valore di 9.81 (9.81 m/s^2 è il modulo della gravità terrestre), mentre il valore su y sarà zero. Se, d’altro canto, il dispositivo è in piedi la gravità agirà sull’asse y, che riporterà come valore 9.81 e zero sull’asse z. Se lo smartphone si viene a trovare tra i due stati, i valori rilevati per y e z saranno compresi tra questi. La scelta più opportuna è collegare il valore di y direttamente alla posizione della bolla, e ridisegnarla in funzione dei cambiamenti di gravità rilevati. Inserite un metodo in SpiritLevelDrawableView per fare ciò. Per prima cosa spostate le dimensioni della bolla fuori dal metodo main, in modo da poterle variare dal metodo moveBubble(). Questo defi nirà la posizione di default della bolla, al centro del liquido. Create il metodo come segue protected void moveBubble(fl oat gravY) { bubbleY = bubbleOrigY - (int) (gravY * 5); } e ridisegnate la bolla nel metodo onDraw (chiamato in seguito all’invalidate() della View): protected void onDraw(Canvas canvas) { bubble.setBounds(bubbleX, bubbleY, bubbleX + bubbleDiam, bubbleY + bubbleDiam); layer.draw(canvas); } In moveBubble, il valore del sensore è passato come un fl oat e deve essere convertito in intero prima del salvataggio in bubbleY, dato che il metodo setBounds chiamato in onDraw lo richiede. Inoltre, dato che il valore sull’asse y cresce inclinando lo schermo, per ottenere il movimento


Programmazione L’angolo di Android corretto della bolla dovrete sottrarre il valore dall’origine (fate qualche esperimento). La moltiplicazione per cinque amplifi ca, infi ne, il movimento della bolla – dato che il sensore ha un minimo di 0 e un massimo di 9.81, utilizzando questi valori si otterrebbe solo un piccolo movimento di 10 pixel.

Gli assi dei sensori di Android

Valori e logging Per scoprire quali valori ritornano i sensori e per sperimentare i valori adeguati in pixel per la bolla, potreste aver bisogno di logging e debugging. Per aggiungere una linea di log al vostro codice, utilizzare quanto segue: /* riga in testa alla classe */ private static fi nal String TAG = “SpiritLevelActivity”; /* riga dove avetre bisogno di log */ Log.i(TAG, “onSensorChanged() ” + event.values[0] + “ ” + event.values[1] + “ ” + event.values[2] + “ ” + gravY); Avviate ddms da riga di comando, ed eseguite la vostra app. Nel lato sinistro di ddms vedrete le informazioni di processo per i dispositivi e gli emulatori collegati. Cliccate nel dispositivo da debuggare, eseguite l’activity e le informazioni di debug appariranno in basso nella fi nestra. Questo è particolarmente utile nel caso di crash durante l’esecuzione, dato che vi verrà restituito uno stacktrace. Tornate ora alla classe SpiritLevelActivity. Recuperate le informazioni sul sensore non appena disponibili, chiamate il metodo moveBubble e aggiornate la View: public void onSensorChanged(SensorEvent event) { spiritlevelView.moveBubble( event.values[1]); spiritlevelView.invalidate(); } Sfortunatamente non è possibile utilizzare l’emulatore per testare queste funzionalità, dato che non vengono generati dati fi ttizi per i sensori. Dovrete quindi collegare un dispositivo reale al computer e testarle l’app in questo modo. Si veda lo scorso numero, o http://developer. android.com/guide/developing/device.html, per i dettagli. Una volta ottenuti i valori sull’asse y, potreste implementare la funzionalità anche per l’asse x. In questo caso dovrete però aggiungere e non sottrarre i valori di gravità in moveBubble() per ottenere uno spostamento nella direzione corretta: bubbleX = bubbleOrigX + (int)(gravX * 5);

Calcolare la grafi ca Arrivati a questo punto, la vostra app continua a includere molte costanti per la grafi ca, spesso ottenute per tentativi. Nonostante non si andrà a sostituirli completamente, potrebbe essere una buona idea rendere il tutto più armonioso. Il box interno, contenente il liquido per la bolla, deve consentire il movimento della stessa che deve bloccarsi alla fi ne del box, quando il telefono è completamente inclinato (come in una vera livella). Fortunatamente, lo scostamento massimo in ogni direzione è facilmente calcolabile: il massimo possibile della gravità (gravX o gravY) moltiplicato per cinque, il fattore di ingrandimento. È una cattiva

pratica avere valori costanti nel sorgente, perciò potreste modifi carlo come segue: private static fi nal double WIDTH_MAGNIFY = 1.5; private static fi nal double HEIGHT_MAGNIFY = 3; int liquidWidth = (int) ((SensorManager. STANDARD_GRAVITY * WIDTH_MAGNIFY * 2) + bubbleDiam + 0.5); int liquidHeight = (int) ((SensorManager. STANDARD_GRAVITY * HEIGHT_MAGNIFY * 2) + bubbleDiam + 0.5); I valori riportati di WIDTH_MAGNIFY e HEIGHT_MAGNIFY risultano gradevoli sullo schermo, tuttavia siete liberi di variarli a piacimento. SensorManager.STANDARD_GRAVITY restituisce esattamente quello che ci si può aspettare: il valore standard di gravità, che corrisponde al massimo ottenibile in ogni direzione. Oltre a consentire il movimento, è necessario includere lo spazio per la bolla stessa e un valore di 0.5, che consente di arrotondare il tutto verso l’alto. In modo analogo, è possibile ottenere i valori in pixel per il box interno calcolandoli dai valori del box esterno: int liquidX = outerX + (outerWidth-liquidWidth)/2; int liquidY = outerY + (outerHeight-liquidHeight)/2; bubbleX = bubbleOrigX = outerX + (outerWidth/2) - (bubbleDiam/2); bubbleY = bubbleOrigY = outerY + (outerHeight/2) - (bubbleDiam/2); Questo centrerà il liquido e la bolla rispetto alla sagoma esterna. I metodi moveBubble e onDraw sposteranno la bolla al suo interno. Ricompilate, installate e testate l’app. Dovreste vedere una piccola bolla muoversi sullo schermo in risposta all’inclinazione del telefono. Aggiungete un po’ di grafica per disegnare una croce nel box del liquido, e cominciate a raddrizzare tutti i quadri della vostra casa. LXP

Tip Potete facilmente inserire un’immagine nella vostra app salvandola (come PNG o JPG) in res/drawable e riferendola nel codice con l’ID risorsa R.drawable.filename (senza estensione).

Nel prossimo numero Continuerete a scoprire dettagli sull’interfaccia di Android e sull’uso dell’interfaccia touchscreen; grafica, layout dello schermo e giochi; gestione multithreading, accelerometri e altri sensori hardware.

LXP108 SETTEMBRE 2011 45


DIGITAL CAMERA Magazine il tuo assistente FOTOGRAFICO

CORRI SUBITO IN EDICOLA!


Recensioni Tutte le novità in campo software e hardware testate e valutate ogni mese dai nostri laboratori

Una breve legenda Ogni test di questa sezione è accompagnato da un giudizio che riassume con quattro indici numerici le principali qualità dell’applicazione o del prodotto hardware messo alla prova. I laboratori di Linux Pro assegnano un voto da 1 a 10 alle seguenti categorie: Caratteristiche: fornisce tutte le funzioni di cui abbiamo bisogno? È innovativo? Prestazioni: esegue in maniera efficiente le sue funzioni? È veloce e affidabile? Facilità d’uso: dispone di un’interfaccia grafica chiara e facilmente fruibile? La documentazione che lo accompagna è sufficientemente completa ed esaustiva? Qualità/prezzo: ha un prezzo competitivo? Vale i soldi richiesti per il suo acquisto? Il nostro giudizio viene poi riassunto da un voto finale, espresso anche graficamente. Ecco la legenda dei voti: Nulla da eccepire. Un prodotto praticamente perfetto. Un buon prodotto. I pochi difetti presenti non sono gravi. Compie il suo lavoro ma necessita di ulteriori sviluppi. Deve migliorare prima di raggiungere un voto sufficiente. Un completo disastro. Gli sviluppatori devono tornare alla fase di progettazione.

10 8-9 6-7 5-4 1-3

Ricordiamo infine che i software citati nelle sezioni Confronto e Da non perdere sono spesso presenti nel DVD sotto la voce “Rivista” sotto forma di codice sorgente o binario.

QUESTO MESE... Test >> MeeGo 1.2 Netbook Edition Il sistema operativo pensato da Intel e Nokia per il mercato mobile. Tutte le novità, i pregi e i difetti dell’ultima release pag. 48

Endian UTM Mercury Una soluzione di sicurezza per aziende medio piccole (da 10 a 100 utenti) completamente basata su software Open Source. Molto più di un firewall pag. 50

MeeGo

Asus 1011PX Un piccolo netbook targato Asus con Ubuntu preinstallato, per chi non vuole sprecare denari in licenze inutili pag. 52

In libreria Δ Creare applicazioni con Google Earth e Google Maps Δ Atmel AVR Microcontroller Develpment pag. 53

Asus 1011PX

Da non perdere >> Quattro programmi da provare subito, li trovate anche nel DVD allegato a questo numero! Δ The Powder Toy pag. 56 Δ Sinergy FLOSS pag. 57 Δ Enable Viacam pag. 58 Δ Caesar’s Code pag. 58

The Powder Toy LXP108 SETTEMBRE 2011 47


Test MeeGo

MeeGo 1.2 Netbook Edition Linux Pro trova che questa distribuzione, capace di riprodurre perfino i film nella vostra auto, sia ancora molto vitale nonostante i problemi che sta passando Nokia

L

a vita di MeeGo negli ultimi 12 mesi ha visto alti e bassi. Inizialmente, sia Nokia sia Intel hanno investito pesantemente per far arrivare al successo questa distribuzione. Poi Nokia ha deciso di basare su Windows Mobile la sua strategia per gli smartphone. Mesi dopo, in un improvviso ritorno a ciò che sarebbe potuto essere, Nokia ha fatto vedere un’anteprima del suo smartphone N9, che faceva girare un’impressionante versione di MeeGo. Ma anche se i dispositivi di Nokia potrebbero non vedere gli sviluppi della piattaforma MeeGo, ci pare che essa sia decisamente viva.

Varie versioni La versione 1.2 è disponibile in diversi “aromi”. Per la maggior parte degli utenti Linux, la più utile è la Netbook Edition (NE). Si può anche scegliere tra una release vanilla e una con Google Chrome, ma con quest’ultima dovrete accettare un’EULA. Come in passato, la versione Netbook è strettamente legata alle CPU Atom di Intel e può essere installata facendo una copia bit a bit su una chiave USB da 1 GB dell’immagine scaricata.

IIn evidenza

GUI intelligente Tanti piccoli miglioramenti all’interfaccia aiutano a creare una piacevole esperienza utente.

48 LXP108 SETTEMBRE 2011

Siamo riusciti a farla andare anche in VirtualBox, ma non è un’esperienza piacevole, non dà le stesse sensazioni di un desktop MeeGo nativo. Esiste poi un’immagine ufficiale chiamata In-VehicleInfotainment, un’altra piattaforma Intel Un fantastico uso dell’accelerazione hardware, una GUI aggiornata progettata per e il passaggio immediato tra un task e l’altro rendono MeeGo un’ottima soluzione per il mondo mobile le automobili, e sembra che su Nautilus 2.30.0, sembra MeeGo potrebbe aver trovato il supporto per le gesture o lo meglio integrato nell’ambiente, un’importante nicchia in questi scrolling con due dita. Se avete ma è privo di alcune utili mercati emergenti. Infine, usato le versioni precedenti, funzioni, come l’invio dei file è supportata anche la la prima cosa che noterete tramite Bluetooth. Il dubbio piattaforma ARM. Avviando è che il Window Manager un netbook dalla chiave USB basato su Mutter è decisamente più grande che abbiamo su MeeGo è relativo al suo app potete installare MeeGo oppure più rapido, almeno sul nostro store, MeeGo Garage, che testarla in modalità live. Se il netbook a 1,6 GHz. L’apertura è ancora chiuso e non sembra vostro hardware è compatibile, del menu in alto, ad esempio, esserci segno di una possibile l’installazione è molto semplice: è praticamente istantanea data d’apertura. Comunque su un Samsung NC10 la distro ora. Anche lo “zone switcher”, questo non dovrebbe era pronta in 20 minuti. l’equivalente di MeeGo dei scoraggiarvi dal provare Questa versione ora supporta desktop virtuali, non vacilla il tethering USB, Wi-Fi nello scorrere tra le applicazioni questa ottima soluzione. LXP e BT-PAN per condividere in esecuzione, anche mentre la connessione Internet del è in riproduzione un filmato. netbook. Manca invece, ancora, Il software beneficia anche di un anno di fix, con raffinamenti MeeGo 1.2 della GUI per tutto lo stack Netbook Edition di tool built-in, incluso il media Sviluppatore: Linux player, la pagina dei feed, Foundation e altri la pagina di lancio, l’anteprima Web: www.meego.com dei dispositivi e il pannello per Caratteristiche 8 il networking. Anche la pagina Prestazioni 8 delle impostazioni è più Facilità d’uso 9 facilmente gestibile, visto Documentazione 8 che ora è possibile vedere Con un nuovo ciclo di rilasci ogni finestra disponibile, invece semestrale, non vediamo l’ora dell’elenco delle versioni di vedere la prossima versione. Configurazioni precedenti, anche se alcune L’elenco delle applicazioni opzioni, come quella che mostra e delle impostazioni ora sono il system tray, non sono ancora più semplici da gestire. Linux Pro perfette. Il file manager, basato

Giudizio

Il voto di

8


nel DVD IN EVIDENZA BackTrack 5 La distro che contiene tutti gli strumenti che servono a chi vuole diventare un pentester di livello professionale

Sabayon 6 GNOME Un potentissimo desktop animato da Gentoo e arricchito da tantissimi strumenti

Firefox 5.0.1

Wireshark

Il browser Open Source più diffuso si è aggiornato per essere ancora più veloce e personalizzabile

Il più famoso e capace software per l’analisi dei protocolli di rete e per il packet sniffing, per identificare i problemi della LAN

LXP108 SETTEMBRE 2011 49


Test Endian UTM Mercury

Endian UTM Mercury La sicurezza per le reti piccole e medie è targata Open Source

U

na rete aziendale deve fornire svariati tipi di servizi garantendo al contempo un alto livello di sicurezza per i suoi utenti. Per ottenere questi risultati e facilitare il lavoro dei sysadmin sono stati sviluppati dei dispositivi detti UTM (Unified Threat Management) che unificano in un’unica soluzione diverse funzioni: proxy Web, filtro antispam, antivirus, firewall e gestione delle VPN. Inoltre esistono prodotti UTM di diverse prestazioni e prezzo in base alla tipologia di rete che si vuole proteggere. Questo mese abbiamo provato un prodotto, l’Endian UTM Mercury pensato per le reti di aziende medio/piccole, da 10 a 100 utenti e basato su Linux e su diversi software Open Source.

Setup guidato Il dispositivo di Endian ha caratteristiche hardware di tutto rispetto (le trovate nel box Specifiche hardware) come la CPU dual-core che garantisce ottime prestazioni e le 6 porte di rete Gigabit che offrono una grande versatilità per quel che riguarda l’impostazione di varie zone (DMZ, rete interna, sottoreti, WAN failover, ecc.). Non è presente un’interfaccia Wi-Fi, quindi bisogna ricorrere ad altri apparati wireless; visto l’alto prezzo del prodotto, ci saremmo aspettati anche questo

tipo di funzionalità. Le porte USB servono per collegare unità a dischi esterne o chiavi USB (per il backup, come vedrete più avanti) oppure una chiave 3G. Endian ha abbondato anche con lo spazio su disco, con due hard disk tradizionali da 160 GB configurati in modalità RAID 1: abilitando molte funzioni di log e con un sistema in attività per qualche anno si potrebbe arrivare a collezionare diversi GB di log. Alla prima accensione è ovviamente necessario configurare il dispositivo collegando un cavo di rete alla prima porta Ethernet (che risponde all’IP 192.168.0.15) e accedendo a un comodo wizard tramite il browser. Anche i successivi interventi di gestione e manutenzione dell’Endian UTM Mercury si svolgono tramite una completa e articolata interfaccia Web ma, essendo un sistema Linux, si può accedere alla shell via SSH, anche se si consiglia di farlo solo per compiere operazioni avanzate di debug o altre cose che vanno oltre la normale configurazione. Tornando alla procedura guidata di configurazione, essa si divide in otto fasi (10 schermate in totale) durante le quali si possono definire le varie zone (green, red, orange e blue) associando a ognuna le porte di rete che interessano. Si può anche importare

Specifiche hardware Δ Case Rack: Rack 19’’ 1 U Δ Alimentatore: interno 300 Watt Δ CPU: Dual-Core Δ Memoria: 1 GB (DDR2 667 MHz) Δ Ethernet: 6 x GigE (10/100/1000) Δ Hard disk: 2 x 160 GB (RAID1)

Δ Raffreddamento: ventola Δ Dimensioni: 44x425x240 mm Δ Peso: 3,4 kg Δ Display LCD Δ Garanzia hardware: 12 mesi Δ Certificazioni: FCC/CE/ROHS

Prestazioni Δ Utenti consigliati: 10-100 Δ Firewall Throughput: 500 Mbps Δ Connessioni simultanee: 500.000 Δ VPN Throughput: 55 Mbps

50 LXP108 SETTEMBRE 2011

Δ IPS Throughput: 55 Mbps Δ UTM Throughput: 50 Mbps Δ E-mail per giorno: 340.000* * Con antivirus e antispam abilitati.

La prima pagina dell’interfaccia Web offre un’accurata panoramica dello stato del dispositivo e fornisce l’accesso ai numerosi menu di configurazione

un’eventuale configurazione salvata su chiave USB, definire le password per l’accesso Web e SSH e la lingua dell’interfaccia. Infine ci si può registrare presso Endian per attivare il supporto. Una conoscenza di base sulle reti e un po’ di esperienza sono sufficienti per superare questa fase senza intoppi.

Tutto sotto controllo Terminata la configurazione si può accedere finalmente all’interfaccia Web di gestione. La prima schermata fornisce un riepilogo della situazione e subito a prima vista se ne può intuire la doverosa complessità, visti i tanti menu presenti. Per gestire il tutto, infatti, è necessario un utente che sappia muoversi tra le varie opzioni e configurazioni, anche se tutto è strutturato in modo ottimale. In alto si trovano ben nove menu (System, Status, Network, Services, Firewall, Proxy, VPN, Hotspot e Logs), in pratica le nove “categorie” di funzionalità dell’UTM, e ognuna di queste voci, una volta selezionata, fa apparire due sottomenu diversi, uno sulla sinistra e uno subito sotto il menu principale. Vediamo lo scopo dei menu principali. La voce System offre, tra le altre cose, l’opzione per la configurazione della rete,

la console Web, il controllo dell’accesso via SSH e il backup. Da quest’ultima voce si può definire di cosa fare il backup (impostazioni, log, ecc.) e schedularne l’esecuzione. Le possibilità sono diverse, ad esempio lasciando una chiave USB in una delle porte USB ogni notte verrà effettuato automaticamente un backup completo, di questi solo gli ultimi tre (quindi gli ultimi tre giorni) rimarranno sul dispositivo. Si può decidere anche di ricevere via mail delle notifiche quando accadono determinati eventi, anzi con le funzionalità Hotspot+Smart Connect attive è possibile anche acquistare degli SMS anche per le notifiche degli eventi di sistema. Gli SMS verranno comunque veicolati tramite Endian Network che a sua volta inoltra a servizi online di gateway SMS. Il menu Status, come si può intuire dal nome, fornisce tutti i dettagli sul funzionamento della macchina e dei servizi, indicando quali sono attivi e quali no. Le informazioni vengono mostrate in forma tabellare e tramite diversi grafici. Ma è con Services che si inizia a entrare nel cuore dell’UTM. Da qui si controllano il DHCP, l’accesso a un eventuale servizio di DNS dinamico (sono supportati 14 servizi diversi), ma soprattutto si


Endian UTM Mercury Test

Un ottimo UTM se cercate alte prestazioni, ma occhio al prezzo

incontrano le voci di configurazione di alcuni dei software Open Source di qualità integrati, come ClamAV (antivirus), Ntop (monitoraggio del traffico) e Snort (IDS). Per cui da Services si gestisce la frequenza degli aggiornamenti del database dei virus (direttamente dal sito di ClamAV), l’attivazione dello spam training, si attiva l’IDS, si controlla fin nei minimi particolari il traffico che passa dall’UTM e si attiva anche la funzione di High Availability. Per Snort il sistema usa le regole open basate sulla community www.emergingthreats.net, aggiornabili a intervalli di tempo pianificati. Queste regole possono essere modificate grazie a un editor integrato nell’interfaccia, e si possono anche inserire nuove regole personalizzate. Qualche dettaglio anche sull’alta affidabilità (utilizzabile avendo due dispositivi uguali o configurati con lo stesso numero di porte): la HA è di tipo hot-standby/scorta a caldo, non si effettua bilanciamento del carico se non per il DHCP e per configurare l’HA si imposta il master, anche con una configurazione basilare, mentre lo slave può essere configurato anche in modalità gateway (una sola scheda di rete come se fosse un normale server/

host) con un IP interno alla LAN del master. A questo punto si configura il servizio HA su entrambi i sistemi (IP, password, e-mail e poco altro). Una volta attivato il servizio lo slave perderà tutte le configurazioni ereditando quelle del master. Lo slave avrà i servizi attivi ma le interfacce di rete tutte disattivate eccetto quella dove effettua il keepalive; ogni modifica del master verrà sincronizzata anche sullo slave. Infine, sempre da Services, si può gestire la QoS (Quality of Service) e l’utilizzo della banda in modo molto accurato.

Sicurezza di rete Accedendo ai menu Firewall e Proxy si controllano tutte le altre voci relative alla sicurezza della rete. Firewall offre un controllo con una ottima granularità in base a servizi, porte e protocolli. Per attivare filtri a livello 7 (il livello applicativo) – ad esempio se si vuole bloccare l’invio di file dai client di IM - si deve ricorrere a servizi di proxy e Intrusion Prevention System. Il firewall gestisce port forwarding/Nat, si possono stabilire regole per il traffico in uscita o quello inter-zona e anche per il traffico su VPN. Il menu Proxy offre l’accesso al potente Dansguardian per quel

IIn evidenza

Web console

Ntop

Gli amministratori che preferiscono gestire le configurazioni dalla shell trovano una console integrata nell’interfaccia Web.

L’UTM di Endian integra i migliori software Open Source per svolgere i suoi compiti, come Ntop, Squid e ClamAV.

Il dispositivo di Endian ha tutte le porte di rete che vi possono servire e anche funzionalità che non sempre si trovano (come il captive portal), manca perà in Wi-Fi integrato

che riguarda il filtraggio dei contenuti, oltre a usare il sistema di blacklist del progetto http://urlblacklist.com. Inoltre si può impostare il proxy HTTP/FTP in modo trasparente o non trasparente, attivare il controllo antivirus e altro ancora. L’autenticazione degli utenti che possono uscire su Internet con le modalità specificate avviene tramite autenticazione locale o appoggiandosi a Windows Active Directory, LDAP o RADIUS. È anche possibile attivare delle restrizioni di tempo, ad esempio. Il proxy agisce anche su SMTP e POP3 con antivirus, antispam e greylisting. C’è anche il proxy DNS con funzionalità anti-spyware. Insomma, ci sembra che le possibilità di controllo siano pressoché complete, e il tutto si gestisce in modo abbastanza semplice dall’interfaccia Web, anche se attivando più controlli la complessità aumenta. Gli ultimi tre menu a disposizione sono VPN, Hotspot e Logs. Il primo consente di attivare una o più VPN (fino a un centinaio secondo Endian, ovviamente in base alla banda disponibile) usando OpenVPN, IPSEC e diversi tipi di cifratura e autenticazione; esistono client nativi per tutti i maggiori sistemi operativi scaricabili dalla Endian Network. Le funzionalità Hotspot attivano in pratica un captive portal con supporto wired/wireless e include un gran numero di funzioni, integrando un server RADIUS, il log delle connessioni e la gestione di ticket gratuiti o a pagamento. Anche in questo caso è necessaria un po’ di esperienza per la configurazione, ma l’interfaccia appare comunque chiara. Infine il menu dei log consente di visualizzare

e impostare i vari livelli di log per tutti i servizi del dispositivo. Qualche difetto dell’UTM? Nulla di grave, a nostro parere: mancanza del Wi-Fi; a volte l’interfaccia passa dall’italiano all’inglese quando si va da un menu a un sottomenu; alcune funzionalità, come l’antivirus, si appoggiano solo sui servizi d’origine e non sulla rete Endian, anche se sono previsti miglioramenti da questo punto di vista in futuro; l’interfaccia, a volte, è piuttosto complessa (ma non potrebbe essere altrimenti per uno strumento simile) e alcuni strumenti mantengono la propria GUI invece di integrarsi in quella principale. I pregi invece sono numerosissimi e quanto detto in questa recensione dovrebbe farvi capire le potenzialità e la versatilità del dispositivo. Il costo, a dir la verità, appare abbastanza alto: 2.125 €, più il canone annuale di maintenance e supporto, il cui prezzo base è di 470 €, ma è comunque giustificato dal livello qualitativo dei tanti software Open presenti. LXP

Giudizio Endian UTM Mercury Produttore: Endian Web: www.endian.com/it/ Prezzo: 2.125 € + canone

assistenza base di 470 €/anno

Caratteristiche Prestazioni Facilità d’uso Qualità/prezzo

8 9 7.5 6.5

Un UTM dalle ottime prestazioni e ricco di funzionalità; i contro sono il prezzo e la mancanza del Wi-Fi.

Il voto di

Linux Pro

8

LXP108 SETTEMBRE 2011 51


Test Asus EeePC 1011PX

Asus EeePC 1011PX È forse ricominciata l’onda dei netbook con Linux preinstallato?

A

ll’inizio dell’alba dei netbook, aperta dagli EeePC di Asus, ci eravamo quasi stupiti nel vedere dei computer venduti con Linux preinstallato. Ma dopo il primo periodo, con l’introduzione nel mercato di diversi modelli di varie marche, Linux è stato presto sostituito da Windows XP e poi da Windows 7 Starter Edition. I motivi? Probabilmente gli acquirenti non avevano premiato la scelta della distro adottata o forse a causa dei rapporti commerciali con Microsoft. Comunque, per molto tempo, tranne sporadici casi di modelli con Linux, si era costretti a installare autonomamente una distro sui netbook. Forse ora la situazione sta nuovamente cambiando: Asus ha annunciato tre diversi modelli di EeePC con Linux preinstallato. Questo mese abbiamo provato l’Asus EeePC 1011PX, uno di questi tre modelli.

I punti di forza La scelta della distro installata, molto intelligentemente secondo noi, è ricaduta su Ubuntu 10.10 (le richieste hardware dell’interfaccia di Ubuntu 11.04 evidentemente cozzano con i componenti presenti nel netbook). Tra i tanti “gusti” di Linux, Ubuntu è sicuramente tra quelli più “amichevoli” per l’utente meno esperto (sono già installati codec vari e player

Questo piccolo netbook di Asus riprende la tradizione iniziale degli EeePC e ci offre una Linux box portabile ovunque a un costo contenuto

Flash, ad esempio), mentre chi è più abile potrà comunque personalizzarlo a dovere. Il secondo aspetto da evidenziare è il prezzo: 199,00 euro al pubblico, una cifra alla portata di tutti. Ovviamente la potenza del computer non è ai massimi livelli, ma nessuno compra un netbook per giocare ai giochi 3D più recenti, giusto? La CPU è un Intel Atom N455 a 1,66 GHz, un processore a singolo core con due thread, mentre la scheda video è l’integrata Intel GMA, più che sufficienti per l’uso normale di un netbook: scrittura, navigazione in Rete, riproduzione audio/video. L’autonomia

Scheda tecnica Δ CPU: Intel Atom N455 Δ RAM: 1 GB DDR3 Δ Display: 10.1” LED WXGA (1024x600) Δ Hard disk: 250 GB HDD SATA Δ Connessioni: WLAN 802.11 a/b/g/n Δ Webcam 0,3 Megapixel

52 LXP108 SETTEMBRE 2011

Δ Porte: VGA, 3 USB 2.0, LAN RJ-45, Jack audio (cuffie/microfono), lettore di schede di memoria SD/ SDHC/ MMC Δ Batteria: 6 celle, 4.400 mAh Δ Dimensioni e peso: 262 x 178 x 36,4 mm, 1,20 Kg

garantita dalla batteria agli ioni di litio da 4.400 mAh,secondo Asus, è di circa 10 ore: nelle nostre prove, con Wi-Fi acceso e luminosità dello schermo al massimo, abbiamo lasciato in riproduzione un file AVI per circa cinque ore e, in alcuni momenti, abbiamo navigato in Rete e scritto parte di questo articolo. Al termine della prova l’indicatore dello stato di carica segnalava ancora poco più di un’ora di autonomia. È plausibile, quindi, che con uso meno intenso il limite delle 10 euro sia abbastanza realistico. Il resto della dotazione è più o meno standard: la RAM montata di default è di 1 GB (il massimo supportato è 2 GB), lo schermo è da 10,1 pollici a LED con risoluzione 1024x600, un po’ scomoda per l’uso del browser, le porte presenti sono tre USB 2.0, VGA, Ethernet 10/100, lettore MMC/SD e due jack audio (ingresso microfono e uscita cuffie). La tastiera a isola è abbastanza comoda e robusta,

comoda anche per lunghe digitazioni, con un tasto spazio non troppo ridotto, e Ubuntu ha riconosciuto tutti i tasti speciali per il controllo della luminosità, dell’audio, per lo standby, ecc. L’aspetto del netbook è piuttosto elegante (è un EeePC della serie Seashell) e il peso, circa 1,20 Kg, consente di portare sempre con sé il computer senza troppa fatica. Non poteva mancare certamente la webcam, pur se limitata a 0,3 Megapixel: le videoconferenze con Skype sono quindi garantite se ci si collega a Internet via cavo, via wireless (è presente un modulo Wi-Fi 802.11n) o con una chiave USB 3G. Le casse audio integrate sono nella media, niente di eccezionale. Infine lo spazio su disco: Asus ha inserito un disco SATA da 250 GB, più che sufficienti per contenere sistema operativo e dati; l’uso di un disco SSD avrebbe fatto lievitare il prezzo. Insomma, se vi serve un netbook e non volete spendere cifre vicine a quelle di un portatile, dovete prendere in considerazione questo nuovo modello di Asus. LXP

Giudizio Asus EeePC 1011PX Produttore: Asus Web: www.asus.it Prezzo: €199,00

Caratteristiche Autonomia Prestazioni Qualità/prezzo

7 8.5 7 9

Un netbook economico e con Ubuntu preinstallato. A meno di esigenze particolari, è perfetto.

Il voto di

Linux Pro

8.5


In libreria Test

Creare applicazione con Google Earth e Google Maps Per chi pensa che non siano solo semplici mappe da consultare

V

i ritrovate spesso a consultare le mappe di Google Maps e vi è venuta voglia di capire come integrarne una nel vostro

sito Web? La suite Geo-Google (così l’autore del libro Creare applicazione con Google Earth e Google Maps definisce l’insieme degli strumenti per la cartografia offerti da Google), nata nel 2005, ha rivoluzionato il modo di intendere e creare la cartografia. È d’obbligo dire che finalità simili le ha anche il progetto OpenStreetMap (www.openstreetmap.org), ma probabilmente i tool di Google sono più alla portata del grande pubblico. Ma tornando alla questione, l’autore del libro, docente di informatica per le scienze geografiche, illustra in modo chiaro e ricco di esempi come sfruttare gli strumenti di Google proprio per creare mappe in Google Earth e Google Maps. Tutto questo è spiegato in modo

che il lettore comprenda i meccanismi e le strategie dietro a questa attività, e non solo le mere operazioni “in sequenza” per arrivare all’obiettivo finale. La gran parte del libro (circa due terzi) è dedicata a chi non conosce i linguaggi KML e JavaScript, e illustra metodi e strumenti utilizzabili da chiunque abbia la volontà di applicarsi e fare prove. Gli ultimi cinque capitoli, invece, sono dedicati a chi vuole apprendere KML e JavaScript e vuole portare a un livello più alto le sue conoscenze e capacità cartografiche. Dobbiamo dire che la prima parte ci è parsa davvero chiara ed esaustiva, mentre gli ultimi cinque capitoli, almeno in alcuni casi, avrebbero potuto essere un po’ più approfonditi

e lunghi. In generale il linguaggio usato riesce a chiarire anche i punti più oscuri, dalle pagine trasuda la competenza dell’autore, e difficilmente ci si ritrova in difficoltà grave. Il prezzo ci pare un po’ alto.

Giudizio Creare applicazione con Google Earth e Google Maps

Autore: Giacomo Andreucci Editore: Edizioni FAG ISBN: 978-88-8233-941-8 Pagine: 348 Prezzo: € 32,00 Ideale per chi si vuole avvicinare alla cartografia di Google. Alcune parti potrebbero essere più estese.

Il voto di

8

Linux Pro

Atmel AVR Microcontroller Development L’incontrollabile Linux Pro compila l’opinione su questo libro sul suo microcontrollore

M

olto tempo fa l’unico esempio di microcontrollore esistente sembra essere il Microchip PIC. Sono

state distrutte intere foreste nel tentativo di spiegare alla gente come far illuminare dei LED. Eppure esistono altri microcontrollori e dall’avvento di Arduino i chip Atmel AVR sono diventati popolari come non mai. Chiariamo subito, però, che questo libro non riguarda Arduino. Difatti, a meno di non aver visto male, la parola Arduino non compare neanche una volta nel testo. Piuttosto, il volume copre la multiplicità di dispositivi AVR (certo, incluso l’ATMega, usato in Arduino) e come costruire dei circuiti usando questi microcontrollori, programmandoli con strumenti Open Source. Nei primi capitoli viene spiegato l’uso di AvrDude e GCC, assieme a un’intera toolchain Open Source. Il cuore di questo libro è però composto

dai brevi capitoli che spiegano in maniera molto precisa come svolgere diverse attività, come costruire i relativi circuiti e come scrivere il codice. Gli argomenti includono varie forme di comunicazione e uso dei display, così come lo sfruttamento di dispositivi a bus. Anche se questi capitoli non raggiungono il massimo livello di approfondimento – la sezione sull’interfaccia I2C, ad esempio, si basa su un semplice dispositivo per la misurazione della temperatura, mentre si sarebbero potuti fare degli esempi più complessi e illuminanti. Comunque si trovano molte informazioni sul protocollo stesso, assieme ai diagrammi delle temporizzazioni e un quadro su quello che dovrebbe capitare dopo. Il libro è ben scritto

e fornisce molti dettagli, utili a chi si è avvicinato da poco all’argomento, ma avrebbe potuto essere un po’ più ampio – dei 18 capitoli presenti, sono la metà è dedicata alla realizzazione di qualcosa, e inoltre a volte sono anche un po’ limitati. LXP

Giudizio Atmel AVR Microcontroller Development Autori: Chris Leaver Editore: Sylvania Books ISBN: 978-0956728500 Pagine 246 Prezzo: £ 19,99 Tanti suggerimenti ed esempi per gli amanti dei microcontrollori.

Il voto di

Linux Pro

7.5

LXP108 SETTEMBRE 2011 53


Test Da non perdere Sandbox-motore fisico

FREE SOFTWARE In questa rubrica recensiamo i programmi più interessanti che si possono trovare in Rete. Ogni mese navighiamo tra le migliaia di progetti Open Source che nascono o si aggiornano e selezioniamo i più nuovi, i più innovativi e quelli che possono tornare più utili per l’uso quotidiano di una Linux box. La maggior parte delle applicazioni provate si trovano nel nostro DVD, ma ne forniamo anche gli indirizzi Internet così che ogni lettore possa scaricare le versioni future. Se volete segnalare un vostro progetto o un programma Open Source che avete trovato in Rete e ritenete interessante per la maggior parte dei lettori, inviate una mail all’indirizzo redazione@linuxpro.it QUESTO MESE... The Powder Toy Synergy FLOSS Enable Viacam Caesar’s Code

The Powder Toy Δ VERSIONE 50.6 Δ WEB www.powdertoy.co.uk

È pur vero che i climi caldi rendono il turismo florido, ma forse in questo caso si sta esagerando un pochino

56 57 58 58

O

gni estate si assiste e si partecipa alla rituale creazione di inermi castelli di sabbia, pronti a essere distrutti nei modi più disparati dalle menti di piccoli sperimentatori in erba. Infatti se molti si limitano a calciare l’opera creativa per il gusto di vederla crollare, i più evoluti si adoperano in complessi piani di annientamento automatico:

magari tramite l’ausilio di acqua o sabbia asciutta. Tutto questo però esaurisce il divertimento con il passare degli anni, principalmente per mancanza di elementi da far reagire. Se in parte questa carenza viene colmata dal “kit del piccolo chimico”, risulta comunque difficile (per non dire mortalmente pericoloso) procurarsi materiali rari o costosi con cui “giocare”.

L’interfaccia di The Powder Toy Consol-e-atevi Per far apparire la console basterà premere ~ e da qui potrete modificare gran parte dello stato del sistema.

Siete sotto pressione? Tra gli altri fattori viene calcolata anche la pressione, qui potete vederne il valore attuale nel punto sotto il cursore del mouse.

È tempo di creare Per nuovi materiali basta cliccare e trascinare il cursore. Scegliete la LAVA e “scatenate l’inferno!”.

56 LXP108 SETTEMBRE 2011

Scegliete la vostra arma

Il dito di Dio

Le tipologie di materiali sono molte e parecchio diverse tra loro. Attenzione: alcune reazioni sono davvero.. esplosive!

Certo non farsi prendere la mano è quasi impossibile.. come resistere alla tensione di seppellire una città con il PLASMA?

Se state annuendo e siete tra quanti hanno sempre sognato di immergere qualche chilo di Rubidio in una vasca d’acqua solo per vedere “che effetto fa”, avete trovato il gioco che fa per voi. The Powder Toy è infatti una sorta di sandbox che offre la possibilità ai giocatori di sfruttare i materiali più disparati, osservandone le reazioni basandosi su un motore chimico/fisico abbastanza realistico. Non ci sono mostri da uccidere, niente principesse da salvare né zombie da sterminare. Al massimo dovrete lottare con le vostre conoscenze di chimica per scoprire qual è il modo migliore per usare l’uranio. Non preoccupatevi comunque, pensa a tutto la comunità. Infatti uno dei punti di forza di The Powder Toy è proprio il vantaggio di appoggiarsi a dei server che permettono agli utenti (registrati gratuitamente sul sito) di condividere le proprie creazioni, estendendo all’infinito le possibilità di gioco offerte. Guardando i quadri di The Powder Toy potrete constatare due cose: la prima è che la mente umana non ha confini mentre la seconda è che ci sono un sacco di persone disposte a “investire” il proprio tempo in attività di tutto rispetto, come ad esempio la riproduzione fedele di un reattore nucleare, o un sensore per stabilire il record della bomba più distruttiva. Insomma, se siete stanchi di bruciarvi le dita e ci tenete alla pellaccia, ma allo stesso tempo avete sempre voluto vedere cosa succede al deuterio quando lo bombardate di neutroni, non fatevi scappare queste pietra miliare degli ultimi anni video-ludici.


Da non perdere Test Condivisione di periferiche

Synergy FOSS Δ VERSIONE 1.4.2 beta Δ WEB www.synergy-foss.org

È

un peccato che Bertrand Russell non abbia avuto modo di conoscere Synergy FOSS quando ha realizzato l’opera “Elogio dell’ozio”. Avrebbe dedicato un capitolo solo a questo stupendo programmino. L’idea di fondo è semplice: un mouse, una tastiera e molti computer. Avete letto bene: “computer” non “schermi”. E con il termine “computer” si vogliono indicare tutte e tre le piattaforme più diffuse ovvero Windows (7/Vista/XP), Mac OSX e Linux (Ubuntu e molti altri) controllate da un unica coppia tastiera/mouse. Basta muovere il mouse sul bordo dello schermo e il puntatore si sposterà in uno degli altri computer collegati. Digiti sulla tastiera e il risultato sarà destinato allo schermo attualmente attivo. Geniale, giusto? Sì, ma non innovativo. Infatti i creatori di Synergy FOSS hanno avuto il merito di unire due progetti pre-esistenti (un pre-fork di Synergy e il progetto Synergy+). Come ci si può aspettare

da un programma ben realizzato, le possibilità di configurazione sono ricche ma semplici. In effetti basterà creare un file di configurazione sulla macchina designata come server e, successivamente, connettersi da uno qualsiasi degli host client. Nella configurazione più semplice i client vengono chiamati “screens” (letteralmente “schermi”) ed è possibile definirne la posizione (proprio come gli schermi multipli di X) così da riprodurne la dislocazione fisica (sopra, sotto e ai lati). Le funzionalità offerte sono diverse e vanno oltre la semplice condivisione di mouse e tastiera. Ad esempio è possibile usufruire della condivisione dei cosiddetti “appunti” (copia/incolla di testo), ma sono già in progetto funzionalità simili più complesse.

Il concetto di rete locale assume tutto un altro fascino ora che il potente tool Synergy è in gioco

La transizione da uno schermo all’altro può essere fatta con un doppio colpetto sul lato dello schermo o usando una combinazione da tastiera, per prevenire eventuali cambi automatici inaspettati. È anche

“L’idea di fondo è semplice: un mouse, una tastiera e tanti, tanti computer”

possibile specificare angoli in cui la schermata non cambierà oppure un tasto che ne bloccherà il salto. Tutte queste impostazioni possono essere fatte sul server e verranno automaticamente ereditate dai client, oppure si può scegliere di personalizzare ogni client. Ora immaginate di usare questo metodo accompagnato da un software di condivisione dello schermo e una VPN e poi... alla vostra fantasia il resto!

Passo passo Configurare Synergy

1

Fatelo graficamente

Se avete installato la versione aggiornata di Synergy FOSS dovreste trovare nel menu l’applicazione grafica. Apritela e selezionate Server e poi premete Configura.

2

Posizioni

A questo punto dovrete specificare la posizione “fisica” delle vostre macchine; trascinatele nella posizione corretta e fate doppio click per specificarne il nome.

3

Sotto controllo

Premete OK su tutte le finestre ancora aperte e selezionate il tasto Start. Tenete l’occhio sui log dato che vi saranno molto utili per capire cosa sta succedendo nei client.

LXP108 SETTEMBRE 2011 57


Test Da non perdere Mouse e accessibilità

Enable ViaCam Δ VERSIONE 1.5 Δ WEB http://eviacam.sourceforge.net/eviacam.php

D

opo aver presentato l’uso di una singola coppia mouse/tastiera con computer diversi eccone l’antitesi: eviacam. Il nome sta per “Enable Viacam”, che pressapoco significa “accessibilità attraverso la fotocamera”. Infatti questo software permette di non usare il mouse e la tastiera fisici ma di sfruttare la videocamera del proprio PC con la testa... letteralmente. L’idea alla base di questo software ruota attorno al concetto di riconoscimento del viso, presente in quasi tutte le fotocamere ormai da qualche tempo. Sfortunatamente non è ancora possibile usare l’espressione facciale per impartire comandi al vostro PC, ad esempio strizzare l’occhio

sinistro per un click, l’occhio destro per aprire il menu contestuale e tutti e due per simulare il tasto centrale. Al momento il programma sfrutta più che altro la posizione della testa rispetto all’angolo di visione della vostra fotocamera. Questo semplifica l’usabilità ma porta ad alcuni svantaggi: provate a cliccare nell’angolo in basso a sinistra e vi accorgerete a cosa ci si sta riferendo. Detto questo, uno strumento del genere non mira certo a migliorare la vostra produttività nel quotidiano (come Synergy, giusto per fare un paragone) quanto piuttosto a garantire un giusto livello di accessibilità a chi altrimenti sarebbe tagliato fuori dagli strumenti più canonici. Proprio per queste nobili

Avere qualche vertebra in più in modo da beneficiare di un collo più snodabile avrebbe i suoi vantaggi nell’uso di eviacam

intenzioni, sebbene il progetto non sia ancora finito e rifinito, vale la pena incoraggiare

gli sviluppatori, sperando che continuino l’ottimo lavoro fatto finora.

Strumento di crittografia

Caesar’s Code Δ VERSIONE 0.35 Δ WEB http://qt-apps.org/content/show.php/Caesar+cipher?content=142765

N

el corso della storia l’umanità ha sempre cercato di creare nuovi strumenti per celare informazioni. Una delle opere più note al riguardo è certamente il Cifrario di Cesare (rif. http://it.wikipedia.org/ wiki/Cifrario_di_Cesare), ovvero un sistema di cifratura che la storia vuole sia stato ideato direttamente dall’imperatore Gaio Giulio Cesare in persona. In poche parole questo algoritmo consisteva nel traslare le lettere dell’alfabeto di un numero “chiave” e cifrare il messaggio bersaglio con questo nuovo insieme di simboli. Il risultato è una serie di gruppi di lettere apparentemente senza senso che vanno accompagnati dalla chiave,

58 LXP108 SETTEMBRE 2011

solitamente consegnata in separata sede, per renderne nuovamente fruibile il contenuto. Il programma in questione mira proprio a permettervi di realizzare velocemente e automaticamente il processo di cifratura. A questo punto non vi resta che consegnare il messaggio cifrato e la chiave al destinatario e consigliargli di studiare le basi della crittografia o di scaricare questo simpaticissimo programmino. Purtroppo il Cifrario di Cesare è uno dei meccanismi di crittografia definiti deboli (come il rot13) e con un po’ di tempo a propria disposizione si può facilmente scoprire il contenuto di un messaggio. Attenzione che nonostante il sito indichi come

disponibile solo l’eseguibile per Windows, basterà scaricare il file offerto e lanciare il programma CaesarCode.py presente nella directory SourceCode. Quindi

Se Giulio Cesare avesse decifrato un messaggio tipo “attento alle spalle!” le cose sarebbero probabilmente andate diversamente

usate pure questo software per i vostri esperimenti ma non fatevi affidamento per la protezione delle informazioni più importanti, per quello continuate a usare GPG. LXP


Tutorial I nostri esperti offrono ogni mese i loro consigli di programmazione e di amministrazione del sistema

La vostra guida di riferimento Esiste sempre qualcosa di nuovo da imparare in campo informatico, soprattutto in un mondo dinamico come quello di Linux e dell’Open Source. Ogni numero di Linux Pro presenta una corposa sezione dedicata a tutorial realizzati da esperti in moltissimi settori: programmazione, sicurezza, amministrazione di sistema, networking. Troverete informazioni utili sia che siate dei veterani di Linux sia degli utenti alle prime armi. Studieremo con cura anche le applicazioni più diffuse sia in ambito lavorativo che desktop. Il nostro scopo è quello di fornire in ogni numero il giusto mix di argomenti, ma se avete suggerimenti su temi particolari che vorreste vedere trattati, scriveteci via e-mail all’indirizzo redazione@linuxpro.it

Come rappresentiamo le linee di codice Si presenta spesso la necessità di riportare le linee di codice di un programma. Per favorirne la lettura evidenzieremo le singole linee in questo modo: begin mniWordWrap.Checked := not end Quando una riga di codice supera la lunghezza della colonna la riporteremo su più righe utilizzando la notazione seguente: printf(“Vi preghiamo di inserire una password.“);

QUESTO MESE... Primi passi Non si vive di solo GNOME o KDE. Esistono altri gestori dell’ambiente desktop che potete provare senza sforzi e con soddisfazione. Questo mese scoprirete le meraviglie di Xfce pag. 60

Foto professionali Se per voi la fotografia è più di un semplice hobby, avete bisogno di conoscere gli strumenti Open Source che vi permettono di lavorare proprio come fareste con i software proprietari più famosi, anzi forse anche meglio! pag. 64

Firefox Quest’anno la Mozilla Foundation ha deciso di accelerare lo sviluppo del suo browser. Siamo andati alla scoperta dei segreti di questo navigatore per suggerirvi come usarlo al massimo pag. 70

CakePHP Questa serie di tutorial si avvicina alla conclusione. Questa penultima puntata vi spiega come creare un servizio per la registrazione di segnalibri pag. 76

TRUCCO DEL MESE La recente infiltrazione nei server di Sony ha evidenziato la necessità di usare delle password sicure, e un elemento chiave è non usare sempre la stessa password per tutti i servizi, altrimenti un’intrusione in un sito vorrebbe dire essere insicuri ovunque. La lezione più importante da imparare è di usare una password diversa da tutte le altre per la casella e-mail: se un malintenzionato ottiene il controllo della vostra posta elettronica, può combinare di tutto. Il problema è che ricordarsi decine di password non è affatto facile. Una soluzione prevede l’impiego di un gestore di password come KeePassX. Questo tool memorizza tutte le password e le informazioni associate

Bash e Zenity Uno sguardo alle finestre di dialogo più elaborate offerte da Zenity pag. 80

Certificazione LPI Imparate a gestire i processi

pag. 86

Hardcore Linux Ecco come ampliare un’installazione kickstart e renderla più sicura pag. 90

Password sicure in un singolo file cifrato. È cross-platform, quindi potete leggere il database da Linux, Windows, Android e anche Mac OS X. La versione per Windows è addirittura portable, quindi la potete avviare direttamente da chiave USB se volete. Visto che usa un singolo file, potete condividerlo tra più PC usando un servizio cloud, come Dropbox, o anche un vostro server privato. Certo, i servizi cloud non sono immuni dalle attenzioni dei cracker, quindi proteggete il vostro database con una password molto forte. KeePassX include anche un generatore di password configurabile per assicurarvi che le password che usate siano sicure e valide. LXP108 SETTEMBRE 2011 59


Primi passi Guide pratiche per i nuovi utenti del Pinguino

Le meraviglie di Xfce Se state cercando un ambiente grafico che può ridare vita a un vecchio sistema, lasciate che Linux Pro vi immerga nel mondo di Xfce

Proprio come suo cugino più grande, Xubuntu vi consente di installare aggiornamenti e pacchetti non liberi al momento dell’installazione

FACILE

Ogni volta che parlate con chiunque abbia usato Linux regolarmente e pronunciate le parole ambiente grafico, scoprirete che fa parte di una delle due fazioni esistenti nella comunità Open Source. C’è chi tifa per l’ambiente ultrastabile di GNOME con la sua lenta e costante progressione di caratteristiche e chi invece ama la super brillante, avanzatissima, ma occasionalmente difettosa, alternativa KDE 4. Comunque, cosa succede quando volete usare Linux per rivitalizzare una vecchia macchina, o anche solo per impostare un sistema che si avvia in una manciata di secondi senza inutili schermate di caricamento e grafica? È qui che entra in gioco Xfce. Questo WM ha un’occupazione di memoria minuscola e può essere eseguito su sistemi con soli 32 MB se usate una distribuzione come Luit o Kwort. Ma in questa guida assumeremo che usiate

Xubuntu, un sistema che prevede almeno 192 MB (sebbene raccomandiamo 256 MB, tanto per metterci al sicuro). Se provate a eseguire una distribuzione basata su GNOME o KDE, anche su un sistema al limite con caratteristiche hardware maggiori, scoprirete che i menu si bloccheranno, le applicazioni ci metteranno tre anni ad avviarsi e il sistema sarà soggetto a blocchi e chiusure improvvise. Ubuntu, Fedora e OpenSUSE tossiscono, scoppiettano e poi si rifiutano persino di avviarsi con così poca memoria (ipotizzando CPU non recenti, ovviamente). In breve, questo ambiente è progettato per essere eseguito su praticamente qualsiasi macchina vogliate dargli, purché abbia sotto la giusta base. Questo è particolarmente utile per i sistemi che eseguono Mythbuntu che devono ottenere il massimo dal loro hardware limitato. Nonostante il suo corpo snello e sottile, Xfce non è per nulla anoressico. Può fare quasi tutte le cose che di solito si fanno nel molto più flaccido ambiente GNOME e, poiché supporta nativamente le librerie GTK, tutte le vostre applicazioni esistenti basate su GNOME saranno eseguite senza intoppi. Quindi, senza ulteriori indugi, date un’occhiata più da vicino a questo ambiente e scoprite se potete mettere la vostra macchina Linux a dieta di Xfce.

Il mostro delle impostazioni

È facile avviare un mixer audio e configurare le periferiche audio e di registrazione

60 LXP108 SETTEMBRE 2011

Esplorando il menu Applicazioni vedrete tutta una serie di nomi che potreste non aver mai visto prima. AbiWord e Gnumeric, per esempio, sono applicazioni da ufficio leggere (vedete il box Ufficio snello e veloce), Mousepad si usa per creare documenti di testo e potete prendere note con Nota, per esempio. Tuttavia, la vera potenza dell’ambiente Xfce è nascosta nell’area Applicazioni D Impostazioni e nel Gestore delle impostazioni per Xfce. La prima cosa che noterete quando installate Xfce è che non potete regolare il volume dell’audio sulla vostra


Primi passi Tutorial macchina. Questo avviene perché è previsto che avviate il mixer audio da Applicazioni D Multimedia D Mixer. Una volta fatto questo, assicuratevi che sia selezionata la periferica audio corretta dal menu a discesa (nella stragrande maggioranza dei casi quella predefinita è corretta) e poi premete Selezione dei controlli. Il controllo principale per il volume è normalmente Principale, sebbene potreste voler selezionare anche PCM e CD, a seconda della configurazione. Vale la pena anche prendere nota di dove si trova il mixer, perché se decidete di usare un servizio come Skype o Ekiga potreste doverci tornare e assicurarvi di essere in grado di regolare le impostazioni della periferica di registrazione. Prima di passare alla personalizzazione dei temi per l’ambiente Xfce secondo i vostri gusti personali, vale la pena dare un’occhiata alla sezione Tastiera del Gestore delle impostazioni per Xfce4. Sotto la scheda Scorciatoie applicazioni, potete impostare praticamente qualsiasi scorciatoia volete sul sistema. Una preferenza particolare è impostare Ctrl+Alt+T per avviare xterm. Potete anche assegnare combinazioni di tasti che influiscono sul comportamento delle finestre e dello spazio di lavoro nella sezione Gestore delle finestre del Gestore delle impostazioni per Xfce4, per esempio, gli utenti di Ubuntu possono voler impostare Ctrl+Alt+Destra in modo che vi mandi effettivamente allo spazio di lavoro successivo. È anche possibile personalizzare il salvaschermo di sistema andando alla sezione Screensaver. In modo predefinito è fornita una selezione casuale (sebbene le opzioni saranno in grigio se la vostra scheda grafica non supporta il rendering 3D con accelerazione hardware) ma potete facilmente cambiarla dall’elenco a discesa, sia creando una serie di salvaschermi che si avvicendano secondo le vostre scelte, sia selezionandone solo uno o due dei vostri preferiti. Nella scheda Avanzate potrete evitare che la vostra macchina vada in sospensione quando è inattiva o usare le vostre immagini del desktop per un’esperienza più personalizzata. Prima di andare avanti, vale anche la pena cliccare con il destro sulla barra superiore dell’interfaccia di Xfce e selezionare Aggiungi nuovi elementi. Troverete un’enorme

AbiWord è un elaboratore di testi leggero, che oltre alle classiche funzionalità è dotato anche di funzioni di collaborazione in Rete

selezione di applicazioni, la più interessante delle quali è Guardaposta. Qui potete impostare molti client remoti di posta IMAP e POP ed essere avvisati automaticamente non appena un’e-mail arriva nella vostra casella di posta. Potete quindi collegare questo al vostro client di posta preferito o a un’alternativa leggera come Mutt mail reader dalla scheda preferenze del notificatore. Ora che avete affrontato le funzioni di base di Xfce, è il momento di migliorare l’aspetto dell’ambiente. Gli utenti di KDE 4 e GNOME sono capaci di ostentare temi ed effetti visivi attraenti, ma Xfce non è da meno. Per cambiare lo sfondo della scrivania basta cliccare con il tasto destro in un punto qualsiasi della scrivania e selezionare Impostazioni della scrivania. Da qui sarete anche in grado di modificare i menu e le icone di Xfce. Comunque, chiaramente vorrete molta più libertà di personalizzazione di questo. Andate allora in Applicazioni D Impostazioni D Gestore delle impostazioni e fate click su Aspetto. Qui sarete in grado di cambiare la scrivania e la serie di icone così come i caratteri visualizzati in tutto il sistema. Sarete

Tip Per convertire la vostra installazione esistente di Ubuntu/Kubuntu in Xubuntu, basta installare il pacchetto xubuntudesktop.

œ

Alla fiera di mastro Andrè Gli utenti di GNOME possono avere Banshee e quelli di KDE possono avere Amarok, ma gli utenti di Xfce sicuramente non sono lasciati fuori al freddo. Scoprirete che di default la maggior parte delle distribuzioni basate su Xfce hanno a disposizione il rispettabile Exaile e, come avete probabilmente indovinato, si tratta di un gestore di file multimediali leggero, che funziona con qualunque codec libero o non libero possiate aver installato sul vostro sistema. Aggiungere la vostra raccolta musicale è un esercizio banale, fate semplicemente click su Aggiungi musica nella scheda Collezione. Comunque, potete andare

molto oltre questo. Per esempio, potete organizzare la vostra musica in scalette andando nell’omonima scheda. Potete impostare qualunque criterio vogliate per queste e sono fornite diverse Scalette automatiche che mostrano le vostre canzoni con una valutazione a quattro stelle o una selezione casuale. Potete iscrivervi a una stazione radio Internet incollando il relativo URL nella scheda Radio. Per impostare la scaletta corrente per la riproduzione casuale, fate semplicemente click sulla relativa icona e se premete l’icona più a destra di questa, Exaile aggiungerà le canzoni simili alla fine della vostra scaletta.

Organizzate le vostre canzoni e scalette con Exaile, il lettore musicale predefinito di Xfce

LXP108 SETTEMBRE 2011 61


Tutorial Primi passi Tip Uno strumento che spesso cattura l’attenzione dei nuovi utenti di Xfce è Gigolo. Nonostante il nome suggerisca un servizio di accompagnatori maschili, in realtà è solo un gestore di file.

lieti di sapere che Xfce fornisce già alcune composizioni integrate che vi danno effetti simili a quelli che vedete nelle schermate di questo articolo (barre del titolo e finestre semitrasparenti e ombre). Per questo, premete Panoramica per tornare alla finestra delle impostazioni e poi fate click su Regolazioni del gestore delle finestre e sul pannello Compositore. Supponendo che la vostra scheda grafica supporti l’accelerazione hardware 3D, sarete in grado di spuntare la casella accanto ad Abilita la visualizzazione composita.

Effetti avanzati Comunque, non vi siete ancora spinti il più lontano possibile. A Xfce, di default, manca il supporto a Xgl e a Compiz, ma ne avrete bisogno se volete le finestre tremolanti e i cubi di scrivanie rotanti (nei quali ogni faccia contiene una diversa scrivania) e altre cose altrettanto impressionanti. Per iniziare, dovrete installare Configurazione avanzata degli effetti visivi tramite Ubuntu Software Center. Questo installerà automaticamente Compiz e tutte le dipendenze ad esso associate per il vostro sistema (quelli di voi che eseguono sistemi Xfce alternativi potrebbero aver bisogno di cercare in Rete come fare). Prima di procedere è anche fortemente raccomandato che installiate Icona Compiz Fusion

Non c’è bisogno di invidiare gli utenti degli ambienti grafici KDE e GNOME quando eseguite Compiz assieme al WM Xfce

Gnumeric ha la maggior parte delle funzioni di OpenOffice.org, ma usa una frazione delle risorse rispetto al concorrente

e Gestore tema Emerald tramite lo stesso canale, poiché questi vi assicureranno che sia facile avviare ed eseguire Compiz senza script aggiuntivi o acrobazie da riga di comando. Per impostare i vostri effetti desktop dovrete andare in Gestore configurazione CompizConfig, che troverete nella cartella Applicazioni D Impostazioni del menu Xfce. Qui potete selezionare Desktop cubico, Ruota cubo e Finestre tremolanti per ottenere le caratteristiche più impressionanti. Ora lanciate Compiz Fusion Icon da Applicazioni D Sistema, cliccate con il tasto destro del mouse sull’icona che appare e poi selezionate Reload Window Manager. Dovreste scoprire che ora gli effetti del desktop funzionano, ma se trovate che le barre del titolo sono scomparse, assicuratevi di aver selezionato Emerald dal menu Select Window Decorator che appare nel menu dell’icona Compiz Fusion e poi ricaricate il vostro gestore di finestre. Vi raccomandiamo di ricaricare il gestore di finestre a ogni accesso poiché fare tutto questo senza acrobazie da riga di comando non è ancora pienamente supportato e può non persistere tra le sessioni su alcune configurazioni (un modo facile di ricordarvene è impostare l’icona Fusion come programma all’avvio, il che vi assicurerà che appaia sempre nella barra superiore). Infine, per trovare alcuni temi di Emerald per personalizzare l’ambiente, andate semplicemente su http://bit.ly/5rQWxe. Decomprimete i file Zip che

Ufficio snello e veloce Noterete che nella maggior parte delle distribuzioni Linux principali la scelta di fatto della suite per ufficio è OpenOffice.org (sebbene la maggior parte delle persone potrebbero usare LibreOffice quando leggerete queste parole). Comunque di solito si usa solo una piccola parte dell’enorme quantità di funzioni che questo pacchetto offre. Non tutti hanno bisogno di un gestore di bibliografia, macro personalizzate scritte in diversi linguaggi o funzioni di disegno che competono con molti pacchetti di editoria digitale. Queste funzioni richiedono anche spazio su disco, cicli di processore e RAM. Per un sistema super snello come Xfce, OpenOffice.org è di gran lunga troppo ingombrante. Fortunatamente, piuttosto che omettere completamente qualunque

62 LXP108 SETTEMBRE 2011

tipo di programma per scrivere documenti o fogli di calcolo, ci sono due alternative leggere. Come potete vedere dalla schermata nella pagina precedente, l’interfaccia di AbiWord è molto più semplice ma possiede lo stesso tutte le funzioni di cui avete bisogno quotidianamente. Una caratteristica particolare che potrebbe interessarvi è la collaborazione sui documenti inclusa in modo predefinito. Andate semplicemente in Collaborate D Accounts... e vedrete una raccolta di servizi a cui potete iscrivervi. Certo, è improbabile condividere i documenti su TCP o XMPP, ma http://abicollab. net merita un’occhiata, specialmente se preferite non dare a un’azienda americana da un miliardo di dollari i vostri dati personali. Come in Google

Docs vedrete anche le modifiche ai documenti in tempo reale mentre lavorate su di essi. È una gemma nascosta che non riceve molta attenzione nel mondo Open Source, ma vale il vostro tempo. Potreste anche aver bisogno di generare uno o due fogli di calcolo. È qui che entra in gioco Gnumeric. Questa applicazione è priva di funzionalità macro e di compatibilità, ma contiene tutte le funzioni di base che vi aspettate da un programma del genere. In effetti, chiunque abbia mai usato Microsoft Excel prima di XP o i fogli di calcolo di Google Docs si sentirà piuttosto a suo agio e quelli che non usano l’intera gamma di funzioni fornite da OpenOffice.org scopriranno che sicuramente non sembra un gradino più in basso.


Primi passi Tutorial Trasmissione legale

Transmission è un gestore di download e tracker di torrent veloce e facile da usare

scaricate e poi fate doppio click sul file .emerald risultante per importarlo nel gestore di temi di Emerald. Potete anche passare da un tema all’altro dalla stessa finestra e avviarlo da Applicazioni D Impostazioni D Emerald Theme Manager. LXP p

Sotto Applicazioni D Internet troverete un programma misteriosamente non descritto chiamato Transmission, uno dei migliori tracciatori di torrent nell’ecosistema Linux. È necessaria, a questo punto, un’annotazione obbligatoria sul tabù dei torrent. Questi tendono a essere demonizzati dalle industrie discografiche e del software, poiché questo protocollo ha un passato (e un presente) di cattivo utilizzo da parte di alcuni servizi che distribuiscono copie di software commerciali, contenuti musicali e video di discutibile legalità. Non ci addentreremo nelle politiche di quest’area grigia, ma se usate il protocollo semplicemente per scaricare file molto grandi (come le distribuzioni GNU/Linux) allora l’uso di questo protocollo è perfettamente legittimo e legale. Sappiate comunque che alcuni ISP riducono il traffico torrent per conformarsi alle leggi locali

e ridurre il consumo di banda. Ora che abbiamo chiarito, Transmission inizialmente sembra molto semplice. Fate click sull’icona + verde, aggiungete un URL e poi aspettate che il vostro torrent sia scaricato (potete attivarne diversi contemporaneamente). La bellezza di questa applicazione si rivela davvero quando andate in Modifica D Preferenze. Qui potete personalizzare una serie di opzioni come l’avvio automatico di qualunque file torrent già nella vostra cartella Scaricati (il che significa che non dovrete passare attraverso i soliti passi di File D Apri, ecc.), impostare i limiti di utilizzo della banda, programmare questi limiti, cambiare le porte di rete o configurare impostazioni del proxy personalizzate (solo per citarne qualcuna). In breve, Transmission semplifica la gestione di diversi flussi torrent e vi garantisce il più esteso controllo possibile sull’utilizzo della vostra banda.

Passo passo Usare il calendario Orage

1

Avviare Orage

Andate in Applicazioni D Ufficio D Calendario di Orage per avviare l’applicazione e vedrete apparire la sua finestra con il calendario del mese corrente.

4

Aggiungere appuntamenti

Andate in File D Nuovo per aggiungere un appuntamento per il quale volete impostare un promemoria.

2

Avviare le preferenze

Andate in Applicazioni D Impostazioni D Gestore delle impostazioni D Calendario per avviare il pannello delle preferenze di Orage.

5

Scambiare i dati

Per avviare la finestra Importa/esporta andate in File D Scambia dati nella finestra principale di Orage.

3

Modificare le preferenze

Da qui potete cambiare il fuso orario attivo, quanto a lungo i vostri appuntamenti saranno mostrati, eccetera.

6

Importa/esporta

Qui potete importare qualunque file .ics (formato adottato da diversi programmi) o esportare i calendari per usarli in altri sistemi. LXP108 SETTEMBRE 2011 63


Fotografia Ottenete il massimo dai vostri scatti con la nostra guida

Strumenti per fotografi Abbiamo dimostrato che gli utilizzatori Windows si sbagliano e scoperto che se volete fare sul serio con la vostra macchina fotografica, non dovete necessariamente abbandonare il vostro sistema operativo preferito Molte delle riserve che le persone hanno verso GNU/Linux sembrano basate sul cieco pregiudizio o sull’errata credenza che niente è cambiato nel mondo di KDE e GNOME nell’ultimo ventennio. Anche i fautori più appassionati dell’Open Source si trovano atterriti all’idea di usare Ubuntu o Fedora per la fotografia professionale. Se sapete dove cercare e come usarli, tuttavia, ci sono diversi strumenti che forniscono gli stessi eccellenti risultati offerti dai più conosciuti editor fotografici proprietari. E tutti questi programmi esistono senza dover scendere a patti dalla filosofia del Free Software. Il primo cambiamento da attuare è quello di smettere di scattare foto in JPG e iniziare a salvare le immagini in formato RAW. Il RAW è l’equivalente del “negativo digitale”, ovvero l’immagine catturata senza compressione dal sensore della macchina, cioè nella sua forma primitiva. Si tratta di un file assai più grande dello stesso JPG prodotto dalla macchina; ma se non avete mai lavorato con il RAW prima d’ora, rimarrete stupiti da quanta qualità e informazioni nella foto vengano persi quando le immagini sono convertite in JPG. Anche su una Reflex digitale di fascia alta, troverete che la gamma dinamica delle JPG prodotte è comunque più bassa di quella di un file RAW, il che significa che avrete più dettagli di luce e ombra di quanti possiate trasferirne nell’immagine finale. Nella conversione in JPG, alcuni dettagli vengono perduti a causa degli algoritmi di compressione, ma la differenza da un punto di vista più tecnico risiede proprio nella quantità di colori catturati. Le JPG utilizzano lo standard dei computer di 8 bit di informazione per i canali rosso, verde e blu (per ciascun pixel), o 256 livelli di luminosità per canale. Questo è il conosciuto standard degli schermi a “16,8 milioni di colori”, dove il nero è espresso con il valore RGB (0,0,0) e il bianco come (255,255,255). Le immagini RAW, d’altro canto, contengono 12 o 14 bit per canale, ovvero fino a 4 mila miliardi di possibili colori (mentre i colori reali sono, di fatto, infiniti). La differenza tra la stessa immagine a 8 bit e a 14 bit di profondità non è visibile a occhio nudo, né può essere visualizzata su uno schermo per computer.

La genialità del RAW

INTERMEDIA

La cosa importante per i fotografi è che dove semplici effetti di editing con immagini a 8 bit, come la modifica dell’esposizione dei livelli usando lo strumento istogramma di GIMP, produrranno velocemente effetti originali o viraggi di colore, con immagini RAW a 12 o 14 bit, o addirittura con file TIFF a 16 bit, metteranno a dura prova le immagini in modi che probabilmente violano la convenzione di Ginevra continuando però ad avere gradienti di colore levigati e bordi netti. Tutte le macchine reflex digitali (SLR) e molte fotocamere compatte possono scattare in RAW. Come se non bastasse, ciascun produttore ha il proprio formato

64 LXP108 SETTEMBRE 2011

Photivo è un promettente software per l’elaborazione dei file RAW. Questo tool è estremamente potente e neanche troppo difficile da utilizzare

proprietario per registrarle. Originariamente questo venne fatto per obbligare i fotografi a usare il software proprietario del produttore per trasferire le foto, ma oggi probabilmente dà luogo soltanto ad accese diatribe. Ci sono moltissimi programmi che possono leggere i file RAW di moltissime macchine fotografiche, molti dei quali, includendo lo standard industriale Adobe Camera RAW, sono basati sull’applicazione Open Source Dcraw (www.cybercom.net/~dcoffin/dcraw), che può leggere pressoché qualsiasi formato RAW proprietario, grazie all’ottimo lavoro di reverse engineering fatto dagli autori. Dcraw è stato progettato e mantenuto per la maggior parte dell’ultima decade da Dave Coffin ed è forse il più grande atto di altruismo nel mondo della fotografia. Grazie all’ubiquità di Dcraw, ci sono tonnellate di strumenti Open Source che sono capaci di elaborare immagini partendo da un file fotografico in formato RAW, in modo talmente buono che niente hanno da invidiare a programmi come Adobe Lightroom o Apple Aperture. Uno degli altri vantaggi nello scattare in RAW è che i programmi che ‘sviluppano’ tali file e li convertono in JPG o TIFF per ulteriori modifiche, lo fanno in maniera non così distruttiva. Tutte le modifiche applicate, infatti, vengono salvate in un file di testo pieno di istruzioni, che viene processato solo quando si salva effettivamente in JPG o TIFF. Il file originale non viene mai toccato. C’è poi un’altra questione. Se avete intenzione di scattare centinaia di foto, non avrete materialmente il tempo di aprirle una per una in un programma di elaborazione foto; per questo motivo dovete stabilire un flusso di lavoro (workflow in inglese). In fotografia, un flusso di lavoro può essere diviso in quattro passi. Il primo consiste nel selezionare le foto su cui si vuole lavorare tra tutte quelle scattate. Quindi, avrete bisogno di sviluppare le immagini, usando un programma di conversione software. Il passo successivo sarà quello di migliorare le immagini usando un software di manipolazione grafica


Fotografia Tutorial come GIMP o Photoshop. Infine, le foto vanno preparate per la stampa, per una pubblicazione per il Web o per la scrittura su DVD, dipende da quello che se ne vuole fare. Alcuni professionisti preferiscono utilizzare programmi speciali per ciascun passaggio, mentre quelli che vogliono aggiungere effetti specifici è probabile che utilizzino due o tre programmi diversi a ogni fase di lavorazione. Importare le immagini, ad esempio, può essere semplice come spostarle dalla Memory Card e metterle in un’apposita cartella sul disco. Avrete sicuramente bisogno di un qualche tipo di metodo organizzativo per maneggiare una quantità sempre crescente di foto, e potrete farlo solo usando una qualche convenzione per il nome dei file, usando degli script oppure un tool come Phatch (PHoto bATCH processor) che si trova in molti repository. I fotografi, tuttavia, tendono a essere persone visuali, e la buona notizia è che ci sono decine di programmi che consentono di organizzare le immagini da interfaccia grafica. I due che spiccano, soprattutto per la loro velocità e la capacità di leggere i file RAW, sono Google Picasa e l’eccellente Digikam. Picasa non è Open Source, ma è gratuito e lo si può scaricare dall’indirizzo http://picasa.google.com. È molto veloce e fa un ottimo lavoro nel tenersi aggiornato su quello che c’è sul disco. Basta spostare le foto dalla Memory Card e Picasa inizierà a indicizzarle, così che saranno ricercabili per data o per nome del file, e quindi a taggarle. Digikam è il programma di default per vedere le immagini in KDE, ma funziona perfettamente anche con GNOME. Pareggia con Picasa per velocità, anche se la timeline principale di navigazione di Picasa è leggermente migliore, si possono infatti selezionare e trascinare le foto da ogni finestra per organizzarle sul disco. Entrambi i programmi hanno un convertitore di file RAW ed un editor di immagini integrato, anche se quello di Picasa è utile solamente per sistemare gli scatti fatti durante una vacanza. Digikam, d’altro canto, ha il potente editor Showfoto al suo interno. Questo tool, non solo fornisce maggiore controllo sulle impostazioni RAW, come l’aggiustamento dell’esposizione e il bilanciamento del bianco, ma può gestire immagini a 16 bit e supporta anche i profili colore. Digikam ha tuttavia le sue limitazioni: non ha un supporto per i plug-in e alcune funzioni come curve predefinite, lo sharpening e il bilanciamento del bianco puntuale,

non sono presenti durante l’importazione dei RAW. Più critico il fatto che si aprano addirittura tre finestre da quella di import all’editing vero e proprio del file, e questo porta via troppo tempo.

Velocizzare il sistema La tendenza negli ultimi anni nei software proprietari è stata quella di usare una singola interfaccia per tutte le fasi di lavoro, ed è essenzialmente questo ciò che fanno programmi come Lightroom 3 o Aperture. Entrambi hanno delle interfacce simili, basate su un piccolo programmino chiamato RAWShooter, che Adobe ha comprato cinque anni fa e incorporato in Lightroom. Sulla sinistra c’è il navigatore di file e cartelle, mentre sulla destra una barra degli strumenti con tutte le opzioni di aggiustamento, per sviluppare i file RAW. Al centro si trova il tavolo luminoso: un pannello che può mostrare una lista di miniature, riferite a una cartella o raccolta specifica, oppure ingrandire la foto per modificarla, o vedere due versioni una accanto all’altra (ad esempio, per vedere le modifiche fatte sul file originale). Diversamente da Digikam, questi programmi fanno tutto in una singola finestra, velocizzando notevolmente il flusso di lavoro. Il trucco nel realizzare un programma come questo risiede nel gestire in modo efficiente la memoria. In più, e questa è la parte critica,

L’interfaccia grafica di Darktable nasconde una quantità incredibile di livelli di complessità quando arriva il momento di configurare ciascuno strumento

“Ci sono decine di programmi che consentono di organizzare le immagini da interfaccia grafica”

œ

I migliori editor a 16 bit? Anche se è possibile passare dal file RAW alla stampa usando programmi come Rawstudio, Photivo e Darktable, nessuno di questi software ha un qualche strumento di editing base, come il timbro clone per rimuovere parti “sporche” della foto, ed è quindi necessario utilizzare un altro tool per migliorare gli scatti prima di stamparli. Al momento GIMP non supporta le immagini a 16 bit e non è previsto che lo faccia nemmeno nella prossima versione, la 2.8. Questo vi lascia due opzioni: CinePaint e Krita. CinePaint (www.cinepaint.org/ more) è basato su GIMP, ma è stato sviluppato per essere usato nell’industria cinematografica,

al fine di modificare i singoli fotogrammi di un film. È Open Source, ma non è così ben supportato e il suo ultimo aggiornamento risale al 2008. Krita non ha la potenza di editing di CinePaint, o di ogni altro convertitore RAW, quando si tratta di aggiustare i livelli o la curva delle tonalità, ma ha una funzione timbro clone e lavora con le immagini a 16 bit. Per la maggior parte dei bisogni fotografici, che non includono modifiche strane o pesanti, questo programma è tutto quello di cui c’è bisogno nell’ultima fase del flusso di lavoro, anche se può risultare un po’ lento sul desktop GNOME.

LXP108 SETTEMBRE 2011 65


Tutorial Fotografia oltre ad applicare all’immagine diversi aggiustamenti, le ultime versioni di questi programmi includono degli strumenti per modificare i livelli e fare correzioni puntuali. In alcuni casi, questo significa che l’80-90% degli scatti può essere mandato direttamente in stampa, senza passare da programmi di fotoritocco come Photoshop. Ci sono diversi strumenti che possono operare in modo simile a Lightroom, Aperture e Bibble, e sono Open Source. Darktable (http://darktable.sourceforge.net) e Rawstudio (http://rawstudio.org) sono delle potenti camere oscure digitali che vi danno un enorme controllo sull’immagine. Entrambi possono essere compilati dai sorgenti o sono comunemente disponibili nei repository della propria distribuzione, ed entrambi possono facilmente correggere distorsioni geometriche o aberrazioni cromatiche usando le librerie Lensfun (http://lensfun.berlios.de). Dovreste provarli entrambi: Rawstudio è veloce ed efficiente, ma il suo navigatore di file e cartelle integrato è limitato è non potrete, ad esempio, mettere a confronto due immagini fianco a fianco. Avrete, inoltre, poco controllo su operazioni critiche della foto, come lo Sharpening; per fare questo, infatti, dovrete esportare l’immagine in TIFF, al fine di passarla a un secondo editor. Darktable, d’altro canto, ha una enorme quantità di opzioni e plug-in, ma tende a rallentare molto quando gestisce migliaia di miniature (thumbnail). Più critico il fatto che manchino dei pre-set standard, in modo da applicare effetti veloci alle foto. Avere una cernita di funzioni “one-click” per gli aggiustamenti basilari (e ripetitivi) è vitale per un flusso di lavoro professionale. Questo vi lascia con il più popolare editor RAW Open Source, Rawtherapee (http://rawtherapee.com). Trovate una versione stabile di Rawtherapee 2 in molti repository, ma il team ha rilasciato da poco una terza versione, per cui consigliamo vivamente di recuperala da uno dei repository PPA o di compilarla da sorgenti. Al momento, Rawtherapee è quanto di più vicino ci possa essere a Bibble nel mondo Open Source, ed è davvero un bel programma. Non soltanto è veloce nelle generazione delle miniature e ha tutte le funzionalità che ci si aspetta, come il tavolo

Rawstudio va bene se tutto quello che volete fare è “sviluppare digitalmente” gli scatti. Però da solo non basta, avrete bisogno di un altro editor per completare la fase di post-produzione

luminoso, ma esso supporta, attraverso il suo processore interno, anche i profili colore, gli schermi multipli e il filtraggio della libreria per metadati o tag. C’è una semplice descrizione dei dati EXIF su ciascuna miniatura che fornisce le informazioni di scatto, come la lunghezza focale e il valore dell’ISO. È una funzionalità sorprendentemente rara in una veste così semplice. Il nostro solo appunto è che ci sono troppi parametri da aggiustare. Potete davvero perdervi nel modificare e raffinare l’utilizzo del programma attraverso i diversi menu, e spesso si trovano voci ripetitive in posti diversi. Una volta organizzate le foto, potete navigarle sul pannello di sinistra di Rawtherapee. Una volta lì, potete nascondere tale pannello usando la freccia in alto. Adesso, con le miniature in bella evidenza, potete iniziare a scorrere le foto, fino a quando non ne trovate una che pensate si meriti di essere sviluppata digitalmente. Rawtherapee vi permette di aggiungere fino a cinque stelle per ciascuna foto, oppure potete usare un sistema più semplice, una stella per le foto buone, il cestino per

Calibrare lo schermo Ciascuno schermo ha delle proprietà uniche quando crea i colori. Quello che risulta bianco su uno schermo può essere rosa su un altro, e apparire ancora diverso se stampato. Chi lavora professionalmente

Se avete abbastanza controllo sul vostro schermo, potete usare l’eccellente guida alla calibrazione di www.lagom.nl per aggiustare manualmente le impostazioni e far sì che lo schermo si avvicini abbastanza allo spazio colore standard per molti usi, lo sRGB.

66 LXP108 SETTEMBRE 2011

con la grafica e la fotografia effettua la calibrazione dello schermo per compensare queste differenze. Si è sempre pensato che fosse difficile farlo in Linux, ma continuate a leggere e scoprirete che non è così.

Ci sono modi migliori per oliare tutti gli ingranaggi. Lprof (http://lprof.sourceforge. net) riesce a calibrare tutte le componenti utilizzando i target di riferimento del colore, salvati in formato standard ICC, poi caricati in ogni dispositivo.

Leggermente più facile da usare di Lprof è lo Gnome Color Manager (http://live. gnome.org/GnomeColorManager). Questo tool non è che un front-end per il programma Argyll, un progetto Open Source che crea driver per gli strumenti di calibrazione.


Fotografia Tutorial quelle cattive. Mentre scorrete le foto una ad una, potete rimuovere le stelle dalle foto che pensate non valga la pena sviluppare. Il pannello di filtraggio posto sulla destra vi permetterà poi di visualizzare solo quelle su cui intendete lavorare. Non conta l’ordine con cui applicate le modifiche su un file RAW, viene salvato solo il risultato finale. È una buona idea, tuttavia, partire con l’esposizione e il contrasto. Non aggiustati, i file RAW appaiono più scuri, più piatti e sembrano anche meno a fuoco. Ma non fatevi ingannare, sta all’abilità del fotografo in questa fase di produzione, la possibilità di realizzare dei JPG che saltino letteralmente fuori dallo schermo (o dalla pagina stampata). C’è un’interessante spiegazione del perché sia così su un documento sul sito Adobe: http://bit.ly/jLOvWK. Poiché nei RAW c’è una maggiore profondità di colore, potete generalmente modificare l’esposizione di uno step o due in entrambe le direzioni senza problemi, rendendo l’immagine più chiara o più scura. Usando l’esposizione assieme al contrasto, dovrete cercare di ottenere che l’istogramma (nel pannello in alto a destra) sia più distribuito possibile. Successivamente è buona norma fare il bilanciamento del bianco cliccando su un’area della foto che sapete essere bianca (in realtà va bene un qualsiasi colore in scala di grigi, il grigio e il nero sono comunque colori “neutri”, senza dominante di colore). Poi si può aggiungere un po’ di saturazione. Attenzione, se si tende a esagerare, i colori possono risultare come un il famoso “pugno in un occhio”, è infatti facile farsi prendere la mano. La parte più difficile nella modifica di un file RAW è quella relativa ai dettagli (lo Sharpening) e la rimozione del disturbo. Bisogna sempre, sempre, sempre lavorare con lo zoom impostato al 100% (la dimensione reale della foto). Le modifiche che fate alla foto possono risultare molto diverse con differenti livelli di zoom e quindi rovinarvi la foto senza che ve ne rendiate conto. A seconda della vostra macchina fotografica, dovrete portare la maschera di Unsharp a 200, o anche di più, per avere dei bordi realmente incisivi. Per la rimozione del rumore (che è identico al rumore audio, ovvero una porzione di pixel casuali che creano, appunto, disturbo) il nuovo algoritmo di Rawtherapee è molto buono, ma ricordate che grazie all’elevata risoluzione delle macchine fotografiche, è preferibile lasciare un po’ di rumore, se la sua eventuale

rimozione porta a una perdita di dettagli. Se volete ottenere dei risultati migliori, usate i livelli di contrasto. Rawstudio su questo punto non è ancora all’altezza dei corrispettivi software a pagamento. Alcune foto che abbiamo fatto in posti bui e difficili (come una chiesa) apparivano insalvabili in Rawtherapee, mentre sistemati con Bibble diventavano delle foto da esposizione.

Linux è adatto allo scopo?

Un giorno Digikam sarà lo strumento perfetto per i fotografi professionisti che usano Linux. Al momento, tuttavia, è un po’ lento per lavorare con migliaia di foto

Un programma disponibile per Linux che può fare le stesse cose di Lightroom o Aperture e che è rivolto al lavoro professionale, è il già citato software proprietario Bibble (http://bibblelabs.com). Sebbene non sia nostra intenzione consigliarvi di abbandonare la filosofia Open e di andare a comprarlo (anche se sarebbero soldi ben spesi) esso prova che non c’è ragione per cui Linux non possa essere usato per la fotografia di livello professionale come ciascun altro programma. E i programmi Open non sono così lontani da tali risultati. Se mai qualcuno vi dovesse chiedere quali capacità posseggano i vostri programmi di fotografia su Linux, fate presente l’impressionante Photopic Sky Survey (http://skysurvey.org). Questa foto a 5.000 mega-pixel del cielo di notte (visto dalla Terra) ha richiesto circa un anno di lavoro per unire le 37.440 foto che la compongono. New Scientist e molti altri giornali gli hanno dedicato un articolo. E tutto il lavoro è stato fatto con GIMP. LXP

Creare uno slideshow di foto

Gli slideshow fotografici suonano un po’ come quel tipo di cose che i vicini usano per mostrare le loro foto delle vacanze, ma sono strumenti che in mano a un professionista permettono di raccontare in modo esaustivo una storia. Non ci credete? Date un’occhiata a http://duckrabbit.info.

La chiave di una buona presentazione è l’abilità di controllare il tempo di visualizzazione di ciascuna foto e di scegliere l’effetto di transizione per il passagio tra le immagini. È meglio usare un programma di editing video non-lineare come OpenShot, piuttosto che qualche strumento specifico per le foto.

Per applicare transizioni come il ‘Ken Burns’, dove la camera passa sopra una foto già presente, serve qualcosa di leggermente più potente. L’editor video Kdenlive potrebbe sembrare eccessivo, ma è l’unico che fa le cose nel modo giusto.

LXP108 SETTEMBRE 2011 67


Firefox I segreti del browser più usato in Europa

Firefox 5 al massimo La versione più recente del vostro browser Web Open Source dovrebbe già da ora essere disponibile negli archivi della vostra distribuzione. Noi di Linux Pro gli abbiamo dato un’occhiata... Non molto dopo il suo rilascio nel 2004, Firefox divenne il manifesto dell’Open Source. Una campagna pubblicitaria coordinata (incluso un annuncio di due pagine nel New York Times), obiettivi di progetto chiari e un team di sviluppo altamente motivato contribuirono a far diventare Firefox la cosa più scaricata dopo il pane affettato. Firefox 3 stabilì un altro record per il numero più alto di download in un giorno, con più di due milioni di pacchetti scaricati nei giorni 17 e 18 giugno. Non ci fu una formula segreta per il successo di questo browser: ambiva semplicemente a ridare all’utente finale il controllo del Web, fornendogli un browser stabile, veloce e facilmente estensibile, in maniera tale che sviluppatori

PRO dentro il Firefox 5

di terze parti potessero arricchirlo con tonnellate di utilissimi (o meno...) plug-in. Ma questo succedeva tanto tempo fa, e le cose da allora sono molto cambiate. Internet Explorer ha avuto finalmente quello che si meritava, e ha smesso di essere lo zimbello dei browser, e Google ha lanciato il super-veloce Chrome, che condivide molto delle raison d’être originali di Firefox. Gli sviluppatori di Firefox devono rispondere in qualche modo a questo stato di cose, e la loro risposta è Firefox 5. Nelle prossime quattro pagine daremo uno sguardo alle nuove caratteristiche del browser, sia nella versione 5 che nella versione 4, che l’ha preceduta di pochi mesi, e cercheremo di capire come potete usarle a vostro vantaggio per una navigazione Web migliore.

Gestire le schede

INTERMEDIO

Le persone che stanno dietro Firefox stanno ancora strombazzando il fatto che sia possibile digitare una ricerca per Google nella barra degli indirizzi, che il team stesso descrive come la barra impressionante - anche se già Firefox 3 e 4 avevano questa caratteristica. Quindi non la si deve considerare una novità, e non riusciamo a immaginare che il codice richiesto per realizzarla sia stato così difficile da scrivere. È un chiaro esempio di come Firefox riesca a rendere le cose più facili a chi lo usa. E dunque è stata estesa in Firefox 5: la barra impressionante adesso riconosce le prime lettere della parole che state digitando, e, se esiste una linguetta già aperta su quel sito Web, si offrirà di portarvi direttamente lì. Esattamente come successe per la navigazione tra linguette, questa è una di quelle caratteristiche che tra un paio d’anni

È dispendioso aprire la stessa scheda più volte, ma con la funzione “Passa alla scheda” potere evitarlo. Si noti però che il trucco non funziona con le schede applicazione

70 LXP108 SETTEMBRE 2011

vi farà pensare a come avete fatto a farne a meno prima che venisse introdotta.

Le Schede applicazione La caratteristica nuova con cui è più facile familiarizzare e i cui benefici dovrebbero essere immediatamente compresi come ovvi, è l’introduzione delle Schede applicazione. È una caratteristica utile per tutte le linguette che devono rimanere aperte per tutta la durata della vostra sessione di navigazione Web, come la vostra casella di posta Web, Google Calendar, Google Docs o qualsiasi social network che desiderate sbirciare frequentemente. La Scheda applicazione si può restringere fino a raggiungere le dimensioni di un’icona e viene posizionata all’estremità sinistra della barra superiore. Qualora questa pagina si aggiorni, con un nuovo tweet o con una nuova e-mail, ad esempio, la scheda si illuminerà di una luce argentea, come

Questa istanza di Firefox, che gira su una macchina virtuale a 32 bit, ha caricato le schede e i bookmark della nostra macchina principale


Firefox Tutorial

Le “Schede applicazione” fanno risparmiare veramente un mucchio di spazio sulla barra delle schede – come si può vedere confrontandola con quella di una finestra di Firefox 3.x con gli stessi siti Web aperti

mostrato in figura. Le schede applicazione sono un grande vantaggio perché occupano molto meno spazio nella barra delle schede e vi aiutano a organizzare i contenuti del vostro browser Web. Un altro modo di organizzare i contenuti può essere semplicemente quello di raggrupparli.

Raggruppare le schede Quando la vostra barra delle schede viene affollata da troppi siti da gestire, cliccate sul l’icona vicino a quella con il “+” verde nella barra delle schede: è l’icona Gruppi di schede e se non è già presente, aggiungetela mediante la nota procedura di personalizzazione della barra. Così facendo apparirà una finestra, dove potrete vedere miniaturizzate tutte le schermate delle pagine Web che avete aperto nelle varie schede. Noterete che sono raccolte in un unica area di colore grigio chiaro:

costituiscono un unico gruppo. Per creare un nuovo gruppo, vi basta trascinarne una nell’area di colore grigio scuro e aggiungerne successivamente altre. Nell’angolo in alto a sinistra di ciascun riquadro che definisce un gruppo c’è una barra di testo nella quale potete digitare il nome che avete deciso di dargli (noi abbiamo usato ‘Lavoro’ e ‘Divertimento’ ma il lavoro può qualche volta essere divertente). Per aprire una finestra del browser che contenga le pagine appartenenti a un dato gruppo vi basta cliccare con il tasto sinistro del mouse su una delle schede del gruppo stesso. Con la vista principale del browser aperta, potrete usare l’icona Gruppi di schede per passare da un gruppo all’altro con due click di mouse. L’impressione è simile a quella provata nell’uso delle applicazioni aperte raggruppate in diversi desktop virtuali e la facilità d’uso è la stessa.

Abbiamo creato due “Gruppi di schede”: come si può vedere, le Schede applicazione sono accessibili comunque da ciascuno dei gruppi creati

Aspetto Alla voce del menu principale Strumenti D Componenti aggiuntivi troverete come al solito la Gestione componenti aggiuntivi. Nelle versioni di Firefox precedenti alla 4, questo manager veniva aperto in una finestra pop-up, ma nelle versioni più recenti appare come scheda. Gli sviluppatori di Mozilla valutano questa scelta come un miglioramento, ma a noi sembra una semplice scelta arbitraria. Ciò su cui però non possiamo non essere d’accordo è che comunque Firefox è ancora il browser più semplice da personalizzare. Un buon modo per farlo è installare una diversa Persona. Queste sono essenzialmente immagini che fanno da sfondo alla struttura del browser: ce ne sono a migliaia pronte per essere scelte, raggiungibili con un semplice click del mouse... Beh, veramente si tratta di due click, perché il processo richiede il riavvio del browser. Quello che è realmente ben realizzato delle Persona è la loro anteprima, che appare istantaneamente non appena portate il vostro mouse su quella che vi interessa nel sito www.getpersonas.com, nel senso che il browser le “indossa” momentaneamente per farvi vedere l’effetto, senza doverla scaricare e installare prima di sapere se vi piace o no. Quelli di voi che hanno una vena artistica possono creare e caricare sul sito

Potete provare una “Persona” semplicemente spostando il mouse sopra di essa. Comunque le linee guida raccomandano di usare bassi livelli di dettaglio per evitare che questi facciano a pugni con l’interfaccia utente...

le Persona di propria creazione. C’è un insieme specifico di dimensioni da rispettare, e qualche regola sui contenuti (è proibita l’iconografia nazista, ad esempio) ma la maggior parte di voi dovrebbe riuscire a esprimersi senza sentirsi vincolata.

La vostra interfaccia utente Un passo ulteriore rispetto alle Persona sono i temi: questi richiedono lo scaricamento di un pacchetto e la configurazione di colori e stili dei widget. Ma quello

œ LXP108 SETTEMBRE 2011 71


Tutorial Firefox che è realmente interessante in Firefox 4 e 5 è la possibilità di spostare gli elementi dell’interfaccia utente. Semplicemente vi basta cliccare con il tasto destro del mouse su un qualsiasi spazio vuoto nella barra delle schede e selezionare l’opzione Personalizza dal menu che apparirà, e sarete in grado di spostare sulla barra tutti i widget e i pulsanti dell’interfaccia Firefox. Inoltre apparirà anche un pannello contenente diversi widget, così potrete aggiungerne altri o sbarazzarvi di quelli che non usate in modo da semplificare l’aspetto del browser. Per esempio, siccome nella nostra installazione usiamo la tastiera per ricaricare e aprire nuove schede e il tasto Stop è ridondante perché c’è sempre qualcos’altro che possiamo fare mentre aspettiamo che le pagine si carichino, ci siamo sbarazzati di questi oggetti per creare qualcosa che sembra simile al principale rivale di Firefox, vale a dire Google Chrome.

Potete rimuovere, rimescolare e riordinare la barra degli strumenti di Firefox senza essere obbligati a conoscere una riga di codice

Firefox offre qualcosa chiamato Navigazione privata fin dalla release 3.5. Non è la stessa cosa che usare Tor per nascondere le vostre tracce online, ma impedisce a chiunque abbia accesso al vostro computer di curiosare nei vostri download e nello storico delle vostre ricerche e navigazioni. Se non avete nulla che valga la pena nascondere, questo livello in più di privacy non vi servirà a nulla, ma se avete appena prenotato due biglietti per Romeo e Giulietta come regalo di compleanno, questa funzione sarà sufficiente a impedire a chiunque abbia accesso al vostro account utente di rovinare la sorpresa. Per attivare questa funzione vi basta semplicemente scegliere la voce Modifica D Preferenze nel menu principale, poi scegliere l’opzione Utilizza impostazioni personalizzate dal menu a tendina Impostazioni cronologia della scheda Privacy. Spuntate la casella Utilizza sempre la modalità di navigazione anonima e avete finito. Se volete ancora aumentare il livello di privacy, dovete invece scegliere la voce Modifica

D Preferenze D Privacy e spuntate la casella dell’opzione Attiva l’opzione anti-tracciamento dei dati personali. La teoria alla base di questa opzione è che in questo modo i siti Web non dovrebbero conservare nessuna delle vostre informazioni, ma in realtà non è così: voi state solo segnalando al sito visitato che non volete essere tracciati, ma non lo potete impedire. Abbiamo verificato che Google Mail (che è forse il sito di cui ci si preoccupa di più quando si parla di raccolta dati) ha ignorato la nostra richiesta e ha continuato a visualizzare messaggi pubblicitari mirati. Per un approccio più completo al problema, provate a installare il Paranoid Kit dal gestore dei componenti aggiuntivi. Si tratta di un gruppo di otto componenti aggiuntivi focalizzati sul miglioramento della vostra sicurezza online, che va molto oltre quello che Firefox vi offre di default. Tra l’altro, il kit contiene BetterPrivacy, che in primo luogo impedisce ai siti Web di raccogliere informazioni su di voi, e Adblock Plus, che blocca tutti i messaggi pubblicitari, mirati o no. LXP

Sicurezza

Firefox è dotato di default di una modalità rispettosa della privacy, ma questa non appare molto efficace, meglio ricorrere a qualche add-on di terze parti, come il Paranoid Kit, che contiene BetterPrivacy e Adblock Plus

72 LXP108 SETTEMBRE 2011

Spuntando un’opportuna casella si abilita il modo di funzionamento anti-tracciamento dei dati personali, ma questa funziona su base volontaria e non vincola al suo rispetto i siti Web che frequentate


Firefox Tutorial Passo passo Configurare Sync in Firefox 5 irefox Sync è una caratteristica introdotta nella versione 4 che permette all’utente di sincronizzare i suoi bookmark e altri dati in modo da averli a disposizione su tutti i dispositivi con cui accedete al Web. Per provarla, seguite questi pochi passi in modo da creare un account sync; dovete superare il test di sicurezza per dimostrare di non essere un robot. Fatto questo potrete sincronizzarvi con tutti i vostri dispositivi. Nel nuovo dispositivo (altro PC, tablet, smartphone, ecc.), andate nel menu principale di Firefox alla voce Modifica D Preferenze e scegliete la scheda Sync, poi premete il tasto Configurazione di Firefox Sync. Siccome avete

F

1

già creato un account, potete cliccare sul pulsante Connetti: otterrete un codice da inserire nel primo dispositivo, quello già configurato. Tornate quindi su quella macchina, andate alla voce Modifica D Preferenze del menu principale e cliccate sul link Aggiungi un dispositivo. Inserite il codice che vi è stato dato e premete il tasto Avanti. Se tutto va come deve andare, dopo pochi minuti riceverete un messaggio che vi avvisa che un device è stato aggiunto con successo e che il processo di sincronizzazione può richiedere alcuni minuti. A questo punto, se premete sull’icona con il triangolo vicino all’icona

Gruppi di schede, appare un menu

Create un account

Attivare Sync è semplice, dovete creare un account per memorizzare le preferenze. Scegliete nel menu la voce Strumenti D Configura Firefox Sync.

3

Opzioni di sincronizzazione

La configurazione di default prevede la sincronizzazione di qualsiasi cosa, ma se avete intenzione di usare Firefox su un dispositivo mobile e questo dispositivo vi viene rubato, il ladro avrà accesso alla vostra e-mail, agli acconti su Amazon e su eBay ecc. – quindi pensate attentamente a cosa sincronizzare o meno.

2

a tendina dove una delle voci recita Schede da altri computer – può comunque essere necessario un po’ di tempo per la visualizzazione, perché i sistemi non si sincronizzano obiettivamente in tempo reale, ma con quella voce dovreste riuscire a vedere le stesse cose che stavate guardando l’ultima volta che avete usato Firefox, e potreste così continuare la vostra navigazione e la lettura. Non avviene solo questo, ma vengono anche sincronizzati i segnalibri così come le malaugurate scelte di colori che fate, quindi pensateci due volte prima di scegliere temi funky-psichedelici.

Scegliete una password

Inserite il vostro indirizzo di posta elettronica, leggete e accettate le condizioni del servizio, poi premete il pulsante Avanti.

4

Salvate il vostro codice

A questo Firefox genera in automatico un codice di cui dovete assolutamente prendere nota e che dovete digitare quando configurate il browser su altre macchine. Memorizzate questo codice in un posto sicuro, perché se lo smarrite, Mozilla non vi può aiutare a recuperarlo.

LXP108 SETTEMBRE 2011 73


ABBONATI VIA

WEB

A T R E F F O R SUPE

DIGITALE

O R P X U N I L 1 anno di ul tuo computer, clicca: nte s direttame

l

www.sprea.it/digita

a soli 14,90

o

in f a d li a v e n io z o m o r P 11 al 30 Settembre 20

PUOI RINNOVARE ANCHE SE IL TUO ABBONAMENTO NON È ANCORA SCADUTO

SE SEI GIÀ

SE SEI GIÀ ABBONATO E CON CARTA DI CREDITO VIA WEB

ABBONATO E RINNOVI

Se rinnovi l’abbonamento con carta di credito il risparmio è maggiore rispetto a un altro rinnovo: 12 numeri a soli

Se rinnovi l’abbonamento a Linux Pro risparmi di più rispetto a un nuovo abbonato

€37,90

ABBONATI CON UN CLICK Per abbonarti online, non ti serve altro che fotografare con il tuo smartphone questo QR. Per scoprire come fare, vai a pagina 7.

NUOVI ABBONATI

I NUOVI ABBONATI

ABBONATI a Linux Pro e risparmi: 12 numeri a soli

ABBONATI a Linux Pro e risparmi: 12 numeri a soli

€39,90

€41,90

€44,90

Prezzo a copia 3,16 euro

Prezzo a copia 3,33 euro

Prezzo a copia 3,49 euro

Prezzo a copia 3,74 euro

Risparmio totale 32,90 euro pari al 46,47% Risparmi più di 5 numeri + altri 7 euro + 1 euro di bollettino rispetto a un nuovo abbonato

Risparmio totale 30,90 euro pari al 43,64% Risparmi più di 5 numeri + 5 euro rispetto a un nuovo abbonato

Risparmio totale 28,90 euro pari al 40,82% Risparmi più di 4 numeri

Risparmio totale 25,90 euro pari al 36,58% Risparmi più di 4 numeri

RINNOVI

CON CARTA DI CREDITO VIA WEB


Abbonandoti a Linux Pro ti aspettano un anno di news, approfondimenti, interviste e tutorial su GNU/Linux e il software Open Source. Assieme ai 12 numeri della rivista avrai anche 12 imperdibili DVD da 8 GB che presentanto le distribuzioni più recenti e tutto il software libero che ti serve per arricchire il tuo desktop, realizzare un server o creare audio e video. Ogni mese LXP verrà consegnato puntualmente a casa tua. Non puoi rischiare di lasciarti sfuggire neanche un numero di Linux Pro e nemmeno rinunciare a uno sconto davvero eccezionale.

I VANTAGGI

✔ Abbonandoti oggi stesso a Linux Pro, potrai cominciare a ricevere direttamente a casa tua la rivista già dal prossimo numero. Se le poste dovessero smarrire una copia, basta che tu ci scriva una e-mail e ti prolunghiamo l’abbonamento! ✔ Allegato a ogni numero 1 DVD da 8 GB con tutte le ultime distribuzioni e il software libero più recente pronto da installare ✔ Hai uno sconto del 46,47% sul prezzo della rivista, praticamente più di 5 NUMERI GRATIS per i rinnovi! ✔ Nessun rischio! Soddisfatto o rimborsato! In qualsiasi momento!

Vai su www.linuxpro.it/abbonamenti Sottoscrivendo l’abbonamento ricevi a casa il tuo mensile preferito e puoi gestirlo come vuoi tu dal WEB

AVRAI UNA CABINA DI COMANDO PERSONALE ECCO TUTTO QUELLO CHE CI POTRAI FARE ✔ ✔ ✔ ✔ ✔

puoi spostarlo quando cambi indirizzo, anche solo per un mese puoi interrompere la spedizione durante le vacanze puoi controllare quando lo abbiamo spedito puoi verificare se ti sta per scadere l’abbonamento puoi rinnovarlo da solo, risparmiando tempo, denaro e fastidi

Offerta valida fino al 17/9/2011 Sono accettate tutte le carte del circuito VISA, AMERICAN EXPRESS e DINERS.

Per informazioni: scrivete ad abbonamenti@linuxpro.it o telefonate al numero 02/87158225


CakePHP Applicazioni Web facili e veloci? Semplice, con CakePHP

Creare un sito di bookmarking Con un po’ di magia Web 2.0, questo mese creerete un servizio di registrazione segnalibri

PRO dentro il ’esempio

Codice d

DIFFICILE

Utilizzando il componente Authentication le password vengono cifrate automaticamente

Se avete seguito gli ultimi tutorial, sarete già esperti di CakePHP: sapete dove trovare i controller, come spingervi nelle profondità dei modelli e come creare viste che lascino gli utenti di stucco. Ma assaporare il tipo di sviluppo rapido e semplice offerto da CakePHP non fa che aumentare il vostro appetito, e ora volete di più in meno tempo. Così stavolta imparerete a conoscere i plug-in per estendere le funzionalità della vostra app. I plug-in seguono il principio DRY (don’t repeat yourself – non ripetetevi): risolvono un problema, vengono pacchettizzati in modo riusabile e rilasciati al pubblico perché ognuno possa contribuirvi e beneficiare della vostra soluzione. In sostanza, potete recuperare un po’ di buon codice scritto da altri e includerlo, risparmiando così

Localizzazione Come al solito, per ottenere le schermate in italiano vi basterà chiamare il comando cake i18n da riga di comando nella directory del progetto per ottenere il file default.pot da tradurre con gtranslator o altri programmi simili; salvate il file tradotto in locale/it_IT/ LC_MESSAGES/default.po e aggiungete al file app_controller.php il seguente brano di codice: function beforeFilter() { Configure::write(‘Config.language’,‘it_IT’); }

76 LXP108 SETTEMBRE 2011

montagne di tempo. Questo mese costruirete un sito di bookmarking che non memorizzerà semplicemente gli URL e le informazioni relative, ma genererà altresì delle anteprime per i siti e le archivierà per voi. Includerete anche qualche simpatico strumento per abilitare la condivisione e la pubblicazione in social network, così da generare un po’ di pubblicità su quello che avete segnalato. Come sempre, ci sarà da assicurarsi che il database corrisponda agli standard delle convenzioni CakePHP, così da passare il grosso del lavoro al framework; se voleste seguire altri standard, però, non preoccupatevi: è estremamente facile personalizzare CakePHP, a seconda di quello che volete cambiare. Date un’occhiata a http://book.cakephp. org/view/901/CakePHP-Conventions per una lista delle convenzioni adottate dal core, e per informazioni su cosa dovete modificare per usare i vostri standard. Prendetevi un momento per analizzare i dati che dovrete memorizzare: URL, utenti e giudizio, così da permetterne la valutazione quando condividerete i segnalibri via Twitter, Facebook o qualsiasi altro social network. CREATE DATABASE `bookmark`; USE `bookmark`; CREATE TABLE `urls` ( `id` CHAR(36) NOT NULL PRIMARY KEY, `user_id` CHAR(36) NOT NULL, `name` VARCHAR(128) NOT NULL, `url` TEXT, `created` DATETIME, `modified` DATETIME ); CREATE TABLE `users` ( `id` CHAR(36) NOT NULL PRIMARY KEY, `username` VARCHAR(45) NOT NULL, `password` VARCHAR(255) NOT NULL, `email` VARCHAR(255) NOT NULL, `created` DATETIME, `modified` DATETIME );


CakePHP Tutorial Controllate: avete tutte le tabelle che vi servono? La lista di informazioni da includere per ogni singolo segnalibro è piuttosto lunga... e non sembra che ci siano campi a sufficienza per tutti i dati. A questo punto però dovete sapere che i plug-in possono modificare il database a seconda delle necessità, e tali modifiche sono integrate nei pacchetti dei plug-in stessi, così da togliervi la preoccupazione di adattare il db ai plug-in che installerete. Tutto questo avviene per mezzo della shell Schema, distribuita con CakePHP, o utilizzando il plug-in Migrations, sviluppato dalla Cake Development Corporation. Viste le funzionalità offerte e la facilità d’uso, opterete per quest’ultimo.

Accendete il forno, è tempo di torte! Bake è uno speciale comando da console fornito da CakePHP e lanciato da riga di comando. Affinché funzioni è necessario che il percorso cake/console sia nel vostro PATH (con i pacchetti di Ubuntu non è necessario): export PATH= “$PATH:/percorso/di/cakephp/cake/console” Naturalmente dovrete avere PHP disponibile da riga di comando (normalmente il pacchetto è php5-cli). Per creare lo scheletro del progetto lanciate: $ cake bake project bookmark $ cd bookmark Ricordatevi come al solito di impostare la direttiva RewriteBase nei file .htaccess, se non siete nella DocumentRoot. A questo punto, configurate l’app per connettersi al database: copiate config/database. php.default in config/database.php e inseritevi la configurazione per il vostro database, ad esempio: <?php class DATABASE_CONFIG { var $default = array( ‘driver’ => ‘mysql’,

Potete già aggiungere un nuovo URL al vostro servizio di bookmarking

‘persistent’ => false, ‘host’ => ‘localhost’, ‘login’ => ‘dev’, ‘password’ => ‘dev’, ‘database’ => ‘bookmark’, ‘prefix’ => ‘’,

Tip

); } Notate l’assenza della sezione test: viene usata per lo unit testing, e per questo tutorial non vi servirà. Ora potete far generare a CakePHP le basi per controller, modelli e viste: $ cake bake all user $ cake bake all upload Non vi allarmate per la quantità di output che vedrete dal comando: più cose vi dice, meno cose vi resteranno da scrivere nel codice. Se guardate all’output, vedrete percorsi e nomi di file per tutti quelli generati da bake per voi. Ora avete un sistema di gestione per utenti e URL, e potete andare a inserire o modificare tali informazioni. Provate a navigare sul vostro sito alla directory users/, ad esempio http://localhost/~lxp/bookmark/ users: troverete ad aspettarvi l’elenco degli utenti, e da qui potete navigare per aggiungere e modificare utenti.

Thumboo! è un ottimo servizio di miniaturizzazione che vi permette di inviare un URL e ottenere un’immagine. È il servizio che userete per generare le anteprime. Creare un account è gratis, quindi andate subito su www.thumboo.com.

Abilitare l’autenticazione Un breve excursus nella struttura di autenticazione vi permetterà di controllare il sistema ammettendo l’accesso ad alcuni utenti mediante login, ed è estremamente facile da fare. Aprite app_controller.php nella root del progetto. Questo è un controller vuoto da cui ereditano tutti gli altri controller: ogni cosa implementata qui verrà ereditata in tutta l’applicazione. È un ottimo posto dunque per inserire un meccanismo di autenticazione e lasciare ospiti indesiderati alla porta. Aggiungete i componenti ‘Auth’ e ‘Session’, così da farlo risultare in modo simile al seguente:

Codice

I gravatar sono un modo davvero efficace per personalizzare i vostri contenuti

Il codice sorgente per questo articolo è disponibile su GitHub all’indirizzo http://github.com/ciromattia/ cakephp_lxp. Da qui potete recuperare il codice se avete problemi con la generazione automatica con bake, o se semplicemente volete l’applicazione già funzionante senza dover eseguire ogni passo dell’articolo e scrivere tutto a mano.

œ LXP108 SETTEMBRE 2011 77


Tutorial CakePHP Tornate al vostro elenco utenti, e verrete immediatamente rediretti alla maschera di login. Ora, provate a entrare nella pagina di aggiunta utente http://localhost/~lxp/ bookmark/users/add e noterete che l’accesso vi viene consentito, senza riportarvi al login. Magnifico, non potrebbe essere più semplice! Festeggiate con un caffè e rimettetevi in pista. Ora i vostri dati sono al sicuro, e il sito funziona. Fate un giro per l’applicazione e create un utente. Effettuate il login, e controllate che tutto funzioni aggiungendo una URL o due. Una volta appurato che non ci siano bachi, e dopo aver familiarizzato con il sito, procedete con l’inclusione dei plug-in. Quando eravate a scuola vi penalizzavano per farlo, ma ora siete qui per prendere il codice di altri e copiarlo nel vostro progetto per aggiungere funzionalità, o semplicemente per risparmiare tempo. Ricordate solo di controllare le licenze dei plug-in che scegliete, potrebbero non essere compatibili con il progetto che state scrivendo.

Come si copia Abilitare gli utenti a condividere il contenuto del vostro sito ne aumenterà il traffico e la popolarità

<?php class AppController extends Controller { var $components = array(‘Auth’, ‘Session’); function beforeFilter() { $this->set(‘authUser’, $this->Auth->user()); return parent::beforeFilter(); } } Noterete che nella funzione beforeFilter c’è una chiamata a set. Questo per assicurarvi di avere accesso alle informazioni nelle viste in tutto il sito. Se l’utente non ha effettuato l’accesso, verrà impostato a null. Ora aprite controllers/users_controller.php e aggiungete una azione di login. Può essere anche vuota, perché CakePHP si occupa di tutto il meccanismo dietro le quinte. Aggiungete altresì una funzione per il logout degli utenti: function login() { } function logout() { return $this->redirect($this->Auth->logout()); } Infine, a lato controller, dovete assicurarvi che non sia necessario il login per creare un nuovo utente, altrimenti rimarreste tagliati fuori senza possibilità di crearne! Aggiungete al controller per users: function beforeFilter() { $this->Auth->allow(‘add’); return parent::beforeFilter(); } Il pezzo finale del puzzle è il file view, che non è stato creato da bake. Dovrete fargli accettare uno username e una password, e abilitare gli utenti all’accesso. Create la vista login in un nuovo file: views/users/login.ctp <div class=“users form”> <?php echo $this->Form->create(‘User’, array(‘url’ => array(‘action’ => ‘login’)));?> <fieldset> <legend><?php __(‘Login’); ?></legend> <?php echo $this->Form->input(‘username’); echo $this->Form->input(‘password’); ?> </fieldset> <?php echo $this->Form->end(__(‘Login’, true));?> </div>

78 LXP108 SETTEMBRE 2011

È il momento di andare a caccia di plug-in, prendere quello che vi serve e impostare le directory in app/plugins. Per gli scopi di questa installazione, dovete avere Git installato. L’uso di Git renderà più rapido il download e l’organizzazione dei plug-in per la vostra applicazione, e già che ci siete, è un ottimo modo per far pratica con questo sistema di controllo di versione, se non ci avete ancora preso mano. Lanciate nella vostra console git clone https://github.com/CakeDC/migrations.git plugins/migrations git clone https://github.com/CakeDC/ratings.git plugins/ratings git clone https://github.com/CakeDC/search.git plugins/search git clone https://github.com/predominant/cake_social.git plugins/cake_social git clone https://github.com/predominant/goodies.git plugins/goodies Vi siete appena risparmiati mesi e mesi di sviluppo, senza scherzi. State usando un pugno di plug-in disponibili a qualsiasi sviluppatore CakePHP voglia usarli, per coprire varie funzionalità nella vostra applicazione: questo vi fa risparmiare tempo e denaro, e di conseguenza andare in vacanza molto prima del resto degli sviluppatori.

Lanciare le migrazioni Poco fa avete notato una carenza di tabelle nel database, ma la migrazione dovrebbe porre rimedio: vedrete ora quant’è semplice creare nuove tabelle per i plug-in e il riutilizzo del codice in vari progetti. Non tutti i plug-in necessitano o hanno migrazioni. Gli altri hanno una directory migrations all’interno della directory config. Ad esempio,

Riutilizzare i plug-in Se utilizzate un’installazione di CakePHP centralizzata e si trova nel vostro include_path (vedi http://book. cakephp.org/view/1645/Deployment per maggiori informazioni sugli approcci di deployment e sviluppo), potete aggiungere i plug-in alla directory /cake/plugins, e ogni plug-in diverrà immediatamente disponibile per qualsiasi applicazione CakePHP che utilizzi quell’installazione. È un modo superfantastico per assicurarvi che i programmi aggiuntivi siano sempre aggiornati e per risparmiare tempo di copia e diffusione dei file.


CakePHP Tutorial vedete la directory plugins/ratings/config/migrations. Potete controllarle tutte per vedere quali richiedano migrazione, o semplicemente lanciarle, il che vi ritornerà un messaggio d’errore per quelli che non ne abbisognano (nessun problema, comunque). Lanciate il comando seguente per completare il setup delle tabelle per i plug-in appena installati: $ cake migration -plugin ratings all Ora dovreste avere tutte le tabelle che vi servono per il sito! Cominciate abilitando i giudizi (ratings), rendendoli accessibili solo per gli URL. Aggiungere il componente è veramente un gioco da ragazzi: aprite UrlsController in controllers/urls_controller.php e aggiungete il componente Ratings. Il codice risultante sarà circa il seguente: class UrlsController extends AppController { var $components = array(‘Ratings.Ratings’); // codice esistente... } La cosa bella in tutto questo è che il componente appena aggiunto si preoccuperà di includere l’helper che vi serve per visualizzare la maschera di votazione, e di gestire il salvataggio e il caricamento delle informazioni relative. Quello che vi rimane da fare è impostare la vista come preferite per mostrare i giudizi con l’helper e la votazione stessa. Essendo un plug-in veramente portabile e flessibile, le informazioni di giudizio non sono mediate o calcolate al posto vostro durante il caricamento, poiché questo richiederebbe la conoscenza delle operazioni matematiche applicabili alla vostra specifica situazione. Dovrete dunque fare qualche sforzo per visualizzare il valore corretto, e per far comparire la maschera di votazione solamente quando l’utente non ha già votato il link. La prossima sezione di codice è piuttosto ampia, quindi la potete trovare nel lato A del DVD (sezione Rivista), ma è davvero semplice una volta divisa in pezzi. Ci sono due sezioni principali nel codice: la prima mostra il form visualizzato quando non abbiate ancora votato il segnalibro attuale, e la seconda mostra la votazione. Entrambe le sezioni usano la classe Set che vi aiuta a gestire grossi quantitativi di dati, abilitando il filtraggio. Aggiungete il codice appena dopo il tag <dl all’inizio della vista in views/urls/view.ctp. Ora, quando visualizzerete un URL, vi verranno mostrati un set di radiobutton e un pulsante di Invio. Fantastico! Provate a votare un URL, e verrete rediretti alla stessa pagina, ma stavolta vedendo la vostra votazione. Sentitevi liberi di provare ancora un po’ con altri utenti e vedrete come cambiano i voti per la media di tutti quelli registrati.

Gravatar La pagina di vista URL è piuttosto povera, rendetela ora più accattivante e immediata con qualche immagine di supporto. Lascerete le complessità dei CSS e il disegno perfetto della pagina ai Web designer, rendendo però il loro compito più facile tramite l’aggiunta di un gravatar che mostri l’icona dell’utente per ogni URL. Un gravatar è un avatar globale, ed è disponibile liberamente su http://gravatar.com. Aggiungendo i plug-in poco fa ne avete incluso uno chiamato Goodies, e la gestione dei gravatar è solo una delle magnifiche cose che questo plug-in permette di fare. Se non lo avete già fatto, andate all’homepage di Gravatar. com, registrate il vostro account, e caricate un avatar.

Aprite quindi la vista URL (views/urls/view.ctp), arrivate fino al punto di visualizzazione delle informazioni sull’utente. La riga che dovrete modificare è la seguente: <?php echo $this->Html->link($url[‘User’] [‘id’],array(‘controller’ => ‘users’, ‘action’ => ‘view’, $url[‘User’][‘id’])); ?> Sostituitela con un link simile ma che includa l’output per il gravatar: <?php echo $this->Html->link( $this->Gravatar->image($url[‘User’][‘email’]), array(‘controller’ => ‘users’, ‘action’ => ‘view’, $url[‘User’][‘id’]), array(‘escape’ => false)); ?> <?php echo $url[‘User’][‘username’]; ?> Infine, includete l’helper nel vostro AppController in app_controller.php: class AppController extends Controller { var $helpers = array(‘Html’, ‘Form’, ‘Session’, ‘Goodies.Gravatar’); // ... codice esistente ... } Con questo codice verrà visualizzato il gravatar relativo a ogni utente a seconda della sua e-mail, assieme al suo username (in luogo della meno significativa stringa UUID). Aggiornate la pagina o navigate all’indirizzo della vista URL per visualizzare il gravatar appena aggiunto.

Tip Cominciare a utilizzare Git può rivelarsi difficile, ma al giorno d’oggi ci sono diversi tutorial e risorse online: cominciate dal libro su http://book. git-scm.com.

Un widget sociale L’ultimo colpo da maestro sarà abilitare la condivisione dei contenuti sui social network per pubblicizzare e diffondere il sito e i suoi contenuti. Tale funzionalità è già scritta nel plug-in CakeSocial che avete aggiunto all’inizio. CakeSocial aggiunge un helper per il servizio ShareThis, che rende la condivisione sociale veramente semplice. Un semplice plug-in per un servizio semplice dovrebbe essere super semplice, no? Giudicate da voi: aggiungete l’helper all’AppController in app_controller.php: class AppController extends Controller { var $helpers = array(‘Html’, ‘Form’, ‘Session’, ‘Goodies.Gravatar’, ‘CakeSocial.ShareThis’); // ... altro codice ... } E subito prima della tag di chiusura </dl nella vista per gli URL views/urls/view.ctp includete il codice seguente: <dt<?php if ($i % 2 == 0) echo $class;?>><?php __(‘Share’); ?></dt> <dd<?php if ($i++ % 2 == 0) echo $class;?>> <?php echo $this->ShareThis->display(); ?>   </dd> Fatto! Ci sono cinque righe di codice per questa vista, ma solo una è per il social output, il resto serve a impostare gli stili e per un’etichetta. Aggiornate la pagina e troverete il vostro widget ad aspettarvi. In aggiunta, se date un occhio al codice sul DVD vedrete le istruzioni per aggiungere le anteprime. E ora? L’applicazione scritta oggi è un chiaro esempio di come si possano costruire rapidamente le app con CakePHP, e la qualità dei plug-in disponibili liberamente per la community. Potete espandere enormemente la vostra applicazione implementando gestione degli URL privati, un service REST per l’integrazione, un bookmarklet che sfrutti Ajax da includere nei browser, stili di pagina e rimozioni di alcuni dati e pagine. Le possibilità sono infinite! LXP LXP108 SETTEMBRE 2011 79


Bash e Zenity Sistemi di notifica e box di dialogo da uno script di shell

Finestre di dialogo più elaborate Le finestre di dialogo che consentono operazioni più complesse sono le protagoniste del secondo tutorial dedicato a Zenity

L’autore Claudio Romeo Tiene corsi sull’uso del software, soprattutto di quello libero. Ha scritto più di trenta libri di argomento informatico. www.claudioromeo.it

Nel tutorial del mese scorso sono state prese in esame solo le semplici finestre di dialogo testuali di tipo informativo, in questa seconda guida, invece, farete conoscenza con finestre apparentemente più complesse. La complessità, ovviamente, è tale solo finché non si sa come costruirle: in realtà, il principio di funzionamento di Zenity è davvero semplice. Del ciclo di tre tutorial dedicati a Zenity, questo secondo vuole costituire il completamento della vetrina iniziata nel numero scorso. Non ci si addentrerà ancora nella descrizione della gestione dei codici d’uscita restituiti da Zenity né delle variabili indispensabili per usare le scelte fatte dall’utente mediante le finestre di dialogo: questi saranno argomenti della terza puntata. Tuttavia, una buona conoscenza dei meccanismi di funzionamento di base anche delle finestre di dialogo più complesse di Zenity (quelle qui presentate) è indispensabile per produrre script funzionanti e affidabili. Si dà per scontata la lettura del tutorial precedente, nel quale è riportata la sintassi di Zenity. Nel caso aveste bisogno di un veloce ripasso e il numero scorso di Linux Pro non fosse a portata di mano, potete leggere il tutorial precedente dal sito personale dell’autore, all’URL www. claudioromeo.it; nell’area Informatica, cercate Zenity.

Barra di avanzamento La finestra di avanzamento indica lo stato di avanzamento di un lavoro. La cattiva notizia è che Zenity non è in grado di calcolare automaticamente la percentuale di lavoro svolto e di rappresentarla graficamente su una barra di avanzamento che si aggiorni in tempo reale, perciò questa finestra di Zenity è pressoché inutile nel caso di un singolo comando. La buona notizia è che è invece possibile impostare punti intermedi all’interno di uno script contenente più comandi e definire le percentuali di riempimento della barra di avanzamento che devono essere rappresentate graficamente. Questo genere di finestra di dialogo non ha un’effettiva utilità sullo script in sé, ma ne può avere tantissima sull’utente. In effetti

1 Nella finestra di dialogo la barra di avanzamento viene aggiornata man mano

80 LXP108 SETTEMBRE 2011

INTERMEDIO

2 La finestra di dialogo con il calendario

nel caso che l’esecuzione di uno script impieghi diverso tempo, l’utente può non aver modo di sapere se il computer sta effettivamente elaborando i dati o se invece non stia facendo nulla a causa di un errore. In tali situazioni, la barra di avanzamento rassicura l’utente: non solo gli offre una stima (la cui attendibilità è affidata al programmatore) del tempo necessario a completare il lavoro, ma gli conferma che le operazioni stanno procedendo. La finestra di dialogo con la barra di avanzamento viene visualizzata mediante il comando zenity --progress e con le eventuali opzioni aggiuntive. Le opzioni disponibili per questo tipo di finestra di dialogo sono riportati nella Tabella 1. A mo’ di esempio pratico potete considerare una situazione reale. Poiché siamo abbonati all’edizione PDF di due quotidiani italiani, ogni giorno scarichiamo i giornali e gli eventuali supplementi, che vengono depositati nella cartella Scaricati. I quotidiani di oggi devono però risiedere sul NAS, in modo che siano facilmente raggiungibili da tutti i computer di casa. Inoltre, ogni giorno occorre spostare i giornali di ieri e depositarli in un’apposita cartella di archiviazione, in modo che siano comunque disponibili ma che non vadano a far confusione con i giornali di oggi. Perciò, le operazioni da automatizzare sono le seguenti (tenendo presente che i giornali nuovi sono già stati scaricati): 1 archiviare i giornali di ieri (cioè spostarli dalle sottocartelle Edicola alle sottocartelle Giornali); 2 copiare i giornali di oggi dalla cartella Scaricati alla cartella Edicola sul NAS (nell’esempio, solo uno dei due


Bash e Zenity Tutorial quotidiani, più eventuali supplementi, perché l’altro lo scarica un altro familiare dal suo account); 3 spostare i giornali di oggi dalla cartella Scaricati alla cartella Scrivania, in modo da averli a portata di mano per fare colazione e liberare nel contempo la cartella Scaricati. Sono semplici attività per le quali è sufficiente uno script banalissimo: #! /bin/bash # Archivia_giornali.sh

Tabella 1 PARAMETRO

FUNZIONE

--text=TESTO

Imposta il testo del dialogo

--percentage=PERCENTUALE

Imposta la percentuale iniziale

--pulsate

Fa pulsare la barra di avanzamento

--auto-close

Chiude il dialogo quando viene raggiunto il 100%

--auto-kill

# Sposta i vecchi giornali in archivio # mv /home/claudio/Rete/Prezzemolo/Edicola/Corriere/* /home/claudio/Rete/Prezzemolo/Biblioteca/ Giornali/Corriere/ mv /home/claudio/Rete/Prezzemolo/Edicola/Gazzetta/* /home/claudio/Rete/Prezzemolo/Biblioteca/ Giornali/Gazzetta/ # Copia in Edicola i nuovi giornali # cp /home/claudio/Scaricati/* /home/claudio/Rete/Prezzemolo/Edicola/Corriere/ # Sposta i nuovi giornali da Scaricati alla scrivania # mv /home/claudio/Scaricati/* /home/claudio/Scrivania/ In questa semplice situazione è facile inserire le istruzioni che permettano a Zenity di mostrare sullo schermo una barra d’avanzamento che si aggiorna a ogni nuovo comando che viene eseguito. Il principio di funzionamento è che Zenity è in grado di intercettare ciò che proviene dallo standard input. Se il dato è un numero, la percentuale viene aggiornata; se è un testo viene aggiornato il testo della finestra di dialogo. Allora basta inserire nello script alcune istruzioni (banalissimi comandi echo) che Zenity sia in grado di interpretare come dati in ingresso e che permettano di aggiornare la barra di avanzamento. Lo script originale viene perciò arricchito nel modo seguente: #! /bin/bash # Archivia_giornali.sh ( echo “0” echo “# Inizia l’archiviazione dei giornali vecchi” # Sposta i vecchi giornali in archivio # mv /home/claudio/Rete/Prezzemolo/Edicola/Corriere/* /home/claudio/Rete/Prezzemolo/Biblioteca/ Giornali/Corriere/ mv /home/claudio/Rete/Prezzemolo/Edicola/Gazzetta/* /home/claudio/Rete/Prezzemolo/Biblioteca/ Giornali/Gazzetta/

Uccide il processo genitore se è premuto il pulsante Annulla

--no-cancel

Nasconde il pulsante Annulla

I parametri per le barre di avanzamento

echo “# Archiviazione conclusa. Spostamento dei giornali di oggi” # Sposta i nuovi giornali da Scaricati alla scrivania # mv /home/claudio/Scaricati/* /home/claudio/Scrivania/ )| zenity --progress \ --title=“Archiviazione dei giornali” \ --text=“Archiviazione in corso” \ --percentage=0 È importante notare alcune cose. Innanzitutto, le istruzioni dello script originale sono raccolte tra parentesi tonde. Le istruzioni che riguardano specificamente Zenity si trovano invece alla fine dello script. Lo script originale e la parte riguardante Zenity sono legate dal simbolo della pipe (la barra verticale diritta), a significare che l’output dei comandi originali deve essere interpretato come input da parte di Zenity. I comandi echo di contenuto testuale devono iniziare con un simbolo di cancelletto affinché Zenity li usi come testo nella finestra di dialogo. Nella Fig.1 potete osservare il prodotto di questo script. L’aggiornamento della barra di avanzamento non è costante, ma procede a scatti secondo quanto (e quando) comunicato dai comandi echo. Purtroppo non è molto precisa: nello script d’esempio, l’ultimo comando è talmente rapido che praticamente l’utente non fa in tempo a leggere il messaggio che la procedura è già completata; allora sì che la barra si aggiorna automaticamente al 100%.

Tip Zenity è uno strumento specifico per GNOME. Gli utenti KDE possono trovare qualcosa di analogo in KDialog.

œ

echo “33” echo “# Archiviazione conclusa. Copia dei giornali di oggi” # Copia in Edicola i nuovi giornali # cp /home/claudio/Scaricati/* /home/claudio/Rete/Prezzemolo/Edicola/Corriere/ echo “66”

3 La finestra per la selezione del colore LXP108 SETTEMBRE 2011 81


Tutorial Bash e Zenity Tabella 2 PARAMETRO

FUNZIONE

--text=TESTO

Imposta il testo del dialogo

--day=GIORNO

Imposta il giorno del calendario

--month=MESE

Imposta il mese del calendario

--year=ANNO

Imposta l’anno del calendario

--date-format=MODELLO

Imposta il formato della data restituita

I parametri per il calendario

In ogni caso, nulla vieta al programmatore di stabilire le percentuali in modo più accurato, badando al peso di ogni comando anziché al numero dei comandi dello script.

Calendario La finestra di calendario consente di scegliere una data facendo click. Zenity mostra un calendario mensile, che l’utente può scorrere. Potete impostare una data predefinita, in modo che per accettarla l’utente debba solo premere il pulsante OK. La finestra di dialogo con il calendario viene visualizzata mediante il comando zenity --calendar e con le eventuali opzioni aggiuntive. Le opzioni disponibili per questo tipo di finestra di dialogo sono riportati nella Tabella 2. Il nostro sublime responsabile di redazione sta, per esempio, definendo le uscite della rivista. Uno script che potrebbe servirgli è il seguente: #! /bin/bash # Calendario.sh zenity --calendar \ --title=“Programmazione delle uscite” \ --text=“Imposta la data di uscita del numero di Natale” \ --day=22 \ --month=12 \ --year=2012 Questo script produce la finestra di dialogo riportata nella Fig.2. Zenity consente di scorrere sia il mese sia l’anno.

Colore La finestra di selezione del colore permette di indicare un colore e viene visualizzata mediante il comando zenity --color-selection e con le eventuali opzioni aggiuntive, mostrate nella Tabella 3. Per esempio, lo script #! /bin/bash # Colore.sh zenity --color-selection \ --title=“Scegli il colore primario per i titoli del

Tabella 3 PARAMETRO

FUNZIONE

--color=VALORE

Imposta il colore

--show-palette

Mostra la palette

I parametri per la selezione del colore

82 LXP108 SETTEMBRE 2011

sito Web” \ --color=#00FF00 \ --show-palette mostra la finestra riportata nella Fig.3. L’opzione --color determina il colore predefinito proposto dalla finestra; il valore deve essere espresso mediante la notazione esadecimale usata comunemente per il Web. Nella finestra compaiono però anche la modalità HSV (Hue, Saturation, Value) e RGB (Red, Green, Blue). Qualunque sia la modalità usata per modificare i valori del colore, la modifica viene riportata nelle altre modalità. Lo stesso accade se si usa l’anello per modificare la tonalità e il triangolo per modificare la luminosità, trascinando rispettivamente la barretta e il cerchietto. Quando il colore viene modificato, il riquadro colorato posto sotto l’anello si divide in due: a sinistra il colore originale, a destra quello attualmente selezionato. Facendo click sul pulsante con il contagocce avete la possibilità di scegliere il colore a partire da uno presente sullo schermo: basta fare un altro click, direttamente sul colore che desiderate. Questa funzione opera su qualunque parte dello schermo, anche al di fuori della finestra di Zenity. La tavolozza con i colori di base viene visualizzata solo se il comando di Zenity è corredato dall’opzione --show-palette.

Cursore graduato La finestra di cursore graduato consente di indicare un valore agendo con un cursore su una barra graduata. Per visualizzarla si usa il comando zenity --scale con le eventuali opzioni aggiuntive, che potete leggere in Tabella 4. Per esempio, lo script #! /bin/bash # Cursore_graduato.sh zenity --scale \ --title=“Imposta il livello di difficoltà” \ --text=“<b>Il livello di difficoltà interviene sul numero di nemici da sconfiggere e sulla loro velocità.</b>\n\n 0 = Sono una schiappa e ho paura\n10 = Io sono il Signore degli eserciti\n” \ --min-value=0 \ --max-value=10 \ --value=3 provoca la visualizzazione della finestra di dialogo riportata nella Fig.4. In questo script sono stati impostati il valore minimo, quello massimo e quello di partenza. Notate che per formattare in modo più accattivante il testo della finestra sono stati usati il grassetto e il comando di ritorno a capo: le spiegazioni sull’uso di questi strumenti sono contenuti nel tutorial del numero scorso. L’opzione --print-partial può essere facilmente fraintesa: non ha infatti effetto su quanto riportato nella finestra di Zenity ma fa sì che sia emesso ogni valore scelto quando si sposta il cursore, indipendentemente dal fatto che si prema il pulsante OK. Lo potete verificare eseguendo lo script da Terminale anziché da interfaccia grafica. A meno di esigenze specifiche, l’opzione --print-partial va perciò omessa.

Elenco La finestra di elenco presenta un elenco composto da un numero a piacere di colonne e di righe. L’utente ha la facoltà di scegliere una riga, della quale viene


Bash e Zenity Tutorial restituito il valore della colonna definita dal programmatore. Immaginate, per esempio, di avere realizzato uno script per velocizzare la reinstallazione di Linux sui vostri computer. Alcuni PC hanno però bisogno di una personalizzazione, a causa dell’hardware: con Zenity potete chiedere di indicare se il computer su cui state lavorando è uno di quelli che richiedono la personalizzazione. Nell’esempio proposto poco più avanti si fa uso dei radio button, in modo da indicare visivamente che è possibile un’unica scelta (anche se la scelta multipla deve essere esplicitata mediante l’opzione --multiple); si possono anche usare le caselle di selezione, di solito appunto in coppia con l’opzione --multiple per consentire la selezione di più righe. In ogni caso, la colonna con le caselle di selezione o con i radio button deve essere la prima dell’elenco. I computer dell’esempio hanno nomi da pseudonani di Biancaneve (http://tinyurl.com/635op46); l’elenco è corredato da una terza colonna (dopo quella dei radio button e quella con i nomi dei computer), con la descrizione della personalizzazione. La finestra di elenco viene visualizzata mediante il comando zenity --list con le eventuali opzioni aggiuntive, presenti in Tabella 5. Lo script #! /bin/bash # Elenco.sh zenity --list \ --radiolist \ --width=600 \ --height=225 \ --title=“Il computer da configurare” \ --text=“Scegli dall’elenco il computer che stai configurando:” \ --print-column=2 \ --column=“Scegli” --column=“Computer” --column=“Configurazione specifica” \ false “Bossolo” “Scheda di rete wireless e chiavetta Internet Wind” \ false “Cingolo” “Scheda di rete Atheros” \ false “Spicciolo” “Scheda audio” \ true “Nessuno” “Il computer che stai configurando non è alcuno dei precedenti” richiama la finestra riportata nella Fig.5. L’opzione --print-column indica la colonna il cui valore dovrà essere restituito dallo script in seguito alla selezione dell’utente. Ricordiamo che l’utente sceglie la riga, mentre il programmatore decide la colonna. Nel caso dell’esempio, l’opzione --print-column=2 fa sì che venga restituito il valore della seconda colonna, cioè il nome del computer. Per indicare il contenuto delle righe bisogna specificare un comando per ogni riga dell’elenco, ognuno con tante voci quante sono le colonne (nell’esempio sono tre). La prima voce specifica se il radio button è selezionato (true) oppure no (false). La seconda indica il nome del computer e la terza la configurazione. Se le voci sono testuali, vanno racchiuse tra doppi apici. Se sono numeriche o (solo riguardo alla prima colonna) determinano la selezione e la deselezione del radio button o della casella, allora i doppi apici non vanno usati. Le voci vanno separate da uno spazio.

4 La finestra con il cursore graduato

Tabella 4

-

PARAMETRO

FUNZIONE

--text=TESTO

Imposta il testo del dialogo

--value=VALORE

Imposta il valore iniziale

--min-value=VALORE

Imposta il valore minimo

-max-value=VALORE

Imposta il valore massimo

--step=VALORE

Imposta la dimensione del passo

--print-partial

Stampa i valori parziali

--hide-value

Nascondi il valore

I parametri per il cursore graduato

La documentazione di Zenity parla di colonna che viene stampata. È importante ricordarsi che questa espressione non ha nulla a che fare con la carta, ma indica la colonna il cui valore viene restituito (tecnicamente, stampato sul dispositivo di output predefinito, cioè lo schermo) e che viene intercettato da Zenity.

File La finestra di file permette di scegliere un file da aprire o di assegnare un nome a un file da salvare. In entrambi i casi si può scorrere la gerarchia delle cartelle su disco per indicare la posizione appropriata. Questa finestra viene richiamata mediante zenity --file-selection Le opzioni disponibili per questo tipo di finestra di dialogo sono riportati nella Tabella 6. Aggiungendo al comando precedente l’opzione --save si apre la finestra in modalità salvataggio. Potete notare nella Fig.6 la differenza tra i due tipi di finestra. Mediante l’opzione --filename si imposta il nome predefinito del file. Se volete invece far sì che sia

œ

5 La finestra con l’elenco LXP108 SETTEMBRE 2011 83


Tutorial Bash e Zenity Tabella 5 PARAMETRO

FUNZIONE

--text=TESTO

Imposta il testo del dialogo

--column=COLONNA

Imposta il titolo della colonna

--checklist

Usa caselle di selezione per la prima colonna

--radiolist

Usa pulsanti radio per la prima colonna

--separator=SEPARATORE

Imposta il carattere separatore per l’output

--multiple

Permette di selezionare più di una riga

--editable

Consente la modifica del testo

--print-column=NUMERO

Stampa una colonna specificata (Il valore predefinito è 1. ‘ALL’ può essere usato per stampare tutte le colonne)

--hide-column=NUMERO

Nasconde una colonna specifica

--hide-header

Nasconde il titolo della colonna

zenity --file-selection \ --file-filter=“*.sh *.pdf” fa sì che siano elencati sia i file con estensione .sh sia quelli con estensione .pdf. Il parametro deve essere racchiuso tra doppi apici.

I parametri per l’elenco

Tabella 6

Password

PARAMETRO

FUNZIONE

--filename=NOMEFILE

Imposta il nome del file

--multiple

Permette di selezionare più di un file

--directory

Attiva la selezione delle sole directory

--save

Attiva la modalità salvataggio

--separator=SEPARATORE

Imposta il carattere separatore per l’output

--confirm-overwrite

Confermare la selezione del file se il nome di file esiste già

--file-filter=NOME | MODELLO1 MODELLO2 ...

Imposta un filtro sul nome del file

I parametri per la selezione del colore

6 In alto, la finestra per l’apertura di un file; in basso quella per il salvataggio

impostata solo la directory, specificate l’opzione --directory (come nome predefinito vale quello del file). Fate attenzione al fatto che, se la cartella indicata non esiste, essa viene creata. L’opzione --confirm-overwrite è una bella comodità: fa sì che venga chiesta conferma nel caso l’operazione tentasse di sovrascrivere un file già esistente. Mediante l’opzione --file-filter potete impostare un filtro, in modo che vengano visualizzati solo il file rispondenti al filtro stesso. Il parametro di questo filtro può indicare il nome dei file (per esempio, Contocorrente*, in modo che siano elencati nella finestra solo i documenti il cui nome inizia per “Contocorrente”) sia l’estensione (per esempio, *.pdf). Non è tutto qui: è possibile indicare più di un’estensione. Per esempio, lo script #! /bin/bash # File.sh

Mediante la finestra di password si richiede una password all’utente; la finestra compare con il comando zenity --password che può anche prevedere l’opzione --username per la richiesta anche del nome utente. Per esempio, lo script #! /bin/bash # Password.sh zenity --password \ --username \ --title=“Verifica delle credenziali” visualizza la finestra riportata nella Fig.7. A parte --username, questo tipo di finestra di dialogo non ha opzioni specifiche. L’opzione --title fa parte di quelle generiche di Zenity. LXP

Nel prossimo numero Vedrete come usare negli script i valori restituiti da Zenity. In molti casi sarà necessario dichiarare dapprima una o più variabili, ma complessivamente non si tratta di operazioni insormontabili, neppure per chi non è esperto.

7 La finestra di richiesta password

84 LXP108 SETTEMBRE 2011


Quando la PASSIONE si chiama COMPUTER!

CORRI SUBITO IN EDICOLA!


LPI Un posto in prima fila per la certificazione LPI

Scuola di Linux Parte 7 Imparate a maneggiare i processi da professionisti ed entrate in contatto con il celebre editor minimale Vi Ci stiamo avviando verso la fine di questa serie di tutorial LPI: il prossimo mese pubblicheremo l’ultima puntata. È quindi giunto il momento di affrontare alcuni argomenti avanzati con cui vi capiterà di avere a che fare nel vostro lavoro di amministratori di sistema. Cominceremo con uno sguardo ai processi e a come manipolarli secondo le vostre necessità. Non c’è nulla di peggio di un processo fuori controllo che cancella file importanti per dare una sensazione di impotenza, quindi esamineremo le possibili soluzioni del problema. Daremo anche un’occhiata anche ai filesystem, non in termini di contenuti come abbiamo

INTERMEDIO

fatto in una precedente puntata, ma per capire come formattare le partizioni con uno specifico tipo di filesystem e come eseguire controlli su di essi nel caso in cui qualcosa vada storto. Infine esploreremo l’editor Vi, che è fornito praticamente con tutte le installazioni di Linux e UNIX sotto il sole, e che è notoriamente difficile da usare all’inizio, ma che può essere un dono del cielo quando si tratta di sistemare le cose. Il mese prossimo presenteremo una dettagliata serie di domande per l’esame LPI, in modo che una volta finita questa serie di tutorial abbiate materiale per ripassare. Buona fortuna!

Parte 1 Gestire i processi Immaginate di essere seduti a casa vostra e di avere desiderio di una buona tazza di tè. Dato che siete dei tipi attivi, chiedete a un vostro familiare lì vicino di prepararvene una. Questi si dirige verso la cucina e, come potete vedere dalla vostra comoda poltrona, inizia a prepararvi una tazza di caffè. In una situazione di questo genere probabilmente esclamereste “Perdincibacco! Avevo chiesto una buona tazza di tè!” o qualcosa del genere. Come funziona invece con i sistemi Linux? Cosa succede se lanciate un programma e poi volete fermarlo oppure modificarne il comportamento? A livello base l’equivalente dell’urlo “stop” consiste nel premere Ctrl+C. Provateci con un comando che generi una grande quantità di output, come ls -R /, che fa la lista della directory root e di tutte le sottodirectory. Mentre il comando sta sputando migliaia di righe sul terminale potete premere Ctrl+C per interromperlo a metà. È finito, non c’è null’altro da fare. Questo è di importanza fondamentale quando vi rendete conto di aver dato un comando assolutamente folle e dovete a tutti i costi bloccarlo prima che faccia danni. C’è però un alternativa a questo. Se voleste semplicemente bloccare l’esecuzione del programma per riprenderla più tardi? Ad esempio, supponiamo che abbiate dato il comando man gcc per leggere la pagina di manuale del compilatore C della GNU. Avete letto qua e là, avete trovato un punto interessante e vorreste fare qualche esperimento senza perdere la posizione all’interno della pagina. Premete Ctrl+Z e il programma di visualizzazione della pagina di manuale scomparirà sullo sfondo (background in inglese), lasciando il posto al prompt dei comandi. A questo punto potete fare il vostro lavoro e poi digitare fg (per foreground, primo piano) per ritornare alla pagina di manuale, esattamente al punto in cui l’avete lasciata. È possibile far partire un programma in modo non visuale (cioè in background. Il processo si sospende

86 LXP108 SETTEMBRE 2011

quando tenta di leggere o scrivere sul terminale, in attesa di tornare in foreground e di averne il controllo esclusivo), così da passare ad esso quando siete pronti. Questo risultato si ottiene aggiungendo un carattere & dopo il comando, come in questo esempio: man df & Questo comando fa partire il programma di visualizzazione della pagina di manuale del comando df (che mostra lo spazio libero su disco), ma sullo sfondo. Sullo schermo viene stampata una notifica dell’avvio del programma: [1] 3192 Il secondo numero è l’identificativo del processo (process ID), di cui parleremo tra poco. Potete ora continuare facendo il vostro lavoro e quando siete pronti per leggere la pagina di manuale dare semplicemente il comando fg. Questo sistema risulta particolarmente utile quando si combinano insieme più programmi. Ad esempio, impartite questi comandi: nano & man df & In questo caso avete lanciato due programmi sullo sfondo. Se digitate il comando jobs vedrete la lista dei due processi in background, con i soliti due numeri all’inizio e le loro righe di comando. Potete riportare in primo piano uno dei due programmi usando il numero che lo contraddistingue: ad esempio fg 1 vi permetterà di lavorare con l’editor Nano, mentre fg 2 porterà in primo piano la pagina di manuale di df. Continuiamo con i processi. In ultima analisi un processo è un programma in esecuzione: i programmi più semplici sono costituiti da un solo processo, il programma stesso. Programmi più complicati, come ad esempio i Desktop Environment, fanno partire parecchi processi: demoni di controllo dei file, Window Manager e così via. Questo facilita la manutenzione del sistema (immaginate se tutto KDE fosse all’interno di un enorme, gigantesco eseguibile che si bloccherebbe


LPI Tutorial Il comando nice e le priorità dei processi Per default un processo ha gli stessi diritti di qualsiasi altro a usare le risorse del sistema. Se il processo A e il processo B sono avviati e richiedono entrambi di usare la CPU, lo scheduler del kernel Linux dividerà il tempo di CPU in parti uguali tra di essi. Questo non è però sempre auspicabile, specialmente quando ci sono molti processi in esecuzione sullo sfondo (in background). Potreste ad esempio avere un job di cron (un’operazione periodica) che, su una macchina desktop, deve comprimere vecchi file che vanno archiviati. Se l’utente sta facendo qualcosa

di importante non è ammissibile che improvvisamente perda il 50% della potenza di elaborazione perché è partito cron. Per risolvere questo problema esiste un sistema di priorità. Ogni processo ha un valore nice, che stabilisce come deve essere trattato dal sistema operativo e varia da 19 per la priorità più bassa a -20 per la più elevata. Se ad esempio volete lanciare un programma con la priorità più bassa usate: nice -n 19 nomeprogramma Questo comando manderà in esecuzione il programma che, se null’altro sta succedendo sul sistema, verrà completato normalmente.

completamente in caso di errore di un componente) e inoltre ci permette di fare alcune utili cose. Per mostrare una lista dei processi date il comando ps. Il risultato non vi sembrerà un granché, dato che probabilmente non supererà le due righe stampate a video: questo dipende dal fatto che non tutti i processi sono stati lanciati dal vostro utente. Per vedere tutti i processi in esecuzione sulla macchina digitate ps ax. Di solito l’output sarà molto lungo, quindi vi conviene fare una pipe con less, come spiegato il mese scorso: ps ax | less Quello che vedrete esattamente dipende dalla configurazione specifica della vostra installazione Linux e dai programmi attualmente in esecuzione, ma ecco una riga di esempio: 2972 pts/0 Ss 0:00 bash In questo caso 2972 è l’identificativo del processo (PID). Ogni processo ha un identificativo unico, a partire dall’ID 1 che è assegnato al programma /sbin/init eseguito dal kernel all’avvio della macchina. Segue pts/0, che indica da quale terminale virtuale è stato lanciato il comando: se in questo punto vedete un punto interrogativo si tratta di un processo lanciato al di fuori di un terminale, ad esempio da uno script di avvio del kernel. Ss indica che il processo è in stato sleeping (dormiente), cioè che non sta facendo alcuna elaborazione. C’è poi un indicazione del tempo di CPU consumato fin qui dal processo, seguito dalla riga di comando usata per farlo partire. Una maniera alternativa per ottenere una lista dei processi, ordinata per default in base all’uso della CPU, consiste nel comando top. Si tratta di un programma interattivo che aggiorna lo schermo a intervalli di pochi secondi, mostrando in cima alla lista i processi che fanno un uso più intenso della CPU. Fornisce anche le intestazioni delle colonne (nella barra nera), tra cui l’identificativo del processo, l’utente che l’ha avviato e cosi via. Da notare che, tra le varie colonne che indicano l’uso della memoria, la più importante è RES (residente), che mostra esattamente quanta memoria fisica stia usando il processo. Per uscire da top premete Q. Supponiamo quindi che un programma felicemente in esecuzione improvvisamente inizi a dare i numeri, si blocchi in loop e occupi tutta la CPU. Non potete interromperlo con Ctrl+C perché l’avete lanciato dai menu del vostro Window Manager. Cosa potete fare? La prima opzione consiste nel trovare il suo PID usando uno dei metodi precedenti e poi impartire il comando kill <pid>

Se invece sul sistema sono in esecuzione altri processi, verranno completati prima di quello da voi lanciato. Per usare valori negativi di nice occorre essere root: sudo nice -n -10 nomeprogramma Questo perché nei sistemi multiutente l’amministratore può avere la necessità di dare priorità maggiore ai suoi processi (altrimenti chiunque potrebbe aumentare la priorità dei suoi!). Potete cambiare il valore di nice di un processo in esecuzione con il comando renice. Leggete la pagina di manuale per maggiori informazioni e poi guardate i risultati con top.

Ecco il risultato prodotto dal comando “ps ax” che mostra tutti i processi in esecuzione sul sistema

dove <pid> va sostituito con l’identificativo del processo. Anche se il nome suggerisce l’uccisione di qualcuno (to kill in inglese significa uccidere), si tratta in realtà di un comando abbastanza delicato nella sua versione di default, dato che invia semplicemente il messaggio piuttosto amichevole “Ti dispiacerebbe terminare l’esecuzione?” al processo, che può reagire effettivamente terminando in modo ordinato la sua esecuzione (chiudendo ad esempio i file temporanei). Spesso questo comando termina effettivamente il processo, ma se questo ha installato un suo handler del segnale kill ed è troppo occupato a fare altro non succederà nulla. In questo caso digitate il comando kill -9 <pid> Questa volta kill non si preoccupa nemmeno di chiedere al programma se è tutto ok: lo ferma immediatamente. Se il processo è a metà nell’operazione di scrittura su un file la situazione può diventare molto complicata, quindi va usato con estrema attenzione, quando non è disponibile nessun’altra opzione. Potrebbe capitarvi di avere un certo numero di processi con lo stesso nome, oppure che non vogliate perdere tempo a cercare il PID di un processo. In questo caso potete usare il comando killall. Ad esempio, supponete di aver compilato un modulo ultra avanzato di Apache e che ora il vostro server Web se ne stia andando per conto suo. Non potete fermarlo usando i soliti script e ci sono un sacco

Tip Le combinazioni di tasti usate per fermare e mettere in pausa un processo, come Ctrl+C e Ctrl+Z, nella maggior parte dei casi funzionano, ma non sempre. I programmi possono associare quei tasti ad altre funzionalità, oppure per impedire agli utenti di uscire da un programma importante per giocare a Nethack!

œ

LXP108 SETTEMBRE 2011 87


Tutorial LPI Tip Potete ottenere veloceme nte un riassunto dell’attività del vostro sistema con il comando uptime, che mostra il tempo passato dall’ultimo (ri)avvio, quanti utenti sono collegati e il carico medio negli ultimi 1, 5 e 15 minuti.

di processi chiamati apache in esecuzione. Provate questo: killall -9 apache Un altro segnale utile che non è distruttivo, ma chiede a un programma di riavviarsi o di rileggere i suoi file di configurazione è SIGHUP, che prende il nome dall’hanging up (riattaccare) dei modem su linea telefonica. Molti programmi lo ignorano, ma funziona bene con certi demoni sullo sfondo (in background) come i server:

killall -HUP sendmail Questo comando dice a tutti i processi sendmail in esecuzione di fermarsi per un attimo, rileggere i file di configurazione e poi continuare. È molto utile quando volete fare una modifica veloce a un file di configurazione senza interrompere il programma. Se, per qualche ragione, non volete che questo segnale sia elaborato da un processo, usate il comando nohup per disabilitarlo. Per maggiori informazioni man nohup.

Parte 2 Creare nuovi filesystem Passiamo a un argomento più avanzato che, di solito, non dovrebbe preoccuparvi come amministratori di sistema: i filesystem e le partizioni. Perlomeno non dovreste averci a che fare tutti i giorni. Nella maggior parte dei casi determinerete la configurazione delle partizioni al momento dell’installazione del sistema operativo e poi non ve ne occuperete più per mesi

Dando il comando top viene visualizzata la lista dei processi ordinati in base al loro utilizzo della CPU

o addirittura per anni. Gli strumenti grafici come GParted, usato dai programmi di installazione di molte distro, rendono il processo estremamente semplice, anche se è importante conoscere gli strumenti a riga di comando per i casi di emergenza. Per prima cosa facciamo un ripasso. Un disco rigido è di solito diviso in più partizioni: ce ne può essere una per Windows, ad esempio, e poi una per Linux. La maggior parte delle installazioni Linux è suddivisa su due o più partizioni: quelle per i dati (come / e /home) e la partizione di swap per la memoria virtuale. I dati devono essere disposti su una partizione in una maniera ordinata, seguendo un certo formato: storicamente Linux usava il formato di filesystem ext2. Poi è arrivato ext3 (con il journaling) e ora c’è ext4. Altri tipi di partizioni provenienti dal mondo Linux e UNIX comprendono XFS e ReiserFS. La maggior parte delle macchine Windows usa NTFS, mentre i dispositivi

Verificare l’integrità di un filesystem I filesystem moderni di Linux, come ext4 (attualmente lo standard per la maggior parte delle installazioni) sono robusti e affidabili. Non fanno miracoli nel caso di mancanza di corrente, ma cercano di lasciare il filesystem in uno stato ragionevolmente consistente, in modo che non perdiate tutti i vostri dati. Nulla però è perfetto e, nel caso abbiate avuto seri problemi con il vostro hardware, potreste sospettare che sul disco ci sia qualcosa che non va. Ecco come un amministratore risolverebbe il problema. Per prima cosa date il comando dmesg e verificate che non ci sia qualcosa di strano nei messaggi che vedete, che abbia a che fare con corruzione dei dati, settori difettosi (bad sector) e così via. Se vedete qualcosa del genere procuratevi una chiavetta USB e copiate immediatamente tutti i dati importanti, perché potrebbe darsi che il disco si guasti definitivamente entro breve tempo. Usate poi il comando df -h per vedere quanto spazio libero c’è sul disco: se è molto meno di quanto vi aspettavate potrebbe esserci qualcosa che non va. Usate du -h sulle varie

88 LXP108 SETTEMBRE 2011

directory per scoprire quanto spazio è usato da ciascuna di esse. Il passo successivo consiste nell’eseguire una verifica del filesystem (filesystem check). Chiedete agli utenti eventualmente collegati di uscire e portate la macchina in modalità single user con il comando telinit 1 (abbiamo parlato dei runlevel nella seconda puntata). Smontate la partizione di cui dovete verificare l’integrità con il comando /sbin/umount punto-dimontaggio (questo implica che non è possibile verificare l’integrità del filesystem montato su /. Per farlo occorre avviare il sistema da un LiveCD). Ovviamente dovete essere root per fare tutto questo. Digitate poi il comando /sbin/fsck nome-dispositivo Sostituite a nome-dispositivo il nodo in /dev/ corrispondente alla partizione che volete verificare, ad esempio /dev/sda2. fsck è in realtà un front-end, un singolo comando che permette di accedere a vari strumenti per la verifica dei filesystem. Nella maggior parte dei sistemi Linux viene in realtà eseguito /etc/ e2fsck, che è in grado di trattare i filesystem ext2/3/4.

Se, durante il processo di verifica, viene rilevato qualche problema, fsck vi chiederà cosa volete fare. Terminata la verifica potete lanciare /sbin/dumpe2fs seguito come al solito dal nodo corrispondente alla partizione per ottenere maggiori informazioni su di essa, che vi potranno essere utili se volete segnalare un problema in un forum online. Forse avrete notato che molte distribuzioni Linux eseguono automaticamente fsck per verificare i filesystem ogni 30 avvii della macchina oppure ogni 100 giorni, o ancora a una combinazione delle due condizioni. È possibile modificare questo comportamento con il comando tune2fs e le opzioni -c e -C. È anche possibile impostare il comportamento del kernel nel caso scopra un errore nel filesystem e molti altri dettagli. Vale davvero la pena di leggere la pagina di manuale, specialmente le informazioni relative alle prime cinque opzioni. Un programma analogo, anche se estremamente tecnico, è debugfs, ma dovete conoscere davvero bene la struttura interna del filesystem per farne buon uso.


LPI Tutorial esterni di memorizzazione come le chiavette USB tendono a usare FAT32 (noto anche come VFAT in Linux). Lo strumento di base a riga di comando per il partizionamento dei dischi è fdisk. Si aspetta come argomento il nodo della directory /dev corrispondente al disco, come nell’esempio seguente: /sbin/fdisk /dev/sda (Il comando va lanciato da root; se non siete sicuri sul nodo in /dev a cui corrisponde il vostro disco, date un’occhiata all’output di dmesg). Notate come abbiamo usato /dev/sda e non /dev/sda1, dato che quest’ultimo corrisponde a una partizione, mentre noi vogliamo l’intero disco. Nella maggior parte dei casi sda è il primo disco rigido, sdb il secondo e così via. fdisk è un programma piuttosto spartano: non ci sono menu o percorsi guidati per automatizzare le cose. Battete p per ottenere la lista delle partizioni sul vostro disco rigido e m per ottenere un elenco dei comandi disponibili. Tra questi ci sono comandi

per cancellare partizioni, crearne di nuove e così via. Le modifiche che fate non vengono scritte sul disco finché non date il comando w. Alcune distro includono cfdisk, una versione basata su curses di fdisk che rende le cose un po’ più semplici: ci sono dei menu e ci si può spostare tra le voci con i tasti del cursore. Dopo aver creato una partizione dovete formattarla ed è a questo punto che entra in scena il comando mkfs. Scrivete /sbin/mkfs e poi premete Tab per vedere tutti i possibili completamenti: vedrete che ci sono mkfs.ext3 (per la maggior parte delle partizioni Linux), mkfs.vfat (per le partizioni FAT32) e così via. Per formattare una partizione dovete semplicemente fornire al programma il nodo corrispondente alla partizione: /sbin/mkfs.ext3 /dev/sda2 Per le partizioni di swap usate il comando mkswap. Potrete in seguito attivare e disattivare lo spazio di swap con i comandi swapon e swapoff.

Tip Per avere un’indicazione di quanta memoria sia disponibile usate il comando free -m (mostra i dati in megabyte). La prima riga potrebbe spaventarvi e indurvi a pensare che ci sia ben poca memoria ancora libera, anche se avete lanciato solo Fluxbox, ma i valori mostrati comprendono anche le cache dei dischi. Il dato importante da guardare è nella seconda riga: +/- buffer cache.

Parte 3 Uno sguardo all’editor Vi Per concludere la puntata diamo un’occhiata a Vi, l’editor “visuale”. Sì, può sembrare ridicolo che un editor sia descritto come “visuale”: non lo sono tutti? Non negli anni ‘70, quando Vi fu sviluppato per il sistema operativo UNIX: molti usavano ancora le telescriventi.Il concetto di editor a tutto schermo era piuttosto nuovo dato che la gente era abituata a lavorare su una singola riga di un file di testo. Vi è piuttosto conciso e offre solo funzioni di base, ma grazie al suo ridotto consumo di risorse è ancora installato per default praticamente su ogni macchina UNIX. Nel mondo Linux la maggior parte delle distro comprende Vim (Vi Improved), una versione molto più avanzata e ricca di funzionalità.

Per cominciare

A differenza di Vi, Vim vi dà un po’ di aiuto quando lo lanciate senza un nome di file sulla riga di comando

Mettetevi alla prova! Probabilmente, inoltrandovi in questa serie di tutorial, vi è venuta voglia di misurare le vostre conoscenze. In fin dei conti se avete davvero intenzione di tentare la certificazione LPI quando il corso sarà finito, dovrete essere in grado di usare al volo le vostre conoscenze senza consultare i manuali o i nostri articoli. Assicuratevi quindi di aver letto, assimilato e provato tutto quello di cui abbiamo parlato in questa puntata e poi cercate di rispondere alle domande che seguono. Δ 1 Come fareste a lanciare il programma exim -q sullo sfondo? Δ 2 Avete numerosi programmi in esecuzione in background. Come fate per averne una lista? Δ 3 Come si fa per ottenere una lista di tutti i processi? Δ 4 Exim è impazzito e dovete interrompere tutte le istanze del programma. Qual è il comando? Δ 5 Avete appena creato una nuova partizione /dev/sda2 e volete formattarla come FAT32. Come? Δ 6 Indicate come avviare il programma mioprogramma alla priorità più bassa. Δ Soluzioni: 1 exim -q & - 2 jobs - 3 ps ax - 4 killall -9 exim - 5 /sbin/mkfs.vfat /dev/ sda2 - 6 nice -n 19 mioprogramma

Per cominciare date il comando vi nomefile.txt. Prima di premere un qualsiasi tasto dovete sapere che Vi lavora in due modalità: normale (per i comandi) e inserimento (per inserire e modificare il testo). In questo differisce dalla maggior parte degli altri editor, che vi permettono di iniziare subito a scrivere il testo. In Vi invece dovete premere i per inserire del testo nella posizione in cui si trova il cursore. Quando avete finito premete Esc per ritornare alla modalità normale, in attesa di ricevere i comandi. Ci sono molti comandi e, se volete diventare un guru di Vi, parecchi libri dedicati all’argomento. Qui vi daremo solo una breve lista di quelli essenziali: in modalità normale dd cancella una riga, yy copia una riga nella clipboard e p la incolla. Ci sono alcune operazioni che vanno precedute dal carattere due punti. Ad esempio :w scrive il file su disco, mentre :q termina il programma (se avete fatto delle modifiche e non avete salvato il file e provate ad uscire, Vi si lamenta; potete dirgli di uscire senza salvare usando :q!). È anche possibile combinare due di queste azioni, come ad esempio scrivere e uscire con :wq. Molte persone trovano Vi e Vim molto scomodi e preferiscono editor non modali come Emacs o Nano. Altri, al contrario, ne amano il minimalismo e odiano l’ossessione per i tasti Ctrl degli altri due editor. È una guerra dal risultato incerto che prosegue senza fine, ma ogni buon amministratore conosce le basi di Vi, dato che è praticamente certo di trovarlo su ogni macchina che incontrerà. LXP

LXP108 SETTEMBRE 2011 89


Hardcore Linux Una sfida per i power user

Amministrazione dei server Partendo dal tutorial del mese scorso, Linux Pro vi mostrerà la via più semplice per ampliare il vostro sistema di installazione ed effettuare alcuni piccoli accorgimenti di base per la sicurezza

DIFFICILE

Il mese scorso avete letto le basi dell’installazione kickstart di un sistema grazie a CentOS e come modificare questo metodo d’installazione per avvicinarlo alle nostre esigenze. Avete utilizzato dei semplici tool per creare un server Web in grado di offrire sia i file per l’installazione che la configurazione kickstart per automatizzare l’installazione di un altro sistema o più di uno a seconda delle necessità. Avete preso il file di kickstart che era stato generato in automatico dall’installazione (sia Red

Il risultato che otterrete eseguendo lo script security.sh è di migliorare leggermente la sicurezza del vostro sistema

90 LXP108 SETTEMBRE 2011

Hat che CentOS creano un file d’installazione chiamato anaconda-ks.cfg all’interno della directory /root/) e reso accessibile tramite server Web, permettendovi di installare molti sistemi identici tra di loro. Vi abbiamo mostrato, inoltre, l’utilizzo del tool di configurazione di Kickstart (questo tool non è installato di default dal sistema) e di come utilizzarlo per raggiungere i vostri scopi. Per poter utilizzare il file di configurazione avete avviato il boot del CD con il seguente comando: linux ks=http://indirizzo del vostro webserver/cartella di kickstart/file kickstart Un esempio potrebbe essere: linux ks=http:192.168.0.1/kickstarts/kickstart.cfg Questo mese andremo a illustrare come personalizzare l’installazione in modo da automatizzare dei task e risparmiare ancora più tempo. La nostra messa a punto servirà anche a eliminare piccoli errori e refusi. Utilizzare l’installazione kickstart è solo la prima parte di un processo d’installazione e configurazione automatizzato. Darete un’occhiata anche a come migliorare la sicurezza dei sistemi installati. Questo tutorial verterà su: Δ creare un repository locale per gestire i propri aggiornamenti; Δ aggiungere alcuni accorgimenti di base per migliorare la sicurezza del server tramite uno script; Δ discutere sul modo migliore per apportare modifiche post-installazione; Δ creare alcuni script di base per modificare il sistema dopo l’installazione. Una delle misure di sicurezza più importanti è di assicurarsi di installare sempre un sistema aggiornato. Se state installando o manutenendo diverse macchine dovreste implementare un repository locale sul server. Per prima cosa, è più veloce ed efficiente installare tramite LAN piuttosto che da Internet. Secondo, risparmia l’enorme spreco di banda dell’interrogare i repository Internet per recuperare sempre gli stessi pacchetti. Creare un repository locale è abbastanza semplice. Nel server principale che contiene i file legati all’installazione kickstart, create una directory chiamata updates nella root Web del server (/var/www/html/updates) che andrà a contenere tutti i file di aggiornamento. Per evitare di complicare le cose chiamate questa cartella updates. È necessario, inoltre, impostare i giusti permessi a questa cartella. Per fare ciò eseguite come root questi comandi: mkdir /var/www/html/updates chmod 644 /var/www/html/updates Andrete a configurare il sistema in modo che scarichi gli aggiornamenti utilizzando rsync e li renda accessibili dagli altri server nella LAN. Per scegliere da quale server rsync scaricare i vostri aggiornamenti, consultate il sito www.centos.org/modules/tinycontent/index. php?id=31. Dovete fare questa operazione soltanto sul vostro server principale in quanto esso si occuperà degli aggiornamenti di tutti gli altri. Assicuratevi


Hardcore Linux Tutorial Lo strumento intelligente per copiare i file Rsync è un comando molto utile e potente. Sviluppato da Andrew Tridgell di Samba, rsync è utilizzato per sincronizzare in modo intelligente i file attraverso la rete. È molto utile perché piuttosto che copiare semplicemente i file, confronta quelli presenti nel sorgente e nella destinazione e scarica soltanto quelli necessari. Se il file non è presente

di sincronizzarvi con il giusto ramo degli update, nel momento della scrittura di questo articolo la versione più aggiornata è la 5.6 ma quando la rivista sarà in edicola sarà già disponibile CentOS 6.0 (che probabilmente troverete il mese prossimo nel DVD), potete comunque vedere qual è la versione che state eseguendo nel file /etc/redhat-release. Il comando rsync che andrete a usare sarà simile a: /usr/bin/rsync -avH --exclude ‘isos’ rsync://server rsync/centos/5.6/* /var/www/html/updates È necessario però eseguire questo comando più di una volta per assicurarsi che il sistema sia sempre aggiornato con gli ultimi pacchetti disponibili, per questo potrebbe essere una buona idea farlo automaticamente a una qualche ora tarda della notte. Non è obbligatorio utilizzare rsync, si può usare anche FTP o altro, ma rsync è il modo più efficiente (trovate maggiori informazioni su rsync nel box Lo strumento intelligente per copiare i file). Creare un job di cron per pianificarlo è una cosa semplicissima. Per scaricare automaticamente gli aggiornamenti ogni settimana, potete utilizzare il tool di gestione di Cron, visudo, o qualsiasi altra cosa. Ecco comunque come far eseguire lo script ogni sabato alle 3:30 del mattino con uno script da linea di comando (potreste dover modificare il comando per gestire una differente versione o un mirror diverso): echo “30 3 * * 6 /usr/bin/rsync -avH --exclude ‘isos’ rsync://mi.mirror.garr.it/CentOS/5.6/* /var/www/html/ updates” >> /var/spool/cron/root I job di Cron per tutti gli utenti sono stoccati in /var/ spool/cron. Potete ora aggiungere il vostro repository locale all’installazione automatica kickstart, operazione molto più semplice di quanto non sembri. Il mese scorso avete utilizzato un kickstar di base dal quale avete modellato tutti gli altri file di configurazione. Gli aggiornamenti sono molto importanti e dovrebbero essere inseriti direttamente nel file kickstart di base. Dal punto di vista del client, la gestione repository è data da due parti: il file /etc/yum.conf e la directory /etc/yum.repos.d/. Per mantenere le cose in ordine andrete a piazzare il vostro repository nella cartella yum.repos.d, che contiene tutti i repository che il sistema conosce. Di seguito troverete un esempio di un file repo di base. Quando effettuate una qualunque operazione con yum, questo tool consulta yum.repos.d e yum.conf per determinare tutti i possibili repository. Quello che segue è soltanto un esempio di un possibile repository, sono stati aggiunti dei commenti per spiegare cosa sta facendo. Per prima cosa è necessario copiare un file esistente e creare il proprio repository, che andrete a chiamare lan.repo. Per copiare il file lanciate un comando simile a cp /etc/yum.repos.d/Centos-Base.repo /var/www/html/postinstall/config/lan.repo

lo copia, se invece è presente ma è diverso, rsync copia soltanto le differenze. Copiando pochi file, non fa molta differenza ma se si copiano grossi quantitativi di dati attraverso la rete può significare un enorme risparmio in termini di tempo e di banda. Altre informazioni possono essere reperite all’indirizzo http://it.wikipedia.org/wiki/Rsync.

Modificate il nuovo repository come necessario, ad esempio modificando il baseurl: [LAN Repo] # Breve nome per identificare il repository. Assicuratevi che abbia un nome sensato name=LAN Repo baseurl=http://url del webserver/updates/os/$basearch #Il luogo dove trovare gli aggiornamenti gpgcheck=1 #Se desiderate installare soltanto pacchetti firmati enabled=1 #Se desiderate che questo repository venga utilizzato gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEYCentOS-5 #La chiave delle firme. Potete lasciarla così com’è, dato che andrete a utilizzare soltanto file di CentOS Se volete provare a vedere cosa succede utilizzando questo file, usate lo switch -v assieme a yum. Esistono inoltre due variabili che possono essere utilizzate all’interno di un file di repository: $basearch e $releasever. Sono utili quando state lavorando con diverse architetture (i386 e x86_64, ad esempio). Non sono un prerequisito obbligatorio, ma possono aiutare a definire il repository per diversi sistemi. Ad esempio, se state utilizzando un sistema a 64 bit, la variabile $basearch farà sì che venga utilizzata la directory x86_64. Se state utilizzando un sistema basato su Intel 386, utilizzerà la directory i386. La stessa cosa può essere detta per $releasever. Questa variabile restituisce la versione del sistema che state utilizzando, molto utile se impiegate release diverse di CentOS. Per aggiungere il vostro repository, dovete quindi copiare un file esistente e modificarlo per rispondere alle vostre esigenze. Una volta completate le modifiche, potete copiare il file di repository nel server Web all’interno della cartella /var/www/html/post-install. Non dimenticate di modificare i permessi del file: cd /etc/yum.repos.d cp lan.repo /var/www/html/postinstall/config/ chmod 644 /var/www/html/postinstall/config/lan.repo A questo punto potete aggiungere questo repository alla sezione postinstall del file kickstart di base. Per eliminare gli altri repository è sufficiente rimuovere tutti i file nella cartella /etc/yum.repos.d/. Lasciare i repository normali può rendere le cose più complicate anche perché potrebbero essere inaccessibili, dato che per motivi di sicurezza probabilmente non tutti i PC potranno uscire sulla rete pubblica. Per aggiungere i nuovi aggiornamenti ai sistemi che verranno installati in futuro, aggiungete il file alla sezione postinstall. Come al solito, creare uno script che si occupa di questo è l’idea migliore. Create il file /var/www/html/ postinstall/scripts/repo.sh e riempitelo come segue: cd /etc/yum.repos.d rm *.repo #rimuoviamo tutti i repository precedenti

œ

LXP108 SETTEMBRE 2011 91


Tutorial Hardcore Linux

Rsync ha talmente tante opzioni da linea di comando che in certi casi può tornare utile l’utilizzo di un front-end grafico

wget http://url del vostro server/postinstall/config/ lan.repo #e li rimpiazziamo con il nostro custom yum clean all # Puliamo il database dei repository di yum yum -y update Non dimenticate di aggiungerlo alla sezione %post del file kickstart di base. Modificate il file come segue: %post cd /tmp wget http://url del server/postinstall/scripts/repo.sh chmod +x repo.sh ./repo.sh Una volta terminato, ogni aggiornamento o azione di yum si baserà sul vostro repository di rete invece che su quelli di default. Installare questo script farà anche sì che l’installazione venga automaticamente aggiornata (grazie al comando yum -y). Fate attenzione, comunque: l’aggiornamento potrebbe richiedere un po’ di tempo, il sistema potrebbe quindi sembrare bloccato perché gli uodate vengono eseguiti in background. Per assicurarvi che i repository funzionino correttamente, utilizzate il comando yum -v repolist: vi mostrerà l’elenco dei repository che potete utilizzare. Dovrebbe mostrare soltanto il nuovo repository, e nessun altro. Il nuovo server che verrà creato sarà aggiornato e avrà dei repository locali da utilizzare, quindi ora potete aggiungere un po’ di accorgimenti

Risolvere i problemi d’installazione Questi script di base dovrebbero installarsi senza problemi. Se dovessero crearvi problemi, date un occhiata a queste cose: Δ il file è stato copiato correttamente nella directory di destinazione? Non avendo eliminato i file dalla directory /tmp dovreste essere in grado di vedere se ci sono (quindi sono stati copiati correttamente) oppure no; Δ se non sono stati copiati, il firewall è configurato bene? I file esistono nella sorgente, e sono nel posto giusto? Δ il server Web è accessibile e Apache è in esecuzione? Δ i permessi dei file sono impostati correttamente in modo che il server possa eseguirli? Se non lo sono avete dimenticato la parte dello script chmod +x. Gli script devono essere eseguiti come utente root.

92 LXP108 SETTEMBRE 2011

per migliorare la sicurezza. Il modo migliore per automatizzare il tutto è, di nuovo, di utilizzare uno script per ogni obiettivo o gruppo di obiettivi. Questo significa spezzare gli script in gruppi logici. Ad esempio, mettendo le regole di sicurezza in uno script e le modifiche per l’OS o per le applicazioni in un altro. Potrete così personalizzare i set d’installazione che vanno a comporre il setup della macchina. Questo rende molto più semplice fare troubleshooting sugli script e vi permette di poter decidere quali script eseguire a ogni installazione. Potete anche aggiungere script specifichi nella vostra sezione %post o creare svariati file di configurazione kickstart diversi. Ad esempio, per una sicurezza di base potreste cambiare la porta su cui lavora ssh, includere un disclaimer, inibire il login dell’utente root, eccetera. Questo tutorial serve più come esempio di ciò che può essere fatto piuttosto che di ciò che va fatto. Per cambiare porta a ssh, ad esempio, potreste riscrivere interamente il file di configurazione, ma perché rendere le cose difficili? È molto più semplice copiare semplicemente il file pre-modificato e rilanciare il servizio sshd. Potete raggiungere molti obiettivi semplicemente copiando file di configurazione pre-modificati, ma avete bisogno di uno script per metterli sul nuovo server. Per prima cosa fate una copia del vostro file sshd_config e modificatelo. Avete bisogno di una cartella dove mettere tutti i file, quindi copiate /etc/ssh/sshd_config in /var/www/html/ postinstall/config; assicuratevi di impostare i permessi del file in modo che sia leggibile da tutti (ad esempio, mettendo i permessi a 644 come avete fatto per i precedenti file di config). Un esempio del file di configurazione potrebbe essere quello che segue, non è esaustivo, ma è funzionale come esempio. Le modifiche per renderlo un po’ più sicuro sono spiegate di seguito. Utilizzate Vi o qualunque altro editor per modificare il file /var/www/html/postinstall/config/sshd_config: Port 300 # Cambiare la porta su cui lavora ssh. Utilizzatela con cautela. Se modificate la porta potreste dover modificare anche le regole del firewall! DenyGroups root # Evita che chiunque faccia parte del gruppo root faccia login Banner /etc/banner # Utile per i disclaimer e per dare notizie aggiornate Ora vi mostriamo un piccolo esempio di script che andrà a installare il nuovo config per ssh. Create un file chiamato banner nel server Web, all’interno della directory postinstall/config, contenente un disclaimer per il login. Potete mettere qualunque cosa vi aggrada in questo file ma ricordatevi che tutti gli utenti che cercheranno di fare login lo vedranno! Salvate il file e mettetelo nella cartella /postinstall/ config. Ora che il setup è pronto, dovete fare uno script, da mettere nel file di kickstart. Salvate lo script in /var/www/html/postinstall/security.sh: cd /etc/ wget http://url del server web/postinstall/config/banner cd ssh mv sshd_config ssh_config.old wget http://url del server web/postinstall/ config/sshd_config service sshd restart # Riavviare il server sshd per far sì che le modifiche abbiano effetto Ora che lo script è pronto, è necessario installarlo ed eseguirlo. Se volete installarlo su tutti i server,


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.