Articoli

Parlando con amici spesso mi sento dire che hanno problemi con il proprio Raspberry, usualmente riavvi improvvisi o blocchi del sistema operativo che costringono ad un riavvio forzato con lo scollegamento dall’alimentazione. Personalmente uso il Raspberry dal 2012 quando hanno presentato il primo modello, ricordo ancora che mi svegliai alle 5 del mattino per riuscire ad acquistarne un pezzo al Day One! Peggio di un Apple Fan 😅. Complessivamente non ho mai avuto grossi problemi, ma anzi grazie al Raspberry ho imparato ad ottimizzare alcuni miei software in Python ottenendo un consumo di risorse inferiori. Tanto per darvi un idea per circa 6mesi ho usato una Raspi3 per lanciare circa 2mila sessioni al giorno di PhantomJS in maniera automatizzata, uno Scriptable Headless Browser non certo leggero.

Usualmente i problemi ad un Raspberry Pi nascono da tre fattori:

  • Alimentazione insufficiente;
  • Memory Card di scarsa qualità;
  • Temperature di utilizzo troppo elevate (in particolare per il Raspi3).

Risolvere questi tre inconvenienti è veramente facile, per quanto riguarda l’alimentazione vi consiglio di sfruttare un alimentatore con una erogazione di corrente superiore ai 2Ampere. Personalmente uso un alimentatore di Anker con 2,4A di uscita. Per le Memory Card sfrutto almeno delle microSDHC UHS-I 300x, facendo attenzione a non incappare in prodotti contraffatti, e personalmente da anni mi oriento sul marchio Lexar. Infine per evitare il raggiungimento di alte temperature esistono dei piccoli dissipatori da installare sulla motherboard del Raspberry.
Se volete andare sul sicuro esiste lo Starter Kit che contiene MicroSD e Alimentatore già adeguati, oltre al case, cavo HDMI e cavo LAN.

Aggiornare il Firmware del Raspberry Pi

Un aspetto fondamentale che in tanti ignorano, ma fondalmente per risolvere i principali problemi di stabilità, è l’aggiornamento del Firmware del Raspberry. Usualmente il firmware viene scritto in un componente hardware della motherboard ma sul Raspi viene invece scritto nella prima partizione della scheda MicroSD. Il firmware è quindi fondamentale per il boot del sistema, per la gestione della GPU e contiene binari precompilati del kernel e dei moduli del Raspberry. Capite pertanto che è un tassello chiave per il funzionamento corretto la nostra schedina.

Se sfruttate Raspibian il firmware si aggiorna automaticamente tramite i due pacchetti raspberrypi-kernel e raspberrypi-bootloader distribuiti tramite i repository ufficiali. Tramite il comando rpi-update é invece possibile installare l’ultimo firmware in fase beta, per alcune situazioni in cui avete problemi di stabilitá della vostra Raspibian potete provare a installare la versione in beta testing.

sudo rpi-update è il comando necessario a installare l’ultimo firmware in versione beta, potete trovare l’ultima versione del firmware anche su GitHub così da poter conoscere eventuali changelog.

RPI Update è installato di default su tutte le Raspibian ma altri OS potrebbero non averlo installato basta lanciare un sudo apt install rpi-update per ritrovarsi il software installato.

Se avete installato l’ultimo firmware in versione beta e preferite tornare alla versione stabile pubblicata sui repository vi basterà digitare questo comando: sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernel

[AGGIORNATO] Articolo aggiornato il 25 Novembre, ringrazio Matteo per avermi avvisato che rpi-update viene ad oggi usato per diffondere solamente le versioni beta del firmware.


Sicuramente conoscete già il mio forte sostengo al progetto Pi-hole, ne ho ampiamente parlato sul mio blog e su Twitter, assieme a Gabry credo proprio di essere uno dei primi utilizzatori Italiani.

Bando alle ciance, da sempre ho sostenuto che per un utilizzo standard le Block List predefinite erano perfette. Però sono arrivati i primi problemi nella navigazione su Facebook, Instagram, La Stampa e saltuariamente su Twitter. Nel primo caso il mancato caricamento di alcune risorse portava Firefox a bloccarsi oppure i video andavano a scatti, per Instagram e La Stampa non sempre i video venivano caricati mentre per Twitter alcune immagini non venivano caricate. Tutto si risolveva quando mi scollegavo dai DNS di Pi-hole ed usavo quelli di terze parti.

Così ho finalmente voluto provare a mettere mano alle Block List perché ero ormai certo che il problema nascesse da lì, ed effettivamente così è stato.

Le Block List predefinite di Pi-hole sono:

https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
https://mirror1.malwaredomains.com/files/justdomains
https://zeustracker.abuse.ch/blocklist.php?download=domainblocklist
https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt
https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt
https://hosts-file.net/ad_servers.txt
http://sysctl.org/cameleon/hosts

Se le analizziamo singolarmente troviamo già qualche dettaglio interessante:

  1. Hosts: è un progetto di Steven Black che raggruppa diverse Block List (Awdware, Malware, Fraud, Scam, Spam, Tracking e Cryptomining) eliminando falsi positivi e costantemente aggiornate. Eventualmente offre anche Block List integrative come Social, Porn, Fake News e Gambling;
  2. Malwaredomains: aggiornate giornalmente con i principali dominii sfruttanti per diffondere malware;
  3. Zeustracker: gestite da Abuse.ch e aggiornate giornalmente con i principali dominii sfruttati nella botnet Zeus;
  4. Lists.disconnect.me: L’ultimo aggiornamento risale al 2016 e non è noto chi le gestisca;
  5. Hosts-file: Lista aggiornata costantemente ma i falsi positivi sono all’ordine del giorno probabilmente non vi è alcuna verifica dei dominii riportati, molto spesso inoltre contiene duplicati della lista di Steven Black;
  6. Sysctl.org: Aggiornate a marzo 2018 e anche in questo caso i dati riportati risultano spesso analoghi alla lista di Steven Black.

Così ho deciso di eliminare le ultime tre liste per i motivi sopra esposti, lasciando solo le prime tre citate. La situazione è migliorata decisamente, non notavo più problemi e tutto sembrava risolto.

Però la curiosità è bastarda 😄 e ho iniziato a cercare altre Block List online, sono incappato in una discussione su Reddit in cui vengono messe in evidenza alcune Block List con relativi commenti.

Inizialmente ho provato il progetto Tspprs, caricando le liste base (Main, Ads, Malware, Fraud, Scam, Spam, Tracking e Crypto) ho avuto un colpo al cuore quando il Raspberry Pi dopo 120gg di uptime è andato in blocco costringendomi ad un reboot forzato. Al riavvio ho scoperto che la lista dei dominii bloccati era passata da circa 130mila a 3milioni! 😮 La cosa mi puzzava tremendamente, dopo 10 minuti di navigazione il risultato è stato il seguente:

  • gstatic.com era contenuto nella lista dei Malware più volte (oltre ovviamente ad essere nella corretta lista Ads);
  • *.amazonaws.com era contenuto nella lista dei Malware;
  • Tutti gli shorturl (bit.ly, bit.do, ecc) erano bloccati;
  • ecc, ecc.

Praticamente non riuscivo più ad usare Internet, non ho proseguito la navigazione e sono tornato alle precedenti Block List. Ho capito che il progetto conta a fare dei numeri ma con pochissima qualità.

Successivamente ho scoperto il progetto Firebog, ovvero un fantastico raccoglitore di Block List gratuite. Bene ma ora sono a punto e capo, se le carico tutte rischio di fare la fine di Tspprs, ovvero ottenere una Block List enorme che esponenzialmente mi andrà a creare dei falsi positivi.

Ho quindi deciso di fare un test con Firefox Lightbeam e le Block List di Steven, Malwaredomains e Abuse.ch. Ho aperto alcuni siti internet Italiani notoriamente pieni di pubblicità e tracker (Beppone in pole position) e ho guardato quali dominii avevano in comune finché non ho notato la presenza di un dominio altamente sospetto che non risultava bloccato: advertiser.wbtrk.net. Tutto il resto era corretto.

Basta andare sul sito ufficiale di Webtrekk per capire immediatamente che quel dominio nell’ottica di Pi-hole doveva essere bloccato, ora avevo solo un obiettivo: trovare una Block list che contenesse quel host e che quindi venga ipoteticamente aggiornata molto frequentemente e con attenzione. Riguardando l’elenco pubblicato su Firebog ho fatto tombola.

Squidblacklist è un società che offre Block List gratuite (Ads, Facebook e Malicious) e a pagamento (Clickbait, Porn, Proxies, Tor, ecc ecc) ma che mi sembrano veramente ben realizzate, addirittura in diversi formati (Standard, compatibili con Squid o RouterOS).

Pertanto aggiungendo anche le due Block List gratuite di Squid ho raggiunto i 160mila dominii bloccati e attualmente Beppone non mi traccia. 🤘🤘

Quindi ad oggi sfrutto le seguenti Block List:

https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
https://mirror1.malwaredomains.com/files/justdomains
https://zeustracker.abuse.ch/blocklist.php?download=domainblocklist
https://www.squidblacklist.org/downloads/dg-ads.acl
https://www.squidblacklist.org/downloads/dg-malicious.acl

White List

Voglio inoltre segnalarvi un interessante progetto di Anudeep che permette di aggiungere a PiHole una White List (di default è possibile solo l’inserimento manuale uno ad uno) tramite una lista da lui prestabilita e in costante aggiornamento.

Il suo progetto è disponibile su GitHub dove trovate anche le informazioni per l’installazione.

Porn

Se volete bloccare i siti porno potete usare la Block List estesa di Steven Black oppure quella di Chad Mayfield.

Donate e Tricks Interessanti

Ci tengo a ricordarvi di sostenere il progetto perché se iniziate ad usarlo difficilmente ne farete a meno e quindi una donazione agli sviluppatori è d’obbligo.

Infine per chi è alla ricerca di qualche progetto più corposo da fare con Pi-hole vi segnalo due articoli:

Uno screenshot dell’applicazione TvhClient per iOS con la guida TV.

Gli amici che mi seguono sui Social sanno che in questi giorni sto configurando il mio Intel Nuc Skull Canyon che progressivamente sostituirà il mio “cluster” di Raspberry Pi sfruttati per lavoro e per hobby. Uno dei raspi era configurato con TVHeadend, un software Open Source per visionare la TV o ascoltare la radio in streaming sfruttando il proprio impianto televisivo.

La programmazione dei canali inviata tramite le frequenze DVB-T è molto carente, si limita al massimo alle successive 24h ma è facile trovare emettitori che rilasciano informazioni molto più brevi nell’arco delle 3h o che non le rilasciano proprio. Questo non permette di impostare una registrazione automatica dei canali.

Sfruttando invece i dati offerti dalla comunità VuPlus è possibile ottenere una guida TV più ampia, VuPlus offre la programmazione per diversi paesi ed è quindi possibile personalizzare il mio script con l’archivio desiderato.

Mi sono basato su un precedente script creato da Mathias F. Svendsen e l’ho personalizzato per le mie esigenze includendo miglioramenti complessivi nel codice.

In maniera predefinita TVHeadend eseguirà il download dei dati due volte al giorno, alle 00:04 e 12:04. In alcuni casi è possibile che il file XML scaricato dallo script contenga dei nomi TV leggermente diversi rispetto a quelli acquisiti dal vostro ricevitore TV e pertanto dovrete fare una associazione manuale dalle impostazioni della WebGUI di TVHeadend.

Il mio script e le istruzioni per l’installazione sono disponibile su GitHub, ogni collaborazione è ovviamente ben accetta.

[LISTE AGGIORNATE AL 4 Novembre 2017]

Vi lascio infine la fonte di tutte le Guide TV Italiane offerte da VuPlus Community in formato XMLTV:

  • http://www.vuplus-community.net/rytec/rytecIT_Basic.xz
  • http://www.vuplus-community.net/rytec/rytecIT_Sky.xz
  • http://www.vuplus-community.net/rytec/rytecIT_SportMovies.xz