Mail安全系统的部署
1:硬件 PC机一台 2:软件 ---------------------------------- 软件名 版本号 ---------------------------------- Qmail 1.0.5 Daemontools 0.76 ucspi-tcp 0.88 Vpopmail 5.4.17 Maildrop 2.0.3 Qmailscanner 2.0.1 Ripmime 1.4.2 --------------------------------- 3:在PC机上安装Qmail等软件,并进行合理的配置. 0)环境
系统要求
/var 最好是单独的分区、预留10GB的空间; gcc、make和cc版本比较新; mysql已经安装完毕; 系统可以是Centos 4.3或者FreeBSD 6.1 DNS解析域名没有问题 防火墙开放25和110端口
1)Qmail的安装:包括qmail、ucspi-tcp和daemontools 安装过程:
下载源代码 解包 建立目录 创建用户和组 编译 安装ucspi-tcp 安装daemontools 添加qmail运行脚本和日志脚本 SMTP 访问控制 停止并且禁用(其他)已经安装的MTA 建立系统别名 测试安装
mail系统安装完成并测试可以发邮件以后,进行下一步。
2)Vpopmail的安装:增加虚拟域、在虚拟域中添加用户以便于用户收发邮件 安装过程:
下载源代码 解包 建立目录 编译 添加虚拟域 添加用户 测试安装
vpopmail安装完成并成功添加虚拟域和用户,用户可以收邮件,进行下一步。
3)MailDrop的安装:qmailscanner的安装需要maildrop的支持,故而安装maildrop。
解包 编译安装
4)Qmail-scanner的安装:qmailscanner是qmail的一个插件,它可以生成一个perl脚本接收 qmail-smtp和qmail-inject的标准输入,调用其他程序对邮件进行处理,完成以后将处理好 的邮件插入队列进行发送。
SMTP from Network from local
remote mailserver | | tcpserver / inetd MUA | | | | qmail-smtpd qmail-inject | | | | -------------- -------------- | | | | | | qmail-queue | | qmail-send
安装过程: 解包 编译 生产perl脚本:qmail-scanner-queue.pl 修改qmail-scanner-queue.pl
5)根据需求定义Shell脚本: 初始化变量 预处理 模块编码 根据调查和需求,需要开发的模块如下: 模块1:qmail-queue接口 主要功能:接收标准输入接收邮件,控制或修改收件人与发件人的地址; 开发语言:PERL/shell 模块名:邮件头信息 将本地和远程投递到QMAIL服务器队列之前,接收标准输入,准备对此邮件数据包进行处理;
------------------------------------------------------------------------------------------------------------------------- 模块2:qmail邮件封装和解码 主要功能:对接收到的邮件进行拆分,邮件头、邮件正文的解码和重新编码、邮件附件的解码和重新编码等; 开发语言:shell 模块名:邮件头分析 调用ripmime,分析邮件包的信息;
------------------------------------------------------------------------------------------------------------------------- 模块3:qmail邮件头分析(mailfrom,mailto,mailcc...etc.) 主要功能:过滤邮件的联络对象(from、to、cc等),采用黑白名单,如果to或者cc的对象不在白名单里,将邮件直接转发到管理员处; 开发语言:shell 模块名:联络对象过滤 将邮件信息(如:mailfrom,mailto,Cc,report-relay等)与白名单进行对比并返回比较结果并生产日志;
------------------------------------------------------------------------------------------------------------------------- 模块4:qmail邮件附件分析 主要功能:对邮件附件的文档属性进行检查,只允许许可文件(比如:PDF文件)。 开发语言:shell 模块名:附件过滤 将邮件信息(如:附件的文件属性)与白名单对照并返回比较结果.
------------------------------------------------------------------------------------------------------------------------- 模块5:qmail邮件关键字分析 主要功能:对邮件正文信息进行扫描,不允许的关键字放到黑名单里,如果发现有未被允许的字样,将邮件发到管理员处; 开发语言: shell 模块名:正文关键字过滤 将邮件正文信息与黑名单关键字进行比较并返回比较结果.
-------------------------------------------------------------------------------------------------------------------------
模块6:返回结果到Perl接口 主要功能:对模块3,模块4和模块5的返回结果进行或运算,返回结果到PERL中; 如果结果返回为0,则说明该邮件通过了过滤;如果返回1,表示该邮件维通过过滤规则; 未通过的邮件正文加上提示消息将发邮件返回给发件人,也会发邮件到管理员; 开发语言: PERL 模块名:过滤结果
--------------------------------------------------------------------------------------------------------------------------
模拟和测试: 对各个模块进行测试。客户端模拟发送各种形式的邮件,对邮件进行扫描测试。
 | | 文件: | qmail-scanner-queue.zip | | 大小: | 31KB | | 下载: | 下载 |
|
Linux联盟收集整理 |