просто хотел оформить топик по человечески... просил модераторов удалить старую или сделать редактируемой... не дождался)
В стип-хосте
ispmanager
KILL=1 NO_OF_CONNECTIONS=300 IGNORE_IP_LIST="ignore.ip.list" IPT="/sbin/iptables" TMP_PREFIX='/tmp' TMP_FILE="mktemp $TMP_PREFIX.XXXXXXXX" BANNED_IP_MAIL=`$TMP_FILE` BANNED_IP_LIST=`$TMP_FILE` echo "`date`" > $BANNED_IP_MAIL echo >> $BANNED_IP_MAIL BAD_IP_LIST=`$TMP_FILE` tcpdump -v -n -w attack.log dst port 80 -c 250 tcpdump -nr attack.log |awk '{print $3}' |grep -oE '[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}' |sort |uniq -c |sort -rn > $BAD_IP_LIST cat $BAD_IP_LIST if [ $KILL -eq 1 ]; then 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 IGNORE_BAN=`grep -c $CURR_LINE_IP $IGNORE_IP_LIST` if [ $IGNORE_BAN -ge 1 ]; then continue fi IP_BAN_NOW=1 echo "$CURR_LINE_IP with $CURR_LINE_CONN connections" >> $BANNED_IP_MAIL echo $CURR_LINE_IP >> $BANNED_IP_LIST echo $CURR_LINE_IP >> $IGNORE_IP_LIST $IPT -I INPUT -s $CURR_LINE_IP -j DROP done < $BAD_IP_LIST if [ $IP_BAN_NOW -eq 1 ]; then dt=`date` if [ $EMAIL_TO != "" ]; then cat $BANNED_IP_MAIL | mail -s "IP addresses banned on $dt" $EMAIL_TO fi unbanip fi fi rm -f $TMP_PREFIX.*
$IPT -I INPUT -s $CURR_LINE_IP -j DROP
можно под другой фаервол переделать
в файлик ignore.ip.list прописать:
127.0.0.1
и ваш айпи... чтобы попасть вдруг чего :)
Это поможет при небольших ддосах
ок понял☝
prihhost добавил 14.05.2010 в 18:21
логи_сервера+awk+grep+firewall
но если к примеру веб-кластер увесистый то можно и отдельно поставить стену с IDS
проверка надежности неповредила ниодному клиенту...
UA-IX + тест
понил. хотел услышать мнения
массовый хостинг
веб-сервер nginx+apache
ну если привышение кол-ва коннектов с одного IP и скан портов это нормально... тогда это не атаки