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 adblock

    Luego 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.acl

    source=(
    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;
    EOF

    mv $acl "$acl".old
    cd $tmp_dir
    wget -nv ${source* } || $(mv "$acl".old $acl && rm_temp)
    sed -f /tmp/adblock.sed $(ls) >> $acl

    rm_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-records

    Los 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


Log in to reply