за основу взят скрипт https://bash.cyberciti.biz/web-server/nginx-shell-script-to-block-spamhaus-lasso-drop-spam-ip-address/ но переписан чтобы скачивал два спам листа DROP и EDROP сразу
Информация о дроплисте: https://www.spamhaus.org/drop/
получился вот такой скрипт:
#!/bin/bash
# tmp file
FILE_DROP="/tmp/drop.txt.$$"
FILE_EDROP="/tmp/edrop.txt.$$"
# nginx config file - path to nginx drop conf file
OUT_DROP=/etc/nginx/drop.spamhaus.drop.conf
OUT_EDROP=/etc/nginx/drop.spamhaus.edrop.conf
## The lists URIs and respective filenames.
URL_DROP="http://www.spamhaus.org/drop/drop.txt"
URL_EDROP="http://www.spamhaus.org/drop/edrop.txt"
# reload command
NGINX="service nginx restart"
# remove old files
[[ -f $FILE_DROP ]] && /bin/rm -f $FILE_DROP
[[ -f $FILE_EDROP ]] && /bin/rm -f $FILE_EDROP
# emply nginx deny file
>$OUT_DROP
>$OUT_EDROP
# get database
/usr/bin/wget --output-document=$FILE_DROP "$URL_DROP"
/usr/bin/wget --output-document=$FILE_EDROP "$URL_EDROP"
# format in nginx deny netblock; format
/bin/egrep -v '^;' $FILE_DROP | awk '{ print "deny " $1";"}' >>$OUT_DROP
/bin/egrep -v '^;' $FILE_EDROP | awk '{ print "deny " $1";"}' >>$OUT_EDROP
# reload nginx
${NGINX}

Рекомендуемые комментарии
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.