反垃圾邮件需通过多层次防御策略实现,以下是Debian系统中针对Postfix的常见配置方法,涵盖灰名单、内容过滤及辅助规则:
灰名单通过暂时拒绝未认证的陌生邮件,迫使垃圾邮件发送者(通常无持久连接能力)放弃投递,合法邮件会在延迟后重新发送并通过。
sudo apt-get update && sudo apt-get -y install postgrey
/etc/default/postgrey文件,修改POSTGREY_OPTS参数,设置延迟时间(单位:秒,建议60-300秒):POSTGREY_OPTS="-inet=127.0.0.1:10023 -delay=60"
sudo systemctl start postgrey
sudo systemctl enable postgrey
/etc/postfix/main.cf,在smtpd_recipient_restrictions参数中添加Postgrey检查:smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination,
check_policy_service inet:127.0.0.1:10023
sudo postfix reload
SpamAssassin通过分析邮件内容(如关键词、链接、发件人信誉等),为邮件打分,超过阈值的标记为垃圾邮件或直接拒收。
sudo apt-get update && sudo apt-get -y install spamassassin
/etc/spamassassin/local.cf,取消注释或添加:enable_html_validation 1
/etc/spamassassin/local.cf中添加或修改:required_score 5.0 # 分数越高,判定为垃圾邮件的标准越严格
/etc/postfix/main.cf,添加内容过滤规则:content_filter = spamassassin
编辑/etc/postfix/master.cf,在文件末尾添加以下内容(定义过滤服务):spamassassin unix - n n - - pipe
user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
sudo postfix reload
sudo systemctl restart spamassassin
/etc/postfix/main.cf中配置,阻止黑名单IP/域或允许白名单IP/域:smtpd_sender_restrictions =
check_sender_access hash:/etc/postfix/sender_blacklist,
permit_mynetworks,
permit_sasl_authenticated
创建/etc/postfix/sender_blacklist文件,添加黑名单内容(格式:domain_or_ip REJECT),然后生成哈希数据库:sudo postmap /etc/postfix/sender_blacklist
header_checks功能,编辑/etc/postfix/main.cf添加:header_checks = regexp:/etc/postfix/header_checks
创建/etc/postfix/header_checks文件,添加规则(如拒绝含“免费中奖”的主题):/^Subject:.*(免费中奖|恭喜发财)/ REJECT 垃圾邮件主题
/etc/postfix/main.cf中限制附件类型或大小:smtpd_milters = inet:localhost:8891 # 需配合ClamAV等杀毒软件
message_size_limit = 10485760 # 限制附件大小为10MB
main.cf、master.cf)。/var/log/mail.log),分析过滤效果并调整策略。main.cf中配置reject_rhs_domain_from等参数)。通过以上步骤,可在Debian系统的Postfix邮件服务器上建立灰名单+内容过滤+辅助规则的多层次反垃圾邮件体系,有效降低垃圾邮件接收率。