From 8113591027eed6133d66f1d2a3c50b2acd1d0878 Mon Sep 17 00:00:00 2001 From: Mitchell Krog Date: Mon, 24 Jun 2019 16:30:02 +0200 Subject: [PATCH] Introduce testing of whitelist-domains.conf --- .dev-tools/generate-files.sh | 1 + .dev-tools/test-blocker-whitelist-domains.sh | 96 ++++++++++++++++++++ .dev-tools/test_units/blacklist-domains.conf | 47 ++++++++++ .dev-tools/test_units/whitelist-domains.conf | 47 ++++++++++ .travis.yml | 1 + 5 files changed, 192 insertions(+) create mode 100644 .dev-tools/test-blocker-whitelist-domains.sh create mode 100644 .dev-tools/test_units/blacklist-domains.conf create mode 100644 .dev-tools/test_units/whitelist-domains.conf diff --git a/.dev-tools/generate-files.sh b/.dev-tools/generate-files.sh index 88793ecc7..03c5e3c9b 100755 --- a/.dev-tools/generate-files.sh +++ b/.dev-tools/generate-files.sh @@ -56,6 +56,7 @@ sudo chmod +x ${TRAVIS_BUILD_DIR}/.dev-tools/modify-files-and-commit.sh sudo chmod +x ${TRAVIS_BUILD_DIR}/.dev-tools/test-blocker.sh sudo chmod +x ${TRAVIS_BUILD_DIR}/.dev-tools/test-blocker-quick.sh sudo chmod +x ${TRAVIS_BUILD_DIR}/.dev-tools/test-blocker-badwords.sh +sudo chmod +x ${TRAVIS_BUILD_DIR}/.dev-tools/test-blocker-whitelist-domains.sh sudo chmod +x ${TRAVIS_BUILD_DIR}/.dev-tools/test-blocker-whitelist.sh sudo chmod +x ${TRAVIS_BUILD_DIR}/.dev-tools/prepare-robots-input.sh sudo chmod +x ${TRAVIS_BUILD_DIR}/.dev-tools/install-nginx-1.sh diff --git a/.dev-tools/test-blocker-whitelist-domains.sh b/.dev-tools/test-blocker-whitelist-domains.sh new file mode 100644 index 000000000..06acb20fc --- /dev/null +++ b/.dev-tools/test-blocker-whitelist-domains.sh @@ -0,0 +1,96 @@ +#!/bin/bash +# Curl Testing Script for Nginx Ultimate Bad Bot Blocker +# Created by: Mitchell Krog (mitchellkrog@gmail.com) +# Copyright: Mitchell Krog - https://github.com/mitchellkrogza +# Repo Url: https://github.com/mitchellkrogza/nginx-ultimate-bad-bot-blocker + +############################################################################## +# _ __ _ # +# / |/ /__ _(_)__ __ __ # +# / / _ `/ / _ \\ \ / # +# /_/|_/\_, /_/_//_/_\_\ # +# __/___/ __ ___ __ ___ __ __ # +# / _ )___ ____/ / / _ )___ / /_ / _ )/ /__ ____/ /_____ ____ # +# / _ / _ `/ _ / / _ / _ \/ __/ / _ / / _ \/ __/ '_/ -_) __/ # +# /____/\_,_/\_,_/ /____/\___/\__/ /____/_/\___/\__/_/\_\\__/_/ # +# # +############################################################################## + +# ************************ +# Set Terminal Font Colors +# ************************ + +bold=$(tput bold) +red=$(tput setaf 1) +green=$(tput setaf 2) +yellow=$(tput setaf 3) +blue=$(tput setaf 4) +magenta=$(tput setaf 5) +cyan=$(tput setaf 6) +white=$(tput setaf 7) +defaultcolor=$(tput setaf default) + +echo "${bold}${green}-------------------------------" +echo "${bold}${green}Whitelist Domains Test Starting" +echo "${bold}${green}-------------------------------" +printf "\n\n" + +echo "${bold}${green}---------------------------------------" +echo "${bold}${green}Activating Users whitelist-domains.conf" +echo "${bold}${green}---------------------------------------" +printf "\n\n" +sudo cp ${TRAVIS_BUILD_DIR}/.dev-tools/test_units/whitelist-domains.conf /etc/nginx/bots.d/whitelist-domains.conf +echo "${bold}${green}---------------" +echo "${bold}${green}Reloading Nginx" +echo "${bold}${green}---------------" +printf "\n\n" +sudo nginx -t && sudo nginx -s reload + + +echo "${bold}${yellow}-----------------------------------------------------------------------" +echo "${bold}${yellow}Sleeping for 30 seconds to allow Nginx to Properly Reload inside Travis" +echo "${bold}${yellow}-----------------------------------------------------------------------" +printf "\n\n" +sleep 30s + +# ************************************************* +# Function Curl Test 1 - Test User Domain Whitelist +# ************************************************* + +run_curltest1 () { +if curl -I http://localhost:9000 -e http://www.myowndomain.com 2>&1 | grep -i 'Welcome'; then + echo "${bold}${green}PASSED - User whitelist-domains.conf working" +else + echo "${bold}${red}FAILED - User whitelist-domains.conf NOT working" + #exit 1 +fi +} +run_curltest1 + +# ************************************************************** +# Function Curl Test 2 - Check for Whitelisted Referrer "zx6.ru" +# ************************************************************** + +run_curltest2 () { +if curl -I http://localhost:9000 -e http://www.myotherdomain.com 2>&1 | grep -i 'Welcome'; then + echo "${bold}${green}PASSED - User whitelist-domains.conf working" +else + echo "${bold}${red}FAILED - User whitelist-domains.conf NOT working" + #exit 1 +fi +} +run_curltest2 + + +echo "${bold}${green}-------------------------------" +echo "${bold}${green}Whitelist Domains Test Complete" +echo "${bold}${green}-------------------------------" +printf "\n\n" + +# ********************** +# Exit With Error Number +# ********************** + +exit ${?} + + diff --git a/.dev-tools/test_units/blacklist-domains.conf b/.dev-tools/test_units/blacklist-domains.conf new file mode 100644 index 000000000..3c854d7a5 --- /dev/null +++ b/.dev-tools/test_units/blacklist-domains.conf @@ -0,0 +1,47 @@ +# EDIT THIS FILE AS YOU LIKE TO BLACKLIST YOUR OWN CUSTOM DOMAIN NAMES ### + +### VERSION INFORMATION # +################################################### +### Version: V4.2019.05 +### Updated: 2019-06-24 +################################################### +### VERSION INFORMATION ## + +############################################################################## +# _ __ _ # +# / |/ /__ _(_)__ __ __ # +# / / _ `/ / _ \\ \ / # +# /_/|_/\_, /_/_//_/_\_\ # +# __/___/ __ ___ __ ___ __ __ # +# / _ )___ ____/ / / _ )___ / /_ / _ )/ /__ ____/ /_____ ____ # +# / _ / _ `/ _ / / _ / _ \/ __/ / _ / / _ \/ __/ '_/ -_) __/ # +# /____/\_,_/\_,_/ /____/\___/\__/ /____/_/\___/\__/_/\_\\__/_/ # +# # +############################################################################## + +# Add One Entry Per Line - List all your own extra domains you want to blacklist. +# This file must exist on your system or Nginx will fail a reload due to a missing file +# Automatic updates will never be able to remove this custom list of yours +# Add One Entry Per Line + +# Make sure any domains have dots and special characters escaped as per the Regex examples below. +# For example myblacklisteddomainname.com should be entered as myfirstowndomainname\.com +# and my-second-blacklisted.com should be entered as my\-second\-owndomainname\.com + +# ***************************************************************************************** +# PLEASE MAKE SURE that you use word regex boundaries to avoid false positive detection !!! +# ***************************************************************************************** + +# As you can see in the examples below the domain "myblacklisteddomainname\.com" is entered with a preceding \b and an ending \b +# this makes it now "\bmyblacklisteddomainname\.com\b". It is crucial to use the word boundaries regex formatting. + +# BY DEFAULT ALL THE EXAMPLES BELOW ARE COMMENTED OUT AND HENCE NOT ENABLED +# --------- +# EXAMPLES: +# --------- +# "~*\bmyblacklisteddomainname\.com\b" 1; +# "~*\bmy\-second\-blacklisted\.com\b" 1; + + "~*\bgoogle\.com\b" 1; + "~*\bbing\.com\b" 1; + diff --git a/.dev-tools/test_units/whitelist-domains.conf b/.dev-tools/test_units/whitelist-domains.conf new file mode 100644 index 000000000..75e762def --- /dev/null +++ b/.dev-tools/test_units/whitelist-domains.conf @@ -0,0 +1,47 @@ +# EDIT THIS FILE AS YOU LIKE TO WHITELIST YOUR OWN DOMAIN NAMES AND SPARE THEM FROM ANY REFERRER CHECKING ### + +### VERSION INFORMATION # +################################################### +### Version: V4.2019.05 +### Updated: 2019-06-24 +################################################### +### VERSION INFORMATION ## + +############################################################################## +# _ __ _ # +# / |/ /__ _(_)__ __ __ # +# / / _ `/ / _ \\ \ / # +# /_/|_/\_, /_/_//_/_\_\ # +# __/___/ __ ___ __ ___ __ __ # +# / _ )___ ____/ / / _ )___ / /_ / _ )/ /__ ____/ /_____ ____ # +# / _ / _ `/ _ / / _ / _ \/ __/ / _ / / _ \/ __/ '_/ -_) __/ # +# /____/\_,_/\_,_/ /____/\___/\__/ /____/_/\___/\__/_/\_\\__/_/ # +# # +############################################################################## + +# Add One Entry Per Line - List all your own domains of the sites you host on the server +# This file must exist on your system or Nginx will fail a reload due to a missing file +# Automatic updates will never be able to remove this custom list of yours +# Add One Entry Per Line + +# Make sure any domains have dots and special characters escaped as per the Regex examples below. +# For example myfirstowndomainname.com should be entered as myfirstowndomainname\.com +# and my-second-owndomainname.com should be entered as my\-second\-owndomainname\.com + +# ***************************************************************************************** +# PLEASE MAKE SURE that you use word regex boundaries to avoid false positive detection !!! +# ***************************************************************************************** + +# As you can see in the examples below the domain "myfirstowndomainname\.com" is entered with a preceding \b and an ending \b +# this makes it now "\bmyfirstowndomainname\.com\b". It is crucial to use the word boundaries regex formatting. + +# BY DEFAULT ALL THE EXAMPLES BELOW ARE COMMENTED OUT AND HENCE NOT ENABLED +# --------- +# EXAMPLES: +# --------- +# "~*\bmyfirstowndomainname\.com\b" 0; +# "~*\bmy\-second\-owndomainname\.com\b" 0; + + "~*\bmyowndomain\.com\b" 0; + "~*\bmyotherdomain\.com\b" 0; + diff --git a/.travis.yml b/.travis.yml index aece026cc..2f48fa758 100644 --- a/.travis.yml +++ b/.travis.yml @@ -49,6 +49,7 @@ script: - bash .dev-tools/install-nginx-testing-of-changes.sh - bash .dev-tools/test-blocker.sh - bash .dev-tools/test-blocker-badwords.sh + - bash .dev-tools/test-blocker-whitelist-domains.sh - bash .dev-tools/test-blocker-whitelist.sh - bash .dev-tools/modify-files-and-commit.sh