diff --git a/shorewall-blacklist.sh b/shorewall-blacklist.sh index dc0cad9..6f97dd9 100755 --- a/shorewall-blacklist.sh +++ b/shorewall-blacklist.sh @@ -4,6 +4,7 @@ # blacklist file # BLACKLIST="/etc/shorewall/blacklist" +CUSTOM="/etc/shorewall/custom-blacklist" # # get URL @@ -13,7 +14,7 @@ URL[0]="http://feeds.dshield.org/block.txt" URL[1]="http://www.spamhaus.org/drop/drop.lasso" #Counrtry BlockLists -COUNTRY=(cn tw) +COUNTRY=(cn tw tr mx il id) IPDENY="http://www.ipdeny.com/ipblocks/data/countries" # @@ -30,10 +31,17 @@ IPDENY="http://www.ipdeny.com/ipblocks/data/countries" } trap finish EXIT -cat $BLACKLIST > "$TMP/blacklist" +echo "Downloading new blacklists...." + +#Blank out existing blacklists +cat /dev/null > "$TMP/blacklist" cat /dev/null > $BLACKLIST -echo "#AUTO LIST" >> "$TMP/blacklist" +#Add custom entries +if [[ -s $CUSTOM ]]; then + cat $CUSTOM >> "$TMP/blacklist" +fi + ## top 20 attacking class C (/24) wget -q -O - ${URL[0]} | sed '1,/Start/d' | sed '/#/d' | awk '{print $1,$3}' | sed 's/ /\//' >> "$TMP/blacklist" @@ -44,8 +52,8 @@ wget -q -O - ${URL[1]} | sed '1,/Expires/d' | awk '{print $1}' >> "$TMP/blackli for BLOCK in ${COUNTRY[*]}; do wget -q -O - $IPDENY/$BLOCK.zone | awk '{print $1}' >> "$TMP/blacklist" done -echo "#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE" >> "$TMP/blacklist" -cat "$TMP/blacklist" > $BLACKLIST +#Remove duplicate entries +sort "$TMP/blacklist" | uniq -c | awk '{print $2}' > $BLACKLIST -shorewall refresh &>/dev/null +shorewall refresh