Bloqueo de Publicidad con Squid 3
-
Se puede mejorar la navegación de nuestros usuarios eliminando el consumo de ancho de banda creado por la publicidad en internet valiéndonos de las listas de easylist.
Declaramos una acl en la configuración de squid:
vi /usr/pbi/squid-i386/etc/squid/squid.conf
acl adblock url_regex "/usr/local/etc/squid/acl/adblock.acl"
http_access deny adblockLuego con el siguiente script descargamos las listas de easylist para nuestro uso
#!/bin/bash
tmp_dir=$(mktemp -d)rm_temp() {
rm -rf "${tmp_dir}"
rm /tmp/adblock.sed && return 0;
}
acl=/usr/local/etc/squid/acl/adblock.aclsource=(
https://easylist-downloads.adblockplus.org/malwaredomains_full.txt
https://easylist-downloads.adblockplus.org/easyprivacy.txt
https://easylist-downloads.adblockplus.org/easylist.txt
https://easylist-downloads.adblockplus.org/easyprivacy_nointernational.txt
https://easylist-downloads.adblockplus.org/easylist_noadult.txt
https://easylist-downloads.adblockplus.org/fanboy-social.txt
https://easylist-downloads.adblockplus.org/easylistdutch.txt
)cat > /tmp/adblock.sed <<'EOF'
/.$./d;
/\n/d;
/.#./d;
/@@./d;
/^!./d;
s/[]/[.]/g;
s#http://#||#g;
s////||/g
s/^[.]$//g;
s,[+.?&/|],\&,g;
s##.#g;
s,$.$,,g;
s/\|\|(.)^(.)/.\1\/\2/g;
s/\|\|(.*)/.\1/g;
/^.*$/d;
/^$/d;
EOFmv $acl "$acl".old
cd $tmp_dir
wget -nv ${source* } || $(mv "$acl".old $acl && rm_temp)
sed -f /tmp/adblock.sed $(ls) >> $aclrm_temp Ejecutamos para que se genere el archivo (la ruta acl declarada no existe, se debe crear), reiniciamos el servicio y comenzaremos a ver los siguiente en los los 267 192.168.20.190 TCP_MISS/200 1173 GET http://exodus.desync.com/announce? - DIRECT/208.83.20.164 text/plain 1419484560.577 264 192.168.20.190 TCP_MISS/200 279 GET http://www.msftncsi.com/ncsi.txt - DIRECT/200.44.26.9 text/plain 1419484561.134 421 192.168.20.190 TCP_MISS/200 282 POST http://bench.utorrent.com/e? - DIRECT/54.243.163.103 text/html 1419484561.156 6440 192.168.20.190 TCP_MISS/200 1525 GET http://exodus.desync.com/announce? - DIRECT/208.83.20.164 text/plain 1419484572.556 606 192.168.20.190 TCP_MISS/200 1022 GET http://tracker.ex.ua/announce? - DIRECT/194.106.216.222 text/plain 1419484572.564 606 192.168.20.190 TCP_MISS/200 1167 GET http://tracker.ex.ua/announce? - DIRECT/194.106.216.222 text/plain 1419484575.181 245 192.168.20.190 TCP_MISS/200 1234 GET http://exodus.desync.com/announce? - DIRECT/208.83.20.164 text/plain Miss en contenido publicitario
-
Al ejecutar el script me da el siguiente error
Syntax error: newline unexpected (expecting ")")
-
saludos, mmmm debe estar en modo proxy no transparente???
-
Hola
Si, está en modo transparente.
El problema me aparece al ejecutar el script -
Sigo investigando maneras de bloquear la publicidad con pfsense.
Navegando he encotnrado un sencillo "TIP" para bloquear la publicidad con Unbound: https://www.bentasker.co.uk/documentation/linux/279-unbound-adding-custom-dns-recordsLos pasos a seguir son:
cd /var/unbound vi ads.sh
Añadimos el siguiente código
#!/bin/bash # # Update the dummy ads block # # From http://www.bentasker.co.uk/documentation/linux/279-unbound-adding-custom-dns-records cd /var/unbound/ rm ads.conf for a in `wget -O - "http://www.bentasker.co.uk/adblock/autolist.txt"`; do echo " local-data: \"$a A 127.0.0.2\"" >> ads.conf; done service unbound reload
Entramos en la el GUI y en la sección "Services: DNS Resolver" en la sección advanced escribimos
include: /var/unbound/ads.conf
¿alguien está experimentando alguna otra forma de bloquear la publicidad con pfsense?
Saludos