С тех пор, как я начал использовать 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. :)