在 Ubuntu 上为邮件服务器安装和配置 SpamAssassin

SpamAssassin 是一个开源的邮件过滤器,它使用一系列启发式测试来识别垃圾邮件。本指南将解释如何在 Ubuntu 20.04 LTS 或 21.04 上安装 SpamAssassin。

先决条件

  • 一个已安装 Postfix 邮件传输代理的 Ubuntu 服务器。

    如需安装Postfix 请看我上一篇文章:在 Ubuntu上安装和配置邮件服务器(Postfix)-CSDN博客
    选择服务器提供商
    为了本教程的演示,我将以一个具体的云服务提供商为例,展示如何进行操作。选择哪个提供商根据个人偏好和需求来决定。

以下步骤仅供参考,请根据实际需求选择配置。

购买云服务器
本示例中,我们选择了香港作为服务器区域。
点击 云产品云服务器立即购买
选择操作系统
在创建服务器实例时,选择 Ubuntu 24.04 作为操作系统。
连接到服务器
使用 X-shell 或偏好的 SSH 客户端,通过远程用户名和密码连接到服务器。成功连接后,将看到特定的欢迎信息,表明已成功登录。

https://syxoss.oss-cn-hangzhou.aliyuncs.com/Typora202411211021991.png

  • 创建一个具有 sudo 权限的用户。
  • 确保服务器的 25 号端口已开放。

安装 SpamAssassin 流程图

以下是安装 SpamAssassin 的步骤流程图:

graph TD
    A[开始] --> B[连接到服务器]
    B --> C[更新系统]
    C --> D[安装 SpamAssassin]
    D --> E[添加 SpamAssassin 用户]
    E --> F[配置 SpamAssassin]
    F --> G[配置 Postfix]
    G --> H[重启 Postfix 服务]
    H --> I[启动 SpamAssassin 服务]
    I --> J[结束]

1. 安装 SpamAssassin

  1. 使用 SSH 连接到服务器。
  2. 安装 SpamAssassin。
$ sudo apt-get update
$ sudo apt-get install spamassassin spamc -y

  1. 添加一个 SpamAssassin 用户并禁用登录。
$ sudo adduser spamd --disabled-login

2. 配置 SpamAssassin

为 SpamAssassin 分配 spamd 用户账户,并设置日志和默认主目录。

  1. 编辑配置设置。
$ sudo nano /etc/default/spamassassin

  1. 找到以下行并进行配置更改。
# ENABLED=1
ENABLED=0

# OPTIONS="--create-prefs --max-children 5 --helper-home-dir"
OPTIONS="--create-prefs --max-children 5 --username spamd --helper-home-dir /home/spamd/ -s /home/spamd/spamd.log"

# CRON=0
CRON=1

  1. 备份 SpamAssassin 的本地配置文件。
$ sudo mv /etc/spamassassin/local.cf /etc/spamassassin/local.cf.bk

  1. 创建一个新的 SpamAssassin 本地配置文件。
$ sudo nano /etc/spamassassin/local.cf

  1. 将以下信息粘贴到文件中。
rewrite_header Subject ***** SPAM _SCORE_ *****
report_safe             0
required_score          5.0
use_bayes               1
use_bayes_rules         1
bayes_auto_learn        1
skip_rbl_checks         0
use_razor2              0
use_dcc                 0
use_pyzor               0
ifplugin Mail::SpamAssassin::Plugin::Shortcircuit
endif

3. 配置 Postfix

  1. 编辑 Postfix 配置文件。
$ sudo nano /etc/postfix/master.cf

  1. 定位这些条目并添加 SpamAssassin 内容过滤器。
smtp      inet  n       -       y       -       -       smtpd

-o content_filter=spamassassin
spamassassin unix -     n       n       -       -       pipe
user=spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}

  1. 保存并关闭文件。
  2. 重启 Postfix 并启用 SpamAssassin 在系统启动时运行。
$ sudo systemctl restart postfix.service
$ sudo systemctl enable spamassassin.service
$ sudo systemctl start spamassassin.service

总结

现在应该能够在 Ubuntu 服务器上成功安装并运行 SpamAssassin 与 Postfix,为邮件系统提供一个额外的安全层,以减少垃圾邮件的干扰。这个组合不仅提高了邮件处理的效率,还增强了系统的安全性。