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

Как я могу остановить BACKSCATTER с помощью qmail?

У меня есть Linux-сервер, действующий как виртуальный хост для хостинга домена. Он работает под управлением CentOS и Parallels Plesk 9.x. Независимо от следующего, СПАМ продолжает поступать со скоростью 1-3 раза в секунду.

Объяснение проблемы

Служба xinetd прослушивает SMTP-соединения и перенаправляет на qmail-smtpd. Служба qmail только обрабатывает очередь, но не контролирует поступающие в нее сообщения ... поэтому остановка не имеет никакого эффекта. Если вы остановите xinetd И qmail, а затем завершите все открытые процессы qmail-smtpd, весь почтовый поток ИГОДНО остановится.

Проблема в том, что qmail-smtpd недостаточно умен, чтобы проверять действующие почтовые ящики на локальном хосте перед тем, как принять почту. Таким образом, он принимает плохую почту с поддельным адресом ответа, который обрабатывается в очереди qmail. Qmail не может доставлять сообщения локально и возвращается на поддельный адрес для ответа.

Мы полагаем, что исправление состоит в том, чтобы исправить процесс qmail-smtpd, чтобы дать ему возможность проверять наличие локальных почтовых ящиков ПЕРЕД принятием сообщения. Проблема в том, что когда мы пытаемся скомпилировать патч chkuser, мы сталкиваемся с ошибками из-за панели управления Plesk.

Кто-нибудь знает, что мы могли бы сделать по-другому или лучше?

Другие вещи, которые до сих пор НЕ работали:

Вещи, которые МОГУТ работать, но имеют сложности:

Если я не удаляю СПАМ из очереди исходящей почты каждую ночь, он забивается миллионами СПАМов и отключит ИСХОДЯЩИЕ почтовые службы.

Вы можете заменить стандартный qmail-smtpd на qpsmtpd. Затем вы можете использовать плагин check_badrcptto для проверки адреса получателя и отклонения электронных писем, если он недействителен.

Также обратите внимание на этот полезный патч:

http://qmail.jms1.net/patches/validrcptto.cdb.shtml

Использует файл cdb для вывода списка действительных получателей. Может быть хорошей альтернативой использованию qpsmtpd.

Как давний администратор qmail, я решил использовать этот патч 'realrcpto' (http://code.dogmap.org./qmail/#realrcptto), поскольку он лучше всего интегрируется с существующими файлами dot-qmail моих пользователей и не требует обслуживания других файлов конфигурации или баз данных.

(Если бы только сервер защиты от спама, который мы сейчас используем перед qmail, мог выполнять проверку RCPT через SMTP ... Вздох!)

я получил ответ от UCE Protect:

Персонал нашей службы поддержки ответил на ваш запрос в службу поддержки №340135.

Я не верю, что QMAIL способен на это, но если вы можете кодировать на C, тогда не должно быть большого труда жестко закодировать быстрый и грязный 1 лайнер внутри той части, которая выполняет обработку DNSBL, и затем скомпилировать ее:

  1. Вы должны найти переменные, содержащие конверт из (Мы называем это $MF в нашем примере) 2. Вы должны найти переменную, которая читает DNSBL-Names из вашей конфигурации (в нашем примере мы называем ее $ DNSN) 3. Вы должны найти цикл внутри программы, который проходит через настроенный DNSBLS (мы предполагаем, что совпадения нет так как NEXT-LIST в нашем примере)

Теперь вставьте строку вроде следующей ПЕРЕД обычным DNSBL CHECK строка в этом разделе, которая выталкивает ips.backscatterer из теста, если Mail from НЕ ПУСТОЙ SENDER:

If {$DNSN == "ips.backscatterer.org" && $MF != "<>") then NEXT-LIST

Это должно привести к тому, что ips.backscatterer.org Не будет спрашивать, пока MAIL FROM не пусто.

Возможно, в Qmail есть прием получше, но я действительно не знаю.

-

Мы надеемся, что этот ответ достаточно ответил на ваши вопросы. В противном случае, пожалуйста, не отправляйте другое письмо. Вместо этого ответьте на это письмо.

-

Технический директор UCEPROTECT-Network http://www.uceprotect.net

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

Я не знаком с Plesk, но стандартная конфигурация qmail с использованием tcpserver вместо xinetd позволяет вставлять rblsmtpd перед qmail-smtpd. Затем вы можете указать rblsmtpd на одну из служб черного списка, и это должно уменьшить количество принимаемого вами спама.

Приложив немного больше усилий, вы можете устранить спам, который продолжает поступать, проанализировать IP-адреса отправляющего сервера и создать свой собственный черный список с помощью rbldns. Это помогло уменьшить количество принимаемого спама, но не устранило его полностью.

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

Борьба со спамом - это боль! Удачи!

Ознакомьтесь с действующей функцией проверки пользователей в версии Magic Mail с открытым исходным кодом http://www.linuxmagic.com/opensource/magicmail/magic-smtpd/magic-smtpd-0.8.4-2.tar.gz

Я использую его вместе со SpamDyke, чтобы отбрасывать более 95% писем, которые попадают на сервер. server_args = -Rt0 / var / qmail / bin / spamdyke --config-file /etc/spamdyke.conf / var / qmail / bin / relaylock / var / qmail / bin / magic_mail

Действительная проверка пользователя может быть реализована внешним скриптом. Я использую сценарий bash, который проверяет / var / qmail / users / assign на наличие почтового идентификатора.

Magic mail - это двоичный файл, а не скрипт вроде qpsmtpd, поэтому он не подвержен скачкам нагрузки на сервере с высоким трафиком.

Надеюсь это поможет.

[РЕДАКТИРОВАТЬ]

Сегодня я обнаружил, что Plesk начиная с версии 7.5 изначально поддерживает проверку допустимых пользователей на уровне SMTP-соединения. Плагин smtp находится в / var / qmail / plugins / chkrcptto. Чтобы это сработало, вам нужно всего лишь настроить отклонение писем несуществующему пользователю в настройках почты каждого домена.

Если спам попадает только в один или два домена, поговорите со своим клиентом и убедитесь, что этот параметр включен. Включенное таким образом доменное имя должно быть указано в / var / qmail / control / rejectnonexist.