Skip to content

Instantly share code, notes, and snippets.

@stevejenkins
Created April 1, 2013 22:50
Show Gist options
  • Select an option

  • Save stevejenkins/5288434 to your computer and use it in GitHub Desktop.

Select an option

Save stevejenkins/5288434 to your computer and use it in GitHub Desktop.
Script for automatically unbanning/removing IPs and hostnames that were banned by DenyHosts. Courtesy of Cybernitus (http://www.cybertinus.nl/).
#!/bin/bash
#################
# CONFIGURATION #
#################
# The $WORK_DIR as set in /etc/denyhosts.conf. You can let this script find the
# setting automatically, or you can set it yourself.
DENYHOSTS_WORK_DIR=$(grep 'WORK_DIR' /etc/denyhosts.conf | grep -v '#' | cut -d '=' -f 2 | sed 's/ //')
#DENYHOSTS_WORK_DIR="/var/lib/denyhosts"
# All the files that contain the blocked IP address and hostname
DENYHOSTS_FILES=(\
'/etc/hosts.deny' \
"${DENYHOSTS_WORK_DIR}/hosts" \
"${DENYHOSTS_WORK_DIR}/hosts-restricted" \
"${DENYHOSTS_WORK_DIR}/hosts-root" \
"${DENYHOSTS_WORK_DIR}/hosts-valid" \
"${DENYHOSTS_WORK_DIR}/users-hosts" \
)
# The file containing the IP addresses and hostnames that can't be blocked
DENYHOSTS_ALLOWED_FILE="${DENYHOSTS_WORK_DIR}/allowed-hosts"
# The command needed to start denyhosts after the IP and/or hostname is unbanned
START_COMMAND='/etc/init.d/denyhosts start'
# The command needed to stop denyhosts before the IP and/or hostname is unbanned
STOP_COMMAND='/etc/init.d/denyhosts stop'
#############################################
# ACTUAL SCRIPT do not edit below this line #
#############################################
# set some default values to a few vars used in the script
# Don't remove an IP address (N=remove, Y=don't remove)
NO_IP='N'
# Don't remove an hostname (N=remove, Y=don't remove)
NO_HOST='N'
# Add the IP address and/or hostname to the allowed list
ADD_ALLOW='N'
# The IP address that has to be removed
IP=''
# The hostname that has to be removed
HOST=''
function show_help()
{
echo $0
echo "a small script to unblock an IP address and/or hostname from denyhosts.
-h | --host | --hostname : Specify the hostname to unblock (required, unless -nh is added).
-i | --ip | --ipaddress : Specify the IP address to unblock (required, unless -ni is added).
-nh | --no-host | --no-hostname : Don't require a hostname to start unblocking things.
-ni | --no-ip | --no-ipaddress : Don't require an IP address to start unblocking things.
-a | --add | --add-allow : Add the specified IP address and/or hostname to the unblock file, thus preventing that the specified IP address and/or hostname get blocked again.
-H | --help : show this help."
}
# Handle the commandline options
while [ -n "$(echo $1 | grep -- '-')" -a $# -gt 0 ]; do
case $1 in
-h | --host | --hostname) HOST=$2; shift 2;;
-i | --ip | --ipaddress) IP=$2; shift 2;;
-nh | --no-host | --no-hostname) NO_HOST='Y'; shift;;
-ni | --no-ip | --no-ipaddress) NO_IP='Y'; shift;;
-a | --add | --add-allow) ADD_ALLOW='Y'; shift;;
*)
echo "Unknown argument $1" 1>&2
echo ''
show_help $0
exit 1
;;
esac
done
# Checks to see if the required IP address and/or hostname are given
if [ "${NO_IP}" == 'N' -a "${IP}" == '' ]; then
echo 'No IP address given, exiting now' 1>&2
exit 1
fi
if [ "${NO_HOST}" == 'N' -a "${HOST}" == '' ]; then
echo 'No hostname given, exiting now' 1>&2
exit 2
fi
# Show warnings if removing of an IP address and/or hostname is disabled
if [ "${NO_IP}" == 'Y' ]; then
echo 'WARNING: You disabled removing an IP address. Most bans consist of both an IP address and a hostname. Please double check if you want this. Continuing now.' 1>&2
fi
if [ "${NO_HOST}" == 'Y' ]; then
echo 'WARNING: You disabled removing a hostname. Most bans consist of both an IP address and a hostname. Please double check if you want this. Continuing now.' 1>&2
fi
# Stopping denyhosts
${STOP_COMMAND}
# Loop through all the denyhost files, to remove the IP address and/or hostname
for FILE in ${DENYHOSTS_FILES[@]}; do
# Check to see if the current denyhosts file exists, is a normal file, is
# readable and is writable
if [ -f "${FILE}" -a -r "${FILE}" -a -w "${FILE}" ] ; then
# Check to see if there is an IP address to remove
if [ "${NO_IP}" = 'N' ] ; then
# Check that the IP address exists in the current denyhosts file
if grep -q "${IP}" "${FILE}" ; then
# Remove the IP address from the current denyhosts file
sed -i "/${IP}/d" "${FILE}"
echo "Removed ip address ${IP} from ${FILE}"
else
# The IP address doesn't exists in the current denyhosts file,
# notify user
echo "The ip address ${IP} wasn't in ${FILE}"
fi
fi
# Check to see if there is a hostname to remove
if [ "${NO_HOST}" = 'N' ] ; then
# Check that the hostname exists in the current denyhosts file
if grep -q "${HOST}" "${FILE}" ; then
# Remove the hostname from the current denyhosts file
sed -i "/${HOST}/d" "${FILE}"
echo "Removed hostname ${HOST} from ${FILE}"
else
# The hostname doesn't exists in the current denyhosts file,
# notify user
echo "The hostname ${HOST} wasn't in ${FILE}"
fi
fi
fi
done
# Check to see if the IP address and/or hostname needs to be added to the
# allowed-hosts file
if [ ${ADD_ALLOW} = 'Y' ] ; then
# Check to see if there is an IP address to add
if [ "${NO_IP}" = 'N' ] ; then
echo "${IP}" >> "${DENYHOSTS_ALLOWED_FILE}"
fi
# Check to see if there is a hostname to add
if [ "${NO_HOST}" = 'Y' ] ; then
echo "${HOST}" >> "${DENYHOSTS_ALLOWED_FILE}"
fi
fi
# Start denyhosts again
${START_COMMAND}
@karankakroliya-create
Copy link

Uploading Screenshot_2025-10-20-15-22-45-73_db2300be643d553259cbc11cd691d2a5.jpg…
Dear BGMI Team,

I am writing to appeal the 10 years  ban recently imposed on my BGMI account (Account ID: 5269094681). This severe penalty has left me baffled and deeply concerned.

I have been a loyal and fair player for over 6 years, with a clean record. Just a month ago, I reported a hacker who received a mere 10 years ban. My account, with no history of wrongdoing, has been banned for an astonishing 10 years

I implore you to investigate my account thoroughly and provide a clear reason for this extreme punishment. Restoring my account would not only mean a lot to me personally but also demonstrate your commitment to fair play in the BGMI community.

Please consider the years of dedication and investment I've put into this account. I am willing to cooperate fully to resolve this issue promptly.
Your swift attention to this matter is greatly appreciated. I look forward to your response.

Sincerely,
Account ID: 5269094681不शैतान٭

@av6073585-netizen
Copy link

Wue7e7

@dk8325294-rgb
Copy link

ar BGMI Team,
I am writing to appeal the 10 years ban recently imposed on my BGMI account (Account ID:51365136248) This severe penalty has left me baffled and deeply concerned. I have been a loyal and fair player for over 5 years, with a clean record. Just a month ago, I reported a hacker who received a mere 10 years ban. My account, with no history of wrongdoing, has been banned for an astonishing 10 years I implore you to investigate my account thoroughly and provide a clear reason for this extreme punishment. Restoring my account would not only mean a lot to me personally but also demonstrate your commitment to fair play in the BGMI community. investment I've put into this account. I am willing to cooperate fully to resolve this issue promptly. Your swift attention to this matter is greatly appreciated. I look forward to your response.
Sincerely,
Account ID:51365136248

@dk8325294-rgb
Copy link

ar BGMI Team, I am writing to appeal the 10 years ban recently imposed on my BGMI account (Account ID:51365136248) This severe penalty has left me baffled and deeply concerned. I have been a loyal and fair player for over 5 years, with a clean record. Just a month ago, I reported a hacker who received a mere 10 years ban. My account, with no history of wrongdoing, has been banned for an astonishing 10 years I implore you to investigate my account thoroughly and provide a clear reason for this extreme punishment. Restoring my account would not only mean a lot to me personally but also demonstrate your commitment to fair play in the BGMI community. investment I've put into this account. I am willing to cooperate fully to resolve this issue promptly. Your swift attention to this matter is greatly appreciated. I look forward to your response.Sincerely, Account ID:51365136248

@dk8325294-rgb
Copy link

ar BGMI Team, I am writing to appeal the 10 years ban recently imposed on my BGMI account (Account ID:51365136248) This severe penalty has left me baffled and deeply concerned. I have been a loyal and fair player for over 5 years, with a clean record. Just a month ago, I reported a hacker who received a mere 10 years ban. My account, with no history of wrongdoing, has been banned for an astonishing 10 years I implore you to investigate my account thoroughly and provide a clear reason for this extreme punishment. Restoring my account would not only mean a lot to me personally but also demonstrate your commitment to fair play in the BGMI community. investment I've put into this account. I am willing to cooperate fully to resolve this issue promptly. Your swift attention to this matter is greatly appreciated. I look forward to your response.Sincerely, Account ID:51365136248

@ddgb844-jpg
Copy link

6 mahine Ho Gaya aapko message hoga please meri madad karo Sar Main Hun Koi hath nahin lagaya kitni bar batao id 55567064447
7845
5529
7845
5530
5531

@prabhumeshram134-stack
Copy link

Cvhnn

@karankakroliya-create
Copy link

Dear BGMI Team,
I am writing to appeal the 10-year ban recently imposed on my BGMI account (Account ID: 5269094681). This severe penalty has left me baffled and deeply concerned.
I have been a loyal and fair player for over 5 years, with a clean record. Just a month ago, I reported a hacker who received a mere 7-day ban. My account, with no history of wrongdoing, has been banned for an astonishing 10 years.
I implore you to investigate my account thoroughly and provide a clear reason for this extreme punishment. Restoring my account would not only mean a lot to me personally but also demonstrate your commitment to fair play in the BGMI community.
Please consider the years

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment