Отлов нарушителей порядка

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-адрес злостного нарушителя рекомендуется забанить в фаерволе. 🙂


Теги: , , , , , , , , , , , , ,

Оповещение о логине в ssh

В блоге itblog.suпопалась заметка об оповещении по почте о входе в консоль.

echo ‘ALERT — Root Shell Access on:’ `date` `who` | mail -s «Alert: Root Access from `who | awk ‘{print $6}’`» user@dom.dom

Вспомнил, что у меня давно используется такая штука. Ну, мало ли, вдруг найдется мегахацкер, который взломает сервер =). Только у меня немного не так:

echo «ALERT — Root Shell Access on: `date; echo; who | bwtail -1`» | mail -s «Root From: `who | bwtail -1`» root@domain.com

who может вывалить пакаван данных о логинах, но они мне не нужны, т.к. замысел в оповещении о последнем логине, поэтому я отрезаю одну строку с помощью tail.

Что такое bwtail? =) Это черно-белая версия tail (по сути просто хардлинк на tail), который у меня сделан цветным:

# from .cshrc
alias tail      /root/bin/coloredtail.sh

Вот так:

~> cat /root/bin/coloredtail.sh
#!/bin/sh

/usr/bin/tail $@ | /usr/local/bin/colorize


Теги: , , , , , , , , , , , , , ,