邮件审核的核心是通过多层过滤机制识别并处理垃圾邮件、恶意邮件或不符合规则的邮件,确保邮件服务器的安全性与合规性。以下是Debian环境下常用的邮件审核实现方案:
灰名单通过“延迟首次接收”机制,拦截不符合SMTP规范的垃圾邮件(如未正确配置的邮件服务器)。
sudo apt-get update && sudo apt-get -y install postgrey
/etc/default/postgrey,设置POSTGREY_OPTS参数(延迟60秒):POSTGREY_OPTS="-inet=127.0.0.1:10023 -delay=60"
sudo systemctl start postgrey
sudo systemctl enable postgrey
编辑Postfix主配置文件/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
重新加载Postfix使配置生效:sudo postfix reload
SpamAssassin通过规则匹配+贝叶斯算法分析邮件内容(主题、正文、附件),标记或拦截垃圾邮件。
sudo apt-get install spamassassin
/etc/spamassassin/local.cf,设置垃圾邮件评分阈值(如≥5.0分标记为垃圾邮件):score SPAM 5.0
enable_html_validation 1 # 启用HTML内容检查
/etc/postfix/main.cf,添加内容过滤管道:content_filter = spamassassin:127.0.0.1:1000
重启Postfix和SpamAssassin服务:sudo postfix reload
sudo systemctl restart spamassassin
通过IP/域名列表直接拦截或放行特定邮件,提升审核效率。
/etc/postfix/main.cf,添加黑名单规则(如拒绝Spamhaus黑名单中的IP):smtpd_recipient_restrictions = ..., reject_rbl_client zen.spamhaus.org, ...
/etc/postfix/access文件,添加信任的IP或域名(如公司内部IP):192.168.1.0/24 OK
example.com OK
生成哈希数据库并重启Postfix:sudo postmap /etc/postfix/access
sudo systemctl restart postfix
通过关键词或附件类型过滤违规邮件,补充基础过滤的不足。
header_checks功能,在/etc/postfix/header_checks中添加规则(如拦截包含“中奖”的主题):/^Subject:.*(中奖|免费|优惠)/ REJECT 邮件主题包含违规关键词
编辑/etc/postfix/main.cf启用检查:header_checks = regexp:/etc/postfix/header_checks
sudo postfix reload
/etc/postfix/main.cf中限制附件类型(如禁止.exe、.zip文件)或大小(如≤10MB):smtpd_milters = inet:localhost:8891 # 需配合Milter软件(如amavisd-new)
message_size_limit = 10240000 # 10MB
注:附件过滤可能需要额外安装Milter工具(如amavisd-new)。telnet或邮件客户端测试邮件收发,避免误拦截合法邮件。/var/log/mail.log,分析过滤效果并优化规则(如调整SpamAssassin阈值)。