Offsite Backup–parte 3: PeoneFS

Dove eravamo rimasti? Una buona alternativa all’encryption di RsyncCrypto, unico tool “compatibile” con l’algoritmo di Rsync, doveva essere farina del mio sacco. Ecco al mondo la versione “stabile” di PeoneFS.

Innanzitutto un po’ di teoria. Ci sono tanti algoritmi crittografici con svariati livelli di sicurezza. Per un backup offsite casalingo un algoritmo superveloce anche se poco sicuro è la migliore soluzione. Una classificazione piuttosto grossolana divide tali algoritmi in due macro-classi: crittografia a blocchi e crittografia a stream (non ho l’equivalente italiano a portata di mano). Questi ultimi si basano di solito sulla simmetria delle operazioni di XOR e sul fatto che un algoritmo XOR perfetto è impenetrabile (Vernam cipher) come dimostrato da Shannon in altri tempi: quest’ultimo si basa sul concetto di “password” infinita che però non ha nessuna implementazione pratica. Algoritmi più pratici come l’RC4 si basano su una password “infinita” pseudo-casuale genata da una normale chiave di testo o sequenza di byte. Come approssimazione è abbastanza buona, anche se comunque attaccabile: questo non è un problema per l’uso che di questo algoritmo ne va fatto. Io ho fatto una piccola ulteriore modifica personale per ottenere una maggiore velocità in cambio di un’ulteriore debolezza: la chiave invece di essere infinita ha un periodo di 64MB, che sono abbastanza per la tipologia di file interessata. Un’ulteriore debolezza intrinseca è il fatto che per tutti i file viene usata praticamente la stessa chiave; con l’RC4 è infatti consigliato l’uso di un nonce che però davvero non saprei per ora come implementare e se ne valga davvero la pena. L’obiettivo è di scoraggiare il ladro occasionale dallo sbirciare le foto del mio album di famiglia e – secondo la mia modesta opinione – l’obiettivo dovrebbe essere più che centrato (centratissimo?).

Lato pratico ho voluto creare un EXE portabilissimo anche se richiede l’uso di .Net 4. Si può lanciarlo in modalità di test o previo opportuno parametro chiederne l’installazione/disinstallazione come servizio. Nel primo caso non c’è bisogno di privilegi amministrativi, nel secondo l’eseguibile provvederà a richiedere un prompt UAC, autorilanciarsi/installare/eseguire/ritornare senza colpo ferire. Questa parte tecnica è risultata essere molto interessante in quanto sono riuscito a mantenere l’illusione che ad eseguire il compito è lo stesso processo mentre in realtà viene creato un processo figlio elevato e non-visibile che comunica con il padre via named-pipe ricreando l’output nel terminale del processo di partenza. Forse parlo arabo, ma ciò nonostante la cosa si è rivelata alquanto interessante. Tutta la configurazione infine avviene tramite un banale file di configurazione con cui è possibile “montare” più folder criptati. Il download è disponibile nell’apposita pagina.

Update. Dettaglio importante: oltre a criptare il contenuto dei file, il nome dei file e dei folder viene pesantemente offuscato sempre in maniera simmetrica. Ciò significa che se si copia un file dal folder criptato al folder originario lo stesso file apparirà in chiaro.

Nel prossimo (ultimo?) appuntamento racconterò come tutti i pezzi del puzzle si incastrano per creare l’offsite backup casalingo più spensierato che ci sia.

-quack

Pubblicato martedì 12 ottobre 2010 alle 10:54 PM - 23 commenti so far
Archiviato in: Software, Backup

Offsite backup-parte 2

Segue la seconda parte della serie. La prima parte è qui.

Ho cercato in lungo ed in largo applicazioni che supportassero i seguenti requisiti:

  1. supporto backup differenziale e parziale (ovvero se modifico una sola parte di un solo file, non backuppare tutti gli altri 200 e passa gigabait di dati). Questo si traduce più o meno con il supporto per server RSync
  2. supporto per il criptaggio dei backup: significa che i file devono uscire dalla mia home network possibilmente già criptati; è preferibile che i nomi dei file vengano pure offuscati
  3. leggero e veloce in quanto tutta la baracca deve girare su un Atom D510
  4. possibilità di fare il seeding ovvero il bootstrap del backup verso un disco USB da portare nella locazione remota
  5. che sia compatibile con il reverse tunneling SSH

Ho analizzato i seguenti prodotti:

  • Duplicati, open source e gratuito. Per lo più scritto in C#; supporta una modalità differenziale/parziale anche se non RSync: la differenza è che l’operazione di restore è più lenta, ma è poco importante; scartata in quanto non implementa il punto 5. Interessante in prospettiva in quanto potrei metterci le mani e modificarlo a mio diletto e piacimento.
  • Syncrify, commerciale ma gratuito per uso personale; se ben ricordo non supporta l’offuscamento dei nomi dei file.
  • StoreGrid, commerciale: il server è gratuito mentre la versione pro del client ha costi accessibilissimi (30$). Purtroppo installa una quantità inverosimile di pacchetti: Apache, PHP, mysql e chissà quale altra roba. Scartato per il motivo 3.
  • Amanda/Zmanda ha un approccio interessante al problema in quanto il backup server accede ai file del client e non viceversa. Purtroppo, pur credendo che in fondo in fondo sia compatibile con il requirement 5., non credo che sia una soluzione per i deboli di cuore come me
  • QtdSync: una GUI open source molto ben fatta per RSync/windows con la possibilità di passare alcuni parametri RSync a mano; purtroppo niente encryption o similari supportate nativamente
  • BackupAssist: commerciale, costosetto forse per una soluzione casalinga, ma in grado di soddisfare tutti i requirement di cui sopra. Versione trial per 30 giorni

Ho pertanto deciso di provare backup assist, collegando un disco esterno via USB ed iniziando il seeding: il risultato è stato disastroso dal punto di vista della velocità. 50MB/h significa che il prodotto è prettamente inusabile. Però ho notato che altro non è che una GUI intorno ad una versione particolare di RSync/Windows e RSyncrypto una utility a riga di comando sempre open source che implementa l’encryption AES e l’offuscamento dei nomi dei file in maniera trasparente. Credo che gli autori di backup assist abbiano cappellato alla grande in quanto da un Atom D510 mi aspetterei molto più di 50MB di AES ad ora.

Il prossimo step è di fare qualche test con Rsyncrypto e valutare di conseguenza: c’è infatti un’altra idea che continua a rimbalzare tra i due neuroni della mia scatola cranica ed è quella di scrivere un FS filter driver ad hoc risolvendo il problema numero 2. di cui sopra. Con Dokan anche un bambino può farlo (e persino in .Net anche se non saprei se azzardarmi). A quel punto qualsiasi soluzione basata su RSync o similari sarebbe più che buona, anche se ci sono 35$ di buoni motivi per preferire RSync ad un qualsiasi altro protocollo.

-quack

Pubblicato giovedì 7 ottobre 2010 alle 1:46 AM - 8 commenti so far
Archiviato in: Hardware, Backup

Mezza iterazione

Mai dire mai, mai dire ultimo quando si parla di tecnologia.

In due parole: sistemando l’inventario di hard-disk a riposo, ovvero hard-disk rimossi per upgrade a capacità superiori, backup esterni mai implementanti, ecc. mi son ritrovato con un bel po’ di terabyte a disposizione. Ho pensato subito di espandere lo storage di Windows Home Server in attesa di Vail, ma il case precedente non può accomodare più di due pezzi da tre e mezzo. In più da un bel po’ di tempo mi farneticava l’idea di prendere un case che permettesse l’hot-swap nel caso di morte prematura di qualche disco dati o di migrazione alle superiori capacità (Seagate ha messo in commercio un disco esterno da 3TB).

Ho finito per comprare un Chenbro ES34169 con ben quattro slot hot-swap da 3.5”, uno da 2.5” interno e opzione per card reader e dvd ottico. Il prezzo è basso se si considera che il valore di mercato di ogni bay hot-swap si aggira intorno ai 20$.

Piccola recensione del case:

Pro:

  • è facile da installare, il vassoio della scheda madre viene via previo svitamento di 4 viti phillips
  • è abbastanza ben aerato
  • i quattro slot hot-swap sono una geek-porno-figata
  • i materiali e la costruzione sono eccellenti

Contro:

  • le ventole sono rumorosissime, almeno rispetto al case precedente. Ho dovuto sostituirle con delle altre che – nonostante attenuate – sono comunque rumorosette (sto pensando di dotarle di un bel variatore di velocità per ridurre il tutto al minimo)
  • manca una ventola frontale
  • la post-vendita; quest’ultimo punto merita un piccolo pensiero a parte

Volevo comprare sia il card-reader integrato che i bracket di supporto per il lettore ottico. Non avendone trovato traccia presso il rivenditore, mi son rivolto direttamente a Chenbro. La prima email non ha ricevuto risposta. Ho chiamato il supporto vendita, lasciato il mio numero di telefono e a quel punto hanno risposto alla mia mail mandandomi una lista con l’elenco delle opzioni, la sigla di ciascuna di queste e il relativo prezzo. Ho risposto che ero interessato al lettore e al bracket e non ho ricevuto più risposta. Ho richiamato e un tipo di nome Joey mi ha detto che non fanno vendita al dettaglio ma che avrei dovuto cercare su internet i rivenditori appropriati. Peccato che ho trovato due rivenditori diversi, uno dei quali vendeva solo il card-reader, l’altro solo il supporto per il lettore DVD. Con umile pazienza ho effettuato i due ordini scoprendo che il card-reader richiede un cavo particolare per la connessione USB venduto separatamente ma che “il rivenditore non era autorizzato a vendere”. Ho richiamato Joey che si è fatto una piccola risata e mi ha detto di contattare il supporto via mail con il mio indirizzo postale e il mio numero di telefono. Ho fatto e mi ha risposto con una mail indicandomi i costi del cavo e della spedizione e l’invito ad autorizzarlo a chiamarmi per telefono per avere il numero di carta di credito a cui addebitare.

La cosa buffa è che il pacco contenente il lettore sd-card è partito dalla stessa sede Chenbro in California con cui mi son messo in contatto per telefono: mi hanno praticamente messo (involontariamente) nelle condizioni di richiedere tre spedizioni diverse quando ne sarebbe bastata una sola (o sòla, in romanicum antico).

Opzioni a parte il case è ben fatto e son contento così.

-quack

Pubblicato mercoledì 29 settembre 2010 alle 10:44 PM - 3 commenti so far
Archiviato in: Hardware, Backup

Offsite backup–parte 1

Torno su un argomento a me carissimo per annunciare urbis et orbis che ho finalmente trovato una soluzione elegante… o per lo meno che vi ci stia convergendo verso a passo decisamente sostenuto.

Il problema: fare un backup offsite di circa 300-400 GB di foto, video e altri file personali.

Soluzione 1: usare uno dei tanti servizi già pronti come ad esempio backblaze che offre per meri 5$ al mese storage infinito (che carini sono i “pod” da 67TB per 7867$). A parte l’antipatia di un costo mensile vs. un drive da qualche tera che dopo due anni è già bell’e ammortizzato, c’è il discorso del boot-strap: ci vorrebbero _MESI_ per avere il primo backup completo online e _SETTIMANE_ intere per scaricare il tutto in caso di disastro.

Soluzione 2: Backup p2p; Crashplan (il più interessante di tutti) non funziona oltre a richiedere un server centralizzato; Cucku è stato chiuso per problemi legati a Skype e ad una noia legale con BackupStream. Quest’ultimo, oltre ad avere la home page hackerata e inspirare bassissima fiducia, richiede l’uso di una porta aperta ben lungi da un “set e forget”.

Il mio backup ideale sarebbe uno scatolotto, più piccolo e meno costoso possibile, da essere portabile (per il bootstrap e il recovery), banale da installare (lo colleghi al router e va) ed affidabile, cioè basato su tecnologie molto stabili.

Da un po’ di tempo stavo giocando con l’idea di usare un server RSync su una macchina in ufficio per sperimentare, ma abbiamo un proxy/firewall che ha pochissima pietà che è in grado di filtrare anche i pacchetti UDP in uscita: se sto parlando arabo, l’idea è presentata in questa pagina nella sezione “ENTER UDP”.

Ad un certo punto mi è venuta voglia di scrivere un reverse tunnel di mio pugno, ma prima di accingermi a farlo ho cercato ovviamente in giro soluzioni già pronte. La mia ignoranza su Unix mi ha finora tenuto nascoste le pieghe di SSH. Poi son finito per caso su questa pagina e mi si è letteralmente aperta una porta sul mondo.

Oggi ho fatto il primo passo testando una connessione Remote-Desktop dal mondo esterno vs. il mio desktop di lavoro: non solo funziona, ma è simpatico l’effetto “Optical Feedback” mozzato che se ne ottiene.

Nella prossima puntata: un backup server da 30$ o poco più.

-quack

Pubblicato lunedì 27 settembre 2010 alle 7:58 PM - 17 commenti so far
Archiviato in: Hardware, Backup

Restore PLAN

Un piano di backup, senza aver mai provato un’operazione di restore, è praticamente placebo.

Help! Help!

L’ha scoperto a sue spese Jeff @ CodingHorror, che ha “istituito” la giornata internazionale del backup consapevole spiegandone le ragioni in questa pagina. Nel mio caso c’è però un piccolo antefatto: ho esteso lo storage primario della mia Workstation con un secondo SSD identico. Ho aspettato a lungo l’uscita dei nuovi SSD basati su controller SandForce sperando che il costo per GB scendesse come promesso di gran fanfara. Il rilascio dei primi prodotti ha disatteso tutte le mie aspettative ed ho pensato che la soluzione più economica è quella di due SSD in Raid0 (l’unico Raid che funziona ). Ero indeciso se fare un restore o una reinstallazione da zero ed ho optato per la seconda, però ho voluto dapprima tentare comunque il restore per capire cosa succede e se è davvero possibile farlo. Non ci sono praticamente riuscito ma non a causa di difficoltà che avevo messo in conto, ma per il fatto che il Restore CD di Windows Home Server non ha in dotazione i driver corretti della scheda di rete della Workstation (che fortuna, eh?). Una volta però che ho reinstallato tutto ho deciso di andare a fondo e di cercare la soluzione al mistero. Per indagare ho dovuto più volte riavviare da CD o chiavetta USB scontrandomi con un altro problemino che con la mia Workstation ho avuto praticamente da sempre: la fase iniziale di boot di WinPE è lentissima. Ovvero tra un passo e l’altro del wizard di restore passano diversi minuti, cosa riscontrabile anche durante le prime fasi di installazione dei nuovi sistemi operativi (Vista e 7). Questo significa che ogni tentativo di restore, tra passi opzionali e meno, ha finito per richiedere almeno 20 minuti. Mi è venuto in aiuto San Scroogle: ho scoperto che il problema si presenta con alcuni BIOS molto diffusi se nei settaggi è indicata la presenza di un floppy drive che però non esiste. Rimosso tale settaggio tutto ha cominciato a filare a meraviglia, rispostando la mia attenzione sul problema del driver della scheda di rete. La regia mi dice che praticamente Realtek ha cappellato il versionamento dei driver: la soluzione è l’esistenza di un Restore CD creato da qualche tabaccaio all’uopo e contenente una quantità sterminata di driver per Windows Home Server. L’ho provato e il tutto ha funzionato decisamente al primo colpo.

Morale del post:

  1. se l’installazione da zero di Windows 7 o Vista è lentissima durante la prima fase, assicurarsi di disabilitare il floppy drive fantasma nel BIOS.
  2. se il restore wizard di WHS non sembra riconoscere la rete correttamente, cosa che è sicura al limone nel caso si possieda una scheda di rete basata su Realtek, scaricare e masterizzare il “Windows Home Server Restore CD X:\files edition

-quack

Pubblicato martedì 23 marzo 2010 alle 7:53 PM - 8 commenti so far
Archiviato in: Hardware, Backup