added deny spammer

This commit is contained in:
Niklas 2017-03-04 17:15:02 +01:00
parent 545004f74b
commit c439c30a7e

49
nginx/denySpammer.sh Normal file
View File

@ -0,0 +1,49 @@
#!/bin/bash
# A Nginx Shell Script To Block Spamhaus Lasso Drop Spam IP Address
# Run this script once a day and drop all spam network IPs (netblock) with http 403 client error.
# The script will get executed every day via /etc/cron.daily (make sure crond
# is running).
# -------------------------------------------------------------------------
# Copyright (c) 2008 nixCraft project <http://cyberciti.biz/fb/>
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# -------------------------------------------------------------------------
# Last updated on Jan/11/2010
# -------------------------------------------------------------------------
#
# include drop.lasso.conf;
#
# tmp file
FILE="/tmp/drop.lasso.txt.$$"
# nginx config file - path to nginx drop conf file
OUT=/etc/nginx/drop.lasso.conf
URLS=(
"https://www.spamhaus.org/drop/drop.txt"
"https://www.spamhaus.org/drop/edrop.txt"
"https://www.spamhaus.org/drop/dropv6.txt"
)
# reload command
NGINX="/etc/init.d/nginx reload"
# remove old file
[[ -f $FILE ]] && /bin/rm -f $FILE
# emply nginx deny file
>$OUT
# get database
for i in "${URLS[@]}"
do
curl "$i" >> $FILE
done
# format in nginx deny netblock; format
/bin/egrep -v '^;' $FILE | awk '{ print "deny " $1";"}' >>$OUT
# reload nginx
/bin/sync && ${NGINX}