Откуда эти "одноточечные" сбои SMTP-соединения?

Я использую почтовый сервер на основе postfix. Есть много сбоев подключения, как это:

Transcript of session follows.

Out: 220 hostname.tld ESMTP Postfix
In:  .
Out: 502 5.5.2 Error: command not recognized
In:
Out: 500 5.5.2 Error: bad syntax

Session aborted, reason: lost connection

Эти соединения происходят с разных IP-адресов, но в большинстве случаев они составляют от нескольких десятых до сотен попыток на один IP-адрес.

Что вызывает эти связи? Если это были вирусы, черви или бот-сети, которые "стучатся в дверь", то почему так много раз на хост? Или отправляет одну точку как тест функциональности, и мой сервер реагирует неправильно? Опять же, множественные попытки не имеют смысла. И это далеко от любой шкалы DoS.

Может быть, некоторые из вас знают, что там происходит?

2 ответа

Точка используется для завершения сообщения электронной почты в протоколе SMTP: пустая строка (CR, LF), затем одиночная точка и снова новая строка с CR и LF. Но это явно не тот случай.

Чтобы выяснить, являются ли эти SMTP-клиенты просто ботнетами или законными отправителями, вы можете взглянуть на PTR их IP-адресов, они оба зарегистрированы. Если PTR является общим от поставщика, что-то вроде 192-0-2-1.broadband.customers.example.com, Тогда вы действительно можете игнорировать это и использовать fail2ban, чтобы заблокировать их.

HELO должен соответствовать PTR, по крайней мере, это лучшая практика. Но если они не похожи, это снова, вероятно, ботнет.

В другом случае кто-то может сканировать ваш сервер и проверять протоколы и шифры TLS.


Чтобы заблокировать клиентов после таких запросов, вы можете использовать fail2ban, который временно блокирует IP после слишком большого количества неверных запросов.

filter.d/postfix-syntax.conf

[INCLUDES]
before = common.conf

[Definition]
failregex = reject: RCPT from (.*)\[<HOST>\]: 502 5.5.2
            reject: RCPT from (.*)\[<HOST>\]: 500 5.5.2
ignoreregex =

И добавьте это к вашему jail.conf:

[postfix-syntax]
enabled  = true
port     = smtp,ssmtp,submission
filter   = postfix-syntax
logpath  = /var/log/mail.log
maxretry = 10

Если вы открыли свой почтовый сервер в Интернете, ожидайте, что большинство подключений будут от спам-ботов и других незаконных отправителей.

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

Я использую несколько тестов для проверки законности отправителей:

  • IP не указан в zen.spamhaus.org, (Включает в себя широкий выбор динамических IP-адресов.)
  • У IP есть DNS PTR который проходит rDNS. Редко законная почта не имеет PTR запись и rDNS для IP-адреса почти всегда проходит.
  • Имя в команде HELO/EHLO - полное доменное имя (FQDN), которое переходит в rDNS. За исключением одной крупной корпорации, это почти всегда проходит. Обычно это имя совпадает с используемым для IP-адреса.
  • Имя из записи PTR и команды HELO проходят проверку SPF HELO напрямую или для своего родительского домена. Домены без записей SPF также получают пропуск, но не получают доверия. Это блокирует спам-ботов, которые идентифицируют себя, используя домен большой организации.

Я хотел бы использовать DKIM для проверки, но большой процент отправителей неправильно публикует свой открытый ключ в DNS.

Если вы не можете запустить эти тесты, пока соединение все еще открыто, не отправляйте сообщение, пока вы не убедитесь, что отправитель не был подделан. (Я действительно ценю все предложения денег от ФБР, ООН, банков и т. Д., Но они все еще не доставили.)

Другие вопросы по тегам