Abel, il sistema di build della nuova CAINE — Video e slide

Il team di ESC ha fatto come sempre uno straordinario lavoro con i video dei talk, che trovate nel canale YouTube ufficiale (alcuni sono ancora in fase di montaggio).

Il mio intervento verteva sul lavoro svolto per una delle principali distribuzioni Linux in ambito di informatica forense:

Abel, il sistema di build della nuova CAINE

CAINE è una delle distribuzioni Linux per l’informatica forense più usate al mondo. Analogamente ad altri progetti simili, l’attuale metodo di sviluppo comporta numerosi step non automatizzati. Molte delle personalizzazioni presenti nella distribuzione sono realizzate a mano, rendendo difficile tenerne traccia e valutare eventuali correzioni di bug o miglioramenti nella procedura. Abel (Automated Build Environment Lab) è un progetto che mira a produrre le nuove versioni di CAINE in modo totalmente automatizzato, tracciabile e peer-reviewed, con un ambiente di build omogeneo basato su Vagrant e numerosi script che applicano tutte le modifiche necessarie.

Lo sviluppo di Abel non è totalmente terminato, in quanto non siamo riusciti a convertire proprio tutti i passaggi di installazione in tempo per la versione 10 di CAINE. Tuttavia la struttura base è completa e infatti al talk ho parlato principalmente di quella. 🙂 Qui potete vedere la slide che descrive com’è fatto Abel:

Struttura di Abel

Questo è il video su YouTube, con un audio di ottima qualità… peccato soltanto per alcuni riferimenti che non sono stati colti da una parte dell’audience. Forse non c’erano abbastanza marshmallow in sala. 😉

Le slide sono disponibili su SlideShare (cliccate qui per il PDF):

Annunci

I miei talk a ESC 2017 — Venerdì 01/09/2017, Venezia

Esattamente a un anno dalla mia prima partecipazione a ESC, sono stato nuovamente invitato per portare un contributo a questo interessante evento. Dal sito ufficiale:

ESC è un incontro non-profit di persone interessate al Software e Hardware Libero, all’Hacking e al DIY. Il contenuto dell’evento è in continua evoluzione e viene creato dai suoi partecipanti.

In particolare, quest’anno ho deciso di partecipare anche perché ci sono state delle novità organizzative. Sono convinto che ciò porterà una ventata di freschezza e di continuo miglioramento all’evento, cosa che non fa mai male. 🙂 L’edizione 2017 sarà coordinata da Sebastiano Mestre (fondatore dell’evento) con l’aiuto dell’Associazione Radioamatori Italiani – Sezione di Mestre – “Enrico De Rossi I3DRE”.

Ma non preoccupatevi, la consueta formula amichevole, gratuita e informale (con tanto di campeggio) rimarrà invariata! 😉 Io sarò presente il 1° settembre con due talk, il primo dei quali in rappresentanza di Gimp Italia:

Ore 15:00 — Correzioni fotografiche con GIMP

GIMP possiede tutti gli strumenti necessari per operare le correzioni più diffuse alle foto. Alcuni accorgimenti, infatti, consentono di osservare subito un miglioramento delle immagini. Il talk verterà su un approccio semplice per la correzione di luminosità e colori.

Il secondo invece sarà una riproposizione di un talk che avevo tenuto alla DUCC-IT a Vicenza:

Ore 16:00 — Ask Ubuntu: aiutare anche senza saper programmare

Ask Ubuntu è un sito Q&A (domanda e risposta) che raccoglie gli utenti di questa popolare distribuzione. Tramite un sistema collaborativo ed autogestito, tutti i partecipanti donano il proprio contributo per aiutarsi a vicenda e risolvere problemi o dubbi relativi all’uso di Ubuntu, portando beneficio a tutta la comunità.

Come nelle scorse edizioni, l’evento si terrà a Forte Bazzera e naturalmente questi due talk sono solo la punta dell’iceberg. Ci sono tantissimi talk in programma perciò non lasciateveli sfuggire!

Vi ricordo che per partecipare è necessario registrarsi qui.

Ci vediamo all’ESC! 😀

Aggiornamento — Video dei talk

Il mio talk a DUCC-IT — Vicenza, 7 maggio 2017

Tra circa due settimane ci sarà un’importante occasione per riunirsi con molte persone appassionate di Linux e software libero, ovvero la DUCC-IT:

La Debian/Ubuntu Community Conference Italia 2017 (in breve DUCC-IT 2017) è la quinta edizione dell’evento annuale che riunisce le comunità italiane di Debian e Ubuntu ma anche e soprattutto tutte le realtà italiane attive nel Software Libero, allo scopo di scambiare conoscenze, discutere della situazione attuale e conoscere altri sviluppatori e membri della comunità.

L’evento si svolgerà il 6 e 7 maggio a Vicenza, precisamente a Villa Lattes. Personalmente mi fa molto piacere che una due giorni così interessante sia dalle mie parti e il programma è davvero ghiotto!

Io terrò un talk che farà da fanalino di coda alla domenica 😛 e tratterà della comunità di Ask Ubuntu, ovvero uno dei migliori luoghi virtuali dove parlare di Ubuntu e aiutarsi tra utilizzatori di questo ottimo sistema operativo:

Aiutare anche senza saper programmare

Ask Ubuntu è un sito Q&A (domanda e risposta) che raccoglie gli utenti di questa popolare distribuzione. Tramite un sistema collaborativo ed autogestito, tutti i partecipanti donano il proprio contributo per aiutarsi a vicenda e risolvere problemi o dubbi relativi all’uso di Ubuntu, portando beneficio a tutta la comunità.

Vi ricordo che l’evento è ad accesso libero e gratuito. Di seguito trovate alcune indicazioni utili, tra cui la pagina per prenotare il posto al ristorante (per chi vuole) entro il 28 aprile:

Prevenire il DNS leak per le connessioni VPN attivate tramite Network Manager

Questo articolo è un’aggiunta al mio precedente post sull’importanza delle VPN ed è dedicato a chi si collega a un servizio VPN usando il software Network Manager.

Il DNS è un servizio alla base di Internet. Si tratta di un server a cui il nostro computer chiede l’indirizzo IP di un sito. Infatti, i siti web sono identificati da un nome di dominio (per esempio www.andrealazzarotto.com) ma questo va tradotto in un indirizzo numerico, affinché il computer si possa collegare.

Funziona così (per semplificare):

Computer: Ciao! C’è qui il mio utilizzatore che vorrebbe visitare Google.com, mi dai l’IP?

Server DNS: Certamente, è 173.194.112.33!

In genere, il nostro router gestisce le richieste DNS verso il server che ci dà il nostro fornitore di accesso a Internet. I nostri computer fanno invece una richiesta DNS al router, quindi collegandosi ad un indirizzo tipo 192.168.0.1 (o comunque l’indirizzo del router) ed è il router che poi si arrangia a trovare la risposta prima di restituirla.

Se usiamo una VPN con Network Manager, si verifica un problema di DNS leak (è stato segnalato come bug), cioè le richieste DNS del nostro computer passano fuori dalla VPN e non sono protette! Questo diagramma spiega la situazione:

Collegamento VPN con DNS leak
Collegamento VPN con DNS leak

Le connessioni a siti esterni (in rosso) sono protette e passano in modo criptato attraverso la VPN, che poi le fa uscire verso Internet. Però le richieste DNS sono (di default) rivolte verso il router, che ha un indirizzo di rete interna e perciò passa fuori dalla VPN.

Il router, di conseguenza, effettua una richiesta DNS al server (in blu) e quindi di fatto permette di lasciare una traccia sui siti che presumibilmente abbiamo visitato (se c’è una richiesta DNS, ci sarà un motivo…). Senza contare che, in alcuni luoghi, i DNS potrebbero essere configurati per impedirci di visualizzare determinati siti (per esempio Facebook o Youtube).

Quello che vorremmo noi, invece, è che le richieste DNS fossero protette (e quindi passassero nella VPN, non tramite il router). In attesa che il bug venga risolto, vi consiglio due metodi: uno è più facile e si può fare per ogni connessione, l’altro è globale ma leggermente più complicato.

Metodo 1: modificare le connessioni singolarmente

In attesa che il bug venga risolto, un metodo facile che ho trovato per risolvere il problema è impostare i server DNS manualmente nelle impostazioni della connessione VPN (va fatto per ogni server). Per esempio, potremmo impostare i server DNS di Google così:

Configurazione statica dei server DNS su una connessione VPN
Configurazione statica dei server DNS su una connessione VPN

Le impostazioni vanno fatte sicuramente per IPv4, che è ancora la versione di IP più utilizzata. Se siete su una rete che utilizza IPv6, dovrete configurare anche dei DNS per questa versione del protocollo.

Metodo 2: forzare i DNS per tutte le VPN

Si può anche fare una modifica globale al sistema che induca tutte le connessioni VPN a usare un certo DNS.

Per ottenere il risultato che vogliamo, dobbiamo modificare un file di sistema relativo alle interfacce di rete. Quando ci colleghiamo in VPN, si attiva un’interfaccia di rete virtuale chiamata tun0. Noi imposteremo i DNS su questa interfaccia.

Dovete innanzitutto aprire il file come amministratori, per esempio su Ubuntu potete usare Gedit con il comando:

sudo gedit /etc/network/interfaces

Procedete quindi ad aggiungere, in fondo al file, le righe:

# Forza i server DNS su ogni connessione VPN
iface tun0 inet manual
dns-nameservers 8.8.8.8 8.8.4.4

Salvate e uscite. Tenete presente che questa è una configurazione solo per IPv4, non per IPv6. A questo punto dovete riavviare il sistema. Non basta chiudere la connessione, bisogna proprio riavviare.

Questa modifica ha il vantaggio che non richiede assolutamente di cambiare le impostazioni delle singole connessioni, ha un effetto globale su tutte le VPN che avvierete sul vostro computer. Inoltre, se volete cambiare i server DNS vi basta modificare un solo file e riavviare.

Attenzione: se usate anche VPN aziendali, badate che potrebbe darvi dei malfunzionamenti. Casomai testate e eventualmente annullate la modifica.

Passo finale: cambiare i DNS della connessione

Dopo alcuni test, ho verificato quanto riportato anche da altri: il semplice cambio DNS sulla VPN non previene il leak al 100%, specialmente se usate la funzione Connessione VPN automatica nelle impostazioni, per accedere automaticamente alla VPN quando si attiva il Wi-Fi o la rete cablata.

Per essere sicuri il più possibile, vi consiglio di modificare la connessione che usate sempre a casa (wireless o cablata) e impostare anche lì i DNS statici, mettendo la rete in modalità Automatico (DHCP) solo indirizzi. I parametri per la connessione saranno molto simili a quelli visti nel Metodo 1 per la VPN.

A questo punto, la combinazione di uno dei due metodi visti prima con quest’ultimo passo vi dovrebbe dare una copertura adeguata in tutte le situazioni. 😉 Quando il bug verrà risolto, tutto ciò non sarà più necessario.

Qualsiasi metodo adottiate, trovate un’ottima lista di server DNS su DuckDuckGo tra cui poter scegliere. Una volta attivata la modifica, la situazione sarà così:

Connessione VPN senza DNS leak
Connessione VPN senza DNS leak

La richiesta DNS (in verde) è sempre contenuta dentro al collegamento criptato della VPN (l’ho disegnata a parte solo per far capire la dinamica) e quindi il router non la riceve né la rimanda al server DNS. La richiesta non viene svelata né può essere dirottata o bloccata dal router.

Con questo, ho praticamente finito. Non mi resta altro da fare che ricordarvi che è buona norma attivare la VPN automaticamente quando si accede a determinate reti (per esempio il Wi-Fi di casa) in modo da essere sempre protetti. 😉

Vi auguro una buona e sicura navigazione!

Aggiornamento 14/01/2016: l’articolo è stato integrato con l’aggiunta dell’impostazione statica dei DNS nella connessione usata abitualmente.

Visualizzare e scrivere le emoji con la tastiera in Linux

Le emoji sono le famose faccine nate originariamente in Giappone parecchi anni fa, e portate più recentemente al successo da applicazioni mobili come Whatsapp, Facebook Messenger e Google Hangouts.

Praticamente chiunque possieda uno smartphone avrà usato almeno una volta la faccina sorridente ☺,  il pollice in su 👍 o, perché no, anche la “cacchetta” 💩. 😛 Tutto ciò è reso possibile dal fatto che questi simboli fanno parte di un vero e proprio standard, ovvero sono contenute nella versione 6.0 dello standard Unicode.

Ciò ha una conseguenza positiva: è stato stabilito un linguaggio universale, esattamente come con le normali lettere dell’alfabeto, e ciò permette a tutti i software e sistemi operativi di poter riconoscere tali simboli.

Ovviamente Linux non è da meno, tuttavia nell’installazione predefinita di Ubuntu e altre distribuzioni non è presente un metodo semplice per scrivere questi simboli. Inoltre, a volte manca anche il font per visualizzarle. Vediamo come porre rimedio a tutto ciò. 🙂

Partiamo dalla visualizzazione. Esiste un carattere chiamato Symbola che contiene tutte le icone. Su Ubuntu si può installare tramite il pacchetto ttf-ancient-fonts, se usate altre distribuzioni verificate voi il nome del pacchetto. 🙂

Fatto ciò, dovreste essere in grado di visualizzare le emoji sulla pagina di Wikipedia (potrebbe richiedere un riavvio del browser). Ora è il momento di abilitare l’inserimento semplificato delle icone, vale a dire la possibilità di digitarle senza copiarle dalla tabella caratteri. Ciò che otterrete alla fine sarà un menu di questo tipo:

Menu di inserimento assistito per le emoji
Menu di inserimento assistito per le emoji

Come vedete nella figura, digitando un pezzettino della descrizione dell’emoji desiderata (in questo caso l’inizio della parola sunglasses), appare un menu che consente di scegliere la faccina voluta: 😎

In molte distribuzioni, avrete notato che sulla taskbar avete un menu a tendina che consente di cambiare la tastiera (per esempio da Italiana a Americana), questo è reso possibile grazie al software IBus. Di seguito vi spiegherò come aggiungere un’altra “lingua” tra quelle disponibili, ovvero UniEmoji.

Innanzitutto bisogna scaricare il codice, magari in una cartella temporanea, e poi scompattarlo. I comandi da dare nel terminale sono i seguenti:

cd /tmp
wget https://github.com/lalomartins/ibus-uniemoji/archive/master.zip
unzip master.zip
cd ibus-uniemoji-master

L’ultimo comando vi fa spostare nella directory corretta.

A questo punto dovete installare il pacchetto checkinstall, che vi consiglio perché permette una eventuale disinstallazione in modo assai pulito. Su Ubuntu basta fare:

sudo apt-get install checkinstall

Ora potete procedere alla compilazione del pacchetto:

sudo checkinstall

Appariranno delle domande. La prima recita Should I create a default set of package docs? [y] e voi dovrete premere semplicemente Invio. La seconda vi invita a inserire una descrizione al cursore >>, premete sempre Invio. La terza vi mostrerà un riepilogo dei dati del pacchetto, tra cui:

[...]
2 - Name: [ ibus-uniemoji ]
3 - Version: [ master ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
[...]

Voi dovete premere 3 per modificare la versione. Quando vi chiede di inserirne una nuova, scrivete semplicemente 1 e premete Invio. Premete nuovamente Invio al successivo riepilogo, e attendete. Presto vedrete un messaggio che inizia per:

Done. The new package has been installed and saved to [...]

Ora è quasi fatta! 🙂 L’icona predefinita di UniEmoji è bruttina, pertanto vi consiglio di rimpiazzarla con un bello smile sorridente. Per fare questo, andremo a modificare un file del programma, col seguente comando:

sudo sed -si "s/\/usr.*svg/\/usr\/share\/icons\/Humanity\/emblems\/48\/emblem-cool.svg/g" /usr/share/ibus/component/uniemoji.xml

A questo punto dovete terminare la sessione, e poi entrare di nuovo col vostro account utente. Cliccate sull’icona della taskbar dove normalmente scegliete la lingua della tastiera e andate su Impostazioni inserimento testo. Quest’ultima è la voce che si trova su Ubuntu, ma immagino che altre distribuzioni abbiano nomi simili, eventualmente guardate nelle preferenze di sistema. 😉

Premete il tastino + per aggiungere un nuovo metodo, e cercate UniEmoji. Cliccate su Aggiungi e verrà inserito nella lista. Vi consiglio di metterlo appena sotto al metodo che usate di solito, poi spiego perché.

Aggiunta di UniEmoji come secondo metodo di input
Aggiunta di UniEmoji come secondo metodo di input

A questo punto avete terminato i passi necessari! 😉

Selezione del metodo di input
Selezione del metodo di input

Quando volete inserire una emoji, vi basta cliccare sul menu a tendina e selezionare UniEmoji. Dopidiché, iniziate a digitare una parola chiave che descrive l’emoji (in inglese) e il menu suggerirà quelle corrispondenti. Potete trovare le descrizioni di tutte le faccine su Emojipedia.

Poche righe sopra vi ho consigliato di inserire UniEmoji al secondo posto. Il motivo è presto detto: IBus permette di cambiare metodo di inserimento tramite la combinazione Windows + Spazio, passando alla successiva. Shift + Windows + Spazio invece permette di tornare alla precedente.

Ciò significa che quando volete inserire una emoji, potete digitare la prima combinazione ed attivare subito UniEmoji. Alla fine, potete premere la seconda combinazione e tornare alla lingua che usate di solito. 🙂