我最近在我的邮件服务器中添加了垃圾邮件刺客,因为黑名单不够有效。
澄清:我使用Postfix作为SMTP + Dovecot作为LDA,后置灰色用于灰度列表,postfwd用于速率限制。
添加垃圾邮件刺客,我使用指南:https://www.digitalocean.com/community/tutorials/how-to-configure-a-mail-server-using-postfix-dovecot-mysql-and-spamassassin,即使它工作,我不明白为什么它这样做。困扰我的是master.cf:
smtp inet n - y - - smtpd
-o content_filter=spamassassin
dovecot unix - n n - - pipe
flags=DRhu user=virtual:virtual argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -m ${extension}
spamassassin unix - n n - - pipe
user=debian-spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}我不明白为什么会突然牵涉到sendmail。有什么办法能更好地安排这件事吗?
这也是我的postconf -n,以防需要它。
append_at_myorigin = yes
biff = no
broken_sasl_auth_clients = yes
default_destination_concurrency_limit = 1
delay_warning_time = 8h
disable_vrfy_command = yes
dovecot_destination_concurrency_limit = 1
dovecot_destination_recipient_limit = 1
enable_original_recipient = yes
local_destination_concurrency_limit = 1
mailbox_size_limit = 100000000
maximal_queue_lifetime = 6d
message_size_limit = 52428800
myhostname = REDACTED
myorigin = /etc/mailname
smtp_helo_name = REDACTED
smtp_use_tls = yes
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated
smtpd_delay_reject = no
smtpd_hard_error_limit = 10
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname
smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:10040 permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unlisted_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_rbl_client zen.spamhaus.org=127.0.0.[2..11], reject_rbl_client bl.spamcop.net, reject_rbl_client cbl.abuseat.org, check_policy_service inet:127.0.0.1:10023
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unlisted_recipient, reject_unauth_destination, reject_unauth_pipelining
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = REDACTED
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain
smtpd_soft_error_limit = 5
smtpd_tls_cert_file = REDACTED
smtpd_tls_dh1024_param_file = /etc/ssl/dhparams.pem
smtpd_tls_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDC3-SHA, KRB5-DE5, CBC3-SHA
smtpd_tls_key_file = REDACTED
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
strict_rfc821_envelopes = yes
tls_random_source = dev:/dev/urandom
virtual_alias_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
virtual_transport = dovecot发布于 2018-03-27 13:03:04
当一个商标非常成功的时候,它可以成为它最出名的东西的通用名称。在Linux和Unix系统中,/usr/sbin/sendmail命令也发生了类似的情况。
安装后缀时,/usr/sbin/sendmail实际上不是Sendmail --它只是Postfix的一个组件,它提供了与Sendmail相同的接口(即相同的选项和管道约定)。
Postfix是作为Sendmail的替代品而设计的。结果是,许多程序将通过使用众所周知的选项调用/usr/sbin/sendmail来与邮件子系统进行交互,并将大量的信息传递给它。因此,后缀也必须支持这一点。
当使用垃圾邮件时,必须将消息传递给spamc以检测垃圾邮件。由于它将向消息中添加至少几个标头,指示已执行垃圾邮件检查及其结果(如果消息是垃圾邮件,则在消息内容的开头发出通知),因此spamc必须将消息传递回后缀以进行最终传递。
请注意,后缀将“管道”视为transport方法,或者换句话说,如果消息被发送到spamc,则后缀将考虑在此完成其工作。因此,垃圾邮件检查的消息需要重新注入回后缀的处理-这就是sendmail命令所做的。
content_filter关键字的功能比您预期的要少-它只是告诉后缀将smtpd传入的消息传递给特定的传输方法。它不会自动期待任何内容返回:如果content_filter传输方法吞并消息而没有输出,则后缀的工作就完成了。如果在消息通过筛选器后还剩下什么,那么过滤器的工作就是让它再次返回到处理。
至少还有一种方法可以达到同样的目的。,但在垃圾邮件检查之后,它将使用sendmail命令重新注入邮件。
如果您确信后缀只处理传入的邮件,您可能可以配置spamc将消息直接传递给Dovecot。
发布于 2018-03-27 12:59:47
没有涉及到sendmail。这只是一个后缀可执行文件,出于历史原因和兼容性,它被称为这样。
请看手册页:
SENDMAIL(1) General Commands Manual
NAME
sendmail - Postfix to Sendmail compatibility interface
SYNOPSIS
sendmail [option ...] [recipient ...]
[...]编辑:(在你的评论后添加)
您可以用dovecot来更改它,但它只适用于本地交付。您可以检查垃圾邮件也发出电子邮件,他们将不会工作的多维柯。完全免责声明:我没有检查您的所有配置:)
https://unix.stackexchange.com/questions/433828
复制相似问题