Archives For Raspbian

Ci siamo, mi sono finalmente ritagliato il tempo necessario per parlarti di un progetto collaterale all’installazione di un RPi in casa sul quale ho successivamente configurato con molta soddisfazione Pi-hole. Si chiama ph-whitelist e contrariamente al mio solito (considerando cosa faccio per Adblock Plus e simili) autorizza il funzionamento di siti web che potrebbero finire tra quelli bloccati da Pi-hole!

ph-whitelist: Gestisci dinamicamente la Whitelist di Pi-hole

Una questione di Whitelist

Non posso parlarti di blacklist più di quanto non abbia già fatto nel precedente articolo dedicato a Pi-hole (Pi-hole: installazione e prima configurazione), ti avevo però anticipato qualcosa in merito ai siti web autorizzati e all’uso della funzione di Whitelist integrata nel software, a oggi non efficiente quanto quella dedicata all’aggiunta di fonti dalle quali pescare indirizzi web da mettere alla gogna. Il problema è facilmente aggirabile da Terminale collegato via SSH a RPi, io ho solo migliorato una soluzione già esistente (github.com/anudeepND/whitelist) e arricchito ulteriormente la sorgente di file contenenti indirizzi leciti da dare in pasto a Pi-hole.

Perché farlo?

Perché a oggi esistono e continuano a nascere davvero molte liste di siti web e più in generale indirizzi che finiscono in blocco apparentemente senza motivo, questi generano poi anomalie e problemi di navigazione ai dispositivi facenti parte di reti protette da Pi-hole. Si finisce per dare la colpa a un prodotto quando in realtà quel “merito” dovrebbero prenderselo coloro che le liste le creano e – in qualche caso – smettono di mantenerle. Quello che per qualcuno potrebbe essere considerato “nocivo” per qualcun altro potrebbe essere invece lecito o necessario per lavoro.

Per questo motivo – prima di raccontarti cosa fa lo script e come utilizzarlo – ti voglio parlare delle liste autorizzative.

ListaScopo
safeLa whitelist di anudeepND (github.com/anudeepND/whitelist/blob/master/domains/whitelist.txt). Integro poi tutti i domini riportati nella discussione discourse.pi-hole.net/t/commonly-whitelisted-domains/212/27, costantemente monitorati e aggiornati (go.gioxx.org/ph-whitelist-integrations).
referralAlcuni siti web potrebbero non funzionare se questi domini non si trovano in whitelist (github.com/anudeepND/whitelist/blob/master/domains/referral-sites.txt). Per questo motivo è sempre possibile chiedere a ph-whitelist di integrarli in Pi-hole. La lista è curata da anudeepND.
statsIn parte suggeriti dalla comunità, in parte da me integrati dopo aver verificato alcuni piccoli malfunzionamenti nel quotidiano utilizzo di browser e applicativi di terze parti. Si tratta di domini che possono tracciare statistiche d'uso da parte dell'utente, ma non sono nocivi per la sicurezza della propria navigazione (go.gioxx.org/ph-whitelist-stats).
facebookSblocca qualsiasi dominio legato a Facebook, gli indirizzi sono stati suggeriti e verificati dalla comunità di Pi-hole (discourse.pi-hole.net/t/commonly-whitelisted-domains/212/27), li ho consapevolmente scorporati dalla lista safe e dalla mia integrazione poiché non a tutti fa comodo o piacere sbloccare i domini legati al colosso di Zuckerberg (go.gioxx.org/ph-whitelist-fb).

Le stesse liste con relative spiegazioni e con ulteriori informazioni sono raccolte nel nuovo sito web dedicato al progetto, ospitato all’indirizzo pihole.noads.it. Contestualmente ho messo in ordine anche il README del fork ph-whitelist su GitHub. Tutti gli indirizzi riportati nelle liste possono essere messi in discussione e subire modifiche in qualsiasi momento, puoi aprire segnalazioni per integrarne di nuovi o rimuoverne di presenti (giustificando tale richiesta).

Come utilizzare ph-whitelist

Niente di più semplice. Collegati in SSH al tuo RPi, spostati nella cartella che preferisci (io utilizzerò come esempio la home dell’utente pi) e lancia il comando:

wget -N https://pihole.noads.it/whitelist.sh

L’indirizzo ti riporta in realtà su GitHub, ma così facendo diventa molto più corto e facile da ricordare e utilizzare. Il comando sopra riportato ti permetterà di scaricare sul tuo RPi lo script bash che si occuperà di aggiornare la whitelist della tua installazione Pi-hole. Per poter utilizzare lo script occorrerà prima renderlo eseguibile:

chmod +x whitelist.sh

Il gioco è ormai fatto. Lancia ora whitelist.sh utilizzando sudo e dandogli in pasto il nome di una lista che vuoi portare sul tuo RPi (esempio: sudo ./whitelist.sh safe). Questo lancerà il download del materiale necessario da GitHub, da unire ai filtri già esistenti sulla tua installazione Pi-hole. Il processo dura una manciata di secondi e potrai immediatamente giovare della novità. Puoi verificare tu stesso il risultato accedendo alla dashboard amministrativa di Pi-hole e spostandoti sotto Whitelist (dal menu di sinistra):

ph-whitelist: Gestisci dinamicamente la Whitelist di Pi-hole 2

Esistono a oggi 4 tipi di liste che puoi scaricare tramite ph-whitelist, come già riportato nel paragrafo precedente di questo articolo. Se un domani dovessi integrarne di nuove, le troverai sul sito ufficiale del progetto. Oltre alle liste, lo script di bash permette di richiamare alcune azioni di manutenzione che potresti trovare utili nel corso del tempo:

  • demo: per scaricare e integrare in Pi-hole un solo indirizzo “dimostrativo” all’interno della Whitelist, si tratta più che altro di un metodo rapido per assicurarti che tutto funzioni correttamente (il sito che troverai in Whitelist sarà quello di progetto, quindi pihole.noads.it).
  • clear: per effettuare uno svuotamento totale della Whitelist del tuo Pi-hole, ricominciare da zero secondo le tue regole o tramite le liste che ti offro.
  • upgrade: per aggiornare lo script whitelist.sh che regola il download e l’integrazione dei nuovi filtri all’interno del tuo Pi-hole, da utilizzare solo quando (e se) rilascerò nuove versioni dello script, annunciate tramite questo blog o repository GitHub.

Quello che tu puoi fare per sfruttare al meglio lo script è richiamarlo all’interno delle operazioni Crontab del tuo RPi, per farlo ho cercato di riportarti una descrizione chiara e completa all’indirizzo pihole.noads.it/#crontab. Se qualcosa non dovesse essere troppo chiara non esitare a lasciare un commento a quest’articolo per ottenere assistenza.

Credo di averti detto praticamente tutto, non resta quindi che lasciarti giocare con le risorse messe a disposizione e chiederti di farmi sapere se si può fare qualcosa per migliorare ulteriormente il lavoro pubblicato, il contributo di tutti è fondamentale per la crescita corretta del progetto.

Buona navigazione!


Grazie a regex101.com per l’ottimo strumento messo a disposizione, ad Anudeep per la base messa a disposizione e Andrea Draghetti per avermi fatto conoscere questo repository.
Condividi l'articolo con i tuoi contatti:

Uno di quegli articoli “bibbia” per il quale potrei andare avanti a scrivere per ore, ma che mi rendo conto di non poter stendere per evitare di stendere il lettore (sembra una frase scritta da Fedez, ti chiedo scusa, non lo faccio più). Te lo avevo anticipato facendolo trasparire nell’articolo di partenza dedicato a Raspberry Pi (Raspberry Pi: la base di partenza), ora è arrivato il momento di parlarne e di capire come tu puoi creare un server DNS casalingo in grado di proteggerti da siti web pericolosi (prima di tutto) e dalla pubblicità invasiva, con particolare attenzione al filtro che puoi ulteriormente applicare per la protezione della navigazione dei minori.

Pi-hole: installazione e prima configurazione

Pi-hole

Un gran bel progetto che richiede da parte tua il minimo sforzo (dipende molto da quello che cerchi e da quanto in “profondità” vuoi andare per sfruttarne le potenzialità), open source e di libero accesso, sostenuto dalle donazioni volontarie degli utilizzatori (che ti invito a valutare). Pi-hole si definisce come “A black hole for Internet advertisements“, un buco nero per tutta la pubblicità invasiva di Internet, un concetto certamente ben identificativo del progetto, ma che a mio parere risulta un po’ restrittivo rispetto a quello che un prodotto simile può davvero fare per l’utilizzatore finale.

Secondo una definizione certamente più tecnica disponibile sulla Wiki di archlinux, Pi-hole è un:

DNS sinkhole che redige una lista di blocco di domini conosciuti per offrire pubblicità e malware da sorgenti multiple di terze parti. Pi-hole, attraverso l’uso di dnsmasq, elimina semplicemente tutte le richieste di domini nella sua lista di blocco. Questa configurazione implementa efficacemente il blocco della pubblicità a livello di rete senza dover configurare ogni singolo client. Il pacchetto offre una interfaccia web e una a riga di comando.

Se sei abituato a utilizzare Adblock Plus o un qualsivoglia prodotto che svolge lo stesso compito sul tuo browser preferito hai certamente chiaro il concetto alla base: evito alla sorgente che le risorse vengano caricate in un solo colpo e per tutti i dispositivi connessi alla rete, perché Pi-hole mi permette di intercettarle e redirigerle in maniera differente rispetto ai DNS pubblici, ovvero troncando la comunicazione con quei domini che vengono utilizzati per veicolare pubblicità invasiva (e non solo). Il grande vantaggio del prodotto sta certamente nella centralizzazione delle tue operazioni e nella possibilità di scaricare un po’ di lavoro dalle spalle del browser che potrà così rinunciare a un componente aggiuntivo spesso esoso di risorse (dipende da quello che stai utilizzando, nda).

Installazione

Tutto chiaro? D’accordo. A questo punto passiamo al succo vero dell’articolo, installiamo Pi-hole sul tuo RPi (la soluzione certamente più comoda) o su un NAS ammesso che questo ti permetta di far girare Docker, o ancora su una macchina Linux che utilizzi già per fare altro all’interno della tua rete, trovi la lista di compatibilità del prodotto all’indirizzo docs.pi-hole.net/main/prerequesites/#supported-operating-systems.

Io baso il mio articolo su Raspberry Pi (RPi), ho creato una macchina virtuale sul mio Mac con Raspbian a bordo appositamente per catturare qualche screenshot per questo articolo (l’installazione di produzione l’ho fatta ormai circa un mese fa e ho semplicemente dimenticato di crearmi delle prove fotografiche ?). Cominciamo.

Collegati in SSH al tuo RPi e lancia la stringa di installazione curl -sSL https://install.pi-hole.net | bash esattamente come riportato in home page del sito web di Pi-hole. Dopo un rapido check di sistema (serve capire se hai già tutto a bordo o se sarà necessario installare qualcosa) ti troverai davanti alle schermate di configurazione di Pi-hole:

Ti riporto qui la lista dei passaggi inseriti nella galleria di immagini sopra disponibile, integrando il tutto con ciò che nella galleria non c’è:

  • L’installazione comincia. Premi invio per continuare.
  • Arriverai alla schermata informativa riguardante l’IP da assegnare alla tua installazione Pi-hole: fai in modo che questo sia sempre lo stesso (statico o tramite reservation sul DHCP).
  • Comunica a Pi-Hole che DNS pubblici utilizzare per la risoluzione dei nomi a dominio (nel mio caso ho scelto Google, 8.8.8.8 e 8.8.4.4).
  • Specifica ora che liste di blocco vuoi cominciare a utilizzare. La barra spaziatrice serve per selezionare o deselezionare una voce. Spostati con le freccette nella schermata. Quando terminato, premi invio per confermare. Non preoccuparti di questa scelta, sarà sempre modificabile in un secondo momento.
  • Seleziona entrambi i protocolli di comunicazione (IPv4 e IPv6).
  • Conferma l’indirizzo IP della macchina (RPi) e del tuo router quando richiesto.
  • Quando richiesto, conferma di voler installare l’interfaccia web amministrativa. Servirà un’ulteriore conferma successiva alla richiesta di installazione di lighttpd. Lascia che le richieste (query) vengano loggate (0 – Show everything).
  • A questo punto ti basterà attendere che l’installazione proceda autonomamente fino al termine. Ti verrà mostrata una pagina riepilogativa contenente – tra le altre cose – la password di amministrazione del tuo nuovo Pi-hole.

Puoi ora collegarti alla console di Pi-hole utilizzando l’indirizzo che ti è stato riportato nella schermata riepilogativa, esempio http://192.168.1.10/admin. Salvo errori, ti troverai davanti alla console del software, dovrai quindi fare clic sulla voce Login (nella colonna di sinistra) e inserire la password che ti è stata precedentemente fornita, solo così potrai accedere alla gestione completa del tuo nuovo giocattolo.

Pi-hole: installazione e prima configurazione 11

Utilizzo

Ci siamo, fino a qui sei stato capace di installare Pi-hole sul tuo RPi, non ti resta che utilizzarlo e metterlo in pista per tutti i client della tua rete, prima però credo sia necessario un po’ di tuning e personalizzazione.

Cosa c’è da sapere? Beh, di certo fossi in te darei un’occhiata alle Impostazioni (Settings), all’interno delle quali troverai le informazioni sull’installazione (con possibilità di lanciare alcuni comandi rapidi, come il riavvio o lo spegnimento di sistema, o il blocco dell’attività di logging), le blacklist sottoscritte, i DNS pubblici utilizzati per la risoluzione dei nomi a dominio. Pi-hole può inoltre fare da server DHCP se lo preferisci, sostituendo così una delle funzioni che un router svolge in maniera predefinita. Seppur correttamente funzionante, preferisco che questo compito continui a svolgerlo il mio Fritz!Box e che lui faccia passare le richieste DNS dal mio RPi (così da sottostare al comando di Pi-hole).

Per concludere, troverai una schermata dedicata alla modifica della console e alle API che puoi utilizzare per integrare un differente softwae con Pi-hole, ma anche la sezione Privacy (per il livello / profondità di log da utilizzare) e il Teleporter, ovvero il modulo di Pi-hole che ti permette di esportare la tua configurazione e importarla su una differente installazione (che è grosso modo ciò che fai per portare a termine le operazioni di backup e restore di qualsivoglia tuo dato).

Cosa ho modificato?

Tralasciando le blacklist delle quali ti parlo tra poco, ho certamente ritoccato la parte relativa ai DNS, obbligando Pi-hole a interrogare Google utilizzando DNSSEC (ti ho parlato di questa tecnologia in un articolo relativo a Firefox: Firefox: DNS over HTTPS (di Cloudflare, ma non solo)):

Pi-hole: installazione e prima configurazione 1

In seguito ho ritoccato la parte relativa alla console, chiedendole di non mostrarmi alcuni domini bloccati nella totalità dei casi (indirizzi utilizzati per le pubblicità invasive delle applicazioni Android, quei banner che ti portano spesso ad abbonamenti mai richiesti, nda), ma questo è certamente un comportamento che farà comodo anche a te quando inizierai ad avere dello storico di navigazione tramite Pi-hole.

Le blocklist

È così che le chiama Pi-hole (SettingsBlocklists). Si tratta di blacklist composte da domini dei quali puoi quasi certamente fare a meno, sono quelli che generalmente propongono banner pubblicitari invasivi ma anche pericolosi script che possono danneggiare il tuo browser (Malware Domains). Dopo aver fatto piazza pulita di alcune liste che ho inizialmente utilizzato e studiato, sono arrivato ad avere una situazione della quale sono molto soddisfatto, che “limito” in qualche maniera grazie all’utilizzo della Whitelist di Pi-hole (e di questo ne parliamo presto perché c’è una novità in pentola, promesso).

L’attuale mia situazione vede in uso queste liste:

URL listaScopo
https://raw.githubusercontent.com/lightswitch05/hosts/master/ads-and-tracking.txtUna ricca lista in grado di bloccare domini che tracciano le attività di navigazione quotidiane, valida anche per tutto ciò che riguarda le applicazioni che caricano banner su Android e iOS. Un conto sono le pubblicità (che possiamo anche sopportare), un altro sono quei contenuti che portano ad abbonamenti non graditi e mai richiesti consapevolmente.
https://www.squidblacklist.org/downloads/dg-ads.aclStesso scopo della lista poco sopra, questa viene costantemente aggiornata da squidblacklist.org (non conosci Squid? Dai un'occhiata qui).
https://raw.githubusercontent.com/StevenBlack/hosts/master/hostsSteven Black raggruppa diverse Block List (Awdware, Malware, Fraud, Scam, Spam, Tracking e Cryptomining) cercando di eliminare tutti i falsi positivi e tenendo il suo lavoro costantemente aggiornato. Se dai un'occhiata al suo spazio GitHub troverai liste per filtrare anche altri tipi di siti web.
https://raw.githubusercontent.com/hoshsadiq/adblock-nocoin-list/master/hosts.txtSulla falsa riga di quanto faccio già con la NoCoin per Adblock Plus, questa lista è già pronta (e costantemente aggiornata) per essere digerita da Pi-Hole, permette di bloccare tutti i siti web che utilizzano script di mining che mettono in difficoltà le risorse del tuo PC.
https://mirror1.malwaredomains.com/files/justdomainsCome per la NoCoin di cui ti parlavo giusto qui sopra, anche la Harmful WebSites trova una sua versione di tipo host da poter dare in pasto a Pi-Hole. Blocca quindi i domini che sono veicolo di malware. Curata da malwaredomains.com.
https://www.squidblacklist.org/downloads/dg-malicious.aclBlocca i domini che sono veicolo di malware. Curata da squidblacklist.org.
http://theantisocialengineer.com/AntiSocial_Blacklist_Community_V1.txtBlocca tutti quei domini che tentano di truffare il visitatore facendogli credere di essere in tutto e per tutto su siti reali, istituzionali, di una certa rilevanza, come per esempio quelli delle banche, di Microsoft, Google, ecc.
https://phishing.army/download/phishing_army_blocklist_extended.txtUna creatura di Andrea 'Drego' Draghetti data alla luce relativamente poco tempo fa. Il sito web ufficiale lo trovi all'indirizzo phishing.army, la lista viene aggiornata spesso e sempre verificata per evitare quanto più possibile errori e falsi positivi. Ti protegge da siti web che tentano di frodarti durante la navigazione. Ti consiglio personalmente la versione estesa, contenente anche i sottodomini.

23/8/19

Ho rimosso la lista di ZeuS Tracker perché il servizio è cessato e non è più disponibile (# ZeuS Tracker has been discontinued on Jul 8th, 2019). Ringrazio Andrea ‘Drego‘ Draghetti per avermelo segnalato.

(Se vuoi copiare e incollare facilmente tutti gli URL, fai riferimento a questa pagina: github.com/gioxx/ph-whitelist/blob/master/domains/blocklists.md).

Pi-hole: installazione e prima configurazione 12

Si va così a creare un recinto di protezione più per i siti web potenzialmente pericolosi che per la pubblicità in sé. Per quel mestiere sai bene che allo stato attuale continuo a utilizzare Adblock Plus e i moduli X Files, in un futuro chissà, potrei virare verso qualcosa “Pi-hole oriented“.

Liste predefinite e altri progetti

Se ti interessa verificare o recuperare in qualche maniera le liste proposte di default in fase di installazione di Pi-hole, trovi qui un riferimento ufficiale su GitHub: github.com/pi-hole/pi-hole/wiki/Customising-sources-for-ad-lists.

Noterai che oltre queste, su Internet esistono una quantità non meglio definita di progetti che vogliono in qualche maniera alimentare il già ricchissimo database di domini dai quali stare bene alla larga. Io cerco sempre di dare un’occhiata a liste e curatori per capire quante e quali di loro si può meglio occupare dell’aggiornamento delle regole del mio Pi-hole, per evitare spiacevoli inconvenienti durante la quotidiana navigazione dei client di casa e dei dispositivi accesi e connessi h24. C’è a tal proposito un progetto molto corposo al quale ho dato un’occhiata ma che allo stato attuale ho abbandonato a causa di liste non ben controllate: blocklist.site/app, una vera e propria vetrina che mette a disposizione liste per ogni necessità. Magari tu ne conosci altri che vuoi condividere (mi farebbe piacere), l’area commenti è a tua disposizione.

Aggiornamenti giornalieri

Alcune liste che ti ho suggerito nella tabella qui sopra vengono aggiornate quotidianamente. Per questo motivo ho personalmente deciso di modificare il comportamento di Pi-Hole chiedendogli di fare un aggiornamento completo delle sottoscrizioni ogni 24h. Il comportamento predefinito del software indica che questa azione viene compiuta una volta ogni settimana (vedi: discourse.pi-hole.net/t/updating-blocklist-every-day/16853).

Lo puoi vedere tu stesso da Terminale: more /etc/cron.d/pihole. Una riga simile a questa dovrebbe indicarti quando viene eseguito l’aggiornamento del modulo Gravity:

7 3 * * 7 root PATH="$PATH:/usr/local/bin/" pihole updateGravity >/var/log/pihole_updateGravity.log || cat /var/log/pihole_updateGravity.log

Se non sai interpretare la prima parte della stringa non preoccuparti, si tratta di una sequenza che riporta minuto-ora-arco del mese-mesi-giorno leggibile da Crontab. Vuoi capire meglio per cosa sta? Eccoti servito: crontab.guru/#7_3_*_*_7. Per eseguire un aggiornamento quotidiano ho modificato il file tramite comando sudo nano /etc/cron.d/pihole, commentando la riga sopra riportata (basta inserire il simbolo del cancelletto # a inizio riga) e riportando subito sotto questo:

7 3 * * 0-6 root PATH="$PATH:/usr/local/bin/" pihole updateGravity >/var/log/pihole_updateGravity.log || cat /var/log/pihole_updateGravity.log

Noti nulla di diverso? Esatto. L’ultima parte indica al Crontab di eseguire il lavoro dal giorno 0 al giorno 6, ovvero dalla domenica al sabato (crontab.guru/#7_3_*_*_0-6).

Salva la modifica con la combinazione CTRL + X da tastiera, seguita da S per indicare sì quando Nano chiederà se scrivere le modifiche sul file.

In conclusione

Difficile concludere quando in realtà c’è altro da dire, ma l’articolo è davvero diventato troppo lungo e pesante. Nella “prossima puntata” ti parlerò di Whitelist e della possibilità di automatizzare l’aggiornamento di quest’ultima anche se nativamente non previsto. La novità esiste già e sono certo che ti piacerà (se l’argomento Pi-hole ti ha interessato, chiaramente), dovrai solo pazientare una manciata di giorni ancora.

In generale c’è ancora molto da approfondire riguardo l’argomento RPi ?

Nel frattempo se hai qualsiasi dubbio o domanda in merito a quanto scritto, l’area commenti è a tua totale disposizione (anche senza registrazione a Disqus). Spero di aver stuzzicato la tua curiosità e che tu possa suggerirmi ulteriori fonti da consultare in merito al progetto.


Crediti:
Condividi l'articolo con i tuoi contatti:

Quando si parla di backup lo scopo principale del gioco è sempre e solo uno: cercare di non perdere i propri file. Che tu li voglia salvare in copia singola o doppia poco importa, ciò che spesso serve è la delocalizzazione dei file per evitare che il Single Point of Failure sia dietro l’angolo (ho i file sul disco in casa! Ok, e se ti entrano in casa?). Per fare questo mestiere esistono già diverse soluzioni NAS in grado di replicarsi tra loro anche su differenti reti fisiche e in Cloud, ma se volessimo farlo tramite RPi?

Dato che ci stiamo per addentrare un po’ più nella ciccia, è il momento giusto per il doveroso (e assente da un po’) …

Attenzione: articolo ad alto tasso di tecnicismi lavorativi, nerditudine, viaggi mentali che potrebbero non interessare ai più, comunque vada perdete ogni speranza o voi che leggete.

RPi3 e rclone: sincronizzazione dei file tra locale e Cloud

source: unsplash.com / author: Fredy Jacob

rclone

Si chiama rclone e permette di sincronizzare file (in più modi / vie) tra locale e Cloud, non necessariamente con ambo i protagonisti presi in causa. Cosa vuol dire? Vuol dire che nessuno ti vieta di utilizzare rclone per scambiare dati tra due punti in locale (forse poco utile) o tra due punti in Cloud (e qui torna utile in caso di migrazioni), o locale misto Cloud che riguarda forse la maggior parte dei casi. Si tratta di una soluzione completamente open, trovi tutto il progetto su GitHub.

rclone è in grado di dialogare con una quantità molto elevata di servizi di Cloud Storage, è un po’ un coltellino svizzero da tenere a portata di mano (anche sotto forma di soluzione portable). Esistono alcune interfacce grafiche per Windows o macOS ma alcune di queste non vengono più sviluppate e supportate, quindi ti consiglio caldamente di imparare a utilizzare la sua riga di comando: rclone.org/docs.

Qualche esempio pratico

Con l’arrivo di RPi3 B+ in casa, ho scelto di iniziare a giocare con rclone e migrare (in test) quei backup oggi portati a termine da Windows e SyncBack Free. Ti faccio quindi qualche esempio pratico di come sia possibile ottenere lo stesso risultato passando da tutt’altro Sistema Operativo e relativo software di copia dati.

Partendo dal presupposto che tu abbia già configurato rclone e inserito quindi i vari connettori che ti servono (in questo caso parliamo di puro SFTP e nulla più), ti basterà realizzare un piccolo script bash contenente poche e semplici istruzioni, come questo:

rclone sync "gioxx_org:html/wp-content/backupwordpress" "Dropbox:DBBackup/gioxx.org" -P --transfers 9 --include *.zip

La stringa si traduce in questa maniera:

  • gioxx_org è il nome che ho dato al connettore rclone che si occupa di collegarsi a questo blog, dopo i due punti occorre inserire il percorso della cartella che si intende raggiungere. Per arrivare alla backupwordpress mi servirà attraversare prima html/wp-content. Questo percorso è lo stesso che vedresti utilizzando un qualsiasi client FTP per collegarti al tuo spazio web.
  • Dropbox è il nome (molto banale, ne sono consapevole) che ho dato al connettore rclone che si collega al mio account Dropbox. All’interno della home del mio Dropbox esiste una cartella chiamata DBBackup e al suo interno un’ulteriore cartella chiamata gioxx.org, è qui che finiscono tutti i file zip contenenti i backup del mio database MySQL (nota infatti il --include *.zip finale nella riga di comando, che obbliga rclone a scaricare solo file di tipo ZIP).
  • Il parametro -P equivale al “Progress“, rclone mi mostrerà a video l’avanzamento delle operazioni.
  • Il parametro --transfers 9 serve a forzare rclone a trasferire fino a 9 file alla volta, contemporaneamente, perché la mia macchina e la connettività possono sopportarlo. Più è alto il numero, più consumerai RAM e CPU della tua macchina (e occuperai banda internet in download e upload dato che il trasferimento viene eseguito dallo spazio FTP a Dropbox).

Tutto chiaro? Vuoi un altro esempio?

rclone sync "fuorigioco:html" "Dropbox:WebBackup/fuorigio.co" -P --transfers 9 --filter-from /home/pi/exclude-fCo.txt

Cosa è cambiato?

  • Nulla cambia per il sync in sé. Sto chiedendo a rclone di tenere sincronizzati tutti i file della cartella html di fuorigioco (connettore che si collega al buon vecchio fuorigio.co) con una apposita cartella sull’account Dropbox. Restano i 9 trasferimenti contemporanei e la visualizzazione dei progressi, ma.
  • Ma in questo caso utilizzo il filtering messo a disposizione da rclone per escludere una lista di file e cartelle che non mi interessano (vedi: rclone.org/filtering). Sto chiedendo a rclone di aprire il file di testo exclude-fCo.txt e leggere cosa non voglio che venga sottoposto a sincronizzazione, per capirci:
# Esclusioni Fuorigio.co
- /wp-admin/**
- /wp-includes/**

Salta la prima riga, un commento per capire di che lista stiamo parlando nel momento in cui apro il file di testo. Da lì in poi potrai notare un elenco fatto di cartelle che voglio saltare a piè pari, che rclone quindi ignorerà passando oltre. Nessuno ti vieta, come specificato nella documentazione ufficiale, di inserire ulteriori cartelle o singoli file, anche utilizzando delle wildcard che possono quindi fare match con più dati contemporaneamente.

Non ti resta che il crontab

Se non sai di cosa stiamo parlando (sei serio? E hai avuto la pazienza di leggere fino a qua? Fatti abbracciare!), trovi tutto ciò che c’è da sapere riguardo crontab su Raspbian (ma non solo) all’indirizzo raspberrypi.org/documentation/linux/usage/cron.md.

L’attività via rclone la sappiamo padroneggiare e lo script bash è pronto. Lo hai già reso eseguibile, non ti resta che programmarne l’esecuzione secondo esigenza. In questo momento possono quindi tornarti utili un paio di siti web dedicati alla generazione di righe crontab da copiare e riportare facilmente nel file di sistema (sudo crontab -e):

Io utilizzo un pelo più il primo che il secondo (quest’ultimo è molto utile quando vuoi immediatamente leggere in maniera più sensata una riga di Crontab più che crearla da zero). Specifica l’intervallo di esecuzione del tuo script e fornisci ogni dettaglio richiesto, così arriverai a un risultato che potrebbe essere simile a questo:

0 2 * * * /home/pi/DBBackup.sh

Come lo si legge? Ecco: lo script di backup verrà eseguito alle ore 2 del mattino (il 2) in punto (lo 0, che diversamente avrebbe dovuto riportare un altro numero da 1 a 59 se avessi voluto un diverso orario più “esotico“), di ogni giorno (il primo asterisco, avrebbe potuto avere valore da 1 a 31), di ogni mese (il secondo asterisco, avrebbe potuto avere valore da 1 a 12), di ogni giorno della settimana (l’ultimo asterisco, e questo sta a indicare che l’esecuzione deve essere quotidiana, altrimenti avrebbe potuto avere valore da 0 a 6). Ti sembra difficile? Inizialmente lo è, ma poi si entra nell’ottica e lo si capisce immediatamente, ti ho fornito quei due siti web poco sopra proprio per iniziare a fare pratica.

Salva la modifica al crontab e attendi fiducioso che i tuoi file finiscano correttamente nella cartella di backup (ovviamente controlla che vada tutto liscio).

L’articolo si conclude qui (per la tua certa felicità), in caso di problemi o dubbi puoi sempre lasciare un commento. Utilizzi già rclone? Se sì, come gestisci i tuoi backup? Sono curioso di confrontarmi con altre persone nella mia stessa situazione e voglia di sperimentare ?

Condividi l'articolo con i tuoi contatti:

Tutto parte da un computer. È piccolo, consuma poco, è affidabile in linea con la capacità di poter rimanere acceso ininterrottamente e perdersi per strada quasi sempre non per colpa sua, quanto per la fragilità che può avere una tradizionale scheda microSD sulla lunga distanza. Si chiama Raspberry Pi (raspberrypi.org) e se non hai mai sentito prima questo nome, vuol dire che tutto sommato dell’argomento tecnologia e informatica forse non sei realmente appassionato (e qui qualche fischio in fondo alla sala lo sento arrivare eccome).

Raspberry Pi: la base di partenza

RPi3

Eppure secondo me è proprio così, non prenderla sul personale o come attacco diretto. Di Raspberry Pi se ne parla ormai da tanti anni (è stata presentata come single-board computer nel 2011, nda) e oggi siamo ormai arrivati a poter sfruttare la sua terza generazione, nel modello B+ (che è quello che inizia a diffondersi sempre più). Io ci ho giocato in passato, ma non ne ho mai posseduto e tenuto uno in casa, fino a ora. Per “colpa” (se così si può chiamare) dei ragazzi di Cubbit ho deciso di acquistare proprio un RPi3 B+ da mettere in casa e nascondere nel ripostiglio, dove tengo anche il vecchio Media Center basato su Windows 7 e Plex (che tutto sommato svolge ancora il suo lavoro) e dove ho potuto portare dei cavi di rete che comunicano direttamente con il mio router (7590).

Starter Kit

Ho acquistato un modello completo, che propone anche il case, la scheda microSD e ulteriori accessori, lo prepara la ABOX, lo puoi trovare anche tu su Amazon:

Io ho scelto lo Starter Kit un pelo più costoso, ma con la scheda di memoria da 32 GB, così da non avere problemi di spazio per qualche tempo (sì, scoprirai che con RPi quei GB di spazio possono essere anche più che sufficienti). Tutto arrivato con i soliti rapidi tempi di Amazon, quindi montato e preparato per la prima installazione (che tra breve ti spiegherò come modificare rispetto all’originale prevista). RPi, se volessi fartela molto breve e chiara, è un ambiente di laboratorio, test, sviluppo, nuove scoperte.

Non è e non potrà mai sostituire il tuo PC di casa o il tuo laptop, ma potrà certamente farti da concentratore per la gestione della domotica, da server DNS con possibilità di oscurare le pubblicità invasive (e di questo ne parliamo in un prossimo articolo), da server Plex (con diverse limitazioni, occhio) o da piattaforma di gioco retrò e chissà quanta altra roba ancora, tutto racchiuso nel palmo di una mano e con una spesa tutto sommato limitata.

Partendo dal presupposto che tu abbia scelto un RPi3 B+, le caratteristiche della single-board dovrebbero più o meno essere queste:

  • CPU Broadcom BCM2837B0, Quad-Core a 64-bit 1.4 GHz con 1 GB di SDRAM LPDDR2.
  • WiFi e Bluetooth a doppia banda (2,4 GHz e 5 GHz IEEE 802.11.b/g/n/ac, versione bluetooth 4.2, BLE).
  • Velocità massima dell’attacco ethernet 300 Mbps, supporto Power-over-Ethernet (PoE) tramite HAT PoE separato rispetto allo Starter Kit.

A ciò va sempre associato un alimentatore capace di erogare 5V/ 3A per rimanere tranquilli e non incorrere nel più classico degli alert a video che lamentano una scarsa alimentazione (che potrebbe non essere sufficiente per servire anche hard disk esterni USB e simili) e, per le configurazioni un pelo più complesse in grado di tenere in piedi software più esosi, un paio di dissipatori in rame da poter installare secondo esigenza (tieni quindi a portata di mano la cara vecchia pasta termoconduttiva se pensi di voler fare cose turche con il tuo nuovo giocattolo!).

Cerca di avere sempre a che fare con microSD di qualità, classe 10 di nuova generazione possibilmente. Nel caso tu stessi acquistando il mio stesso Starter Kit, questo arriverà con una microSD sulla quale troverai già installato NOOBS (New Out Of Box Software), “an easy operating system installation manager for the Raspberry Pi“, in pratica è un bivio verso il tuo Sistema Operativo preferito, ma senza che questi ti obblighi a sceglierne per forza uno.

Io la microSD però l’ho formattata, e ci ho messo esclusivamente Raspbian:

Raspbian is a free operating system based on Debian optimized for the Raspberry Pi hardware. An operating system is the set of basic programs and utilities that make your Raspberry Pi run. However, Raspbian provides more than a pure OS: it comes with over 35,000 packages, pre-compiled software bundled in a nice format for easy installation on your Raspberry Pi.

Puoi farlo anche tu: è supportata, è parecchio comune tra proprietari di RPi e quindi gode di una comunità in grado di aiutarti e di portarci sopra sempre più software e utilità che potrebbero tornare utili anche a te, senza considerare la moltitudine di progetti che per la propria installazione consigliano e preparano procedure semplici proprio per questa distribuzione Linux ottimizzata. Io ti spiego quindi che fare se anche tu vuoi seguire il mio percorso.

Prima installazione

Inserisci la microSD nel tuo PC (io ho utilizzato il mio MacBook, ma i software che ho utilizzato sono disponibili anche per gli altri sistemi operativi), quindi scarica l’immagine di Raspbian che intendi utilizzare, io ho scelto quella completa di interfaccia grafica e qualche software di base (pesa un pelo di più ma ti permette di andare oltre l’uso del terminale e della connessione e amministrazione via SSH): raspberrypi.org/downloads/raspbian (il collegamento diretto alla versione che ho utilizzato è questo: downloads.raspberrypi.org/raspbian_full_latest).

Scarica ora il software gratuito balenaEtcher, ti permetterà di portare l’immagine di Raspbian su microSD e renderla avviabile, gli darai i pasto il file ZIP che hai scaricato qualche secondo fa. Non è necessario installarlo se usi Windows, puoi scaricare la versione portable (mentre su macOS io l’ho installato). Avvialo, ti si presenterà davanti la sua schermata principale, tu dovrai solo indicargli dove prendere il file ZIP contenente il sistema operativo da portare su microSD, selezionare quest’ultima e poi fare clic su Flash, è una procedura estremamente semplice (devi solo portare la necessaria pazienza affinché termini l’operazione).

Senza rimuovere la microSD dal PC, una volta chiuso balenaEtcher, dobbiamo abilitargli la possibilità di connetterci in SSH al Raspberry quando questo sarà in funzione. Per farlo hai metodi diversi in base al tuo sistema operativo. Come già detto, io ho eseguito tutta la procedura da macOS, ma ti fornisco anche un’alternativa Windows.

Abilita SSH

  • Se hai macOS, apri un Terminale e spostati nella microSD (cd /Volumes/NomeScheda, aiutati con il tabulatore), quindi – una volta dentro – crea un file vuoto chiamato ssh (touch ssh). Rimuovi correttamente la microSD da macOS, inseriscila nel Raspberry e avvialo.
  • Se hai Windows, apri un Prompt dei comandi e spostati nella microSD (verifica che lettera di unità è stata assegnata da Computer, quindi nel prompt digitala seguita dai due punti, esempio e:, premi invio), quindi – una volta dentro – crea un file vuoto chiamato ssh (echo ""> ssh). Rimuovi correttamente la microSD da Windows, inseriscila nel Raspberry e avvialo.

Cerca il Raspberry e collegati

Che tu abbia macOS o Windows poco importa, scarica PiFinder, un’utilità gratuita che cerca all’interno della tua rete il Raspberry e ti permette di collegarti rapidamente tramite un terminale. La trovi su GitHub all’indirizzo github.com/adafruit/Adafruit-Pi-Finder/releases/latest. Non si installa, si avvia e si utilizza immediatamente, in maniera del tutto semplice: cerchi e ti colleghi.

La password di default di una nuova installazione è sempre raspberry, ti verrà chiesto di cambiarla al primo accesso. Il sistema è immediatamente funzionante, noterai che collegandoti con un VNC potrai già operare sull’interfaccia grafica di Raspbian, modificare le proprietà del Desktop e lanciare i programmi installati. Sei a bordo.

E ora?

C’è un mondo davanti a te. RPi è collegato nella tua rete ed è pronto a lavorare per te. Solo facendo qualche ricerca Google arriverai a mille possibili utilizzi del nuovo giocattolo, l’importante è metterci della pazienza, della testa e della voglia di imparare. Nei prossimi articoli ti parlerò certamente di alcune delle possibilità che hai a tua disposizione, dal backup dei dati fatto tramite Raspberry e un NAS disponibile nella tua rete (io ho montato le unità del mio Synology) all’utilizzo come DNS server veloce e in grado di ripulire il web da possibili minacce, proteggendo te, la tua famiglia e sicuramente i più piccoli. Io attualmente lo sto usando come nodo Cubbit (per sperimentare il software in attesa delle Cubbit Cell) ma non solo, presto ne saprai di più.

Per me il Raspberry è certamente un giocattolo molto divertente in grado di portare via del lavoro al Media Center e forse anche al NAS, consumando meno risorse e dandomi la possibilità di imparare cose nuove. È un “esperimento” che sento di consigliare a tutti i patiti della materia che ancora non hanno fatto l’incauto acquisto.

Sei possessore anche tu di Raspberry? Cosa gli fai fare? Utilizziamo insieme l’area commenti per parlarne, e ricorda che non serve registrarsi a Disqus per poter lasciare il tuo contributo, dai un’occhiata qui.

×
Disclaimer

Disclaimer (per un mondo più pulito)

Gli articoli che appartengono al tag "Banco Prova" o "Banco Prova Console" raccontano la mia personale esperienza con prodotti generalmente forniti da chi li realizza. In alcuni casi il prodotto descritto rimane a me, in altri viene restituito. In altri casi ancora sono io ad acquistarlo e decidere di pubblicare un articolo in seguito, solo per il piacere di farlo e di condividere con te le mie opinioni.

Ogni articolo rispetta -come sempre- i miei standard: nessuna marchetta, solo il mio parere, riporto i fatti, a prescindere dal giudizio finale.

Prodotto: acquistato di tasca mia su Amazon, esattamente un giorno prima che lo Starter Kit andasse in forte sconto (la mia solita botta di fortuna).

Condividi l'articolo con i tuoi contatti: