Работа с SMTP неверной командой атаки

8

За последние несколько дней один из наших полу-занятых почтовых серверов (sendmail) имел множество входящих подключений от хостов, которые выдают команды мусора.

В последние два дня:

  • входящие соединения SMTP с недействительными командами с 39 000 уникальных IP-адресов
  • IP-адреса поступают из разных диапазонов по всему миру, а не только из нескольких сетей, которые я могу заблокировать
  • почтовый сервер обслуживает пользователей по всей Северной Америке, поэтому я не могу просто заблокировать соединения с неизвестных IP-адресов
  • примеры плохих команд: http://pastebin.com/4QUsaTXT

Я не уверен, что кто-то пытается сделать с помощью этой атаки, кроме меня раздражают.

есть идеи, о чем идет речь, или как эффективно с этим бороться?

отметка
источник
1
Поскольку этот трафик не имеет ничего общего с smtp, мне интересно, может ли брандмауэр 7-го уровня сбросить его, прежде чем он достигнет sendmail.

Ответы:

4

Вот, по крайней мере, один из вариантов для подключения этих соединений после того, как они начинают выплевывать ошибки. Действительные и хорошо ведущие себя клиенты никогда не должны попадать в этот бред.

dnl # New option in v8.14.0
dnl # Override default limit (of 20) NOOPs (invalid or unsupported SMTP
dnl #   commands) before daemon will throttle connection by slowing
dnl #   error message replies (similar to "confBAD_RCPT_THROTTLE")
define(`MaxNOOPCommands', `5')dnl

Вы также можете использовать функцию GreetPause, которая будет отклонять этих клиентов, поскольку они вряд ли соблюдают паузу. Вы можете прочитать больше об этом здесь: http://www.deer-run.com/~hal/sysadmin/greet_pause.html

dnl # New feature in v8.13.1 (not listed in Companion)
dnl # Set time in milliseconds before sendmail will present its banner
dnl #   to a remote host (spammers won't wait and will already be
dnl #   transmitting before pause expires, and sendmail will
dnl #   refuse based on pre-greeting traffic) 5000=5 seconds
dnl # NOTE: Requires use of FEATURE(`access_db') and "GreetPause" entries
dnl #       in access table
FEATURE(`greet_pause',`5000')dnl
blueben
источник
1

Я бы установил fail2ban и заблокировал первую недопустимую команду.

Adamo
источник