Назад | Перейти на главную страницу

Клиент в черном списке: почему Postfix не отклонил это письмо?

Ответ

Лучший ответ был на postfix-users список рассылки и он кратко изложен здесь для пользователей serverfault.

Если код ответа 4xx, он предлагает другому почтовому серверу повторить попытку. Похоже, что IP-адрес используется спамером «на снегоступах», что затрудняет обнаружение. Эти IP-адреса появляются и исчезают из черного списка, поскольку операторы черного списка (в данном случае Spamhaus) работают над противодействием тактике снегоступов. Это продолжающаяся глобальная гонка вооружений. Отклонение почты с IP-адресов, для которых нет записей PTR, значительно уменьшает размер локального поля битвы.

Исходный вопрос

Это зарегистрировано на малоиспользуемом персональном сервере Postfix. Я считаю, что для отклонения писем на основании приведенных ниже заголовков должно быть две причины, но результатом будет доставка во INBOX. Ниже приведены выдержки из соответствующей конфигурации Postfix, а в конце - мои вопросы.

Журнал Exercerpt

Jun  5 09:58:37 x2 postfix/smtpd[8440]: connect from unknown[157.52.162.99]
Jun  5 09:58:37 x2 postfix/smtpd[8440]: NOQUEUE: reject: RCPT from unknown[157.52.162.99]: 454 4.7.1 Service unavailable; Client host [157.52.162.99] blocked using zen.spamhaus.org; from=<newsletter@vacque.com> to=<XXX@XXX> proto=ESMTP helo=<mr99.dgnmkt.com>
Jun  5 09:58:37 x2 postfix/smtpd[8440]: disconnect from unknown[157.52.162.99]
Jun  5 10:01:57 x2 postfix/anvil[8394]: statistics: max connection rate 1/60s for (smtp:198.2.130.200) at Jun  5 09:51:57
Jun  5 10:01:57 x2 postfix/anvil[8394]: statistics: max connection count 1 for (smtp:198.2.130.200) at Jun  5 09:51:57
Jun  5 10:01:57 x2 postfix/anvil[8394]: statistics: max cache size 2 at Jun  5 09:55:18
Jun  5 10:06:39 x2 postfix/smtpd[8507]: connect from unknown[157.52.162.99]
Jun  5 10:06:40 x2 policyd-spf[8513]: None; identity=helo; client-ip=157.52.162.99; helo=mr99.dgnmkt.com; envelope-from=newsletter@vacque.com; receiver=XXX@XXX
Jun  5 10:06:40 x2 policyd-spf[8513]: Pass; identity=mailfrom; client-ip=157.52.162.99; helo=mr99.dgnmkt.com; envelope-from=newsletter@vacque.com; receiver=XXX@XXX
Jun  5 10:06:40 x2 postfix/smtpd[8507]: 49D01C1EDE: client=unknown[157.52.162.99]
Jun  5 10:06:40 x2 postfix/cleanup[8514]: 49D01C1EDE: message-id=messageid-3-M3w1NDIzfDU4fDM3ODk3OTR8eWxlYmF5Y2EwNEBzZmluYS5jb218U2F0LCAwNCBKdW4gMjAxNiAwNToxNDowNyAtMDcwMA==
Jun  5 10:06:40 x2 opendkim[1220]: 49D01C1EDE: [157.52.162.99] [157.52.162.99] not internal
Jun  5 10:06:40 x2 opendkim[1220]: 49D01C1EDE: not authenticated
Jun  5 10:06:43 x2 opendkim[1220]: 49D01C1EDE: no signature data
Jun  5 10:06:43 x2 postfix/qmgr[1337]: 49D01C1EDE: from=<newsletter@vacque.com>, size=91945, nrcpt=1 (queue active)
Jun  5 10:06:43 x2 postfix/smtpd[8507]: disconnect from unknown[157.52.162.99]
Jun  5 10:06:43 x2 dovecot: lmtp(8516): Connect from local
Jun  5 10:06:43 x2 dovecot: lmtp(8516, YYY@XXX): nhVjEfMxVFdEIQAAzX/GXw: msgid=messageid-3-M3w1NDIzfDU4fDM3ODk3OTR8eWxlYmF5Y2EwNEBzZmluYS5jb218U2F0LCAwNCBKdW4gMjAxNiAwNToxNDowNyAtMDcwMA==: saved mail to INBOX
Jun  5 10:06:43 x2 postfix/lmtp[8515]: 49D01C1EDE: to=<YYY@XXX>, orig_to=<XXX@XXX>, relay=XXX[private/dovecot-lmtp], delay=3.6, delays=3.5/0.01/0.02/0.05, dsn=2.0.0, status=sent (250 2.0.0 <YYY@XXX> nhVjEfMxVFdEIQAAzX/GXw Saved)
Jun  5 10:06:43 x2 dovecot: lmtp(8516): Disconnect from local: Successful quit
Jun  5 10:06:43 x2 postfix/qmgr[1337]: 49D01C1EDE: removed

Примечания к журналу

Заголовки письма, которое должно быть отклонено

Return-Path: <newsletter@vacque.com>
Delivered-To: <YYY@XXX>
Received: from XXX
by XXX (Dovecot) with LMTP id nhVjEfMxVFdEIQAAzX/GXw
for <YYY@XXX>; Sun, 05 Jun 2016 10:06:43 -0400
Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=157.52.162.99; helo=mr99.dgnmkt.com; envelope-from=newsletter@vacque.com; receiver=XXX@XXX
Received: from mr99.dgnmkt.com (unknown [157.52.162.99])
by XXX (Postfix) with ESMTP id 49D01C1EDE
for <XXX@XXX>; Sun,  5 Jun 2016 10:06:39 -0400 (EDT)
Received: from stormmta (unknown [157.52.162.99])
by mr99.dgnmkt.com (Postfix) with ESMTP id DD84AE61F8A
for <XXX@XXX>; Sun,  5 Jun 2016 08:16:33 -0700 (PDT)
From:=?UTF-8?B?VG1hcnQuY29t?=<newsletter@e.ailander.com>
To:XXX@XXX

Конфигурация Postfix

Соответствующие параметры main.cf

smtpd_recipient_restrictions =
  permit_mynetworks
  permit_sasl_authenticated
  reject_unauth_destination
  reject_invalid_hostname
  reject_non_fqdn_hostname
  reject_non_fqdn_sender
  reject_non_fqdn_recipient
  reject_unknown_sender_domain
  reject_unknown_recipient_domain

  check_recipient_access hash:/etc/postfix/recipients
  # used to have Postgrey here
  # check_policy_service inet:127.0.0.1:10023
  reject_rbl_client zen.spamhaus.org
  check_policy_service unix:private/policy-spf
  permit

smtpd_restriction_classes =
  ebay

ebay =
  check_reverse_client_hostname_mx_access pcre:/etc/postfix/ebay.pcre

/ и т. д. / постфикс / получатели

XXX@XXX ebay

ebay.pcre

/.ebay.com$/ DUNNO
/(.*)/  REJECT Not allowed to relay from $1.  Please use eBay's contact form if you have legit communication for this email address.

Мои комментарии и вопросы

Я назначаю псевдонимы, чтобы изолировать источники почты. Один из таких псевдонимов присвоен eBay. eBay передает адрес электронной почты покупателя продавцам. Не все продавцы уважают коммуникативные предпочтения покупателей. Мое решение - ограничить электронные письма, принимаемые на псевдониме eBay, сообщениями от eBay и отклонить весь шум.

Во-первых, я подумал, что это письмо должны были отклонить:

  check_recipient_access hash:/etc/postfix/recipients

потому что после /etc/postfix/recipients применяются ограничения ebay и ebay.pcre поймал бы его на второй строчке.

Во-вторых, я подумал, что это письмо должны были отклонить:

  reject_rbl_client zen.spamhaus.org

как попытка несколькими минутами ранее.

Очевидно, то, что я ожидал, не произошло. Зачем? И как это исправить?

Если вы хотите заблокировать IP-адрес отправляющего клиента, вам нужно будет настроить RBL в ...

smtpd_client_restrictions = permit_mynetworks,
        permit_sasl_authenticated,
        reject_unauth_destination,
        reject_rbl_client zen.spamhaus.org,
        reject_rbl_client bl.spamcop.net,
        reject_rbl_client cbl.abuseat.org,
        permit

Последовательность в ограничениях Postfix всегда

  • smtpd_helo_restrictions
  • smtpd_client_restrictions
  • smtpd_sender_restrictions
  • smtpd_recipient_restrictions

Насколько я понимаю, похоже, что Spamhouse во второй раз ответил иначе. Т.е. Первый ответ был «есть спамер», но через 8 минут ответ был «ничего особенного». Почему был дан ответ, сказать сложно.

Если у вас есть доступ к журналам запросов DNS-сервера, которые настроены на разрешение DNS-запросов вашего почтового сервера, вы можете найти там некоторые подсказки. Например, Spamhouse предоставляет услуги в соответствии со своей политикой, которая устанавливает некоторые ограничения на количество запросов в час, в месяц и так далее, которые вы можете делать. На этот раз они даже могут оценить, кому они предоставляют услуги, и не давать содержательных ответов тем, кого считают спамерами.

Возможно, вы отправите этот журнал прямо в Spamhouse, и они будут говорить сами за себя.

Но! Трудно сказать точно, не увидев подробного уровня отладки 2, где Postfix регистрирует информацию о запросах для каждого оператора в каждой опции XXX_restriction. Там же был бы записан точный ответ рубля.

Кроме того, вы неверно указали конфигурацию Postfix. Вы всегда должны давать полный вывод команды "postconf". Это то, что разработчики Postfix требуют в своих списках рассылки, и для этого есть причины.