27、垃圾邮件过滤与病毒防护解决方案

垃圾邮件过滤与病毒防护解决方案

1. SpamAssassin 介绍

SpamAssassin 是一款强大的垃圾邮件过滤工具,其贝叶斯数据库存放在用户主目录下的 .spamassassin 目录中的三个文件里,文件格式通常为 Berkeley DB 格式,具体文件如下:
| 文件名称 | 作用 | 大小 |
| ---- | ---- | ---- |
| bayes_journal | 临时存储区,有时可能不存在 | 约 10 KB |
| bayes_seen | - | 可达数兆字节 |
| bayes_toks | - | 可达数兆字节 |

除了基本的数据库存储,SpamAssassin 还有许多其他实用功能:
- 网络测试 :可与开放中继数据库集成,3.x 版本包含对 30 多个数据库的测试,虽并非所有默认启用,但该测试无需高速机器和大量内存,检测率较高。
- 外部内容数据库 :能与外部内容数据库集成,参与网络中的所有参与者将收到的电子邮件详细信息发送到中央服务器,若邮件此前多次发送,很可能是垃圾邮件,且该服务不会发送机密数据。
- 白名单和黑名单 :具备自动白名单和黑名单功能,与手动列表工作方式类似,能有效防止正常通信者的邮件被误判为垃圾邮件。
- 创建新规则 :可编写和开发新规则,只需一点想象力和合适的垃圾邮件源,系统管理员就能让用户摆脱默认规则无法检测到的顽固垃圾邮件。
- 可定制邮件头 :能自定义 SpamAssassin 添加到邮件中的邮件头,还可编写新邮件头,同时会尝试检测病毒和特洛伊软件,并将电子邮件地址包装在特殊的信封邮件中。
- 多机安装 :可安装在多台机器上,为一个或多个电子邮件服务器服务。在高流量电子邮件系统中,可运行多个垃圾邮件服务器,每个仅处理垃圾邮件,从而实现高吞吐量、高可用性服务。
- 可定制规则分数 :包含根据组织收到的垃圾邮件和合法邮件样本定制规则分数的工具,有助于提高过滤率。SpamAssassin 3.0 对这些工具进行了显著改进,操作过程比早期版本更省时。

2. 病毒防护的必要性

很多人认为 Linux 不易受病毒攻击,但安装杀毒解决方案的主要目的并非保护邮件服务器,而是降低或消除对收件人的风险。例如,组织内可能有运行 Windows 的客户端 PC 易受病毒感染,或者收到带病毒的邮件并转发给客户或商业伙伴。

使用 Procmail 过滤时,可选择从邮件中删除可执行附件以保护系统免受病毒攻击,但这种方法可能会误删无病毒文件,且可能遗漏非可执行的受感染文档。在公司环境中,依赖每个用户的机器及时更新并正确安装合适的病毒检查软件并不现实,因此在服务器上运行高效的扫描程序以确保组织收发的所有邮件都能正确扫描病毒是很有必要的。

3. ClamAV 简介

ClamAV 是一款适用于 Linux、Windows 和 Mac OS X 的开源杀毒工具包,其主要设计特点是与邮件服务器集成,进行附件扫描并过滤已知病毒。该软件包提供了灵活可扩展的多线程守护进程 clamd 、命令行扫描器 clamscan 以及通过互联网自动更新的工具 freshclam ,这些程序基于共享库 libclamav ,也可用于自定义软件。

本次使用的是 ClamAV 最新稳定版本 0.95 .2,其病毒数据库和签名可检测超过 580,000 种病毒、蠕虫和特洛伊木马,包括 Microsoft Office 宏病毒、移动恶意软件等威胁。此外,在 Linux 系统中进行适当安装后,它还能进行实时扫描。

4. ClamAV 支持的文档类型

ClamAV 可检测多种可能包含或传播病毒的文档类型,具体如下:
- 操作系统相关文件
- ELF(可执行和链接格式)文件,用于 Linux、Solaris 和 OpenBSD 等 UNIX 及类 UNIX 操作系统。
- 采用 UPX、FSG、Petite、WWPack32 等压缩,以及 SUE、Yoda’s Cryptor 等混淆的 32/64 位可移植可执行(PE)文件,这是 Microsoft Windows 可执行文件的标准格式,也是常见的病毒传播载体。
- Microsoft 文档
- MS OLE2
- MS 内阁文件
- MS CHM(压缩 HTML)
- MS SZDD
- MS Office Word 和 Excel 文档
- 其他特殊文件和格式
- HTML
- RTF
- PDF
- 用 CryptFF 和 ScrEnc 加密的文件
- uuencode
- TNEF(winmail.dat)
- 常见存档格式
- RAR(2.0)
- ZIP
- gzip
- bzip2
- tar
- BinHex
- SIS(SymbianOS 包)
- AutoIt

扫描存档文件时,还会扫描存档内支持的文档格式。

5. 下载和安装 ClamAV

由于病毒几乎每天都在被发现,安装最新稳定版本的 ClamAV 软件非常必要。若系统已安装 ClamAV,可能是基于旧版本的安装包,建议从 ClamAV 网站下载并安装最新版本,以确保系统的最高安全级别。

5.1 添加新的系统用户和组
# groupadd clamav
# useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav
5.2 从软件包安装

ClamAV 有多种安装包,详情可在 ClamAV 网站 查看。由于许可限制,大多数二进制包没有内置的 RAR 支持,因此建议在许可问题解决前从源代码安装。
- Red Hat 系统 :可使用以下任一命令:

# yum update clamav

# up2date -u clamav
  • Debian 系统 :使用以下命令:
# apt-get install clamav clamav-daemon clamav-freshclam

安装时需确保版本为 0.95.2 或更高,因为较新版本有显著改进,一般应始终安装最新稳定版本。

5.3 从源代码安装

从源代码安装 ClamAV 并不困难,且能运行所需的任何版本,而非受限于 Linux 发行版维护者选择的版本。可从 ClamAV 主网站的多个镜像下载源代码。

编译要求
- 必需:zlib 和 zlib - devel 包、gcc 编译器套件。
- 可选但强烈推荐:bzip2 和 bzip2 - devel 库、UnRAR 包。

构建和安装步骤
1. 下载并解压存档后,进入目录(如 clamav - 0.95.2 ),在开始构建和安装软件前,建议阅读 INSTALL README 文档。
2. 运行配置工具创建正确的构建环境:

$ ./configure --sysconfdir=/etc
  1. 配置脚本完成后,运行 make 命令构建软件可执行文件:
$ make
  1. 最后,以 root 身份将可执行文件复制到系统的正确位置:
# make install

此步骤会将软件安装到 /usr/local 目录,配置文件安装到 /etc 目录(由 --sysconfdir 选项指定)。在所有阶段都应检查过程输出,查看是否有重大错误或警告。完成构建、安装和测试步骤后,可删除解压的存档。

5.4 快速测试

可通过以下测试递归扫描源目录中的示例测试病毒文件,验证软件是否正确安装:

$ clamscan -r -l scan.txt clamav-x.yz/test

提供的测试病毒文件不包含真正的病毒,是无害的,包含专门为测试目的设计的行业公认病毒签名。扫描结果将保存到 scan.txt 日志文件中,检查日志文件时,要特别注意是否有关于特定文件或存档格式支持未编译的警告,日志文件末尾应包含类似以下的摘要。

graph LR
    A[下载并解压存档] --> B[阅读 INSTALL 和 README 文档]
    B --> C[运行配置命令]
    C --> D[运行 make 命令构建]
    D --> E[以 root 身份安装]
    E --> F[快速测试]

以上是关于 SpamAssassin 垃圾邮件过滤和 ClamAV 病毒防护的相关介绍及操作步骤,通过合理使用这些工具和方法,能有效保障邮件系统的安全和正常运行。

垃圾邮件过滤与病毒防护解决方案

6. 编辑 ClamAV 配置文件

安装 ClamAV 软件后,需要编辑两个配置文件,分别是 /etc/clamd.conf /etc/freshclam.conf

6.1 编辑 /etc/clamd.conf 文件

clamd 是实际的病毒扫描软件,若不编辑配置文件, clamd 将无法运行。以下是一些需要修改的关键配置项:
| 配置项 | 说明 | 修改建议 |
| ---- | ---- | ---- |
| #Example | 该选项会导致程序因配置错误而停止,是为强制用户在软件正确运行前编辑文件而特意设置的。 | 注释或删除该行。 |
| LogFile | 用于启用日志记录,需确保日志文件对运行守护进程的用户可写,且需提供完整路径。 | 建议设置为 /var/log/clamav/clamd.log ,方便检查错误和监控运行情况。 |
| LogTime | 为每条日志消息添加时间戳。 | 启用该选项,便于调试问题和匹配其他日志文件中的条目。 |
| DatabaseDirectory | 病毒数据库目录的路径,默认值取决于安装选项。 | 设置为 /usr/local/share/clamav ,确保知道病毒签名信息的存储位置。 |
| LocalSocket | 守护进程监听的本地套接字文件路径。 | 建议启用该选项,以确保系统安全。 |
| PidFile | 保存监听守护进程(主线程)的进程标识符。 | 启用该选项,方便启动和停止脚本。 |
| TCPAddr | TCP 地址,默认绑定到 INADDR_ANY ,不太安全。 | 设置为 127.0.0.1 ,确保只有本地进程可以访问服务。 |
| User | 指定守护进程运行的用户, clamd 必须由 root 启动。 | 设置为 clamav ,提高文件安全性。 |

示例配置如下:

# Comment or remove the line below.
#Example

# Uncomment this option to enable logging.
# LogFile must be writable for the user running daemon.
# A full path is required.
# Default: disabled
LogFile /var/log/clamav/clamd.log

# Log time with each message.
# Default: disabled
LogTime yes

# Path to the database directory.
# Default: hardcoded (depends on installation options) 
#DatabaseDirectory /var/lib/clamav 
DatabaseDirectory /usr/local/share/clamav

# The daemon works in a local OR a network mode. Due to security 
# reasons we recommend the local mode.
# Path to a local socket file the daemon will listen on.
# Default: disabled
LocalSocket /var/run/clamav/clamd.sock

# This option allows you to save a process identifier of the listening 
# daemon (main thread). 
# Default: disabled 
PidFile /var/run/clamav/clamd.pid

# TCP address.
# By default we bind to INADDR_ANY, probably not wise.
# Enable the following to provide some degree of protection 
# from the outside world.
# Default: disabled
TCPAddr 127.0.0.1

# Run as a selected user (clamd must be started by root).
# Default: disabled
User clamav
6.2 编辑 /etc/freshclam.conf 文件

freshclam 用于自动更新病毒数据库,若不编辑配置文件, freshclam 将无法运行。以下是一些需要修改的关键配置项:
| 配置项 | 说明 | 修改建议 |
| ---- | ---- | ---- |
| #Example | 确保该选项被注释,以使守护进程正常运行。 | 注释该行。 |
| UpdateLogFile | 日志文件的路径,需确保有适当的权限。 | 建议设置为 /var/log/clamav/freshclam.log ,方便跟踪更新情况。 |
| LogVerbose | 启用详细日志记录。 | 启用该选项,获取更详细的错误信息。 |
| DNSDatabaseInfo | 使用 DNS 验证病毒数据库版本。 | 建议启用该选项,确保数据库和软件版本的准确性。 |
| DatabaseMirror | 数据库镜像地址,可指定多个,以避免服务器过载。 | 根据所在国家添加相应的镜像地址,如 db.us.clamav.net 。 |

示例配置如下:

# Comment or remove the line below.
#Example

# Path to the log file (make sure it has proper permissions)
# Default: disabled
UpdateLogFile /var/log/clamav/freshclam.log

# Enable verbose logging.
# Default: disabled
LogVerbose

# Use DNS to verify virus database version. Freshclam uses DNS TXT 
# records to verify database and software versions. We highly 
# recommend enabling this option.
# Default: disabled
DNSDatabaseInfo current.cvd.clamav.net

# Uncomment the following line and replace XY with your country
# code. See http://www.iana.org/cctld/cctld-whois.htm for the full 
# list.
# Default: There is no default, which results in an error when running 
freshclam
DatabaseMirror db.us.clamav.net
7. 总结

通过使用 SpamAssassin 进行垃圾邮件过滤和 ClamAV 进行病毒防护,可以有效保障邮件系统的安全和正常运行。以下是整个过程的关键步骤总结:
1. SpamAssassin :利用其多种功能,如网络测试、外部内容数据库集成、白名单和黑名单等,对垃圾邮件进行有效过滤。
2. ClamAV
- 添加新的系统用户和组。
- 选择合适的安装方式(从软件包或源代码)进行安装。
- 进行快速测试,验证软件是否正确安装。
- 编辑 clamd.conf freshclam.conf 配置文件,确保软件正常运行和病毒数据库的及时更新。

graph LR
    A[SpamAssassin 垃圾邮件过滤] --> B[ClamAV 病毒防护]
    B --> C[添加用户和组]
    C --> D[选择安装方式]
    D --> E[快速测试]
    E --> F[编辑配置文件]

在实际应用中,应根据具体需求和环境,合理配置和使用这些工具,以达到最佳的安全防护效果。同时,要定期更新 ClamAV 的病毒数据库,以应对不断出现的新病毒威胁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值