Список команд, полезных для определения ддоса (DDos – отказ в обслуживании) или флуда, а так же для отражения нераспределенных атак.
netstat -ntu | awk ' $5 ~ /^[0-9]/ {print $5}' | cut -d: -f1 | sort | uniq -c | sort -n netstat -anp |grep 'tcp\|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n netstat -ntu | awk ' $5 ~ /^(::ffff:|[0-9|])/ { gsub("::ffff:","",$5); print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr netstat -ant | awk '/^tcp/ { split($5,IP,":"); CNT[IP[1]]++ }; END { OFS="\t"; for (ip in CNT) { print CNT[ip],ip };}' # Без сортировки netstat -ant | awk '/^tcp/ { split($5,IP,":"); CNT[IP[1]]++ }; END { OFS="\t"; for (ip in CNT) { print CNT[ip],ip };}' # С разбивкой по портам netstat -nt | awk -F":" '{print $2}' | sort | uniq -c | sort -n
Число коннектов
# Число коннектов на 80 порт: netstat -na | grep :80 | wc -l # То же, в статусе SYN netstat -na | grep :80 | grep syn
Статистика по запросам с группировкой по IP утилита logtop
Установка
sudo apt-get install logtop
Использование
tail -f /var/log/httpd/access_log | awk {'print $1; fflush();'} | logtop
Популярные User-Agent'ы
cat access_log | awk -F\" '{print $6}' | sort | uniq -c | sort -n
iptables - для фильтрации не желательного трафика
Вот так добавляем в фильтр IP
iptables -A INPUT -p tcp --dport 80 -s 95.153.67.144 -j DROP # если надо блочить IP полностью iptables -A INPUT -s 95.153.67.144 -j DROP
Вот так смотрим списко уже добавленных
iptables -L -n iptables -L -n --line-numbers
А вот так убираем из фильтра IP
iptables -D INPUT -s 1.2.3.4 -j DROP # или удалить по номеру правила iptables -L -n --line-numbers iptables -D INPUT 4
А вот так очищаем вообще весь список
iptables -Fcomments powered by HyperComments