ph-whitelist

Di cosa si tratta

Una serie di whitelist da poter immediatamente utilizzare
all'interno della propria installazione di Pi-hole.

Partendo dall'ottimo lavoro di anudeepND ho voluto realizzare ph-whitelist, un fork che in un solo script racchiude la possibilità di modificare dinamicamente la whitelist utilizzata da Pi-hole. Lo script permette infatti di aggiungere rapidamente siti web dichiarati leciti dal forum ufficiale della comunità, sbloccare l'uso di Social Network (che spesso vedono finire loro domini in blacklist comunemente utilizzate), integrare siti web che mancano all'appello delle liste di anudeepND, file che sono comunque alla base del funzionamento di ph-whitelist.

Caratteristiche

  • Codice sempre sotto controllo: ph-whitelist è su GitHub, chiunque può rilasciare un fix, un aggiornamento, una nuova versione. Se vuoi contribuire, sei il benvenuto (o la benvenuta :-)).
  • Liste sempre aggiornate: il lavoro svolto da anudeepND è egregio. ph-whitelist utilizza la sua whitelist costantemente aggiornata e permette di integrarla con domini da lui non utilizzati.
  • Adatte a ogni sistema: non importa dove tu stia facendo girare Pi-hole, le whitelist sono compatibili con ogni sistema (sì, potresti utilizzarle anche con prodotti di terze parti che nulla c'entrano con Pi-hole).
  • Pronto per RPi: ph-whitelist è stato scritto e testato su Raspbian per Raspberry Pi 3B+.

Cosa c'è da sapere

Ti lascio qui di seguito i riferimenti necessari per lavorare con Pi-hole e ph-whitelist.

Pi-hole: installazione e prima configurazione

Pi-hole: installazione e prima configurazione

Tutto (o quasi) quello che devi sapere sull'installazione di Pi-hole sul tuo Raspberry Pi. Configurazione, utilizzo, liste di blocco e non solo.

RPi: base di partenza

Raspberry Pi: la base di partenza

Sei completamente a digiuno di nozioni riguardanti Raspberry Pi e le possibilità che questo piccolo computer può offrirti? Dai un'occhiata a questo mio articolo introduttivo.

Download e Utilizzo

Lo script è utilizzabile da riga di comando. Puoi eseguirlo manualmente richiedendo il tipo di lista da scaricare e integrare nella tua whitelist (te le propongo qua di seguito), pensa lui a tutto. Ho incluso inoltre un'opzione che ti permette di cancellare completamente l'attuale whitelist in uso sulla tua installazione di Pi-hole.

Per scaricare lo script sul tuo RPi, lancia da terminale un semplice wget dello stesso, poi rendilo eseguibile:

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

Whitelist disponibili

Nome Scopo
safe La whitelist di Anudeep (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).
referral Alcuni 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.
stats In 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).
facebook Sblocca 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).

Utilizzo dello script

sudo ./whitelist safe|referral|stats|facebook
Esempio basato sulla lista safe:
sudo ./whitelist safe
pi@raspbiantest:~ $ sudo ./whitelist.sh safe Download and add safe sites to whitelist (official: anudeepND) ... [ ✔ ] Adding to whitelist... [ ✔ ] Removing duplicates... Download and add safe sites to whitelist (integration: gioxx) ... [ ✔ ] Adding to whitelist... [ ✔ ] Removing duplicates... [...] Pi-hole gravity rebuilding lists. This may take a while... [ ✔ ] Pi-hole's gravity updated [ ✔ ] Done! pi@raspbiantest:~ $

Pulizia completa (clear)

È possibile eliminare tutti i domini inclusi nella propria whitelist utilizzando whitelist.sh con parametro clear:
sudo ./whitelist clear

Aggiornamento dello script (upgrade)

È possibile scaricare e sovrascrivere la propria copia di whitelist.sh con l'ultima disponibile su GitHub utilizzando il parametro upgrade:
sudo ./whitelist upgrade

Operazione pianificata (Crontab)

È certamente possibile (e consigliato) inserire delle schedulazioni all'interno del Crontab di root per permettere a Pi-hole di ottenere una whitelist sempre aggiornata.

Esempio (ogni lun-mer-ven nell'intervallo orario dalle 04:05 alle 04:09 del mattino):
pi@raspbiantest:~ $ sudo crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
5 4 * * 1,3,5 /home/pi/whitelist.sh safe
7 4 * * 1,3,5 /home/pi/whitelist.sh referral
9 4 * * 1,3,5 /home/pi/whitelist.sh stats
Attenzione: l'esempio tiene conto del fatto che lo script sia stato scaricato (e che venga quindi eseguito) dalla home dell'utente pi. Se così non fosse sarà necessario modificare le regole di Crontab (e mettere a posto la posizione dello script whitelist.sh) affinché abbiano effetto.

Debug di funzionamento (demo)

È possibile verificare che le regole di Crontab funzionino correttamente aggiungendo il download di una lista dimostrativa contenente un unico dominio (questo che stai navigando ora, pihole.noads.it). Prevedi quindi l'utilizzo di whitelist.sh con parametro demo:
sudo ./whitelist demo
All'ora da te stabilita controlla che il dominio compaia nella whitelist utilizzata dal tuo Pi-hole.

Licenza d'uso, distribuzione e supporto

Il progetto è auto-finanziato e mantenuto da Giovanni F. 'Gioxx' Solone. Tutte le informazioni riguardanti progetto sono disponibili nel repository GitHub e nel mio blog.

Dove non diversamente specificato, il contenuto di questo sito web viene rilasciato con licenza Creative Commons, versione 4.0 by-nc-sa internazionale, descritta punto per punto a questo indirizzo: creativecommons.org/licenses/by-nc-sa/4.0/deed.it (oppure in inglese: creativecommons.org/licenses/by-nc-sa/4.0/deed.en).

Lo script è invece soggetto a licenza originale MIT di Anudeep:

MIT License
Copyright (c) 2018 Anudeep ND anudeep@protonmail.com
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE

ph-whitelist è e rimarrà gratuito, ma se ti va puoi offrirmi un caffè, o magari diventare sostenitore! :-)