7/23/2019 01_gennaio2014
1/96
Inoltre
Amazon nella nuvola
Crowdfunding
Arduino con i cingoli
Qt5Tutto quello che devisapere sulle libreriealla base di KDE
La scheda ARM tricoloreCaratteristiche, prestazioni e curiosit
di UDOO, il campione dellembedded
Impara a usare i servizi cloud AWSper valorizzare la tua Web App
Hai un progetto vincente in testa?Prova a fartelo finanziare dalla Rete
Costruisci un robot semoventein grado di evitare gli ostacoli
Diventa protagonista nel mondo Linux
Con Shotwell importi, organizzi e ritocchi le tue foto in pochi passi
PRO Crittografia dei datiUn mixer con Qt e C++Programma con Euphoria
TestCrea un laboratorio virtuale per le tue proveProtocolliSimula il passaggio dei pacchetti
SniffingControlla il traffico con Wireshark
NETWORKINGDALLA TEORIA ALLA PRATICAI Sysadmin svelano comecomunicano tra loro i server
Filesystem d.o.c.Con Btrfs gestisci file
e partizioni in tutta libert
News a tutto spianoScegli il programma giusto per
seguire le notizie in arrivo dal Web
x Pro 137 - 2014 - Mensile - 5, 90 - CHF 13,60
Accademiadel codice
7/23/2019 01_gennaio2014
2/96
UNEMOZIONE
CHENONFINISCEMAI!
TUTTI I MESI IN EDICOLA
ANCHESU IPAD
7/23/2019 01_gennaio2014
3/96
LINUX PRO 137 1
Domande alla redazione: [email protected]
Abbonamenti: [email protected]
Arretrati: [email protected]
Problemi con il DVD: [email protected]
Sito Web: www.linuxpro.itOppure inviate le vostre lettere a:Linux Pro, Sprea Editori S.p.A.,
Via Torino 51, 20063 Cernusco S/NTelefono: 02.92432.1
CONTATTI
Editoriale
ORA TROVILINUX PRO
ANCHESU ANDROID
Loccasione dellanno
Il prossimo 8 aprile cesser il supportoper uno dei sistemi operativi di maggior
successo di Microsoft, Windows XP. Questo vuoldire che lazienda americana non fornir pi gliaggiornamenti di sicurezza e lo stesso farannole altre software house. Di conseguenzale macchine con Windows XP diventeranno,pi di quanto non siano gi, un facile bersaglioper i criminali informatici in continua ricerca dinuovi computer da usare per rimpolpare le filadelle varie botnet. Considerando che il successoredi XP, Vista, soffriva di un discreto numero
di problemi e che Windows 7 e 8 hanno requisitihardware non proprio limitati, possiamopresumere che siano ancora molti i computerspinti dal vecchio sistema di Microsoft. La casadi Redmond suggerisce di passare a Windows 8.1(http://bit.ly/1ezGP5B) ma difficilmente unamacchina con XP in grado di reggere i nuovisistemi. Quindi, quali sono le opzioni? Si possonoacquistare nuovi PC, ma di questi tempi non facile investire i soldi in nuovo hardware,soprattutto se si pensa alle aziende che nonhanno uno o due macchine, ma qualche decinaper non dire centinaia. Questo ci porta alla veraalternativa: si apre, cio, una finestra perGNU/Linux, una nuova opportunit despansione,in particolar modo in campo desktop. Il sistemaoperativo si scarica gratuitamente, la sua licenzanon limita la libert dellutente e il parco softwareora a disposizione del Pinguino di tutto rispetto.Certo, alcune particolari applicazioni non sonoancora presenti in versione Linux, qualche
dispositivo hardware non dispone tuttora di driverper i sistemi aperti, ma la stragrande maggioranza
dei software Windows pi usati ha un equivalentelibero, a volte di qualit uguale o di poco inferiore,
altre volte addirittura maggiore. E il supportohardware migliora di giorno in giorno. Insomma,gli aspetti tecnici che ostacolano il passaggioa piattaforme Open Source sono sempre meno,quello che manca forse un pizzico di volonte una buona dose di informazione. il momentodi valutare con grande attenzione labbandonodei sistemi proprietari, che spesso fanno cosenon previste, tipo diffondere di nascosto i nostridati a terze parti, a favore dei sistemi aperti.
I LUG stanno facendo da tempo un ottimo lavoroper la diffusione di GNU/Linux nelle realt locali,ma la questione complessa e bisogna fareulteriori sforzi. Noi cerchiamo di fare altrettantonella speranza che qualcosa si muova nel nostroPaese, finalmente.
SPECIALE
SICUREZZ
A
DANGER HACKER
SECURITY
VIRUS PHISHING
ATTACKS
SPYWARE
MALW
ARE
PR
IVACY
KEYLOGGER
PASSWORD
SICUREZZA
ILMANUALECOMPL
ETOPERLA
DISMARTPHONEET
ABLET
In edicola adesso
7/23/2019 01_gennaio2014
4/96
2 LINUX PRO 137
Sommario
SommarioBenvenuti nel centotrentasettesimo numero di Linux Pro, la vostra guida definitiva a Linux e al mondo Open Source
LINUX PRO 137
LINUX PRO
In primo piano
Avete unidea grandiosa per un progetto Open Source di sicuro
successo e vi servono dei soldi per concretizzarla? Grazie ai sitidi crowdfunding potete farvi finanziare dai vostri futuri utenti
16
RACCOLTA
FONDI
06Domande e risposte su Qt5
ABBONATI ALLA
VERSIONE DIGITALE
A SOLI 14,90DURATA ABBONAMENTO 1 ANNO
SOLO PER PC E MAC
www.myabb.it/digital
7/23/2019 01_gennaio2014
5/96
IL DVD IN BREVELATO A
DISTRIBUZIONI Fedora 19 (32 bit)
LATO B
DISTRIBUZIONI Deft 8 IPFire 2.13 Salix Xfce 14.0.1
GIOCHI Ayon
RIVISTA Codice desempio Android Codice desempio Raspberry
Codice desempio Ruby Codice desempio Sysadmin BurgerSpace 1.9.2 NetHogs 0.8.0 OCRFeeder 0.7.1 PushOver 0.0.5 QMMP 0.7.1
LINUX PRO 137 3
Sommario
04 NewsdeskLe novit del mondo Open Source
06 FAQ: Qt5
I segreti del framework applicativo Qt
Approfondimenti
08Networking
Scopri il funzionamento del routing
18Crowdfunding
Fatevi finanziare dai vostri futuri clienti
26UDOOLa scheda ARM tricolore
36Il progetto Qt
La storia del framework Open Source
40Trucchi per sysadmin
Il filesystem Btrfs al microscopio
Langolo di Android
44NewsCos successo in campo Android
46HP SlateBook x2Il tablet di HP con la tastiera
47Archos 40 TitaniumUno smartphone Dual Sim economico
Recensioni
49I test del meseFeng Office CE, Fotoxx, Fuze, In libreria,
Confronto, Da non perdere
Tutorial
64Desktop ad hocCreate la vostra soluzione personalizzata
68ShotwellImportate, organizzate e ritoccate
le vostre foto
70Liberate lo spazioOttimizzare le prestazioni recuperando
spazio: ecco come fare
72Il cloud di AmazonGestite, monitorate e sfruttate al meglio
le istanze AWS
76ArduinoProgrammate con facilit i circuiti
elettronici e controllate un cingolato!
Accademia
82Concetti di baseI principi della crittografia
84 Qt e C++Create uninterfaccia grafica
personalizzata per il mixer audio
88 OpenEuphoriaUn linguaggio facile da imparare
e terribilmente veloce in esecuzione
92Leco dei LUGLa mappa dei LUG italiani
94Guida softwareGuida al software presente nel DVD
Quando trovi
questo bollo
negli articoli,
cercail software
nel DVD
PRO
dentroil
IL DVD IN BREVELATO A
DESKTOP Mednafen 0.9.28
Parcel lite 1.1.3
DISTRIBUZIONI Mageia 3 (32 bit) Sophos UTM Untangle 9.4 (32 e 64 bit)
GIOCHI PokerTH 1.0.1
INTERNET Firefox 21 ProFTPD 1.3.4d
PROGRAMMAZIONE CPPCheck 1.60.1 GTKDialog 0.8.3 LiteIDE
RIVISTA Ardour3 3.2 Avogadro 1.1.0 Codice tutorial Android Codice tutorial Ruby Erebus FatRat 1.2.0 beta2
Quando trovi
questo bollo
negli articoli,
cercail software
nel DVD
PRO
dentroil
IL DVD IN BREVELATO A
DISTRIBUZIONI Fedora 20 (32 bit)
LATO B
DISTRIBUZIONI CentOS 6.5 (32 bit)
8GB
FEDORA20SEMPRESULLACRESTADELLONDAPERINNOVAZIONEEUSABILIT
CENTOS6.5ILSERVERPERFETTO
37_bus ina .indd
0/ / 3 7:33
ILPROSSIMO
NUMEROESCEIL
TrisquelTrisquel
LINUX PRO 133 17
Ubuntu libero?Per un occhio inesperto, Trisquel potrebbe sembrare una
copia di Ubuntu, eccetto che per lesclusione dei pacchetti
non free che non rispettano le rigorose politiche sul Software
Libero rilasciato sotto licenza GNU. Rodrguez, per, prontoa ribattere che le apparenze ingannano. Se si vuole
semplificare il concetto di distro free, pensando che sia
sufficiente estrarre il materiale non libero da una piattaforma
come Ubuntu, si commette un grosso errore di fondo. Andare
alla ricerca di tutto ci che non rispecchi le regole del
Software Libero in una distribuzione di per s gi funzionante,non un gioco da ragazzi. Nellestrazione di ci che nonsi vuole mantenere, il rischio di fare dei danni altissimo.
Rodrguez porta come esempio il caso del kernelLinux-libre,
sul cui progetto basato Trisquel. Per chi non lo conoscesse,
Linux-libre un kernel portato avanti dalla Free Software
Foundation Latin America (FSFLA) e consiste nel fornire una
versione di Linux completamente libera da qualsiasi codice
non free. Il concetto dietro cui si muove Trisquel, quindi, proprio questo: prendere una distro, analizzarla fin nei
minimi dettagli ed estrapolare tutto ci c he ha una licenza
proprietaria, sostituendolo con una controparte totalmente
libera. A parole un proposito che potrebbe sembrare tanto
semplice, quanto ideologico, ma allatto pratico il progetto
non indenne da difficolt. Uno degli aspetti pi critici,
sta proprio nel garantire agli utenti che la sostituzione
La libera TrisquelLa distro campionessa nella battaglia peril FreeSoftware
La linea che divide il pragmatismo
dallideologia sempre sottil issima
e il progetto Trisquel GNU/Linux
forse lunico che riesce a percorrerla senza
mai ondeggiare. Trisquel sicuramentela distribuzione pi usabile tra quelle che
aderiscono in toto alle severe linee guida
della Free Software Foundation (FSF) e non
altera la versatil it di cui lutente finale gode. Il
progetto Trisquel stato avviato da un gruppo
di studenti dellUniversit spagnola
di Vigo, con lobiettivo di creare un sistemadidattico con supporto per la lingua galiziana.
Ben presto lopera diventata talmente vasta
Rodrguez. Proprio Rodrguez, parlando
alla platea presente a LibrePlanet 2013
in Massachusetts, ha affermato che la
distribuzione di Software Libero una grande
responsabilit: I vostri utenti, oltre a crederein voi, si fidano delle vostre capacit
e si aspettano che rispettiate la loro libert.
Noi, continua Rodrguez, non usiamo
il termine distro come unarida
definizione tecnica per descrivere una
versione di un software. La parola
distribuzione qualcosa che implicala massima responsabilit verso chi
ci segue e usa Trisquel.
da superare lo scopo iniziale e portare
a un vero e proprio sistema operativo
multil ingue. Trisquel GNU/Linux ha visto la luce
ufficialmente nellaprile del 2005, quando
Richard Stallman lha presentata al mondointero. Il cuore della distro la vastissima
comunit internazionale di appassionati, guidata
da un personaggio carismatico qual Rubn
di un contenuto non free con il suo omologo libero, non
danneggi il corretto funzionamento della distro. Lesempio pi
lampante riguarda i driver. Quando ce ne sono due versioni,
una proprietaria e laltra free, la maggior parte delle
distribuzioni, come Ubuntu e Fedora/Red Hat, scelgonola prima. Nel momento in cui si decide di sostituirla con
il driver free, bisogna assicurarsi che i l componente cui
legata e da cui dipende la sua corretta gestione continui a
operare senza problemi. Il team di Trisquel, per, non si l imita
a sostituire porzioni di codice o software con le controparti
free, ma cerca soprattutto di apportare delle migliorie allearee in cui opera. Jonathan Nadeau dalla FSF, per esempio,ha collaborato con gli sviluppatori di Trisquel per rendere
la distro pi accessibile agli utenti con problemi di vista.
In effetti basta dare unocchiata a Trisquel 6.0 per rendersi
subito conto di come le caratteristiche di accessibilit siano
davvero ottime. Di default, infatti, il desktop pu sfruttare
le peculiarit di Orca, l applicazione che mediante un sapiente
mix di ingrandimenti, sintesi vocale e sistema di scritturabraille, consente agli ipovedenti di usare facilmente le funzioni
della distro. Sul fronte dellusabilit, unaltra miglioria nel
desktop di Trisquel sta nellapproccio intuitivo c on cui accoglie
i nuovi utenti. A onor del vero, ricorda molto da vicino
Windows ed proprio Rodrguez a confermare questa
impressione, affermando che non c niente di male
a prendere spunto dalle idee che funzionano.
Losviluppodisoftwareliberoportaconsunagrande responsabilit
Lambientegrafico
diTrisquelricorda
davicinoquello
diWindows.Labarra
deglistrumenti,
infatti,nelesempio
UsareTrisquel6.0Trisquel 6.0 lultima versione della distro basata
su Ubuntu 12.04. Come per questultima, la 6.0
rappresenta la versione Long Term Support (LTS)
e offrir la correzione dei bug e gli aggiornamenti
per la sicurezza fino al lontano 2017. Laspetto
migliore sicuramente la sua interfaccia desktop.
Anche se la distribuzione viene eseguita
su GNOME 3.4, gli sviluppatori - per i motivi che
potete leggere nellarticolo - hanno deciso di
ripiegare su un ambiente destkop pi tradizionale.
Nelledizione principale, trovate LibreOffice 3.5
e il formidabile Abrowser 19, un programma
derivante da Mozilla Firefox che stato ritoccato
per rimuovere il logo e i richiami a qualsiasi
software di natura non libera. Al posto del plug-in
Flash che lavora sotto licenza proprietaria, stato
usato il player multimediale gratuito Gnash , che
pu riprodurre senza inconvenienti video HTML5
e visualizzare i file PDF senza alcun add-on.
Per installare software aggiuntivo potete utilizzare
Synaptic , oppure sfruttare il gestore di pacchetti
della distro. Non mancano poi altri esempi
di software free come VLC Media Player , per
riprodurre video e musica. Se volete installare
software proprietari come per esempio Skype,
potete farlo tramite Synaptic. Bisogna per
ricordare che Trisquel non integra alcun tipo
di supporto per i driver non liberi e quindi il loro
utilizzo potrebbe minare la stabilit del sistema
e dare luogo a malfunzionamenti. Detto questo,
noi non abbiamo avuto problemi a far lavorare
Trisquel sulle nostre macchine, riscontrando
un notevole miglioramento nel panorama
dei driver free. Linstaller, infine, una versione
modificata di quello che trovate su Ubuntu.
La sua particolarit di essere uno dei sistemi
dinstallazione pi semplici da usare per chi
proviene dal mondo desktop ne ha fatto
il candidato principale per luso in Trisquel.
e non sarcerto lultimo). Intorno al 2000,ho cominciato acercare unalternativaaMS Office, perch ero veramente stufo dellapervasivitdi Outlook- che facevasentirelasuapresenzaanche se non erainstallato- e dellascarsaqualitdegli altri programmi,e in particolare di Word e PowerPoint(nonsono mai stato un grande utente di foglielettronici). Nel 2001, ho visto lannunciodi OpenOffice.org e ho iniziato autilizzarlo,nonostante laversione 1.0fosse veramenteacerba. Lasituazione, per, miglioratasensibilmente con laversione 1.1, al puntodapoter cominciare asostituire MS Officein un numero sempre maggiore di occasioni.Peraltro, lafrequentazione - seppureadistanza- dellacomunitmi hafattocomprendere come mancasse unastrategiadi marketing e comunicazione in grado di farconoscere il prodotto aun numero piampiodi utenti potenziali. Nel 2003, mi sono iscrittoalle mailing liste ho cominciato aintervenire,e nel 2004 sono entrato nel progetto comeresponsabile marketing per lItalia. Ho iniziatoimmediatamente ascontrarmi con Sun, piche unaziendaun caso umano, e con alcunimembri lungimiranti dellacomunitche
consideravano il marketing del tutto inutile,maquesto non mi hafermato: lacombinazionetralaqualitdel prodotto e unazionedi marketing aggressivahaportato OOoaraggiungere unaquotadi mercatosuperiore al 10%in Italia(i dati sono stimati)e un ruolo sempre pivisibile sul mercato.A partire dal 2006, dallaconferenzadi Lione,ho iniziato acontribuire al marketinginternazionale, tanto che nel 2008 sonodiventato uno dei leader del team con lasupervisione del budget. In questo modo, hoiniziato aconoscere un numero sempre piampio di persone, e sono stato coinvolto nellediscussioni sullopportunitdi creare unafondazione indipendente (che sono diventatesempre pifitte apartire dallaconferenzadi Pechino nel 2008). Nel 2009, quandoOracle haacquisito Sun Microsystems,ho commentato dicendo che eralacosapeggiore che sarebbe potutasuccedereaOOo (in realtmi sbagliavo, perch quelloche successo dopo stato anche peggio).Ovviamente, i colloqui sullafondazione sonodiventati sempre pifitti, e si sono trasformatiin un piano di lavoro nel gennaio del 2010.A quellepoca, ho scritto i l marketing plandi LibreOffice (senzasapere che si sarebbe
chiamato cos), che - apidi tre anni di distanza- pu essere considerato un successo.Nellestate del 2010ho lavorato atempo pienoallannuncio, poi - come se niente fosse - sonoandato aBudapestper laconferenzadi OpenOffice, durante laquale c statolincontro definitivo che hasancito lanascitadi TheDocument Foundation. Il 28 settembredello stesso anno sono stato colui che hafisicamentepremuto il pulsante di lanciodel comunicato stampache annunciavalanascitadel progetto, e daquel momentosono sempre stato il responsabile del marketinge dellacomunicazione e il principale portavocedel progetto.
LXP:IlLinuxDay diquestannosar basatosullinnovazione, un argomentovastissimoecheinclude lavolontdirimanerealpassocon itempi, fornendosemprenuovisviluppi. Qualisono, secondote, ipassiche ilmondoLinux deveancoracompiereper continuareapuntarealfuturo?IV: In realt, il mondo Open Source gifortemente impiantato nel futuro, tanto chelaquasi totalitdei telefoni cellulari di ultima
generazione utilizzaun sistemaoperativoche derivadaLinux
(Android, maancheiOS, che haradiciFreeBSD), latotalitdegli elettrodomesticiintelligenti e deisistemi di domotica
utilizzaLinuxEmbedded (o qualcosadi moltosimile), lamaggior parte delle auto dotate dicomputer di bordo usasempre LinuxEmbedded(ve lo immaginate Windows suun sistemafrenante?), e infine quasi tutti i supercomputere un numero sempre piampio di serverutilizzano Linux. Inoltre, non bisognadimenticarelaspintache hadato allinnovazione il modellodello sviluppo collaborativo tipico dellacomunitdel Software Libero. Oggi, non esiste unasolaaziendain grado di sostenere che il modellodi sviluppo chiuso superiore, dopo che ancheIBMe Microsoft- laprimahainventatoil concetto, e lasecondalo haperfezionato -hanno smesso di dirlo. Linux, e in accezionepiampiatutto il mondo del Software Libero, habisogno di maggiore coesione e di unastrategiadi marketing e comunicazione in grado dicontrastare gli investimenti delle grandi aziende.Purtroppo, il frazionamento dei progetti - che inalcuni casi completamente inutile - un fattodifficile dacomprendere per tutti coloro chesono estranei allacomunit, e rappresentaunfattore di debolezza. Infine, necessario cheil mondo del Software Libero cominci apensareseriamente aun modello di business sostenibile,perch altrimenti rimarrsempre ostaggio delleaziende e delle loro strategie di sopravvivenza
nei confronti dell'ecosistemafinanziario(perch unastrategiabasatasul fatturatodel trimestre privadi buon senso e nonpermette di guardare oltre lapuntadel proprionaso, per cui privilegiale azioni tattiche rispettoaquelle strategiche). Quindi, bisognapensareagenerare profitti che derivano dal valoreaggiunto, e areinvestirli nello sviluppo, perchleaziendechesponsorizzanoilSoftwareLiberoafondoperso-comeS uneIBMnelcasodiOOo-possonoscompariredaunmomentoall'altro,seunanalistasiinventaaspettativesuperioriall'andamentodelmercato.
LXP:Innovazione, spesso, significaromperecon ilpassato, maancheadottarestrategienuove. A questopropositopuntarealla conquistadiun numerodisistemisemp remaggiori,sensibilizzandocoslopinionep ubblicaallamigrazioneversoil FreeSoftware,senzadubbio un temainnovativo.Enon soloin ambitoprivatomasoprattuttoin quelloaziendale.Sappiamochesu questofrontesei moltoattivo, quinditichiediamo quallatuaricettaperinnovare?IV: Onestamente, non credo ci sianessunaricettaspecifica, masolo luso di un po di buonsenso nellacomunicazione. Combattiamocontro nemici potenti, che hanno budgetimportanti e strumenti per influenzarelopinione pubblicache vanno ben oltrele nostre possibilit, per cui dobbiamo usaretutte le nostre capacit. Solo aggregando tuttii progetti allinterno di unarete, possiamoriuscire acreare quellamassacriticache nonabbiamo mai avuto. Dobbiamo mostrarei nostri muscoli, perch solo in questo modo
il giornodel pinguino
Come ogni anno, il LinuxDay ,che siterraottobre, propone un argomentocardine sucui ruotatuttal'interafieradi eventi. Ed nel 2013 che
l'innovazione saral centro dei dibattiticome elemento distintivo del Software Libero,accendendo i riflettori sul motore dellosviluppo di unacomunitin continuacrescita.S, perch nonostante GNU/Linuxsiaparteintegrante del Webe di moltissimeinfrastrutture enterprise, tanto daessere puntodi riferimento per linnovazione tecnologica,nellavitaquotidianac ancoramoltadifficoltad avvicinarsi aunarealtspessoerroneamente percepitaper soli addetti ailavori. Ecco quindi che il LinuxDay 2013 vuoleessere uniniziativarivoltaafar conoscereatutti le potenzialitdel Free Software,che in Italiasono ancoraunopportunitquasidel tutto inesplorata. A parlarne con LinuxProc' ItaloVignoli , profondo conoscitoredel temae fondatore e consigliere dellaDocumentFoundation. Infine un messaggiorivolto ai numerosi LUGche parteciperanno alLinuxDay:scrivetecia [email protected]!Perconoscerelamappadegli eventi, potete collegarvi allapaginawww.linux.it/eventi o visitare il sitowww.linuxday.it, dove troverete tuttele informazioni sullamanifestazione.
LXP:Raccontacideltuo percorsodaiprimipassinelmondo delFreeSoftwarefinoad arrivareallaDocument Foundation.IV: tuttacolpa, o merito, di Outlook. Io sono
sempre stato un utente abbastanzaesigentenel caso dellapostaelettronicae per questomotivo non sono mai riuscito ausare Outlook,che considero il peggior software mai sviluppatodaun quadrumane perch non solo pessimosotto il profilo architettonico (il salvataggio ditutte le informazioni in un unico blobvacontroogni sano principio, e contro il buon senso)mariesce - in un campo dove tutto standardcome lemail - anon adottare nemmeno unostandard (oppure areinventarlo, peggiorandolo).Quindi, non sono mai stato trai sostenitoridi MicrosoftOffice, proprio per lapresenzadi Outlook. Inoltre, quando laquotadi mercato
di MicrosoftOffice hacominciato asuperarepercentuali che avrebbero ampiamentegiustificato lintervento dellantitrust, hocominciato achiedermi perch non ci fossenessun intervento aprotezione degli utenti,visto che eraevidente che lasituazioneavrebbe portato Microsoftad avere unatteggiamento vessatorio nei loro confronti(adifferenzadi molti, io ho letto laEULA di MSOffice). Oggi, evidente che Microsofthagoduto di ampie coperture per il suo ruolodi principale fornitore di informazioni delgoverno statunitense, attraverso programmicome PRISM(che non certo stato il primo,
l'innovazioneiltemacentraledel LinuxDay2013Cene parlaItaloVignoli,fondatoreeconsigliere
diTheDocumentFoundationSEMPREALPASSOCONI TEMPI
L'innovazioneun fattorecheda semprecontraddistingueilSoftwareLibero
2013
IntervistaIntervista
20 LINUX PRO 133 LINUX PRO 133 21
Gramps Gramps
24 LINUX PRO 133 LINUX PRO 133 25
Scroprite come usare Gramps per creare un alberogenealogico e ricostruire la storia della vostra famiglia
Genealogia fai da te
ella maggior parte dei casi,
le conoscenze familiari non vanno oltre
qualche grado di parentela. Quando
per si inizia a scavare alla ricerca degli avi
pi lontani o di parenti che hanno trovato
fortuna in altri paesi in epoche passate,
le cose si complicano non poco.Quali
sono le origini della famiglia? Dove
vivevano? Da dove deriva il vostro
cognome? La genealogia lunica scienza
che pu dare risposta a queste domande,
catalogando, ricercando e studiando tutti
i legami famigliari che si sono evoluti nel
tempo. In definitiva unattivit di ricerca
intensiva, accurata e che richiede non solo
molta pazienza, ma anche capacit di sintesi
e analisi non comuni. Quando le informazioni
iniziano a essere molte e le fonti a sovrapporsi
tra loro, blocco note e penna non bastano pi.
Ecco quindi che entra in campo Gramps,
un programma Open Source che vi aiuta nella
ricostruzione del vostro albero genealogico.
Compatibile con Linux, Mac e Windows, oltre
aessere disponibile per diverse distribuzioni,
lotroviamoallapaginaufficialehttp://gramps-
project.org/download/. Gramps
statocreatodagenealogisti
diprofessioneche,grazie allaloro
lungaesperienzanel settore
dellaricerca, hanno dato vitaaun
programmaaltamente affidabile.
Primadi iniziare, per, opportuno
Grampsstatocreatodagenealogistidiprofessioneedquindiaffidabilee preciso
considerare alcune buone pratiche di ricercae dedicare unpaio
di minuti atracciare le linee base del vostro albero genealogico,
seguendo tre semplici e veloci passaggi:
1 Ricerca:trovare tutte le informazioni inerenti alla vostra
famiglia, partendo magari dal luogo in cui i vostri avi vivevano
o si sono sposati.
2 Registrazione:prendere scrupolosamente nota di qualsiasi
informazione che trovate.
3 Pubblicazione:realizzare documenti e relazioni che potete
condividere facilmente con altre persone.
Quasi sicuramente, la ricerca e la registrazione saranno fonte
di numerose informazioni e quindi dovrete dedicargli pi tempo.
La regola doro della genealogia rimane comunque una: fare
in modo che tutti i documenti raccolti siano verificabili e oggettivi.
Chiunque pu creare un albero genealogico basato su
supposizioni e prove soggettive. Ben diverso, invece, fare
affidamento su riscontri scientifici. Per fortuna Grampsvi render
la vita molto pi semplice, perch il suo compito proprio
ottimizzare lorganizzazione dei lavori di ricerca, registrazione
e pubblicazione, diventando cos un insostituibile assistente.
I primi passiAlla fine di questo articolo, creerete un albero ge nealogico
di esempio della famiglia Rossi, ma ovviamente lintento darvi
sufficienti informazioni per usare il programma ricostruendo
la vostragenealogia. Dopo aver lanciato Gramps, fate click
su Alberigenealogicie poi sul pulsante Nuovo, quindi
aggiungete il nome FamigliaRossi. Adesso selezionate Carica
alberogenealogico,inmodochevengamostratalafinestra
principale.Sullasinistrasonopresentiunelencodicategorie,
adesempioPersone, Relazioni, Famiglieemoltealtre.Quando
cliccatesuunadiesse,lavisualeelabarradeglistrumenticambiano
perriproporreleopzionidedicatealmenucheavetescelto.Per
creareunalberogenealogicosipupartiredaqualsiasiparente,
manelvostrocasoinizieretedaGiovanniRossi,lultimodellafamiglia.
Create una fonteIl primo elemento da cui partire anche il pi semplice. Baster
infatti intervistare lultimo esponente della famiglia, da cui poi
documenterete le parentele pi prossime. Se siete voi stessi,
baster che facciate affidamento sulla memoria e vi auto
intervistiate. Selezionate la voceFontipresente nel menu
di sinistra, quindi selezionate licona a forma di +, denominata
Aggiungi. Si apre cos leditor della nuova fonte, in cui inserire
tutte le informazioni che otteniamo nel colloquio con Giovanni.
Nel campo Titoloscrivete Intervista a Giovanni Rossi e in autore
inseriteGiovanni Rossi. In pratica vi state auto intervistando.
Nel campo Notescrivete tutte le informazioni rilevanti che
emergono, quindi premete il pulsante OKper confermare.
In qualsiasi momento se ne presentasse la necessit, potrete
sempre modificare lintervista facendo doppio click sulla scheda
Intervista a Giovanni Rossi che trovate sotto la voce Fonti.
Aggiungete una personaAl centro di ogni albero genealogico ci sono sempre le persone,
quindi aggiungete il vostro personaggio principale. S, avete
indovinato, sempre lui: Giovanni Rossi. Visto che tutte
le informazioni che avete in mano derivano dallintervista fatta
a Giovanni, dovete spostare la vostra fonte in una sezione
di Gramps dove poter condividere i dati anche da altri punti
di vista. Nella barra degli strumenti premete Appuntiper aprire
lomonima finestra, quindi spostate al suo interno la scheda
Intervista a Giovanni Rossiche avete nel menu Fonti. Visto
che la sorgente ora memorizzata negli appunti, potete anche
chiudere la finestra. Adesso selezionate il menu Persone
e premete il pulsante Aggiungipresente nella barra degli
strumenti. Immettete quindi i seguenti dati:
Nome: Giovanni
Cognome: Rossi
Sesso: Maschio
A questo punto necessario citare le fonti da cui sono state
ottenute le informazioni. Cliccate sulla scheda Citazione fonti
quindi, dalla barra degli strumenti di Gramps, selezionate
la funzioneAppunti, aprendo cos la finestra dove avete
precedentemente importato le informazioni ottenute
dallintervista di Giovanni. Trascinate Intervista a Giovanni Rossi
nel campo Citazione Fonti, in modo da aprire unulteriore scheda
dedicata. Nella parte inferiore, titolataFonti informazioni
condivise, notate come siano gi presenti i dati dellintervista.
Nella zona superiore, invece, avete a disposizione nuovi campi
da riempire. Potete aggiungere la data in cui stata fatta
lintervista e il livello di confidenza che si attribuisce alle
informazioni ottenute. Mettete quindi Molto alta. Adesso,
per dare vita allalbero genealogico, opportuno aggiungere
una foto di Giovanni. Sempre nel menu Personedi Gramps,
fate doppio click sulla schedaRossi, Giovanni, quindi entrate
in Galleria. Premete licona a forma di + sinonimo di Aggiungi
e cercate nel vostro disco fisso una foto da associare alla cartella
di Giovanni. Ricordate poi di aggiungere le note sulla provenienza
dellimmagine nella scheda Citazioni fonti, presente nellEditor
riferimento oggetto multimediale.
Mediantelop zione
Vistaascendenza,
aveteunavisualechiaradeldiagramma
genealogico
Quante pi persone aggiungete allalbero genealogico,
maggiori informazioni dovete inserire. Tra queste, le foto
di ogni parente sono molto importanti per accomunare
un nome a un volto e quindi ricordare ancora meglio i dati
importanti. Gramps non memorizza le immagini, ma solo
il percorso scelto nel momento in cui le avete aggiunte.
Per evitare di perdere tempo nel ce rcarle tra gli anfratti
dellhard disk, vi consigliamo di dedicare una cartella
alle sole foto da utilizzare. Ricordate: essere precisi
il miglior approccio alla ricerca genealogica!
Cartelladedicata
Inoltre
Il databaseperfetto
Libert pura
Cambia desktop!
TizenIlfuturo deidispositivimobilisemprepi Open Source
AVMFritz!Box33906antenneperla massima velocit wireless
a 2,4e5 GHz in contemporanea
LeapplicazioniWebsonopiveloci,scalabiliesicureseusiMariaDB
ScopriTrisquel,ladistropifedeleaidettamidelFreeSoftware
Sceglilambientegraficogiustoperlookefunzionalit!
Diventa protagonista nel mondo Linux
ItaloVignolidi Document Foundation ciparla delLinuxDay 2013 UsareiSCSI
PRO RaspberryPiStreaming audioe video in casa
LIGHTWORKSEffetti speciali e strumenti per leditingprofessionale a tua disposizione
GNOME 3Accedi alle opzioni avanzatecon Frippery e Gnome Tweak Tool
RubyonRailsIlframeworkWebsenzadifetti
FirefoxOSScoprilemulatoreelesueAPIAndroid GestiretextureetouchscreenconOpenGLConcetti Lebasidellaprogrammazioneaoggetti
PROGRAMMARE!
LinuxPro133-Mensile-5,90-CHF13,60
TARIFFA
R.
O.
C.-POSTE
ITALIANE
SPA
-
ABB.
POST.-D.L.
353/2003(CONV.
IN
L.
27/02/2004
N.
46)ART.
1,
COMM
A1,
DCB
M
ILANO
-DISTRIBUTORE:PRESS-DI,MILANO
L'Accademia del Codiceti svela tutti i misteridell'arte del coding
L P_1 _ r .i 1 17/0 /1 1 : 1
7/23/2019 01_gennaio2014
6/96
NewsdeskOgni mese tutte le novit dal mondo delle aziende e della comunit Open Source
Se hai news da segnalarci o dei commenti scrivi a [email protected]
4 LINUX PRO 137
Emergenza privacy
A
l centro MACAOdi Milano (macao.mi.it)
il 2 dicembre statoorganizzato un incontro
con un ospite di caraturainternazionale, Richard Stallman
(per gli amici RMS), che staproseguendo la sua infaticabileopera di divulgazione filosoficasulla privacy e sulle libert nellera
digitale. E dobbiamo dire che maiuna battaglia stata cos impari.Da una parte un signore a capodella Free Software Foundation,dallaltra due pezzi da novanta:
il cartello delle multinazionali, chepossono influenzare la percezionedelle persone attraverso campagnepubblicitarie miliardarie, e il governo
USA che promulga leggi liberticide.Una esagerazione da Grande
Fratello? Ci piacerebbe,ma purtroppo i fatti sono fattie il primo che RMS cita cheil libro in formato elettronico
che tu hai pagato non tuo perchAmazon pu cancellarloin qualsiasi momento da remoto:il Kindle sul quale memorizzato
infatti gestito da softwareproprietario e sotto il controllodi Amazon. In generale, quandoi TUOIdati finiscono in un formato
e/o apparato proprietari ne perdiautomaticamente il controllo, cio il dispositivo che usa lutentee non viceversa: questo il succo
della battaglia di Stallman. Il truccodelle multinazionali presentareun servizio/oggetto comododa usare che crea una dipendenza
funzionale nellutente. Insomma,
se fosse frutta, avremmo di frontedelle belle mele grosse e lucide,ma che dopo i primi morsi gustosi,
rivelano il marcio del torsolo cioperdita di diritti, sorveglianzae profilazione di massa. Sonye Microsoft sanno quando e a cosa
giocate (e quindi se sei in casao no), i tuoi spostamenti possonoessere ricostruiti tramitela tracciatura del tuo cellulare, i tuoi
gusti religiosi, sessuali, politici,commerciali, ecc. possono essere
profilati leggendoti la postaelettronica, catalogando ci che
compri tramite carta di creditoE tutto quello che fai per viaelettronica pu essere registratoe conservato a lungo. RMS ha poi
ricordato come il sistema GNUbasato sul kernel Linux andrebbeindicato GNU/Linux oGNU+Linux, in quanto limitarsisolo al secondo termine significa
non riconoscere il grosso lavoroche stato fatto prima del suosviluppo. Tuttavia innegabile
che Linux un buon kernel,ma che andrebbe purgato dai variblob binari aggiuntisi negli anni:
RMS non baratta funzionalit
con libert, intesa come possibilitdi accedere ai sorgenti del software.I diritti allutente finale assicuratidalla GPL sono i solidi binari sopra
i quali viaggia il Treno della Libert,ma il biglietto non gratis: ognunodi noi lo deve comprare ogni giornoe il prezzo saper dire NO a chi
vuole ingabbiare i nostri dirittidigitali. Ma come fare? Primadi tutto passate a motori di ricercacome https://duckduckgo.com/,
scegliete server di posta esterniagli USA, leggete i contratti primadi cliccare su Accetto o ancorameglio, procuratevi un vostropiccolo server di posta casalingo
visto che ormai con lADSL sietesempre connessi. Ogni tanto,spegnere il cellulare e accendereil cervello una buona cosa:
rimboccarsi le maniche perdifendere la propria libert tempoben impiegato. Se non ce la fateda soli, la Rete l a disposizione:
cercate e troverete, perch anche
nella vostra citt probabile checi sia un gruppo di utenti GNU/Linuxpronti a spiegarvi come agire.
Richard Stallman si batte da tempo contro ogni forma
di vincolo alle nostre libert digitali
Stallman alla riscossa!
7/23/2019 01_gennaio2014
7/96
Newsdesk
Informazione
a
cura
diStudio
StortiSrl
ZeXtras SuiteperZimbra: lastoria di un successo
Nel 2011 entra nel mercato un giovane prodotto che rompegli schemi della valutazione mondiale del prodotto Zimbra.Distribuito in due versioni: la Network Edition e la OpenSource Edition, a differenza degli altri prodotti distribuitiin dual-license, il codice di Zimbra il medesimo con una
sola differenza: nella versione licenziata sono presenti delleporzioni di codice che aggiungono funzionalit di classeenterprise non distribuite con licenza Open Source.
La scelta fino a quel momento era obbligata: o la versione
completamente Open Source o quella Commerciale.
ZeXtras Suite si inserito in questo scenario con lapromessa di consentire agli utenti della versione OpenSource, di ottenere solo le funzionalit enterprise di cuihanno realmente bisogno, con un livello tecnologico dieccellenzae ad un prezzo molto vantaggioso.
Dal 2011 ad oggi il successo mondiale di ZeXtras Suite stato incredibile e, ad oggi, viene ritenuto per molti versila scelta tecnologicamente pi avanzata per ottenere unserver Zimbra potente e sicuro, mettendo in secondo piano il
risparmio economico che comporta.
Oggi si contano 3 milioni di utenti ZeXtras Suite e traquesti alcune delle pi importanti universit, enti governativie di ricerca del mondo.
ZeXtras Suite un Add-on indipendente, si installasu Zimbra Open Source e ne implementa funzionalit di
backup in tempo reale a caldo con 4 modalit di ripristinocon una tecnologia differente e superiore a quella dellaversione network. Inoltre, rende disponibile la sincroniacon il protocollo Activesync nella sua ultima versione con le
relative funzionalit di provisioning.Non meno importanti sono le funzionalit di amministrazionedelegabile e la gestione multistorage con compressione edemoltiplica, che portano ad un risparmio dello spazio anchesuperiore al 50%.
Ultima, ma solo in ordine di presentazione, la funzionalitdi chat integrata nella web-interface accessibile anche viaXmpp, che rende Zimbra Collaboration Suite un prodottoveramente completo.
SUITE
0
500.000
1.000.000
1.500.000
2.000.000
2.500.000
3.000.000
utenti
02/06/2011 15/12/2011
11/03/2012
20/06/2012
07/09/2012
20/11/201208/02/2013
25/05/2013
26/08/2013
31/12/2013
Business
Arriva da1&1 una novitper gli sviluppatori.La societ ha infatti appenaattivato un interessante
programma di Development Partnerdedicato a tutti coloro che vogliono
proporre idee e soluzioni creativeda integrare al centinaio di WebApp che compongono loffertadella piattaforma MyWebsite,
nelle versioni Plus e Premium.Collegandoci alla pagina
http://devpartner.1and1.com ,troveremo tutte le istruzioni
necessarie per presentare, in modosemplice e immediato, le nostrecreazioni, oppure i nostri progetticoncettuali. Sar poi un team
di tecnici a valutare le nostreproposte. Si tratta di un programmadi affiliazione, che potrebbe riservarciinteressanti sbocchi professionali. LXP
Web AppDroidcon a Torino
Dal 6 al 7 febbraio2014 si svolger
a Torino la Droidcon,la convention mondiale
degli sviluppatori di Android.Organizzata da Synesthesia,levento si terr presso il centro
conferenze Torino Incontraeavr come protagonisti unatrentina tra sviluppatori edesperti del settore. Massiccia
la presenza di relatori italiani.Tra questi, Fabio Collinidi Firenze, che far alcuni
esempi pratici sullusodei framework Javae Android per lo sviluppodi applicazioni, e Tiziano Basiledi Taranto, che illustrer come
realizzare applicazioniottimizzate per schermidi qualsiasi dimensione.
Numerosi anche gli ospitistranieri, soprattutto europei,mentre dagli Stati Uniti arriverSonia Sharma,
dello staff di Google.Per ottenere unoscontosulliscrizione,
colleghiamoci
allindirizzowww.eventbrite.it/e/registrazione-droidcon-
italy-2014-8831777083e, quando ci registriamo,
digitiamo il seguentecodice:AndroidJournal_DR14(fino a
esaurimento posti).
Convention
7/23/2019 01_gennaio2014
8/96
FAQ Qt5
Qt5Linux Pro scava la superficie di Qt5, per scoprire cosa vi si nasconde sotto
D Dunque, cosa c dietro il nome Qt5?Speriamo si tratti di un gioco di parole esilarantee non della solita vecchia e noiosa sigla.
R Qt5 lultima versione del framework applicativoQt, studiato per aiutare gli sviluppatori a creareapplicazioni e interfacce grafiche multipiattaforma
semplici e veloci da usare. Il nome deriva da Quasar
Toolkige s, credo che dietro ci sia qualcosa
di divertente. Se provi a dire Qt, finirai per pronunciare
la parola Cutie, anche se, stando al sito ufficiale,
la pronuncia corretta cute, ovvero attraente.
D
Insomma, alla fine non poi cos esilarante.
Comunque hai appena detto che Qt multipiattaforma. E quindi, quanto flessibile?
R Quando Digia, gli sviluppatori di Qt, e il QtProjectparlano di Qt5 e lo descrivono
come multipiattaforma, non scherzano.Qt5 pu facilmente creare applicazioni
per Windows, Mac, Android, iOS, Blackberry,
QNX, Sailfish, Solaris e Integrity.
D Wow! Davvero un bel numero di piattaforme.Quindi, cosa posso fare esattamente?R Lidea dietro al Qt Project riuscire a creareapplicazioni curate esteticamente, potentie facili da usare per ciascuna piattaforma supportata.
Qt, infatti, fornisce agli sviluppatori laccesso
al framework Qt C++ UI, permettendogli di creare
programmi di bellaspetto e con uninterfaccia
user-friendly. Con laccesso alla tecnologiadi accelerazione grafica OpenGL/OpenGL ES,
ai sistemi di particelle e agli effetti shader, insieme
agli strumenti di Qt Multimedia e Qt Graphical Effect,
i programmatori possono realizzare dei softwarecon una grafica davvero formidabile.
D Ecco, adesso riesco a capire un po meglioil motivo del soprannome cute. Ma alla fine,cosa c di nuovo nella versione 5?
R Gli strumenti grafici di cui ho appena parlatosono una delle nuove grandi caratteristichedi Qt5. Pensa che riesce a servirsi di uno Scene
Graph basato su OpenGL per accelerare la grafica
di Qt Quick, riuscendo cos a restituire bellissime
animazioni, effetti grafici deccezione e sistemi
di particelle, senza bisogno di appoggiarsi ad hardware
particolarmente potenti. Questo aspetto, oltrea essere molto importante, anche utilissimo
per chi vuole creare App per dispositivi mobile, senza
rinunciare a una grafica accattivante e curata.
Alcunedomande su...
6 LINUX PRO 137
7/23/2019 01_gennaio2014
9/96
Qt5 FAQ
D Suona davvero bene, ma mi puoi indicarequalche esempio pratico della potenza graficadi Qt5 cui possa dare unocchiata?
R Certamente! Ce ne sono tanti. Se ti colleghia http://qt-project.org/videos/watch/livecoding-video-effects-with-qt5puoi vedere
vari effetti video a 720p codificati in tempo reale
con Qt5, che ti faranno capire quanto pu essere
facile aggiungerli e configurarli al volo. Su Qt Blog
(http://blog.qt.digia.com) trovi uneccellente
dimostrazione di come vengano applicati gli shader
effects a un video tramite Qt Quick 2, una parte
importante di Qt5. Questo lindirizzo: http://blog.
qt.digia.com/blog/2012/02/29/pimp-my-video-
shader-effects-and-multimedia.
D Quindi Qt Quick 2 riveste un ruolodi primordine in Qt5? Quali sono le nuovefunzioni che apporta?
R Qt Quick la principale libreria per scrivereapplicazioni QML, con una particolareattenzione alle interfacce utente. Lultima versione
di Qt Quick, la 2.0, sostituisce le vecchie classi
QDeclarative di Qt Quick1 in favore del nuovo set
in C++. Insieme allanimazione avanzata e agli
strumenti grafici di cui ho precedentemente
parlato, sono inclusi un sistema di rendering Scene
Graph e le Canvas API, che permettono
agli sviluppatori di creare splendide e semplici
interfacce grafiche per qualsiasi piattaforma.
Se ci non bastasse, sono inclusi anche
i pi importanti motori di ottimizzazione JavaScript
per QML. Se ti colleghi allindirizzo http://qt-
project.org/videos/watch/whats-new-in-
qtquick-2.0puoi vedere un video in cui vengono
puntati i riflettori sulle nuove e pi potenti
funzionalit di Qt Quick 2.
D Ok, ci sono davvero un sacco di sigle pocoumoristiche con cui avere a che fare.Ora spuntato anche QML. Di cosa si tratta?
R QML lacronimo di Qt Meta Languageo Qt Modeling Language. Dipende a chilo chiedi. Al di l della discussione sulle sigle
e di come si pronunciano, meglio concentrarci
sulla sostanza. I creatori di QML hanno progettato
questo linguaggio basato su JavaScript per creare
applicazioni con interfaccia grafica incentrata
sullutente. E visto che un componente centrale
di Qt Quick, utilizzato per lo sviluppo da Nokia,c unattenzione particolare verso le applicazioni
mobile, soprattutto quelle con supporto per
i touchscreen, dove la semplicit duso dellinterfaccia
(oltre alla leggerezza e alla velocit) una priorit.
I documenti QML sono costituiti da vari elementi QML,
che offrono strumenti potenti per creare e controllare
le propriet grafiche e comportamentali degli oggetti.
Quando combinati, questi elementi possono creare
una larga variet di funzioni complesse, da semplici
pulsanti fino a programmi completi con la connettivit
Internet. Inoltre, come se QML (e per estensione
anche Qt Quick e Qt5) non fosse gi abbastanza
flessibile, pu comunque avvalersi di JavaScript
per migliorare la propria versatilit, cos come
integrare componenti C++ .
D Wow! Ma allora flessibit sembra essereuna parola chiave in questa circostanza.Per ho sentito un nome che mi preoccupa: Nokia.
Che cosa hanno a che fare le societ di telefonia
mobile con Qt5?
RPer fortuna, non molto. Nokia, nel 2008, ha
semplicemente acquisito Trolltech, il produttore
originale di Qt, spendendo circa 104 milioni di euro
e rinominando lazienda come Qt Development
Frameworks. Lidea alla base di questa fusione era
di rilanciare le applicazioni per Symbian, il sistema
operativo del comparto mobile di Nokia, grazie alla
semplicit duso degli strumenti inclusi in Qt. Tuttavia,
Symbian stato dismesso dopo pochi
anni, scaricato in una fossa profonda
vicino ai cadaveri in decomposizione
di WebOS e Palm OS. Nokia ha cos
finito per vendere Qt Development
Frameworks allazienda finlandese
Digia, che tuttoggi continuaa sviluppare Qt.
D Ah giusto. Quindi suppongo che Nokia abbiapoi continuato a utilizzare un nuovo sistemaoperativo mobile di successo, riuscendo alla fine
a conquistare il mondo.
R Uhm, non esattamente. Ora crea telefoniesclusivamente con Windows Phone 8.E mentre Android e iOS sono supportati in Qt5,
Windows Phone rimasto fuori. A dire la verit,
ci sono alcuni sviluppatori piuttosto intraprendenti che
stanno cercando il modo di importare applicazioni
Qt in Windows Phone, navigando tra le tante barriereOpenGLfobiche (ho coniato una nuova parola)
del sistema operativo mobile. Tuttavia, fino a quando
Microsoft non muter atteggiamento, cambiando
la strada tracciata con le DirectX, il porting
di applicazioni Qt verso Windows Phone rimarr
sempre un processo difficile. Ci significa
che il sistema operativo pi affamato di applicazioni
killer continuer a perdere un gran numero
di programmi popolari, che invece sono disponibili
per altre piattaforme.
D
Ma allora tutto questo significa che Qt5
dedicato alle applicazioni mobile?
R Assolutamente no. Le applicazioni Internet-based sono tenute in grande considerazionee curate tramite Qt WebKit, un motore di rendering
per contenuti Web. Questultimo basato
sul progetto Open Source WebKit e permette agli
sviluppatori che utilizzano Qt5 di supportare una vasta
gamma di standard e tecnologie Web. Qt WebKit
porta HTML5 e tutte le sue evoluzioni allinterno
di Qt5, inclusi i filtri CSS, WebGL, il supporto a Canvas
e HTML video. Qt WebKit uno dei tanti moduli
inclusi in Qt5, che offrono agli sviluppatori gli
strumenti per creare applicazioni stupefacenti,
indipendentemente dalla piattaforma cui si rivolgono.
D Quali altri moduli sono inclusi in Qt5 e di cosasi occupano?R Qt5 contiene due moduli principali: Qt Essentialse Qt Add-ons. I primi hanno un uso pi generalee sono utili per la maggior parte delle applicazioni Qt.
Gli Essentials, a loro volta, comprendono Qt Core,
su cui si basano tutti gli altri moduli Qt, Qt GUI,
che include le classi per i componenti dellinterfaccia
grafica utente, Qt Multimedia, che gestisce audio,
video, radio e le varie caratteristiche delle
fotocamere. E Infine, tra le altre cose, il gi citato Qt
WebKit. I moduli Qt Add-ons hanno invece scopi
pi specifici. Possono coinvolgere la gestione della
compatibilit tra i linguaggi di varie piattaforme, come
per esempio il modulo Qt Active specifico
per i sistemi Windows, al cui interno sono comprese
le classi per applicazioni che usano ActiveX e COM.
Il modulo Qt D-Bus, poi, gestisce le comunicazioni
inter-processo tramite il protocollo D-Bus
su piattaforme UNIX. Qt SVG contiene le classi
per visualizzare i contenuti dei file SVG, mentre Qt
Script e QT Script Tools possiedono classi per creareapplicazioni Qt usabili negli script. Altri moduli Qt
Add-ons includono Qt Declarative, che si occupa
della compatibilit con Qt4 e Qt Print Support che,
come suggerisce il nome, permette agli sviluppatori
di aggiungere funzionalit di stampa ai loro
programmi. Qt Image Formats e Qt OpenGL, infine,
gestiscono laspetto pi glamour della cosa.
D Non c che dire, proprio una bella panoramica,ma a questo punto viene spontaneodomandarti quali siano attualmente le applicazioni
pi famose create con Qt.
R Alcune delle applicazioni pi note realizzatecon linguaggio Qt, o che ne includono alcunielementi, sono: Google Earth, VLC Media Player,
Guitar Pro, Scribus, Last.fm, Launchy e Spotify.
Ci sono anche alcuni giochi che hanno usato vari
componenti di Qt, tra cui posso citare City of Heroes.
Se ti colleghi alla pagina http://qt-apps.org
puoi dare unocchiata alla lista delle applicazioni
attualmente sviluppate in Qt. Ignora i commenti
in fondo alla pagina, perch purtroppo sono pieni
di spam. Naturalmente, solo perch sono stati scritti
in Qt, non significa che i programmi contenuti
nellelenco utilizzino Qt5. Tuttavia, mano a mano
che gli sviluppatori porteranno a termine lupgradea Qt5, o creeranno applicazioni completamente
nuove con questa versione, lecito attendersi
il boom delle nuove funzionalit. LXP
Si possono creareapplicazioni curate,potenti e facili da usare
per ciascuna piattaforma
LINUX PRO 137 7
7/23/2019 01_gennaio2014
10/96
8 LINUX PRO 137
Networking
fondamentale per chiunque voglia fare il sysadmin.
Imparerete come possibile far comunicare reti
eterogenee usando i protocolli NAT, GRE e IPinIP(questi ultimi due tornano utili nel caso in cui il traffico
da scambiare trovi nel NAT un ostacolo difficilmente
superabile lesempio classico il traffico IPSec).Largomento networking molto
complesso: studiandolo si ha a che fare
con vari protocolli, sistemi e architetture.In passato abbiamo gi esaminato
il funzionamento di gran parte dei componenti
che costituiscono una rete, dal firewall ai svariati tipi
di server, ma finora non avevamo spiegato
con il giusto livello di approfondimento un elemento
chiave per il funzionamento di una retee di Internet: il routing. Partendo da questo
numero, continuando nel prossimo, per poi finire
su LXP139, potrete leggere un corso
ALLA SCOPERTA
DELROUTINGOgni amministratore di sistema degno di questo nome deveconoscere a menadito i segreti dellinstradamento deipacchetti sotto GNU/Linux: dai rudimenti fino ai tunnel GRE!
Maurizio Russo
Laureato in Informatica
presso lUniversit
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, networking,
progettazione
e sviluppo di software.
Lautore
7/23/2019 01_gennaio2014
11/96
LINUX PRO 137 9
Networking
Il routing il processo che si occupa dellinstradamento
dei pacchetti che viaggiano sulla rete, garantendone linoltro
dallapparato sorgente sino a quello di destinazione.
Si tratta di un processo distribuito, in quanto nel suo viaggio
dal mittente al destinatario il pacchetto attraversa uno o pi
nodi intermedi (compiendo, di conseguenza, uno o pi salti,
detti anche hop), ognuno dei quali collabora alla scelta del
percorso determinando, in funzione della destinazione e delle
strategie (o politiche) di routing adottate, il nodo successivo
cui affidare il pacchetto. Nel modello OSI (Fig. 1) il routing
una delle attribuzioni del livello di rete (o livello 3):
il livello in cui opera, nello stack TCP/IP, il celeberrimo
protocollo IP, che in Internet garantisce, con un approccio
del tipo best effort, linstradamento dei pacchetti
da sorgente a destinazione, individuati proprio attraverso
il relativo indirizzo IP. Il livello di rete anche quello
che si occupa dellinteroperabilit tra reti differenti
(internetworking): spesso garantire che reti nate in momenti
differenti e/o progettate secondo criteri e scopi diversi siano
in grado di comunicare pu rivelarsi unoperazione tuttaltro
che semplice, come scopriremo nel prosieguo dellarticolo
e della serie. Consentire a due reti eterogenee di colloquiare
tra loro pu infatti rivelarsi unimpresa ardua, specie
in presenza di elementi oggettivi che, se non correttamente
gestiti, possono impedire il corretto instradamento
di pacchetti da sorgente a destinatario. Si pensi, ad esempio,
al caso in cui si vogliano giuntare insieme reti con piani
di indirizzamento confliggenti (ovvero in cui siano presenti uno
o pi nodi X1 e X2, con X1 appartenente alla prima rete
e X2 alla seconda, aventi il medesimo indirizzo IP), oppureal collegamento, tramite Internet, di reti locali/geografiche
aventi piani di indirizzamento basati su indirizzi privati
(e, pertanto, non instradabili in Internet). Gli scenari appena
ipotizzati sono tuttaltro che remoti, infatti per entrambi esiste
una soluzione consolidata, il NAT (Network Address
Translation): ma cosa accade quando, a causa delle
caratteristiche del traffico, il NAT non pu essere preso
in considerazione? I nostri esperimenti partiranno proprio
dalle basi del routing per poi passare al NAT e spostarci
successivamente sullesame di soluzioni alternative,
sconosciute ai pi, ma che un amministratore consolidato
(e, a maggior ragione, un vero geek) non pu ignorare.
Creazione dellambiente virtualePer poter realizzare i nostri esperimenti, abbiamo bisogno
innanzitutto di un opportuno ambiente di test. Attraverso
il ricorso alla virtualizzazione, simuliamo due reti
interconnesse tramite Internet (Fig. 2), mediante la creazione
e la configurazione di quattro macchine virtuali, ognuna
delle quali chiamata a svolgere un compito ben definito:
a)la macchina clientAfunge da client della prima rete;
b)la macchina routerBsvolge il ruolo di default gateway/
router di frontiera della prima rete;
c)la macchina routerCsvolge il ruolo di default gateway/
router di frontiera della seconda rete;
d)la macchina clientDfunge da client della seconda rete.
La creazione, linstallazione e la configurazione di ben quattro
macchine virtuali, tuttavia, costituisce un requisito
eccessivamente oneroso, sia dal punto di vistacomputazionale (in termini di RAM e di capacit elaborativa)
che da quello dello spazio di memorizzazione, senza contare
i tempi morti derivanti dal processo di installazione di una
o pi distribuzioni GNU/Linux. Al fine di agevolare la creazione
del nostro ambiente di test, e garantire la possibilit
di realizzare la simulazione anche su hardware pi datato
(magari equipaggiato con un processore single core e appena
1 GB di RAM, come nel nostro caso), possiamo adoperare
alcune accortezze:1 ridurre le macchine virtuali da quattro a tre, lasciando
la simulazione di clientD alla macchina fisica che ospita
lambiente di virtualizzazione;
2 assegnare il compito di simulare il client della prima retea una macchina virtuale basata su una distribuzione leggera,
per esempio Damn Small Linux(la cui ISO pu essere
scaricata allURL www.damnsmallinux.org/download.
html), in grado di operare con poche decine di MB di RAM
(nella fattispecie, 64);
Linstradamento
Fig. 1 I livelli del modello ISO/OSI
Fig. 2 Il nostro
ambiente di test
simula, attraverso
il ricorso
a macchine virtuali,
la topologia di rete
qui rappresentata
Nellesporre i concetti teorici presenti in questo articolo
abbiamo dato per scontato alcune nozioni di base sulle
reti. Nel caso non siate molto ferrati sullargomento
vi consigliamo di leggere i capitoli dedicati al networking
degli Appunti di Informatica Libera, liberamentedisponibili allURL http://bit.ly/19UEswZ, che spiegano
per bene tutto quello che vi serve sapere.
Attenzione!
7/23/2019 01_gennaio2014
12/96
10 LINUX PRO 137
Networking
Fig. 3 La prima
schermata
del wizard di
creazione di una
macchina virtuale
VirtualBox, con
lindicazione delle
informazioni sul
tipo di sistema
operativo
utilizzato
3 limitare i tempi di avvio dellambiente di test, ricorrendo
a distribuzioni Live per il client e per i router (per questi ultimi,
la scelta ricaduta su Backtrack 5, la cui ISO pu essere
scaricata allURL www.backtrack-linux.org/downloads ,
poich dispone, gi in modalit Live, dello sniffer Wireshark
di cui avremo bisogno per lanalisi dei pacchetti).
Il ricorso a questi stratagemmi semplifica notevolmente
la creazione del nostro ambiente di test, riducendone
di gran lunga i tempi.
La prima operazione da compiere, naturalmente, consiste
nellinstallazione dellambiente di virtualizzazione prescelto,
VirtualBox : nei sistemi Debian based, sufficiente digitare
il comandoapt-get install virtualbox*
per installare tutti i pacchetti di cui avremo bisogno. Avviato
VirtualBox, facciamo click sul pulsante Nuovaper avviare
il processo di creazione della prima macchina virtuale.
Il sistema ci chieder (Fig. 3) il nome della macchina virtuale
(clientA), il sistema operativo (Linux) e la relativa versione
(Linux 2.4); inseriti questi valori occorre stabilire la quantit
di RAM (Fig. 4) da assegnare alla macchina virtuale (come
detto, 64 MB sono pi che sufficienti in questo caso), per poi
passare allimpostazione del disco fisso. Come stabilito, al fine
di ridurre i tempi di startup e minimizzare il carico sulla
macchina fisica, opteremo per il ricorso a distribuzioni Live:
possiamo pertanto deselezionare la voce Disco fisso
di avvio(Fig. 5) risparmiandoci di conseguenza
la creazione dellhard disk virtuale. Ci provoca
la visualizzazione di un messaggio di warning che possiamo
tranquillamente ignorare, portando a completamento
il processo di creazione della macchina virtuale.
Naturalmente, un computer non pu operare senza unit
di boot: per questo motivo, selezionata la macchina virtuale
nella finestra principale di VirtualBox, premiamo il pulsante
Impostazioni per poi selezionare la voce Archiviazione .
Un click sullopzione Controller IDE, quindi un secondo
click sul pulsante raffigurante un CD sormontato
dal simbolo +: finalmente la macchina virtuale sar dotata
di un drive CD/DVD, subito rappresentato con una propria
icona. Cliccando su di essa, possiamo configurare
ulteriormente il drive: se disponessimo del CD/DVD
di Damn Small Linux, infatti, il nostro lavoro sarebbe
terminato qui (basterebbe assicurarci, allavvio della
macchina virtuale, che il CD/DVD sia allinterno del lettore
ottico della nostra macchina fisica), ma nel nostro caso
vogliamo caricare DSL partendo dalla sua ISO. A tal fine,
premiamo il pulsante Apri il gestore di supporti virtuali
evidenziato in Fig. 6, per aggiungere lISO di DSL al drive,
consentendone il caricamento nonostante lassenza del CD.
Terminata la configurazione dellunit di boot, possiamo
passare allimpostazione delle schede di rete: VirtualBox
consente di assegnare a ogni macchina virtuale un numero
arbitrario di schede di rete e attestare le stesse a diversi
network. Alcune opzioni (scheda in modalit NAT
o in modalit bridge) consentono laccesso alle reti
raggiungibili dalla macchina fisica (per esempio,
la navigazione Web), mentre altre (scheda in modalit rete
interna o modalit solo host) vincolano la macchinavirtuale a muoversi in reti virtuali, confinate allinterno
della macchina fisica ospitante. In particolare:
la modalit solo host consente alla scheda di rete
di una macchina virtuale di connettersi unicamente
alla macchina fisica (la quale vedr apparire, tra le proprie
interfacce di rete, una denominatavboxnet0o simile,
da configurare al pari di uninterfaccia reale);
la modalit rete interna consente di assegnare
la scheda di rete a una rete virtuale identificata
da un nome specifico (come intnet): solo le macchine
virtuali attestate sulla medesima rete virtuale possono
comunicare tra loro, proprio come se insistessero sulla
Fig. 4 La schermata per la selezione della quantit di RAM da
assegnare alle macchine virtuali
Fig. 5 In questo articolo possiamo tranquillamente ignorare
gli usi avanzati della schermata per la configurazione del disco
fisso della macchina virtuale, deselezionando il relativo flag
7/23/2019 01_gennaio2014
13/96
LINUX PRO 137 11
Networking
Ping e ICMPIl comando ping uno dei pi semplici e diffusi tool
diagnostici per la verifica della connettivit della rete.
Il comando
# ping INDIRIZZO_IP -c 4
comporta linvio, verso INDIRIZZO_IP , di quattro
pacchetti ICMP di tipo ECHO_REQUEST, ai quali
la macchina di destinazione replica con altrettanti
pacchetti di tipo ECHO_RESPONSE, a patto
di essere:
accesa;
connessa alla rete;non protetta da dispositivi per il filtraggio
del traffico, come ad esempio firewall;
raggiungibile, attraverso i meccanismi di routing,
dalla macchina sorgente.
Se si danno per assodati i primi tre requisiti, appare
chiaro il motivo per il quale questo tool considerato
uno degli strumenti principali per la verifica dei
malfunzionamenti di rete... non a caso ogni processo
di troubleshooting dei problemi di rete inizia con la
fatidica domanda: possibile pingare la macchina?.
Il comando ping, inoltre, monitora le risposte fornite
dallhost remoto mostrando, al termine dellinvio
dei pacchetti, alcune delle statistiche esplicativedei risultati ottenuti, in termini di:
numero di pacchetti trasmessi;
numero di pacchetti ricevuti;
percentuale di pacchetti persi, ovvero per i quali
il destinatario non ha fornito risposta;
tempi di trasmissione.
Ad esempio, un risultato come il seguente:
4 packets transmitted, 4 received, 0% packet loss,
time 2999ms
rtt min/avg/max/mdev = 0.070/0.078/0.088/0.006
ms
in cui ogni pacchetto trasmesso stato
correttamente ricevuto, effettivamente sinonimodi un collegamento tra mittente e destinatario
affidabile ed efficiente.
medesima LAN. Sono proprio queste ultime due modalit
quelle che utilizzeremo nel corso della serie: per creare
un ambiente di simulazione il pi possibile aderente a uno
scenario reale, infatti, dobbiamo impostare le schede della rete
delle macchine virtuali affinch siano connesse a reti
logicamente e fisicamente differenti. In altri termini, per ricreare
una topologia di rete come quella rappresentata in Fig. 2, ove
due reti locali (fisicamente e logicamente distinte) sono
in comunicazione attraverso Internet, dobbiamo simulare:1 il canale di comunicazione privato tra clientA e routerB,
mediante il ricorso a una rete interna di VirtualBox (la rete
interna di default, denominata intnet);2 il canale di comunicazione tra il routerB e il routerC,
attraverso una rete interna di VirtualBox differente dalla
precedente (per comodit, opteremo per assegnare alla rete
interna un nome diverso, intnet2);3 il canale privato tra il routerC e il clientD (funzione
questultima che, come stabilito, sar svolta dalla macchinafisica) attraverso una rete solo host.
Tornando alla nostra macchina DSL (il clientA della citata
Fig. 2), possiamo configurarne la scheda di rete mediante
il solito pulsante Impostazioni . Selezionando licona rete
apparir, nella parte destra della finestra di dialogo (Fig. 7)
la schermata di configurazione delle interfacce di rete,
suddivisa in schede. Lunica interfaccia abilitata di default
la prima, denominata Scheda 1 (le altre sono disabilitate,
e possono essere attivate cliccando sulla relativa scheda
e spuntando la voce Abilita scheda di rete): dal menu
a tendina selezioniamo la modalit Rete internae lasciamo
inalterato il nome (intnet, acronimo di INTernal NETwork)
che appare nella casella di testo. Un click sul pulsante
di conferma rende definitive le modifiche apportate alla
configurazione della macchina virtuale: tempo di avviarla!
Premiamo il pulsante Avvia!, quindi clicchiamo sulla
schermata nera che rappresenta la macchina virtuale appena
partita, affinch questultima assuma il controllo di mouse
e tastiera. Eventuali messaggi di VirtualBox possono essere
tranquillamente ignorati: tutto ci che ci serve sapere
che possibile in ogni momento restituire le periferiche
alla macchina fisica mediante la pressione del tasto CTRL
destro. Dopo qualche istante DSL ci mostrer una schermata
con la richiesta del comando per il boot: premendo Invio
e attendendo qualche secondo, ci troveremo di fronte al
desktop spartano di questa distribuzione. Per avviare unaconsole, sufficiente fare click con il pulsante sinistro in
qualsiasi punto del desktop, selezionando, nei menu a tendina
annidati, le voci XshellDroot accessDtransparent.
Ottenuto il terminale, digitiamo il comando
# ifconfig eth0 up
per abilitare la scheda di rete, e il comando
# ifconfig eth0 192.168.1.100 255.255.255.0
per configurarne lindirizzo di rete e la subnet mask. Infine
il comando
# route add default gw 192.168.1.1
per selezionare il default gateway della macchina virtuale, cui
questa consegner tutti i pacchetti diretti verso host esterni
Fig. 6 VirtualBox ci consente di precaricare unimmagine ISO nel
drive CD/DVD di una macchina virtuale, proprio come se inserissimo
il relativo CD/DVD nel lettore della macchina fisica!
Fig. 7 Questa la schermata di VirtualBox per la configurazione delle interfacce
di rete di una macchina virtuale
7/23/2019 01_gennaio2014
14/96
12 LINUX PRO 137
Networking
(ovvero non appartenenti alla sua medesima LAN).
La configurazione della prima macchina virtuale terminata:
possiamo dedicarci alla successiva, la macchina Backtrack
identificata in Fig. 2 come routerB. La procedura da seguire
la medesima; variano, in questo caso, solamente
le impostazioni di seguito elencate:
nome: routerB;
sistema operativo: Linux;
versione: Linux 2.6;
RAM 256 MB;
disco fisso: nessuno;
archiviazione: selezionare lISO di Backtrack 5 seguendo
la stessa procedura di DSL oppure, se si dispone del DVD,
inserirlo nel lettore della macchina fisica, avendo cura
di aggiungere il drive CD/DVD alla macchina virtuale;Rete:
1 scheda 1 (eth0): rete interna, nome intnet;2 scheda 2 (eth1, da abilitare, selezionando il relativo flag):
rete interna, nome intnet2.
Una volta avviata la macchina virtuale e terminato il processo
di boot, ci sar mostrata una shell Bash, che utilizzeremo
per configurare gli indirizzi delle interfacce di rete:
# ifconfig eth0 192.168.1.1 255.255.255.0
# ifconfig eth1 1.1.1.71 255.255.255.0
per poi passare alla verifica della raggiungibilit di clientA
tramite eth0, mediante il comando ping (vedi box Ping
e ICMP):
# ping 192.168.1.100 -c 4
Infine, procedere allabilitazione delle funzionalit di routing:
# sysctl -w net.ipv4.ip_forward=1
Lultimo comando, in particolare, assume un valore
rilevante per la nostra simulazione: al boot le macchine
GNU/Linux non sono in grado, di norma, di agire da router
(e quindi di instradare pacchetti da uninterfaccia allaltra)
in quanto le funzionalit di routing sono disabilitate per
motivi di sicurezza. Il comando
# sysctl -w net.ipv4.ip_forward=1
o quello equivalente di
# echo 1 > /proc/sys/net/ipv4/ip_forward
consentono di modificare questa impostazione di default,
andando a sovrascrivere la relativa chiave di configurazione
del kernel. Archiviato routerB, possiamo passare a routerC,
che si differenzia dal precedente per il solo aspetto relativo
alla configurazione delle schede di rete:
la scheda 1 (eth0) deve essere impostata in modalit
solo host per consentire il collegamento con la macchina
fisica, lasciando inalterato il nome di default attribuito alla
rete stessa (vboxnet0);
la scheda 2 (eth1, da abilitare, selezionando il relativo
flag) deve essere impostata sulla rete interna di nome
intnet2, per consentire il collegamento con routerB.
Avviata la macchina virtuale, possiamo passare alla
configurazione delle schede di rete con i comandi
# ifconfig eth0 192.168.71.1 255.255.255.0
# ifconfig eth1 1.1.1.72 255.255.255.0
# sysctl -w net.ipv4.ip_forward=1e verificare la raggiungibilit di routerB digitando
# ping 1.1.1.71 -c 4
Passiamo infine alla macchina fisica, per configurare,
da root, linterfaccia vboxnet0:
# ifconfig vboxnet0 192.168.71.100 255.255.255.0
Si pu verificare la raggiungibilit di routerC con
il comando
# ping 192.168.71.1 -c 4
Routing tra macchine virtualiIl nostro banco di prova pronto: a ogni step della sua
creazione, abbiamo verificato la raggiungibilit, tramite ping,
di ogni coppia di nodi adiacenti. Poich in questa serieci prefiggiamo lo scopo di affrontare il problema
del routing, tempo di controllare che le macchine virtuali
siano in grado di contattare qualsiasi altro nodo dello
schema di rete presentato in Fig. 2: a tal fine spostiamoci
su routerC, e proviamo a pingareclientA (avente indirizzo
IP pari a 192.168.1.100).
Il comando da eseguire
# ping 192.168.1.100 -c 4
non d, tuttavia, gli esiti sperati, mostrando linquietante
messaggio Network is unreachable (Fig. 8): cosa
significa? Lo stack TCP/IP della macchina virtuale ci sta
avvisando che la rete cui appartiene 192.168.1.100
non raggiungibile, nonostante lesistenza di un percorsofisico che, passando per routerB, unisce clientA a routerC
(Fig. 2). RouterC, infatti, non ha alcuna idea di come
raggiungere clientA, come si evince dallesame dellaFig. 9 La tabella di routing della macchina virtuale, mostrata tramite il comando route
Fig. 8 Quando il comando ping restituisce lerrore
Network is unreachable, c qualcosa che non va
nelle rotte impostate sulla nostra macchina!
7/23/2019 01_gennaio2014
15/96
LINUX PRO 137 13
Networking
Network Address Translation
Finora abbiamo quindi esplorato i rudimenti del routing,
configurando le rotte necessarie a garantire la raggiungibilitdi ognuno dei quattro nodi della rete in Fig. 2. Gli script raccolti
nel box Script di configurazioneriassumono il discorso,
descrivendo nel dettaglio i comandi necessari a garantire, sulle
macchine virtuali e sulla macchina fisica, la raggiungibilit
di ogni nodo della nostra rete di prova: se vorrete ripetereda zero gli esperimenti in futuro sufficiente salvarli su un file
di testo (che, per comodit, supporremo si chiami config.sh)
per poi eseguirli con il comando
Script di configurazioneScript di configurazione clientA
(VM Damn Small Linux)
ifconfig eth0 up
ifconfig eth0 192.168.1.100 255.255.255.0
route add default gw 192.168.1.1
Script di configurazione routerB
(VM Backtrack)
ifconfig eth0 192.168.1.1 255.255.255.0
ifconfig eth1 1.1.1.71 255.255.255.0
sysctl -w net.ipv4.ip_forward=1
route add -net 192.168.71.0/24 gw 1.1.1.72
Script di configurazione routerC
(VM Backtrack)
ifconfig eth0 192.168.71.1 255.255.255.0
ifconfig eth1 1.1.1.72 255.255.255.0
sysctl -w net.ipv4.ip_forward=1
route add -net 192.168.1.0/24 gw 1.1.1.71
Script di configurazione clientD
(Macchina fisica)
ifconfig vboxnet0 192.168.71.100
255.255.255.0
route add -net 192.168.1.0/24 gw
192.168.71.1
dal mittente al destinatario, si impedisce a questultimo
di replicare ai pacchetti del mittente, rendendo di fatto
impossibile la comunicazione. Si tratta proprio della casistica
in cui siamo ricaduti: se infatti abbiamo assicurato lesistenza
di una rotta dalla macchina fisica verso clientA, nulla stato
fatto per garantire che i pacchetti di risposta giungano
da clientA alla macchina fisica. Affinch ci sia possibile,
necessario che ogni nodo coinvolto nel routing da clientA
alla macchina fisica sia a conoscenza del next hop cui affidare
il pacchetto da instradare. In base alle configurazioni
gi effettuate, siamo certi che clientA consegner tali
pacchetti al proprio default gateway (routerB): questi, tuttavia,
non a conoscenza di alcuna rotta per contattare
la macchina fisica. Lesecuzione, su routerB, del comando
# route add -net 192.168.71.0/24 gw 1.1.1.72
pone fine al problema, consentendo la risposta, da parte
di clientA, ai ping inviati dalla macchina fisica.
Alla soddisfazione per il risultato cos (faticosamente)
raggiunto, possiamo sommare la consapevolezza di aver
configurato un vero e proprio internetworking, connettendo
tra loro reti (la rete privata delle macchine virtuali e la rete
privata per la comunicazione tra macchina virtuale
e macchina ospitante) che VirtualBox tiene gelosamenteseparate, e che senza il nostro intervento non avrebbero
mai potuto dialogare tra loro. In altre parole, abbiamo appena
superato il primo scalino di una ripida scala chiamata routing:
ora proveremo a salire il secondo, esaminando nel dettaglio
la tematica del NAT , con lausilio del fido Wiresharkofferto
dalla distribuzione Backtrack.
relativa tabella di routing (Fig. 9), ottenibile mediante
il comando routeprivo di argomenti. Possiamo ovviare
a questa disattenzione aggiungendo una rotta alla tabella
appena visualizzata: tramite il comando
# route add -net 192.168.1.0/24 gw 1.1.1.71
si istruisce routerC a raggiungere la rete 192.168.1.0/24
(su cui insiste clientA) tramite routerB (la cui interfaccia
esterna ha proprio indirizzo IP pari a 1.1.1.71), specificando,
di conseguenza, quale sia il prossimo salto (next hop)
da far compiere a un pacchetto diretto alla rete in questione.
Dopo questa modifica il comando ping d esito positivo,
confermando lesistenza di un percorso fisico e logico
tra routerC e clientA. Spostiamoci adesso sulla macchina
fisica, e cerchiamo di raggiungere clientA: ovviamente,
consci della lezione appena appresa, avremo cura
di aggiungere innanzitutto una rotta per la rete 192.168.1.0,
con il comando
# route add -net 192.168.1.0/24 gw 192.168.71.1
Come si pu notare dallesame della Fig. 2, un pacchetto
inviato dalla macchina fisica verso il clientA richiede
necessariamente lattraversamento di tre hop:
un primo salto per raggiungere linterfaccia interna
di routerC, a cui la macchina fisica consegna il pacchetto,
in funzione della rotta appena inserita;
un secondo salto da routerC a routerB, in considerazione
della rotta inserita in precedenza con il comando route add
-net 192.168.1.0/24 gw 1.1.1.71;
un terzo e ultimo salto da routerB a clientA, entrambi dotati
di uninterfaccia di rete attestata sulla network 192.168.1.0.
A questo punto, cosa accade se, con il comando
# ping 192.168.1.100 -c 4
proviamo a pingareclientA dalla macchina fisica? Nemmeno
in questo caso, purtroppo, il risultato positivo (Fig. 10):il comando ping, dopo qualche istante di attesa, mostra una
percentuale di insuccesso pari al 100% dei pacchetti inviati.
Come mai? Uno degli errori pi comuni nei primi approcci
con il mondo del routing consiste nellassicurare
esclusivamente una comunicazione unidirezionale: limitandosi
a configurare le sole rotte per il routing dei pacchetti
Fig. 10 Una
percentuale di
errore pari al 100%
dei pacchetti inviati
un chiaro indizio
di errori di rete...
7/23/2019 01_gennaio2014
16/96
14 LINUX PRO 137
Networking
# bash config.sh
o in alternativa possibile digitare i comandi in essi contenuti
allinterno di una shell di root.
Migliorare la nostra simulazioneSebbene garantiscano il routing allinterno della rete,
i comandi contenuti negli script non consentono, tuttavia,
una simulazione realistica dello schema in Fig. 2. In tale
configurazione, infatti, nonostante i nodi denominati routerB
e routerC siano collegati attraverso Internet, ai due client
vengono assegnati indirizzi privati (vedi box Gli indirizzi
privati a pag. 15): in assenza di opportuni accorgimenti,
non previsti negli script in questione, in uno scenario reale
la comunicazione tra clientA e clientD non possibile,
in quanto gli indirizzi privati non sono instradabili su Internet.
In altri termini, nessun router consente linoltro,
su uninterfaccia collegata a Internet, di un pacchetto IPdestinato a una macchina cui assegnato uno degli indirizzi
privati previsti dal RFC 1918: si tratta di un comportamento
che rientra nelle specifiche del suddetto RFC. Possiamo
verificare agevolmente come il comportamento di routerB
(ma lo stesso per routerC) non sia conforme con quanto
previsto dallRFC 1918; a tal fine, sufficiente avviare
un ping da clientA verso clientD, con il comando
# ping 192.168.71.100
che, grazie alle configurazioni di routing contenute negli script,
viene eseguito con esito positivo (Fig. 11), confermando:
la raggiungibilit diretta dellIP 192.168.71.100
(privato) a partire dallIP 192.168.1.100 (anchesso
privato, appartenente a una rete differente da quella
di clientA);
linoltro dei pacchetti indirizzati a un IP privato attraverso
le interfacce pubbliche di routerB e routerC.
Per ottenere la conferma definitiva delle nostre
supposizioni (sin qui dedotte a partire dai risultati dei ping
tra i due client) sfruttiamo lo sniffer Wireshark presente
in BT: avviato il Desktop Environment tramite il comando
# startx
apriamo una console e digitiamo il comando
# wireshark
La schermata iniziale dello sniffer (Fig. 12) ci consente
di selezionare con un click le interfacce di rete da cui
effettuare la cattura: nel nostro caso vogliamo controllare
i pacchetti trasmessi sullinterfaccia pubblica di routerB,e quindi selezioniamo la scheda eth1. In virt dello schema
della rete di prova, su questa interfaccia transita ogni
pacchetto inviato da clientA verso clientD, quindi anche
i pacchetti ICMP di tipo ECHO_REQUEST e di tipo ECHO_
RESPONSE, relativi alle richieste di ping e alle conseguenti
risposte. Come possiamo notare selezionando uno qualsiasi
di questi pacchetti (Fig. 13), gli indirizzi IP del sorgente
e del destinatario corrispondono proprio agli indirizzi
(privati) delle macchine clientA e clientD: si pu quindi
affermare, senza timore di smentite, che la programmazione
di routerB (e routerC) viola le specifiche del RFC 1918.
Network Address TranslationCome possiamo modificare la configurazione dei due routerper garantire il rispetto dei dettami del citato RFC? Il modo
pi semplice (e pi diffuso) consiste nel ricorrere
al Network Address Translation(NAT), una tecnica
introdotta dal RFC 1631. Si tratta della soluzione utilizzata
nella quasi totalit delle installazioni domestiche (e non
solo), ove un solo router garantisce laccesso a Internet
di pi client, a ognuno dei quali assegnato un indirizzo IP
privato. Per spiegare il NAT, partiamo da una
considerazione pi tecnica: quanti indirizzi IP pubblici sono
necessari per consentire il collegamento a Internet di una
LAN composta da n macchine? Una risposta a caldo
ci porterebbe a propendere per n indirizzi (uno per ognimacchina della LAN), ma un esame pi attento della
problematica ci consente di decrementare questo numero:
se solo una porzione (diciamo m, con m minore di n) delle
Fig. 12 La
schermata iniziale
di Wireshark
ci consente
di selezionare
linterfaccia sulla
quale metterci
in ascolto per
sniffare il traffico
Fig. 13 Gli indirizzi IP sorgente e destinatario del pacchetto
ICMP corrispondono agli indirizzi privati di clientA e clientDFig. 11 Ecco il risultato del ping da clientA verso clientD
7/23/2019 01_gennaio2014
17/96
LINUX PRO 137 15
Networking
macchine della LAN accede contemporaneamente a Internet,
allora il numero di IP pubblici distinti necessari sar proprio
m, e non n. Facendo un esempio concreto, una LAN
composta da 15 PC, di cui al massimo 10 connessi
contemporaneamente a Internet, necessiter di soli 10
indirizzi, contro i 15 della nostra prima ipotesi: ognuno dei 15
PC sar dotato di un indirizzo privato, valido esclusivamente
allinterno della LAN, che viene trasformato in uno dei 10
indirizzi IP pubblici quando la macchina si affaccia su Internet,
consentendo di conseguenza lo scambio di pacchetti (e quindi
il routing) con computer esterni alla LAN. Come avviene
questa trasformazione dei pacchetti IP? Abbiamo gi visto,
nella prima parte, il ruolo svolto dal default gateway di una
rete, verso cui i PC della LAN instradano tutti i pacchetti
diretti allesterno della rete locale. Il NAT prevede una
programmazione specifica del default gateway (Fig. 14):1 il PC denominato CLIENT1 della LAN (cui assegnato
lindirizzo privato IP_PRIVATO1) vuole instaurare una
connessione TCP/IP con la macchina denominata SERVER_
WEB (esposta su Internet, e dotata di indirizzo IP pubblico IP_
SERVER) e, pertanto, invia al default gateway della rete
(denominato ROUTER_LAN) il relativo pacchetto;2 ROUTER_LAN provvede a rendere instradabile su Internet
il pacchetto originato da CLIENT1 (che, allo stato,
non instradabile allesterno della LAN), sostituendo il valore
presente nel campo Source Address dellheader IP (ovvero
lindirizzo IP_PRIVATO1 di CLIENT_1) con uno degli indirizzi
IP pubblici a sua disposizione (nella fattispecie, IP_
PUBBLICO2);3 il pacchetto cos modificato giunge a SERVER_WEB,
attraversando una serie di router intermedi presenti
in Internet;
4 SERVER_WEB invia il pacchetto TCP/IP di rispostaallindirizzo che lo ha contattato (IP_PUBBLICO2);5 i router intermedi instradano il pacchetto verso ROUTER_
LAN (che lunico detentore di tutti gli IP pubblici assegnabili
ai PC della LAN, incluso IP_PUBBLICO2);6 ROUTER_LAN, che ha tracciato la temporanea
assegnazione di IP_PUBBLICO2 a CLIENT1, opera
la trasformazione inversa a quella effettuata al punto 2,
modificando in IP_PRIVATO1 il valore presente nel campo
Destination Address dellheader IP del pacchetto.
Si tratta di un meccanismo abbastanza lineare, che tuttavia
pu essere ulteriormente migliorato, con il risultato di ridurre
allosso il numero di indirizzi IP pubblici richiesti: infatti
possibile restringere a uno il numero degli indirizzi pubblicinecessari per garantire connettivit alla LAN, sfruttando
un tipo particolare di NAT denominato Network Port Address
Translation (NPAT) o, pi semplicemente, Port Address
Translation (PAT). Se il NAT, nella declinazione appena
esaminata, consente la condivisione di pi indirizzi IP pubblici
fra gli n client della LAN mediante la modifica dei campi
Source Address e Destination Address dellheader IP,
il PAT riesce a utilizzare contemporaneamente il medesimo
indirizzo IP pubblico per tutti i client della rete, discernendo
un computer dallaltro attraverso la modifica:
dei campi Source Address (per i pacchetti in uscita
dalla rete) e Destination Address (per i pacchetti in entrata
alla rete) dellheader IP;
dei campi Source Port (per i pacchetti in uscita dalla rete)
e Destination Port (per i pacchetti in entrata alla rete)
dellheader TCP.
Il livello di trasporto del modello OSI, infatti, consente
di definire pi processi di rete sul medesimo computer
(ovvero associati al medesimo indirizzo IP), mediante
lassegnazione a ognuno di essi di un indirizzo di porta
differente: il meccanismo che ci permette, per esempio,di uti