что то вроде AntiDDOS

bash, perl, python и прочие интерпретируемые скрипты

Модератор: Gen1us2k

Ответить
Аватара пользователя
Gen1us2k
Модератор
Модератор
Сообщения: 771
Зарегистрирован: 02 мар 2010, 16:13

что то вроде AntiDDOS

Сообщение Gen1us2k » 27 июл 2011, 14:00

В общем. Стояла задача мониторить коннекты, и если их больше какого-то числа, то банить ип.
Был найден какой-то скрипт, который был с конфигом и прочим не нужным бредом.
Чуть чуть работы напильником, и он готов.
Суть проста. Определяет сколько коннектов с ипа, и если их больше, то лочит его.

Код: Выделить всё

#!/bin/sh
# Needed variables and 
IPT="/sbin/iptables"	# Iptables
NO_OF_CONNECTIONS=2	# How many connections define a bad IP? Indicate that here.
BAN_PERIOD=300		# Number of seconds the banned ip should remain in blacklist.

# Function for unbanning blacklisted ip.

unbanip()
{
	UNBAN_SCRIPT=`mktemp /tmp/unban.XXXXXXXX`
	TMP_FILE=`mktemp /tmp/unban.XXXXXXXX`
	UNBAN_IP_LIST=`mktemp /tmp/unban.XXXXXXXX`
	echo '#!/bin/sh' > $UNBAN_SCRIPT
	echo "sleep $BAN_PERIOD" >> $UNBAN_SCRIPT
	while read line; do
		echo "$IPT -D INPUT -s $line -j DROP" >> $UNBAN_SCRIPT
		echo $line >> $UNBAN_IP_LIST
	done < $BANNED_IP_LIST
	echo "rm -f $UNBAN_SCRIPT" >> $UNBAN_SCRIPT
	echo "rm -f $UNBAN_IP_LIST" >> $UNBAN_SCRIPT
	echo "rm -f $TMP_FILE" >> $UNBAN_SCRIPT
	. $UNBAN_SCRIPT &
}

TMP_PREFIX='/tmp/ddos'
TMP_FILE="mktemp $TMP_PREFIX.XXXXXXXX"
BANNED_IP_LIST=`$TMP_FILE`
BAD_IP_LIST=`$TMP_FILE`
netstat -ntu | grep '^[AP]' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr > $BAD_IP_LIST
cat $BAD_IP_LIST
IP_BAN_NOW=0
while read line; do
	CURR_LINE_CONN=$(echo $line | cut -d" " -f1)
	CURR_LINE_IP=$(echo $line | cut -d" " -f2)
	if [ $CURR_LINE_CONN -lt $NO_OF_CONNECTIONS ]; then
		break
	fi
	IP_BAN_NOW=1
	echo $CURR_LINE_IP >> $BANNED_IP_LIST
	$IPT -I INPUT -s $CURR_LINE_IP -j DROP
done < $BAD_IP_LIST
if [ $IP_BAN_NOW -eq 1 ]; then
	unbanip
fi
rm -f $TMP_PREFIX.*
Изображение
Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2800
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 8
Откуда: Из серверной

Re: что то вроде AntiDDOS

Сообщение Raven » 27 июл 2011, 14:08

Gen1us2k
*COOL*
Я не злопамятный, я просто часто ковыряю логи
Аватара пользователя
Infernal Flame
Злой Модер
Сообщения: 1796
Зарегистрирован: 03 мар 2010, 11:25
ОС: Centos 7
Контактная информация:

Re: что то вроде AntiDDOS

Сообщение Infernal Flame » 27 июл 2011, 14:08

Отлично! Примем на вооружение %)
Изображение
Изображение
Work: Centos 7 х 'all Servers'
Аватара пользователя
Gen1us2k
Модератор
Модератор
Сообщения: 771
Зарегистрирован: 02 мар 2010, 16:13

Re: что то вроде AntiDDOS

Сообщение Gen1us2k » 27 июл 2011, 14:10

ах да.
NO_OF_CONNECTIONS=2 # How many connections define a bad IP? Indicate that here.
BAN_PERIOD=300 # Number of seconds the banned ip should remain in blacklist.

тут выставьте %) когда тестил, то, где больше 2х коннектов он рубил
Изображение
Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD
Аватара пользователя
Infernal Flame
Злой Модер
Сообщения: 1796
Зарегистрирован: 03 мар 2010, 11:25
ОС: Centos 7
Контактная информация:

Re: что то вроде AntiDDOS

Сообщение Infernal Flame » 27 июл 2011, 14:11

Gen1us2k
ну читать-то умеем ;) не переживай %)
Изображение
Изображение
Work: Centos 7 х 'all Servers'
Аватара пользователя
Gen1us2k
Модератор
Модератор
Сообщения: 771
Зарегистрирован: 02 мар 2010, 16:13

Re: что то вроде AntiDDOS

Сообщение Gen1us2k » 27 июл 2011, 14:21

Ну вы то да. а вот за других не особо уверен %)
Изображение
Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD
Аватара пользователя
Gen1us2k
Модератор
Модератор
Сообщения: 771
Зарегистрирован: 02 мар 2010, 16:13

Re: что то вроде AntiDDOS

Сообщение Gen1us2k » 27 июл 2011, 14:35

ой. греп другой %) Старая не много вариация скрипта.
grep -v '^[AP]' вырезает первые 2 строки нетстата
Изображение
Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2800
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 8
Откуда: Из серверной

Re: что то вроде AntiDDOS

Сообщение Raven » 27 июл 2011, 14:39

Gen1us2k
Во! Чуть фуфел не впарил *LOL*
Я не злопамятный, я просто часто ковыряю логи
Ответить

Вернуться в «Скрипты»