Какой инструмент используется для выполнения команды при повторяющихся записях системного журнала?

Какой инструмент используется для выполнения команды при повторяющихся записях системного журнала?

Время от времени один VPS под моим контролем бомбардируется попытками входа по протоколу POP3. Все они терпят неудачу, но огромное количество порожденных процессов и активных соединений в значительной степени равнозначно DoS-атаке.

Когда я вижу, что происходит что-то подобное, я обычно вручную блокирую проблемный IP-адрес в iptables.Что бы я хотелзаключается в том, чтобы запустить на сервере процесс, отслеживающий системный журнал (или какое-либо другое подходящее место), и, если в журнале есть повторяющиеся записи, соответствующие определенному шаблону, передать их команде, которая затем извлечет соответствующую часть (в данном случае IP-адрес удаленного хоста) и выполнит команду (для добавления правила DROP в iptables).Например, сделайте это, если записи журнала с одной и той же частью сообщения регистрируются пять раз в течение одной минуты.

VPS запускает syslog-ng, если это поможет. Я настроил ограничение скорости в iptables, что немного помогает, но, конечно, не идеально, поскольку блокирует мои собственные попытки подключения так же, как и попытки злоумышленника (это становится удачей, кто получит установленное соединение). Поскольку клиенты, которые должны подключаться, имеют IP-адреса из динамических блоков, сложно просто добавить правило переопределения без ограничения скорости.

Поскольку VPS работает на Virtuozzo, хотя у меня есть root-доступ к гостю, я не могу загрузить пользовательские модули ядра или пользовательское ядро. Поэтому это должно быть сделано в пользовательском пространстве.

Какое программное обеспечение мне поможет?

решение1

Я бы рекомендовалfail2ban.

Fail2ban — это программное обеспечение, предназначенное для мониторинга журналов на предмет попыток входа методом подбора. Когда оно обнаруживает такую ​​попытку, оно блокирует IP атакующего через iptables. По прошествии достаточного количества времени fail2ban автоматически снимает блокировку.

Fail2ban настраивается и может работать практически с любым типом демона интернет-сервиса. Существует даже специальная документация для демонов pop3, таких каккурьер,голубятня, иqmail.

решение2

Я использую OSSEC (http://www.ossec.net/). Он анализирует журналы, но также имеет активные опции ответа (добавление и удаление записей iptables и hosts.deny на лету) с минимальной настройкой. У него есть несколько правил по умолчанию, но вы можете добавить свои собственные. Я протестировал его и использую в производстве с машинами CentOS, Ubuntu и Slackware (как физическими, так и VPS).

Установка очень проста (настройка, в основном, на игнорирование некоторых правил, занимает больше времени). Если вы используете его и включаете функции активного ответа, то настройки по умолчанию обычно достаточно хороши.

Я бы посоветовал оставить время блокировки по умолчанию (несколько минут), добавить белый список со своим IP-адресом (или IP-адресом другого сервера, которому вы доверяете, на случай, если ваш IP-адрес не статичен и сервер вас заблокирует).

Кроме того, если вам требуется более сложное управление блокировками, вы можете настроить OSSEC на использование скрипта bash (например) для проверки и обработки IP-адреса перед выполнением фактической активной блокировки.

Связанный контент