Список команд, полезных для определения ddos'a или флуда, а так же для отражения нераспределенных атак.
Код:
netstat -ant | awk '/^tcp/ { split($5,IP,":"); CNT[IP[1]]++ }; END { OFS="\t"; for (ip in CNT) { print CNT[ip],ip };}'
Код:
tcpdump -elXnvvv -i eth1 dst port not 22 and dst port not 80 and dst port not 53
Сколько процессов apache:
Код:
ps aux | grep httpd |wc -l
Cколька коннектов на 80 порт:
Код:
netstat -na | grep ":80\ " | wc -l
SYN
Код:
netstat -na | grep ":80\ " | grep syn
Пример SYN-флуда:
Код:
netstat -na | grep ":80\ " | grep SYN | wc -l 767
Посмотреть много ли разных ай-пи:
Код:
netstat -na | grep ":80\ " | grep SYN | sort -u | more
На какой домен чаще всего идут запросы:
Код:
tcpdump -npi eth0 port domain
Статус apache:
Посмотреть откуда IP:
Код:
whois xxx.xxx.xxx.xxx
или
Код:
jwhois xxx.xxx.xxx.xxx
где xxx.xxx.xxx.xxx – интересующий нас IP
Просниферить траффик идущий на domain.ru (атакуемый домен) с записью в файл output.txt:
Код:
tcpdump -n -i eth0 -s 0 -w output.txt dst port 80 and host domain.ru
dst также можно поменять на src:
Код:
tcpdump -n -i eth0 -s 0 -w output.txt src port 80 and host domain.ru
Допустим нашли IP (xxx.xxx.xxx.xxx) с которого много запросов:
tcpdump и там где был атакуемый домен вводим этот IP:
Код:
tcpdump -n -i eth0 -s 0 -w output.txt src port 80 and host xxx.xxx.xxx.xxx
С какого IP сколько запросов:
Код:
netstat -ntu | awk '{print $5}'| cut -d: -f1 | sort | uniq -c | sort -nr | more
или;
Код:
netstat -na | grep :80 | sort | uniq -c | sort -nr | more
Посмотреть на какие порты:
Код:
netstat -na | grep xxx.xxx.xxx.xxx
где xxx.xxx.xxx.xxx IP атакующего, и блочить начиная с тех, где больше коннектов.
Закрыть доступ для целой подсети IP (xxx.xxx.xxx.xxx), на конкретный протокол(-p) порт(–destination-port) в конкретном направлении(-d или -s:
В одном направлении (-d):
Код:
iptables -A INPUT -d xxx.xxx.0.0/16 -p tcp --destination-port http -j DROP
В другом направлении (-s):
Код:
iptables -A INPUT -s xxx.xxx.0.0/16 -p tcp --destination-port http -j DROP
Блокировка по всем протоколам и портам, в направления -s и -d:
Код:
iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
Код:
iptables -A INPUT -d xxx.xxx.xxx.xxx -j DROP
Количество соединений с сервером:
Код:
cat /proc/net/ip_conntrack | wc -l
Вывод информации в реальном времени, IP которые соединены с сервером и какое количество соединений по каждому IP:
Код:
netstat -anp |grep 'tcp\|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
Ну как то так...