Spesso è necessario negare l'accesso a determinati siti web:
Una blocklist è null'altro che un (lungo...) elenco di domini ed URL che non si vogliono utilizzare. In genere si parte da liste pubbliche, milioni di siti, a cui si aggiungono (piccole) liste personalizzate.
In genere sono presenti in molti file, spesso chiamati domains, contenenti siti classificati per categoria (nota 1):
vv@vv-i7-buster:~/Scaricati/Squidguard/List$ cat domains
1mvtlr31p7rkkwnptynz1hdvsj.com
lr3a94rqrohsi9e5zx5m.mbservicesyorkshire.co.uk
membership.authxkwlr3orasbfol1ypzzq1budnetflix.com
safety.microsoft.com.yrywixr.anjyniqatkcdehiyblr369rgq.science
wap.sklr321.com
[...]
Personalmente preferisco usare più liste, da fonti diverse, scaricate dopo una ricerca con parole chiave tipo "Squid blacklist".
Elimino quindi gli elenchi a mio parere non rilevanti (per esempio: cura della casa, uffici governativi, ricerca di lavoro, traduzioni, webmail...). Questo è il passaggio più lungo e noioso.
La fusione dei file e l'eliminazione dei duplicati richiede su una macchina Linux pochi comandi (nota 2):
vv@vv-i7-buster:~/Scaricati/Squidguard/List$ find . -name
domains -exec cat {} >> realy_big_domains \;
vv@vv-i7-buster:~/Scaricati/Squidguard/List$ sort realy_big_domains | uniq >
domains
vv@vv-i7-buster:~/Scaricati/Squidguard/List$ lS -lh
[...]
-rw-r--r-- 1 vv vv 84M lug 16 17:12 domains
-rw-r--r-- 1 vv vv 399M lug 16 17:11 realy_big_domains
vv@vv-i7-buster:~/Scaricati/Squidguard/List$ wc -l domains
3935121 domains
A volte potrebbe essere utile eliminare da questi file i soli indiizzi IP
vv@vv-i7-buster:~/Scaricati/Squidguard/List$ grep -v '\([0-9]\+\.\)\{3\}[0-9]\+' domains > newdomain
Per filtrare la navigazione web occorre installare squidguard e relative blocklist.
root@proxy:~# apt install squidguard squidguard-doc
root@proxy:~# cp /etc/squidguard/squidGuard.conf /etc/squidguard/squidGuard.conf.originale
Copiamo i file con la blocklist sopra creata:
root@proxy:~# cp domains /var/lib/squidguard/db
A volte aggiungo liste personalizzate con la stessa struttura sopra vista, da modificare manualmente alla bisogna:
root@proxy:~# ll /var/lib/squidguard/db/
totale 193000
-rw-r--r-- 1 proxy proxy 61436837 ott 16 10:23 domains
-rw-r--r-- 1 proxy proxy 8205 ott 16 11:10 GreppiBAD
-rw-r--r-- 1 proxy proxy 1058 ott 16 10:26
GreppiGOOD
-rw-r--r-- 1 proxy proxy 1885 ott 16 10:26 MsGOOD
Configuriamo squidGuard:
root@proxy:~# nano /etc/squidguard/squidGuard.conf
dbhome /var/lib/squidguard/db
logdir /var/log/squidguard
dest good1 { domainlist GreppiGOOD }
# log verbose pass.log }
dest good2 { domainlist MsGOOD }
# log verbose pass.log }
dest bad1 { domainlist domains
log verbose
block.log }
dest bad2 { domainlist GreppiBAD
log block.log
}
acl { default {
pass good1 good2 !bad1 !bad2 !in-addr all
redirect http://localhost } }
Creiamo il database, una sorta di compilazione in formato binario, piuttosto lenta:
root@proxy:~# squidGuard -b -C domains -d
root@proxy:~# ll /var/lib/squidguard/db/
totale 193000
-rw-r--r-- 1 proxy proxy 61436837 ott 18 10:23 domains
-rw-r--r-- 1 root root 136167424 ott 18 10:59 domains.db
-rw-r--r-- 1 proxy proxy 8205 ott 18 11:10
GreppiBAD
-rw-r--r-- 1 proxy proxy 1058 ott 18 10:26
GreppiGOOD
-rw-r--r-- 1 proxy proxy 1885 ott 18 10:26
MsGOOD
Si noti che tutti i file devono appartenere all'utente e al groppo proxy:
root@proxy:/var/lib/squidguard# chown proxy:proxy /var/lib/squidguard/db -R
Attiviamo l'url rewrite, modificando il file squid.conf alla riga 4776 (circa):
root@proxy:~# nano /etc/squid/squid.conf -c
url_rewrite_program /usr/bin/squidGuard
root@proxy:~# systemctl restart squid.service # Nota 3
Leggere con attenzione la parte finale del file di log, per rilevare eventuali errori:
root@proxy:~# tail /var/log/squidguard/squidGuard.log
2020-10-16 11:18:40 [2123] INFO: New setting: dbhome: /var/lib/squidguard/db
2020-10-16 11:18:40 [2123] INFO: New setting: logdir: /var/log/squidguard
2020-10-16 11:18:40 [2123] init domainlist /var/lib/squidguard/db/GreppiGOOD
2020-10-16 11:18:40 [2123] init domainlist /var/lib/squidguard/db/MsGOOD
2020-10-16 11:18:40 [2123] init domainlist /var/lib/squidguard/db/domains
2020-10-16 11:18:40 [2123] INFO: loading dbfile /var/lib/squidguard/db/domains.db
2020-10-16 11:18:40 [2123] init domainlist /var/lib/squidguard/db/GreppiBAD
2020-10-16 11:18:40 [2123] INFO: squidGuard 1.6.0 started (1603012720.145)
2020-10-16 11:18:40 [2123] INFO: squidGuard ready for requests
(1603012720.146)
Proviamo a navigare su un sito proibito http e/o http osservando i file di log, in particolare:
root@proxy:~# tail /var/log/squidguard/block.log -f
2020-10-16 11:18:43 [2122] Request(default/bad1/-)
googleadservices.com:443 192.168.10.10 - CONNECT REDIRECT
2020-10-16 11:18:44 [2122] Request(default/bad1/-) googlesyndication.com:443
192.168.10.10 - CONNECT REDIRECT
2020-10-16 11:18:44 [2123] Request(default/bad1/-)
www.google-analytics.com:443 192.168.10.10 - CONNECT REDIRECT
2020-10-16 11:24:42 [2122] Request(default/bad2/-) adblockplus.org:443
192.168.10.10 - CONNECT REDIRECT
Data di creazione di questa pagina: ottobre 2020
Ultima modifica: 17 ottobre 2020
Il taccuino tecnico - Permanentemente in fase di riscrittura
Copyright 2013-2024, Vincenzo Villa (https://www.vincenzov.net)
Quest'opera è stata rilasciata con licenza Creative Commons | Attribuzione 4.0 Internazionale (CC BY 4.0)