DDoS атаки в двадцать первом веке стали настоящим и мощным оружием в кибер-войнах. Распределенные атаки на отказ в обслуживании применяются в конкурентных войнах, как между небольшими конкурирующими компаниями, так и крупными корпорациями и даже государствами.
Во время DDoS атак, полезно бывает узнать адреса атакующих для принятия мер по их блокировке.
Один из самых простых вариантов — поиск хостов с большим количеством подключений. Для примера, найдем все хосты, имеющие более 30 подключений к нашему серверу в данный момент:
netstat -n --tcp --udp --numeric-hosts | \ grep -v 127.0.0.1 | \ awk '{if (/(tcp|udp)/) { print $5 }}' | \ sed 's/:.*//' | \ sort | \ uniq -c | \ sort -n | \ awk '{if ($1 > 30) {print "Count: "$1"\t"$2; }}'
Пример результата:
Count: 36 161.170.63.226 Count: 37 82.244.69.151 Count: 45 62.62.75.219 Count: 54 152.145.145.149
В случае, когда нужно получить только список ip-адресов атакующих, достаточно изменить только одну строку:
awk '{if ($1 > 30) {print $2; }}'