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 |
下载: |
下载 | |
阅读(1704) | 评论(0) | 转发(0) |