Can be run from cron every night to make sure you keep those pesky hackers out.
#!/bin/bash URL="https://rules.emergingthreats.net/fwrules/emerging-IPTABLES-ALL.rules" IPTABLES="/sbin/iptables" ######### Config ends here! _etbl=$(basename $URL) case $1 in stop) $IPTABLES -D FORWARD -j ETBLOCKLIST $IPTABLES -D INPUT -j ETBLOCKLIST $IPTABLES -D LOGNDROP -j LOG --log-level 4 --log-prefix "ET BLOCK: " $IPTABLES -D LOGNDROP -j DROP $IPTABLES -F LOGNDROP $IPTABLES -F ETBLOCKLIST $IPTABLES -X LOGNDROP $IPTABLES -X ETBLOCKLIST ;; start) if [[ ! -f /tmp/etblacklist.txt ]] ; then echo "blacklist file missing, maybe run update first?" exit 1 fi $IPTABLES -N ETBLOCKLIST $IPTABLES -N LOGNDROP $IPTABLES -I FORWARD 1 -j ETBLOCKLIST $IPTABLES -I INPUT 1 -j ETBLOCKLIST $IPTABLES -A LOGNDROP -j LOG --log-level 4 --log-prefix "ET BLOCK: " $IPTABLES -A LOGNDROP -j DROP source /tmp/etblacklist.txt ;; update) wget -O /dev/null -o /dev/null $URL --directory-prefix=/tmp/ if [[ $? -eq 0 ]] ; then grep 'A ETBLOCKLIST' /tmp/${_etbl} > /tmp/etblacklist.txt bash $0 stop bash $0 start else echo "Failed to download ${URL}" fi ;; *) echo "$0 [start/stop/update]" ;; esac