反垃圾邮件需通过多层次防御策略实现,以下是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邮件服务器上建立灰名单+内容过滤+辅助规则的多层次反垃圾邮件体系,有效降低垃圾邮件接收率。