Filtraggio navigazione web con blocklist malware

From RVM Wiki
Revision as of 18:32, 6 September 2012 by Gabriele.vivinetto (talk | contribs)
Jump to navigation Jump to search
  • TODO: Fare pacchetto debian, mettendo la lista in /var/lib/malware_blocklist
  • Fare check aging in script di update

È possibile impedire l'accesso a pagine web che diffondono malware aggiungendo a squid una lista di blocco aggiornabile.

  • La lista è prelevabile da sito Malware Patrol, prelevarla quindi la prima volta:
wget -O - http://malware.hiperlinks.com.br/cgi/submit?action=list_squid | sudo tee /etc/squid3/malware_blocklist.txt > /dev/null
  • Aggiungere le acl nella configurazione di squid:
sudoedit /etc/squid3/squid.conf
acl malware_blocklist url_regex "/etc/squid3/malware_blocklist.txt"
http_access deny malware_blocklist
  • Se si vuole mostrare la pagina di blocco, definirla (si può mettere una pagina customizzata):
deny_info http://malware.hiperlinks.com.br/denied.shtml malware_blocklist
  • Riavviare squid:
sudo invoke-rc.d squid3 reload
  • Per aggiornare quotidianamente la lista, creare lo script di aggiornamento:
sudoedit /usr/local/sbin/malware_blocklist_update
#!/bin/bash

function list_download() {
        /usr/bin/wget --quiet -O /tmp/malware_blocklist.txt http://malware.hiperlinks.com.br/cgi/submit?action=list_squid
        if [ $? != 0 ]
        then
                echo "There was an error downloading the list."
                exit 1
        fi
}

function list_copy() {
        cp /tmp/malware_blocklist.txt /etc/squid3/malware_blocklist.txt
}

if [ "$1" == "init" ]
then
        list_download
        list_copy
        cat /etc/squid3/malware_blocklist.txt | head -n 3| md5sum > /etc/squid3/malware_blocklist.txt.md5
        echo "Please check the downloaded list"
        exit 0
fi

if [ ! -e /etc/squid3/malware_blocklist.txt.md5 ]
then
        echo "ATTENTION: Blocklist MD5SUM is missing."
        echo "Run malware_blocklist_update init"
        exit 1
fi


MD5OK="$(cat /etc/squid3/malware_blocklist.txt.md5)"

# wait for a random value up to 600 seconds
WAIT=$(/usr/bin/expr $RANDOM % 600)

# If you specify a value, use it 0=start immediatly
if [ -n "$1" ]
then
        WAIT=$1
fi
sleep $WAIT

list_download

MD5SUM="$(cat /tmp/malware_blocklist.txt | head -n 3| md5sum)"

if [ "$MD5SUM" = "$MD5OK" ]
then
        list_copy
        invoke-rc.d squid3 reload > /dev/null
else
        echo "ATTENTION: there was an error updating the squid malwware_blocklist !"
        exit 1
fi
  • Renderlo eseguibile
sudo chmod +x /usr/local/sbin/malware_blocklist_update
  • Testarlo:
sudo /usr/local/sbin/malware_blocklist_update init
sudo /usr/local/sbin/malware_blocklist_update 0
  • Attivare il cron job, che verrà eseguito alle 04:00 + 0-10 minuti:
sudoedit /etc/cron.d/malware-blocklist-update 
0 4 * * *   root    /usr/local/sbin/malware_blocklist_update

Riferimenti