Last active
March 2, 2021 04:43
-
-
Save tikenn/359af63d230b32ef26c4fc59f997055d to your computer and use it in GitHub Desktop.
Download IP ban list and format for NGINX
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# -------------------------------------------------------------------------------------------- | |
# Nginx IP Address Deny List download and format | |
# -------------------------------------------------------------------------------------------- | |
# This file pulls from http://www.stopforumspam.com/downloads/bannedips.zip to | |
# retrieve a list of IPs known to be associated with spam. The program | |
# downloads, unzips, and formats the IP addresses into an NGINX config using | |
# 'deny' | |
# | |
# -------------------------------------------------------------------------------------------- | |
# Author Info | |
# -------------------------------------------------------------------------------------------- | |
# Name :: Tim Kennell Jr. ~ tikenn | |
# Licence :: MIT (http://opensource.org/licenses/MIT) | |
# Version :: 0.1 | |
# | |
# -------------------------------------------------------------------------------------------- | |
# Config | |
# -------------------------------------------------------------------------------------------- | |
# DOWNLOAD :: directory to download the file to | |
# | |
# STORE :: this is where the place we store and delete the old file. | |
# - If you change the location make sure you delete the files | |
# - associated and rerun this script. | |
# | |
# -------------------------------------------------------------------------------------------- | |
# Setting up crontab | |
# -------------------------------------------------------------------------------------------- | |
# - Create a file in /etc/cron.d/ | |
# - Run the file at least once a day to retrieve the most recent version | |
# - Example line (runs at midnight): "0 0 * * * /path/to/hulk.sh" | |
# | |
# ~ tikenn | |
DOWNLOAD=/opt/hulk | |
STORE=/etc/nginx/conf.d/ | |
# -------------------------------------------------------------------------------------------- | |
# Core App | |
# -------------------------------------------------------------------------------------------- | |
[[ -f "$DOWNLOAD/bannedips.zip" ]] && rm "$DOWNLOAD/bannedips.zip" | |
wget -O "$DOWNLOAD/bannedips.zip" http://www.stopforumspam.com/downloads/bannedips.zip | |
unzip -o "$DOWNLOAD/bannedips.zip" -d "$DOWNLOAD" | |
[[ -f "$STORE/bannedips.conf" ]] && rm "$STORE/bannedips.conf" | |
while read -r -d , ip ; do | |
echo "deny $ip;" >> "$STORE/bannedips.conf" | |
done < "$DOWNLOAD/bannedips.csv" | |
service nginx reload | |
# --------------------------------------------------------------------------------------------- | |
# End of Core App | |
# -------------------------------------------------------------------------------------------- |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment