Chinaunix首页 | 论坛 | 博客
  • 博客访问: 695135
  • 博文数量: 160
  • 博客积分: 8847
  • 博客等级: 中将
  • 技术积分: 1656
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-25 16:46
个人简介

。。。。。。。。。。。。。。。。。。。。。。

文章分类

全部博文(160)

文章存档

2015年(1)

2013年(1)

2012年(4)

2011年(26)

2010年(14)

2009年(36)

2008年(38)

2007年(39)

2006年(1)

分类:

2007-02-10 23:07:46

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
下载: 下载


阅读(1657) | 评论(0) | 转发(0) |
0

上一篇:鸟哥的私房菜

下一篇:apache配置优化测试

给主人留下些什么吧!~~