Rspamd
概述
Rspamd 是一款快速、模块化、可扩展的垃圾邮件过滤系统,设计用于高效处理大量邮件。它通过多种方法评估邮件,包括正则表达式、统计分析、SPF/DKIM/DMARC 检查与 URL 信誉。Rspamd 通过 milter 协议或代理 worker 与 smtpd(8)、Postfix、Exim 等 MTA 集成。
本章介绍在 OpenBSD 上安装和配置 Rspamd,重点说明与 OpenBSD smtpd(8) 及其他受支持邮件传输代理的集成。
功能特性
垃圾邮件分类与评分
内置 DKIM、SPF、DMARC 验证
基于 Redis 后端的统计过滤
支持 Milter 与 proxy 协议
基于 Web 的管理与状态界面
用于自定义规则的 Lua 脚本引擎
与防病毒、防钓鱼后端集成
安装
Rspamd 不包含在 OpenBSD 基本系统中。使用 pkg_add(1) 安装:
# pkg_add rspamdRedis 等依赖与可选 Lua 模块会自动安装。
启用并启动 Rspamd:
主配置目录位于:
运行时数据位于:
架构概览
Rspamd 采用多进程架构,由以下组件构成:
controller:处理配置重载、统计与 HTTP 请求
normal workers:执行垃圾邮件检查与过滤
proxy workers:在 MTA 后方以 milter 或 proxy 模式运行时使用
rspamc:用于提交邮件进行分类或学习的客户端工具
配置结构
Rspamd 将配置分散到多个文件:
/etc/rspamd/rspamd.conf
主配置文件
/etc/rspamd/worker-proxy.inc
代理 worker 设置
/etc/rspamd/worker-controller.inc
控制器(HTTP 管理界面)设置
/etc/rspamd/worker-normal.inc
标准过滤 worker 设置
/etc/rspamd/modules.d/
各模块配置
修改任何配置文件后,重启服务:
启用 Web 界面
控制器默认监听 localhost:11334。要启用远程访问:
编辑 /etc/rspamd/worker-controller.inc:
使用以下命令生成密码哈希:
建议通过 secure_ip 或防火墙规则将访问限制在可信网络。
访问 Web UI:
与 smtpd(8) 集成
Rspamd 可通过其 proxy 模式与 smtpd(8) 的 filter 指令集成。
示例:/etc/mail/smtpd.conf
确保 Rspamd 以 milter 模式运行并监听指定套接字。
编辑 /etc/rspamd/rspamd.conf,加入:
然后重启两个服务:
与 Postfix 集成
将 Rspamd 作为 milter 与 Postfix 配合使用:
在 /etc/rspamd/rspamd.conf 中:
在 /etc/postfix/main.cf 中:
然后重启 Postfix:
使用 rspamc 扫描邮件
rspamc 工具可用于手动扫描邮件、训练贝叶斯分类器或检查评分:
使用 Redis 存储统计数据
Rspamd 使用 Redis 存储统计数据并进行速率限制。安装并启用 Redis:
在 /etc/rspamd/local.d/classifier-bayes.conf 中:
重启 Rspamd:
DKIM 签名与验证
为外发邮件签名
生成 DKIM 密钥:
设置权限:
在 /etc/rspamd/local.d/dkim_signing.conf 中:
在 DNS 中发布 DKIM 公钥(由 dkim_keygen 输出)。
验证 DKIM
若启用 dkim.conf 模块,Rspamd 会自动验证 DKIM。配置通常位于 /etc/rspamd/modules.d/dkim.conf。
DMARC 与 SPF
确保以下模块已启用并配置:
/etc/rspamd/modules.d/dmarc.conf/etc/rspamd/modules.d/spf.conf
使用公共 DNS 解析器,或配置 /etc/resolv.conf 以确保查询正确。
贝叶斯训练
Rspamd 从邮件中学习垃圾邮件与非垃圾邮件。通过 rspamc 提交:
要从邮件文件夹自动训练,可使用 rspamadm 或配置 neural 与 learned 模块。
日志与监控
日志写入:
使用 rspamc stat 查看实时统计:
使用 rspamadm configdump 检查生效的配置:
安全注意事项
以
_rspamd运行 Rspamd,权限受限使用本地套接字或限制 TCP 监听器访问
用强密码与 IP 限制保护控制器界面
定期更新配置文件与规则集
对入站邮件验证 SPF、DKIM、DMARC 策略
文件位置
/etc/rspamd/
配置目录
/var/log/rspamd/rspamd.log
日志文件
/var/db/rspamd/
运行时与统计数据
/etc/rspamd/dkim/
DKIM 私钥
/usr/local/bin/rspamd-milter
smtpd(8) 的 milter 助手
最后更新于