01_gennaio2014

96
7/23/2019 01_gennaio2014 http://slidepdf.com/reader/full/01gennaio2014 1/96  Inoltre… Amazon nella nuvola Crowdfunding Arduino con i cingoli Qt5 Tutto quello che devi sapere sulle librerie alla base di KDE La scheda ARM tricolore Caratteristiche, prestazioni e curiosità di UDOO, il campione dell’embedded  Impara a usare i servizi cloud AWS per valorizzare la tua Web App  Hai un progetto vincente in testa? Prova a fartelo finanziare dalla Rete  Costruisci un robot semovente in 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 dati Un mixer con Qt e C++  Programma con Euphoria Test Crea un laboratorio virtuale per le tue prove Protocolli Simula il passaggio dei pacchetti Sniffing Controlla il traffico con Wireshark NETWORKING DALLA TEORIA ALLA PRATICA I Sysadmin svelano come comunicano tra loro i server Filesystem d.o.c. Con Btrfs gestisci file e partizioni in tutta libertà News a tutto spiano  Scegli il programma giusto per seguire le notizie in arrivo dal Web x Pro 137 - 2014 - Mensile - €5, 90 - CHF 13,60 Accademia del codice 

Transcript of 01_gennaio2014

  • 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