Archives For SSH

Hai presente quell’operazione che non vuoi fare perché ti scoccia e perché credi sia inutile fino a un secondo prima del disastro? Si chiama backup, ogni tanto è giusto tornare a parlarne, stavolta tocca al tuo Raspberry e a tutto ciò che hai deciso di installare a bordo del Raspbian (o qualsiasi altro sistema dedicato al piccolo gioiellino di casa). Perché farlo è presto detto: la scheda microSD può avere un alto tasso di fallimento e morte non annunciata, un “Kernel Panic : VFS :Unable to mount root fs on unknown-block” non farà altro che rovinare la tua giornata, proviamo insieme a evitare che questo ti impensierisca più di tanto.

RPi: backup della scheda SD (Windows / macOS)

Ciò che ti serve è spegnere il RPi in maniera corretta (da Terminale ti basta lanciare un halt) e recuperare la scheda microSD che dovrai collegare al tuo PC, l’operazione di backup non la si può attualmente fare “a caldo“, servirà creare un’immagine che contenga tutto ciò che hai a bordo di quella scheda. Il metodo riportato è stato verificato su Windows e su macOS, nel primo dei due casi ti posso dare giusto un’indicazione di massima, ma posso anche rimandarti a un articolo di Francesco che ha descritto minuziosamente ogni passaggio necessario anche in caso di ripristino quando si ha a che fare con schede microSD non esattamente identiche: Ridimensionare un file immagine del Raspberry Pi.

RPi: backup della scheda SD

I software che ti suggerisco sono disponibili gratuitamente e sono facili da utilizzare, se hai alternative agli stessi ti invito a discuterne nell’area commenti, dovresti conoscermi ormai, sono sempre ben contento di imparare cose nuove e scoprire quello che non conosco.

Windows: Win32 Disk Imager

Su Windows ho utilizzato (anche su consiglio dello stesso Francesco di cui ti parlavo prima) Win32 Disk Imager, applicazione gratuita disponibile su SourceForge che permette di creare un’immagine clone della microSD. Anche se quest’ultima non è occupata del tutto, l’immagine risultante sarà grosso modo pari alla capacità massima dell’hardware (capiamoci: se hai comprato una microSD da 32 GB, Win32 Disk Imager creerà un file di backup che occuperà circa 30 GB), devi quindi mettere in conto che avrai necessità di quello spazio sul disco del PC, sul NAS o su uno storage Cloud per futura conservazione.

RPi: backup della scheda SD (Windows / macOS) 1

Inserisci la scheda microSD nel PC, scegli la cartella dove salvare il file immagine (dandogli il nome che preferisci) e fai clic su Leggi per cominciare il processo. A tal proposito (e questo vale sia per Windows che macOS): l’operazione di lettura (e quindi backup) dei dati dalla scheda microSD è tendenzialmente lunga, porta molta pazienza, metti in conto che i servizi erogati dal tuo RPi subiranno un discreto down, questa però è un’operazione alla quale NON puoi rinunciare, soprattutto se consideri il tempo che hai impiegato per installare e configurare il Sistema Operativo e tutte le applicazioni e personalizzazioni che fai girare sul tuo RPi.

macOS: ApplePi-Baker

In barba al metodo più ovvio e “pronto all’uso” del dd da un Terminale ho scelto di scaricare e dare un’occhiata a ApplePi-Baker, applicazione gratuita pensata e sviluppata proprio per catturare un’immagine completa della scheda microSD partendo da macOS.

ApplePi-Baker v2 – Backup & Restore SD cards, USB drives, etc.

Così come per Win32 Disk Imager anche ApplePi-Baker mette a disposizione un’interfaccia utente molto semplice da comprendere e utilizzare seppur solo in lingua inglese. Una volta inserita la microSD nel MacBook (stavolta ti toccherà quasi certamente passare per un hub esterno) apri l’applicazione così da permetterne il rilevamento e la selezione:

RPi: backup della scheda SD (Windows / macOS) 2

A questo punto non ti resterà che fare clic su Backup per iniziare l’operazione di copia dati. In questo caso – contrariamente all’applicazione WindowsApple-Pi Baker permette di ottimizzare il risultato comprimendolo e ottenendo così un risultato nettamente più snello in uscita dal processo che comunque durerà molto.

Il mio backup pesa un po’ meno di 4 GB su disco e l’ho già copiato sullo spazio Dropbox che possiedo, così da non doverlo necessariamente tenere a portata di mano sul disco del MacBook. Posso ritenermi certamente soddisfatto, ho poi rimontato la microSD all’interno del RPi e l’ho nuovamente acceso, riportando in vita ogni servizio erogato, con un po’ più di tranquillità rispetto al lavorare senza la benché minima rete di protezione rispetto a quando l’ho comprato, avviato e già parecchio modificato.

Ho salvato una copia del file DMG di Apple-Pi Baker sul mio spazio Box per qualsiasi evenienza, la trovi all’indirizzo go.gioxx.org/applepi-baker.

L’articolo si conclude qui e lascio a te ogni domanda in merito o ulteriore suggerimento / alternativa rispetto a quanto scritto. So bene che di guide al backup del proprio Raspberry ne esistono davvero una marea e che questa è solo l’ennesima, ma credo sia una delle poche a parlare di reali alternative a quelle più blasonate.

Buon lavoro!


immagine di copertina: unsplash.com / author: Tom Pumford
Condividi l'articolo con i tuoi contatti:

Con la posta elettronica ci lavori, comunichi, ti relazioni con il mondo in maniera rapida e semplice. È uno strumento universalmente riconosciuto e ha già resistito più e più volte a bollettini di morte che lo davano per spacciato, perché allo stato attuale non esiste null’altro che abbia lo stesso valore (e non dirmi che Telegram o WhatsApp possono sostituire facilmente il tutto perché così non è).
Proteggere il proprio dominio e relativo server di posta diventa quindi un obbligo e un dovere morale verso tutti coloro che ricevono email che sembrano essere spedite dal tuo account quando in realtà si tratta di attacchi di phishing e / o comunicazioni di spam che si basano su spoofing di qualsivoglia indirizzo di posta elettronica esistente sulla faccia della Terra, tuo compreso.

Posta elettronica: come calcolare il proprio punteggio Spam

Quello di oggi non è il mio solito articolo, è un rilancio verso un lavoro già esistente, ben fatto, in italiano, alla portata di chiunque. Opera di Emanuele che leggo sempre con piacere, è stato pubblicato lo scorso 28 febbraio. Nulla è cambiato rispetto ad allora, vale tutto, nel frattempo è così che mi sono accorto di essermi perso per strada il record DMARC del dominio principale che utilizzo per ricevere e spedire posta elettronica, ho provveduto a metterlo a posto (grazie Manu!).

Perché la protezione della propria posta elettronica è così importante?

Ti auguro buona lettura: DMARC, SPF e DKIM per proteggere la tua identità.

Condividi l'articolo con i tuoi contatti:

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:

Non è la prima volta che ti parlo di Gmvault, ricordi bene. Il primo articolo a riguardo è datato 5 aprile del 2017 e ti spiega (poiché valido ancora oggi) come effettuare un backup programmato di tutto il contenuto della tua casella di posta Gmail su Windows, sfruttando il progetto Open di @zoobert (disponibile su GitHub). Si installa il necessario, si impara a fare piccoli movimenti in prompt dei comandi (una Shell modificata per gestire proprio Gmvault) e il gioco è fatto, ti dimentichi di averlo fino a quando non sarà necessario ripristinare qualcosa di cancellato. Ti rinfresco la memoria proponendoti qui di seguito il rilancio all’articolo originale.

Un backup in locale di Gmail con Gmvault

Oggi però parliamo di Raspberry Pi e della possibilità di migrare questo lavoro sul tuo RPi, interfacciandolo (come extra) con il NAS di casa (nel mio caso si tratta del Synology DS216j) e tenendo quindi il backup sui dischi sotto costante backup. Certo tu puoi farne a meno sia chiaro, ti spiegherò quindi come agire in ambo i casi e lasciare che RPi svolga un lavoro a basso carico di risorse utilizzate ma estremamente importante per dormire sonni tranquilli.

Abilitare NFS su Synology

Un NAS per casa: Synology DS216j

Puoi saltare questo paragrafo se intendi effettuare il backup della tua posta sulla memoria SD (o su una risorsa esterna collegata tramite USB) del RPi.

Prima di partire con il lavoro su RPi ti consiglio di abilitare NFS sul NAS e rendere così la cartella utente personale accessibile in lettura e scrittura montando l’unità su Linux (autorizzando il solo IP del tuo RPi, per rendere la cosa più sicura). Tutto è spiegato correttamente – corredato da immagini esplicative – nella documentazione ufficiale del prodotto disponibile all’indirizzo synology.com/it-it/knowledgebase/DSM/tutorial/File_Sharing/How_to_access_files_on_Synology_NAS_within_the_local_network_NFS#t4.

Fatto ciò, potrai passare all’installazione di Gmvault su RPi, comune ad ambo gli utilizzi (salvataggio dati su NAS o su memoria SD / esterna collegata a RPi).

Installazione Gmvault su RPi

SMTP di GMail: l'utilizzo tramite app 2

Cosa abbastanza semplice se segui passo-passo una procedura già testata e verificata sul mio RPi. Ci sono alcune dipendenze (Python) da portare a bordo del tuo Raspberry, superato questo passaggio il resto è abbastanza in discesa. Ho raccolto la procedura in un file MD pubblicato sul mio spazio GitHub, lo trovi all’indirizzo github.com/gioxx/SomePublicStuff/blob/master/RPi/scripts/rpi_install-Gmvault.md. Nello specifico installa le dipendenze necessarie:

sudo apt-get install python-dev python-pip python-virtualenv python-setuptools

Al termine spostati nella cartella home di pi, ottieni il pacchetto più recente di Gmvault e installalo creando prima un virtualenv:

cd /home/pi/
wget https://bitbucket.org/gaubert/gmvault-official-download/downloads/gmvault-v1.9.1-src.tar.gz
tar -xvzf gmvault-v1.9.1-src.tar.gz
virtualenv gmvault
cd gmvault-v1.9.1/
~/gmvault/bin/python setup.py install

Ci sei quasi, creati un file Bash che richiami l’esecuzione di Gmvault indicando l’account da portare in backup (lo script di Bash potrai poi richiamarlo anche in Crontab molto facilmente):

#!/bin/bash
/home/pi/gmvault/bin/gmvault sync -d /home/pi/backup/gmvault-db user@gmail.com

Questo prevederà da parte tua un’autenticazione verso la casella di Gmail. Puoi in ogni caso utilizzare il metodo già visto su Windows (quello che fa partire una finestra del browser per l’autenticazione e rilascio del token da riutilizzare anche successivamente) o addirittura copiare e incollare nella cartella /root/.gmvault su RPi (stessa location dove verrà creato il file di configurazione di Gmvault, gmvault_defaults.conf). Lanciando il file di Bash partirà il processo di verifica e download della posta elettronica da Gmail verso la cartella di destinazione da te scelta (che nel mio caso utilizza il NAS e un puntamento da /mnt, nda), salvo errori avrai migrato il backup della tua casella di posta da Windows a RPi, comodo e meno esoso in termini di risorse di corrente, CPU e RAM.

Da questo momento potrai tornare – volendo – a utilizzare il gmvault sync -t quick utente@gmail.com -p -d /mnt/Gmailvault. Se per qualsiasi motivo tu dovessi riscontrare delle anomalie nell’utilizzo di Gmvault dai un’occhiata a questa discussione sviluppatasi su Github: github.com/gaubert/gmvault/issues/335.

Buon inizio settimana! ?


immagine di copertina: unsplash.com / author: Kristina Tripkovic
Condividi l'articolo con i tuoi contatti:

Di motivi possono essercene diversi, eppure la sostanza rimane sempre quella: RPi deve poter inviare email in caso di necessità. È comodo, è logico, è necessario quando hai bisogno di essere avvisato riguardo cambiamenti di sistema (un IP nuovo? È solo un esempio), rilevamento di dati da sensori esterni, log di backup che hai fatto eseguire al tuo fedele micro-computer e chissà cos’altro. Con ssmtp è questione di un attimo, sei subito pronto per partire, ti servirà solo un server SMTP da sfruttare (va bene anche Gmail, basati sulle informazioni di questo vecchio articolo: SMTP di GMail: l’utilizzo tramite app (terze parti)).

RPi: inviare posta elettronica da Raspberry

Installazione e configurazione

Dopo aver lanciato un sudo apt-get update utile all’aggiornamento dei pacchetti disponibili, installa ssmtp come anticipato nell’apertura dell’articolo, ti basta poco:

sudo apt-get install ssmtp
sudo apt-get install mailutils

Al termine dovrai inserire i dati di configurazione per poter sfruttare il server SMTP esterno, ti basterà modificare il file di configurazione di ssmtp tramite sudo nano /etc/ssmtp/ssmtp.conf. Puoi commentare le righe già presenti nel file, aggiungendo in coda l’intero blocco necessario:

root=postmaster@contoso.com
mailhub=smtp.contoso.com:587
rewriteDomain=contoso.com
hostname=rpi.contoso.com
AuthUser=postmaster@contoso.com
AuthPass=Pa$$word
UseSTARTTLS=YES
UseTLS=NO

Rapidissimamente:

  • postmaster@contoso.com è l’indirizzo (esistente) sul server SMTP, il quale verrà utilizzato per farsi riconoscere (root=) e autenticarsi (AuthUser=).
  • smtp.contoso.com:587 è il server SMTP che intendi utilizzare, seguito dal :587 che sta a indicare la porta da utilizzare (in questo caso la 587, varia in base alla configurazione del provider che scegli di utilizzare).
  • rewriteDomain=contoso.com è il valore / dominio che sta dopo la chiocciola, se il tuo indirizzo di posta è mario.rossi@pippo.it dovrai specificare pippo.it.
  • rpi.contoso.com è l’hostname dal quale partirà la nuova email. Questo può anche non esistere, ma se il parametro SPF specificato sul tuo server SMTP non permette all’intero dominio di essere riconosciuto dagli antispam, rischi che l’email venga scartata dal provider di posta di chi riceverà le email spedite da RPi. Ti consiglio quindi di mantenere il tuo vero dominio di posta (quello che usi per spedire le email, il famoso “pippo.it” di cui ti parlavo poco fa) così da evitare problemi.
  • UseSTARTTLS=YES e UseTLS=NO sono parametri che servono a chiedere a ssmtp di utilizzare l’autenticazione con protezione StartTLS anziché TLS.

Nel caso in cui tu voglia utilizzare il server SMTP di Gmail ti consiglio di dare un’occhiata a questo articolo che ho trovato sul web.

Modifica ora il contenuto del file revaliases (sudo nano /etc/ssmtp/revaliases) aggiungendo semplicemente questa riga:

root:postmaster@contoso.com

Salva il file e chiudilo, a questo punto ti manca solo da mettere a posto i permessi del file di configurazione di ssmtp (sudo chmod 774 /etc/ssmtp/ssmtp.conf) e sei pronto a eseguire il primo test di invio posta elettronica dal tuo RPi.

Test di invio

Lancia da terminale un semplice echo "testo della email" | mail -s "test" mario.rossi@contoso.com sostituendo ovviamente mario.rossi@contoso.com con il tuo indirizzo reale di posta elettronica, questo dovrebbe inviarti nel giro di poco una nuova email alla tua casella, segno che tutto è andato per il verso giusto.

Ma

Nel caso tu avessi mancato o riprodotto male un passaggio potresti avere la sfortuna (come successo la prima volta al sottoscritto) di incorrere nell’errore mail: cannot send message: Process exited with a non-zero status. A questo punto ti serve qualche informazione in più, io per averla io ho installato mpack (sudo apt-get install mpack) e:

  • creato un file di testo contenente il corpo di un messaggio di test (echo "Messaggio di test" > messaggio.txt),
  • creato un file di testo che fungesse da possibile allegato (echo 123prova > attach.txt),
  • fatto un invio di test tramite mpack per ottenere un messaggio di errore più esplicativo (mpack -s "Invio di test" -d messaggio.txt attach.txt mario.rossi@contoso.com).

Ed ecco servito il reale problema:

sendmail: RCPT TO:<mario.rossi@contoso.com> (504 5.5.2 <pi@raspberrypi>: Sender address rejected: need fully-qualified address)

Una volta messo a posto quanto sbagliato (segui scrupolosamente la procedura riportata poco sopra in questo mio articolo e assicurati di aver specificato nel modo giusto il tuo dominio di posta e le relative credenziali) la mail è partita correttamente, consegnata ancora calda nella mia mailbox poco dopo:

RPi: inviare posta elettronica da Raspberry 1

Da questo momento sarà possibile inviare mail da RPi, potrai quindi inserire i comandi necessari in qualsiasi script o esecuzione programmata (cronjob) secondo esigenza.


Grazie a:
askubuntu.com/questions/643873/how-to-get-ssmtp-to-map-local-user-to-email-address-for-the-to-field
raspberrypi.org/forums/viewtopic.php?t=191675
raspberry-projects.com/pi/software_utilities/email/ssmtp-to-send-emails
possiblelossofprecision.net/?p=591
Condividi l'articolo con i tuoi contatti: