Navigare piu’ sicuri con una chiavetta Usb

Naviga sicuro - YubiKeys

Naviga sicuro – YubiKeys

Alle nostre password affidiamo ormai la sicurezza di tutti i nostri servizi online (social network, home banking, dischi virtuali con foto personali dati etc…) , tutto cio’ anche se siamo, in qualche modo, consapevoli della loro debolezza di fondo.
Immaginiamo seppur inconsapevolmente che, se qualcuno le dovesse rubare potrebbe avere accesso ai nostri, in totale liberta’, anonimato e senza alcun tipo di controllo.

Certo sappiamo che esiste gia un metodo, a oggi ampiamente diffuso, per proteggersi da questo scenario fin troppo comune e si chiama “autorizzazione a due fattori” (in gergo 2FA) o “verifica in due passaggi” . Questo si basa su un assunto molto semplice, ossia, per poter accedere a un servizio, l’utente deve conoscere qualcosa, ovvero la/le propria password (primo fattore), e possedere qualcosa, come un cellulare (secondo fattore). Ad oggi il sistema 2FA più diffuso, disponibile per le maggiori piattaforme, passa per l’invio di un codice speciale tramite SMS, da inserire in aggiunta alla password (vedi Gmail). Un procedimento noioso, che diventa inutile se per un qualche motivo non abbiamo a portata di mano il dispositivo autorizzato a ricevere il codice, oppure semplicemente abbiamo cambiato numero di cellulare e non abbiamo aggiornato il profilo (tragedia).

Sicurezza via USB
La svedese Yubico ci propone una soluzione diversa, infatti al sistema incentrato sullo smartphone, essa sostituisce con una pennina USB, da usare come secondo fattore. Il prodotto in questione si chiama Yubikey e ne esistono diversi modelli, distinti per caratteristiche e protocolli supportati. Il funzionamento è semplice, quando ci si collega ad un servizio online, come ad esempio Gmail, basta digitare la password e poi toccare la pennina inserita in una delle porte USB del computer. Il sistema remoto riconosce la presenza del dispositivo e consente l’accesso dell’utente. Alla base del procedimento c’è un protocollo open source, chiamato Fido U2F (Universal Two Factor), che la Yubico ha sviluppato in collaborazione con Google. Il protocollo e’ OPEN dunque, qualsiasi sviluppatore può abilitarlo per il proprio servizio online.

Le nostre prove hanno confermato la semplicità del procedimento di autenticazione ma, come sempre non e’ tutto oro cio che luccica, ed in questo caso c’è una complicazione da non sottovalutare ossia che, l’impostazione iniziale della Yubikey va fatta per ogni servizio, con procedure quasi mai identiche e spesso nascoste fra le mille opzioni specifiche per la singola piattaforma. Certamente nulla che non possa riuscire anche all’utente medio, magari con l’aiuto delle guide in linea di fornite dalla stessa Yubico, ma comunque un procedimento in più che potrebbe scoraggiare chi non utilizza la verifica in due passaggi per ragioni di pigrizia. Dovremmo pero’ ricordarci tutti che e’ proprio la pigrizia la componente preferita da chi vuole rubarci i dati.

Compatibilità e versioni disponibili
Fra i maggiori browser, Chrome di Google è attualmente l’unico che è compatibile nativamente con Yubikey (dalle versione 41 in poi). Per Safari e Firefox esistono dei plugin specifici da installare per attivare il supporto alle chiavine di Yubico. Quanto ai servizi online, la compatibilità è completa per Google, Dropbox e Salesforce. Per WordPress, la nota piattaforma di blogging, è disponibile un plugin di compatibilità. Niente da fare al momento per i servizi Apple: l’azienda ad oggi non ha mostrato alcuna intenzione di adottare il protocollo Fido U2F sviluppato da Yubico e Google.

La Yubikey Edge, che supporta FIDO U2F, costa 34€, Il modello superiore, Yubikey Neo, aggiunge la possibilità di abilitare la verifica in due passaggi anche tramite NFC su alcuni smartphone Android, costa 59€. Entrambe sono acquistabili online su Amazon Italia.

Ma qualcuno si stara’ chiedendo, “cosa succede nel caso la Yubikey venga smarrita o rubata ???”, beh! nessuna paura poiche’ si può accedere ai vari account tramite il sistema 2FA basato sull’invio di un codice SMS, che è comunque buona norma mantenere attivo, ed una volta entrati sarà possibile cancellare l’associazione con la chiavetta che non è più in nostro possesso. L’alternativa, come per le chiavi dell’auto, è possederne due (entrambe da autorizzare su tutti i servizi, però) e lasciarne una in un posto sicuro.

Speriamo che l’argomento di questo articolo, oltre ad avervi ato una buona alternativa nella gestione della vostra privacy, vi abbia anche fatto riflettere sull’importanza, sempre maggiore, di mantenere alti i livelli di sicurezza di vostri dati personali.

 

#NavigasicuroconYubikey

GlusterFS: Storage Scalabile e Distribuito

glusterfsIntroduzione

GlusterFS è un file system open source distribuito e scalabile orizzontalmente, la cui capacità può essere dinamicamente espansa mediante l’aggiunta di nuovi nodi. GlusterFS è in grado di arrivare a gestire fino a diversi Peta Byte, migliaia di client e diverse aree dati (storage) organizzandole in blocchi che rende accessibili su Infiniband RDMA (remote direct memory access, fibra ottica) o connessioni TCP/IP.

Le risorse {memoria e disco} vengono rese disponibili sotto un unico punto di condivisione e tali risorse possono essere montate dai client mediante tre diversi protocolli: CIFS, NFS oppure tramite il client nativo Gluster.

Inoltre GlusterFS supporta la replica geografica ossia la replica dei dati di un Volume su un Server dislocato in un area geografica diversa da quella dove sono presenti gli altri nodi.

Iniziamo a prendere confidenza con alcune terminologie di GlusterFS:

  • Volume: Identifica la condivisione effettiva che viene messa a disposizione
  • Brick: Identifica il file system locale di un server su cui opera GlusterFS
  • Translator: Identifica delle componenti ( librerie ) che estendono le funzionalità del file system
  • Server: Identifica la macchina o le macchine ( reali o virtuali ) dove risiedono i dati
  • Client: Identifica la macchina che monta il volume

La logica quindi è la seguente:

Si installa GlusterFS su ogni server che fa parte del pool di storage del cluster, si definiscono i blocchi ( bricks ) da esportare ( directory ) andando cosi a creare la condivisione effettiva chiamata Volume.

Successivamente su ogni Client interessato installiamo allo stesso modo GlusterFS, e tramite i protocolli citati prima ( NFS, CIFS, GlusterFS Client ) andiamo a montare il cluster rendendo disponibile la condivisione ( Volume ).

Vediamo adesso le diverse TIPOLOGIE DI VOLUME ossia come i dati possono essere organizzati:

  • Distributed: Definisce un {Volume Distribuito} dove i file vengono distribuiti in maniera random tra i vari brick del Volume che compongono il Cluster. Questo comporta maggior scalabilità ma molta meno ridondanza,infatti nel caso in cui ci fosse un Volume cosi configurato, un guasto del Server ( Brick ) comporta la perdita dei dati in esso contenuti.
  • Replicated: Definisce un Volume Replicato dove i file vengono replicati tra i Brick del Volume che compongono il Cluster. Questo comporta una riduzione dello spazio disponibile per lo Storage ma una maggior ridondanza e tale configurazione è consigliabile per avere un Elevata Affidabilità e un Elevata Disponibilità.
    Nel caso in cui ci fosse un Volume cosi configurato, un guasto del Server ( Brick ) NON comporterebbe la perdita dei dati visto che ne abbiamo una replica a disposizione. Le repliche dei dati è consigliabile averle in brick separati cioè che non si trovino sulla stessa macchina.
  • Striped: Definisce un Volume Striped dove i file vengono memorizzati in blocchi nei brick del Volume che compongono il Cluster.
    Questo comporta maggiori prestazioni in lettura e scrittura su file di grandi dimensioni e maggior spazio a disposizione ma una minor ridondanza. Nel caso in cui ci fosse un Volume cosi configurato, un guasto del Server ( Brick ) comporta la perdita dei dati in esso contenuti.
  • Distribuited Striped: Definisce un Volume Distribuito e Striped dove il Volume memorizza i file in blocchi tra 2 o più nodi del Cluster. Nel caso in cui ci fosse un Volume cosi configurato, un guasto del Server ( Brick ) comporta la perdita dei dati in esso contenuti.
  • Distribuited Replicated: Definisce un Volume Distribuito Replicato dove il Volume distribuisce e replica i file tra i Brick del Cluster. Questo comporta la combinazione dei pregi delle singole soluzioni distributedd e Replicated.
    Nel caso in cui ci fosse un Volume cosi configurato, un guasto del Server ( Brick ) NON comporterebbe la perdita dei dati visto che ne abbiamo una replica a disposizione e il Volume resterebbe sempre accessibile.
  • Striped Replicated: Definisce un Volume Striped Replicato dove il Volume fa lo Stripe dei file e li replica tra i Brick del Cluster.
    Si combinano i pregi dello Stripe ossia maggiori prestazioni in lettura e scrittura utile per esempio su file di grandi dimensioni con i pregi della Replicazione sui Brick del Cluster per avere cosi prestazioni e ridondanza.
    Nel caso in cui ci fosse un Volume cosi configurato, un guasto del Server ( Brick ) NON comporta la perdita dei dati in esso contenuti.

INSTALLIAMOLO
Per procedere all’installazione e testare il software dovremo avvalerci di almeno due macchine, decidete voi se reali o VM, dopodiche’ inizieremo dividendo il lavoro; partiamo con la macchina che fara’ da Server :

modifichiamo a dovere il file /etc/hosts, io ho fatto nel seguente modo

# vim /etc/hosts
192.168.2.138    server1.example.com     server1
192.168.2.182    client1.example.com     client1

aptitude install glusterfs-server

…ora dobbiamo creare le seguenti directory

mkdir /data/
mkdir /data/export
mkdir /data/export-ns
cp /etc/glusterfs/glusterd.vol /etc/glusterfs/glusterd.vol_orig
cat /dev/null > /etc/glusterfs/glusterd.vol
vim /etc/glusterfs/glusterd.vol
volume posix
  type storage/posix
  option directory /data/export
end-volume

volume locks
  type features/locks
  option mandatory-locks on
  subvolumes posix
end-volume

volume brick
  type performance/io-threads
  option thread-count 8
  subvolumes locks
end-volume

volume server
  type protocol/server
  option transport-type tcp
  option auth.addr.brick.allow 192.168.2.182 # inserire qui l'indirizzo od il nome host del vostro client
  subvolumes brick
end-volume
/etc/init.d/glusterfs-server start

…ora passiamo a lavorare sul client

aptitude install glusterfs-client glusterfs-server
mkdir /mnt/glusterfs  

cp /etc/glusterfs/glusterd.vol /etc/glusterfs/glusterd.vol_orig
cat /dev/null > /etc/glusterfs/glusterd.vol
vim /etc/glusterfs/glusterd.vol

volume remote
  type protocol/client
  option transport-type tcp
  option remote-host server1.example.com # inserite qui l'indirizzo od il nome host del server
  option remote-subvolume brick
end-volume

volume writebehind
  type performance/write-behind
  option window-size 4MB
  subvolumes remote
end-volume

volume cache
  type performance/io-cache
  option cache-size 512MB
  subvolumes writebehind
end-volume

ora dobbiamo lanciare uno di questi due comandi :

glusterfs -f /etc/glusterfs/glusterd.vol /mnt/glusterfs

oppure

mount -t glusterfs /etc/glusterfs/glusterd.vol /mnt/glusterfs

….se non avete avuto errori eseguendo il comando mount dovreste vedere qualcosa del genere

# mount
/etc/glusterfs/glusterd.vol on /mnt/glusterfs type fuse.glusterfs (rw,default_permissions,allow_other,max_read=131072)

# [client1] df -h
/etc/glusterfs/glusterd.vol
143G   33G  103G  25% /mnt/glusterfs

che nel mio caso equivale alla partizione /home della macchina server
# [server1] df -h
/home/server1/.Private            143G   33G    103G  25% /home/server1/Private

…come notate dalle dimensioni dei due filesystems

a questo punto non ci rimane altro che modificare il file /etc/fstab in modo da rendere immediato il mount al boot del client

# vim /etc/fstab

/etc/glusterfs/glusterfs.vol  /mnt/glusterfs  glusterfs  defaults  0  0

Questo era solo un semplice esercizio per imparare a capire il software in questione ovviamente con le dovute aggiunte e modifiche del caso si potranno creare Volumi e directory ad hoc della grandezza desiderata in cui salvare tutti i dati per noi importanti.

Buon divertimento !