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

Запустите SpamAssassin на virtual_alias в Postfix

С тех пор, как я начал использовать Postfix virtual_alias_maps для пересылки всей своей электронной почты в Gmail, я получаю намного больше спама, чем когда я доставил почту локально и использовал SpamAssassin / spamd для ее фильтрации. Я уже использую smtpd_recipient_restrictions для стандартной фильтрации спама.

smtpd_recipient_restrictions =
                reject_invalid_hostname,
                reject_non_fqdn_hostname,
                reject_non_fqdn_sender,
                reject_non_fqdn_recipient,
                reject_unknown_sender_domain,
                reject_unauth_pipelining,
                permit_mynetworks,
                reject_unauth_destination,
                reject_rbl_client zen.spamhaus.org,
                reject_rbl_client list.dsbl.org,
                reject_rbl_client korea.services.net,
                permit

Есть ли способ запустить почту через SpamAssassin раньше virtual_alias_maps пересылка?

Вы не описываете, как вы выполняете фильтрацию SA в данный момент, но если вы не пропускаете через нее виртуальную почту, я предполагаю, что вы не используете content_filter, как обычно подключили. Вики SpamAssassin, кажется, довольно хорошо описывает эту настройку, с первого взгляда: http://wiki.apache.org/spamassassin/IntegratedSpamdInPostfix

Удаленный MTA отправляет почту в Postfix через SMTP. Список получателей представляет собой серию команд RCPT. Каждая команда RCPT добавляет один адрес получателя. Когда Postfix получает адрес получателя в virtual_alias_maps, он заменяет адрес результатом поиска virtual_alias_maps. Это происходит в вашем процессе smtpd (8).

У вас есть несколько вариантов подключения выбранных вами механизмов фильтрации спама.

Вы можете использовать SpamAssassin в расширенном списке получателей. Рекомендуемый механизм для этого - использовать content_filter. Видеть http://www.postfix.org/FILTER_README.html для подробностей. Наиболее часто рекомендуемый фильтр http://www.ijs.si/software/amavisd/

У Mailscanner есть проблемы, потому что он просматривает файл очереди напрямую, а не использует стандартные механизмы. Он может сломаться и сломается при обновлении Postfix.

Второй, менее рекомендуемый вариант - использовать механизм предварительной фильтрации через прокси-сервер SMTP (http://www.postfix.org/SMTPD_PROXY_README.html) или через milter (http://www.postfix.org/MILTER_README.html).

Если вы хотите фильтровать сообщения, идущие только определенным получателям, используйте цель FILTER через check_recipient_access. Видеть http://www.postfix.org/access.5.html

Если вы хотите запустить SpamAssassin на исходном адресе, я бы использовал подход content_filter, используя amavisd-new. Поместите свои virtual_alias_maps в smtpd повторной инъекции, используя -ovirtual_alias_maps в записи master.cf. Возможно, вам потребуется добавить карту check_recipient_access в smtpd_recipient_restrictions, возвращающую OK для ваших действительных адресов в main.cf.

Сильно зависит от вашей ОС и / или дистрибутива, а также от того пользователя, от имени которого вы хотите запускать SA и т. Д. И т. Д.

В master.cf поместите что-то вроде:

# aa.bb.cc.dd == your IP
# example.com == your hostname

aa.bb.cc.dd:smtp      inet    n       -       n       -       -       smtpd
    -o content_filter=spamassassin
    -o myhostname=example.com
    -o smtp_bind_address=aa.bb.cc.dd

# (note content_filter)
#
# -snip-
#

spamassassin unix -     n       n       -       -       pipe
  user=sa argv=/usr/bin/spamc -e /etc/alternatives/mta -oi -f ${sender} ${recipient}

# change 'user=sa' to whatever user you have setup.
# change '/etc/alternatives/mta' to whatever you're using to put
# mail back into the queue. (eg: /usr/local/sbin/sendmail )
# change /usr/bin/spamc to the location of your spamc binary, obviously. :)