# Author: Mitchell Krog - https://github.com/mitchellkrogza/ ### VERSION INFORMATION # ################################################### ### Version: V4.2019.03 ### Updated: 2019-06-24 ################################################### ### VERSION INFORMATION ## ############################################################################## # _ __ _ # # / |/ /__ _(_)__ __ __ # # / / _ `/ / _ \\ \ / # # /_/|_/\_, /_/_//_/_\_\ # # __/___/ __ ___ __ ___ __ __ # # / _ )___ ____/ / / _ )___ / /_ / _ )/ /__ ____/ /_____ ____ # # / _ / _ `/ _ / / _ / _ \/ __/ / _ / / _ \/ __/ '_/ -_) __/ # # /____/\_,_/\_,_/ /____/\___/\__/ /____/_/\___/\__/_/\_\\__/_/ # # # ############################################################################## # Include this in a vhost file within a server {} block using and include statement like below # server { # #Config stuff here # include /etc/nginx/bots.d/blockbots.conf # include /etc/nginx/bots.d/ddos.conf # #Other config stuff here # } ####################################################################### # ENABLE WHITELISTING TO WORK # This should over rule any other rule if ($remote_addr ~ "(127.0.0.1)" ) { #set $bad_bot '0'; set $validate_client '0'; } # BOTS # **** #limit_conn bot1_connlimit 100; limit_conn bot2_connlimit 10; #limit_req zone=bot1_reqlimitip burst=50; limit_req zone=bot2_reqlimitip burst=10; if ($bad_bot = '3') { return 444; } # BAD REFER WORDS # *************** if ($bad_words) { return 444; } # REFERERS # ******** if ($bad_referer) { return 444; } # IP BLOCKS # ********* if ($validate_client) { return 444; } #######################################################################