На моем почтовом сервере возникла проблема с блокировкой злоумышленника, который пытается подключиться к нашему почтовому серверу через Telnet. но я не могу его заблокировать, ip будет продолжать меняться, даже если мы заблокируем по ip. похоже он пытается telnet вместо обычной транзакции smtp. Они не могут войти на наш почтовый сервер, но это транзакция каждую секунду. есть ли способ заблокировать это / остановить? ниже сообщение об ошибке:
81.198.214.48 [0968] 16:14:01 Connected, local IP=xx.xx.xx.xx:25
81.198.214.48 [0968] 16:14:01 >>> 220 mymailserver.com ESMTP IceWarp 11.0.1.2; Fri, 13 Feb 2015 16:14:01 +0800
81.198.214.48 [0968] 16:14:02 <<< EHLO ylmf-pc
81.198.214.48 [0968] 16:14:02 >>> 250-mymailserver.com Hello ylmf-pc [81.198.214.48], pleased to meet you.
81.198.214.48 [0968] 16:14:03 <<< AUTH LOGIN
81.198.214.48 [0968] 16:14:03 >>> 334 VXNlcx5hbWU6
81.198.214.48 [0968] 16:14:04 <<< aGFua3M=
81.198.214.48 [0968] 16:14:04 >>> 334 UGFzcxdvcmQ6
81.198.214.48 [0968] 16:14:04 <<< ODg4ODg4
81.198.214.48 [0968] 16:14:24 >>> 535 5.7.8 Authentication credentials invalid
81.198.214.48 [0968] 16:14:24 *** <> <> 0 0 00:00:00 INCOMPLETE-SESSION
81.198.214.48 [0968] 16:14:24 Disconnected
Этот идиосинкразический и неверный аргумент EHLO «ylmf-pc» является известным отпечатком широко распространенного ботнета, рассылающего спам, известного как «PushDo» (а иногда и «Cutwail»). Как показано в вашей расшифровке стенограммы, он в основном пытается угадать пароль для аутентификации и отправки почты через ваш сервер. Уберечь его от рассылки спама на ваш сервер или через него очень просто благодаря трем характеристикам:
Фактически он отправляет команду EHLO до того, как получит SMTP-баннер, отправленный целевым MTA, поведение, которое любой современный MTA, который стоит использовать (то есть, возможно, не Exchange или QMail), может определить как окончательный признак нежелательного, чистого спам-клиента. Ни один законный SMTP-клиент не демонстрирует такого «быстро говорящего» поведения, поскольку он нарушает базовую функциональность SMTP.
Строка «ylmf-pc» не является допустимым аргументом EHLO, потому что это не полное имя хоста или литерал IP-адреса в квадратных скобках. Ни один законный клиент SMTP никогда не будет использовать этот аргумент. Как и в случае с быстрым разговором, любой достойный MTA может быть настроен на отклонение почты от клиентов с использованием изначально недопустимого аргумента EHLO.
Почти все зараженные участники PushDo / Cutwail перечислены в бесплатном DNSBL zen.spamhaus.org в виде компонента «CBL». Даже если вы не можете заблокировать из-за быстрого разговора или использования поддельного аргумента EHLO, вы должны иметь возможность блокировать на основе DNSBL, и делать это с помощью списка Zen почти всегда является хорошим выбором.
Предотвратить прием вашего MTA любого предлагаемого спама, следовательно, должно быть относительно легко с хорошо настроенным MTA, но как именно это сделать с MTA "IceWarp", который вы, кажется, используете, лучше всего задать поставщику. Сложнее справиться с чистым объемом трафика, который может быть задействован, поскольку один зомби PushDo может попытаться открыть несколько сотен одновременных сеансов и вернуться несколько раз в день, в то время как десятки разных зомби могут активно пытаться атаковать один сервер в любой день. Варианты смягчения последствий, которые могут исходить от MTA; например, последние версии Postfix могут быть настроены так, чтобы просто отбрасывать быстро говорящих клиентов в одностороннем порядке (используя его функцию «постэкран») вместо того, чтобы вежливо подыгрывать им на протяжении всего разговора SMTP, и Sendmail можно настроить аналогичным образом. Чтобы еще больше уменьшить проблему, вы можете использовать инструмент анализа журналов, такой как fail2ban (описанный в предыдущем ответе), для блокировки трафика с определенных IP-адресов. Если вы выберете этот вариант, обратите внимание, что заражение PushDo, как правило, продолжается в течение многих дней, поэтому вы не должны удалять блоки быстрее, чем примерно через неделю.
Недействительное имя злоумышленника (ylmf-pc
), потому что это не полное доменное имя и не разрешается через DNS, поэтому вы можете легко избавиться от него раньше, заблокировав его после отправки недопустимого EHLO.
Чтобы сделать это, например, с постфиксом:
smtpd_helo_restrictions = permit_mynetworks, check_helo_access reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname, reject_unknown_helo_hostname, permit
Но, пожалуйста, также прочтите документацию о smtpd_helo_restrictions
Затем вы можете использовать fail2ban, чтобы заблокировать его после того, как поступили некоторые из этих недопустимых запросов. Уже есть пример постфикса, включенного fail2ban, но я не знаю, включает ли он также правила для ошибок HELO. При необходимости их можно добавить.
jail.conf
:
[postfix-ddos]
enabled = true
port = smtp,ssmtp
filter = postfix-helo
logpath = /var/log/mail.log
maxretry = 5
filter.d/postfix-helo
:
[INCLUDES]
before = common.conf
[Definition]
failregex = reject: RCPT from (.*)\[<HOST>\]: 504 5.5.2
ignoreregex =
Этого вполне достаточно, чтобы заблокировать этих детишек. Вы можете отключить настройку maxretry в fail2ban, чтобы мгновенно заблокировать атаку, хотя я не рекомендую этого делать.
Одна из других проблем с атаками CutWail заключается в том, что, хотя легко остановить на порту 25, как обычно, это трафик MTA-> MTA, становится труднее адресовать его на порту 587, где законные клиенты могут пытаться подключиться. Хотя IP-адреса могут быть на многих RBL, таких как SpamHaus и SpamRats, поскольку клиенты используют динамические IP-адреса для подключения, общие соединения и т. Д., Просто потому, что IP указан в списке, не означает, что соединение плохое. Однако для того, чтобы атаки методом грубой силы были эффективными, обычно требуется много подключений, и вы можете смягчить это, ограничив последовательные попытки, особенно если баннер (HELO / EHLO) - это 'ylmf-pc', но вы должны знать, что все инструмент, который вы используете для этого, убедитесь, что блокировка временная. И хотя ботнет скоро, вероятно, выберет другой HELO, в то же время блокировка всех попыток, которые представляют этот EHLO на порту 587, вероятно, лучше всего.