23.4. 配置示例


23.4.1. SpamAssassin 和 Postfix

SpamAssasin 是一个开源邮件过滤器,它提供了一种从传入电子邮件过滤主动电子邮件(垃圾邮件)的方法。[23]
使用红帽企业 Linux 时,spam assassin 软件包提供了 SpamAssassin。输入以下命令查看是否安装了 spamassassin 软件包:
~]$ rpm -q spamassassin
package spamassassin is not installed
如果没有安装它,请以 root 用户身份使用 yum 工具安装它:
~]# yum install spamassassin
SpamAssassin 与 Postfix 等邮件发送者一起工作,以提供垃圾邮件过滤功能。要让 SpamAssassin 有效拦截、分析和过滤邮件,它必须侦听网络接口。SpamAssassin 的默认端口为 TCP/783,但可以更改此端口。以下示例提供了 SELinux 如何通过仅允许访问特定端口来补充 SpamAssassin 的真实演示。本示例随后将演示如何更改端口,并让 SpamAssassin 在非默认端口上运行。
请注意,这只是一个示例,并演示 SELinux 如何影响简单的 SpamAssassin 配置。SpamAssassin 的综合文档不在本文的讨论范围之内。详情请查看官方 SpamAssassin 文档。这个示例假设已安装 spamassassassin,所有防火墙都已配置为允许访问正在使用的端口上,使用了 SELinux 目标策略,并且 SELinux 以强制模式运行:

过程 23.1. 在非默认端口上运行 SpamAssassin

  1. 以 root 用户身份使用 semanage 工具显示 SELinux 允许 spamd 守护进程默认侦听的端口:
    ~]# semanage port -l | grep spamd
    spamd_port_t		tcp	783
    
    此输出显示,在 spamd_port_t 中定义 TCP/783,作为要操作的 SpamAssassin 的端口。
  2. 编辑 /etc/sysconfig/spamassassin 配置文件并进行修改,使其将在示例端口 TCP/10000: 上启动 SpamAssassin。
    # Options to spamd
    SPAMDOPTIONS="-d -p 10000 -c m5 -H"
    
    此行现在指定 SpamAssassin 在端口 10000 上运行。本例的其余部分将显示如何修改 SELinux 策略以允许打开此套接字。
  3. 启动 SpamAssassin,并显示类似如下的错误消息:
    ~]# systemctl start spamassassin.service
    Job for spamassassin.service failed. See 'systemctl status spamassassin.service' and 'journalctl -xn' for details.
    
    此输出意味着 SELinux 已阻止对此端口的访问。
  4. SELinux 会记录类似如下的拒绝信息:
    SELinux is preventing the spamd (spamd_t) from binding to port 10000.
    
  5. 以 root 用户身份运行 semanage 来修改 SELinux 策略,以允许 SpamAssassin 在示例端口(TCP/10000)上运行:
    ~]# semanage port -a -t spamd_port_t -p tcp 10000
  6. 确认 SpamAssassin 现在将启动并在 TCP 端口 10000 上运行:
    ~]# systemctl start spamassassin.service
    
    ~]# netstat -lnp | grep 10000
    tcp	0	0 127.0.0.1:10000	0.0.0.0:*	LISTEN	2224/spamd.pid
    
  7. 此时,spamd 在 TCP 端口 10000 上正确运行,因为它已被 SELinux 策略允许访问该端口。


[23] 如需更多信息,请参阅《 系统管理员指南 》中的 Spam Filters 部分。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.