DOS, но не MS
Посмотреть аномальную активность пользователей на сервере можно так:
netstat -nptcp | egrep -v 'Active|Address' | awk '{print $5}' | cut -d . -f 1-4 | sort | uniq -c | sort -n | tail -n 20
Если с IP-адреса больше сотни соединений, это уже подозрительно 🙂 Можно сравнить с ТОП-20 соединений, например, с httpd (Apache):
sockstat -4 | awk '/httpd/{print $7}' | cut -d : -f1 | sort | uniq -c | sort -n | tail -n 10
Если топовый адрес из первого списка светится и в этом списке, значит что-то делает плохое, ДОСит, подбирает пароли и т.п., нужно ориентироваться уже по логу.
Можно просто посмотреть, на какие порты этот адрес ломится (4-я колонка):
netstat -nptcp | grep IP
Kill ‘em all
Если уже совсем понятно, что кто-то страдает ерундой, можно насильно разорвать соединения с этим адресом, для освобождения ресурсов:
netstat -nptcp | egrep 'IP' | awk '{print $4" "$5}' | sed 's/\./ /4;s/\./ /7' | xargs -n 4 tcpdrop
Вместо одного IP-адреса можно указать несколько IP-адресов, разделяя их пайпом, например:
egrep 'IP1|IP2|IPn'
Перед сбросом соединений, IP-адрес злостного нарушителя рекомендуется забанить в фаерволе. 🙂