百度空间 | 百度首页 
               
 
查看文章
 
postfix最新源码病毒过滤和反垃圾实战篇(软件安装部分)
2008-04-07 10:21

+++++++++++++++++++++++++++++++++++++++++++
秀脱实战笔记之postfix病毒过滤和反垃圾实战篇:

   QQ:     6541657
EMAIL:xiutuo@gmail.com

postfix-2.5.1_postfixadmin-2.2.0-rc3_
dovecot-1.0.12_SpamAssassin-3.2.4
_amavisd-new-2.5.4_clamav-0.92.1
pam_mysql_cyrus-sasl-auth

外加webmail:squirrelmail-1.4.13

apache2.2.6_php-5.2.5_mysql5_gd


秀脱blog:http://hi.baidu.com/xiutuo/
++++++++++++++++++++++++++++++++++++++++++

功能:
postfix完全虚拟用户,采用mysql数据库,虚拟用户映射的真实用户和组是postfix
pop3:dovecot作为邮局服务,mysql认证
本地邮件代理mta(lda)使用dovecot,可以对每个用户进行邮件容量限制。
postfix用户和组的id都是12345
smtp认证:采用cyrus-sasl-auth认证功能-通过pam调用pam_mysql-md5加密
采用postfixadmin来管理虚拟域和用户以及邮箱别名
通过amavis-new做中间件,介于邮件服务和反垃圾、病毒过滤服务之间
反垃圾功能:spamassasin,在垃圾邮件标题提示**spam**,并通知管理员
病毒过滤:clamav,病毒邮件直接丢弃并存在放在病毒隔离目录,并通知管理员
webmail:squirrelmail-1.4.13通过web页面发送电子邮件,最大附件上传10m

-----------------

环境:
****服务器端
操作系统:contos4.5
ip:192.168.1.230
域名:xiutuo.com
全域名称:xt.xiutuo.com
mx记录:mail.xiutuo.com

下载所有软件包放在/home/xiutuo/software目录下
dns:
ypbind-1.17.2-13.rpm
bind-utils-9.2.4-24.EL4.rpm
bind-9.2.4-24.EL4.rpm
bind-libs-9.2.4-24.EL4.rpm
bind-chroot-9.2.4-24.EL4.rpm

pam_mysql:
pam_mysql-0.7RC1.tar.gz
后缀名.so文件安装/lib/security/目录下

cyrus-sasl:
cyrus-sasl-md5-2.1.19-5.EL4.rpm
cyrus-sasl-plain-2.1.19-5.EL4.rpm
cyrus-sasl-devel-2.1.19-5.EL4.rpm
cyrus-sasl-2.1.19-5.EL4.rpm
cyrus库文件安装在/usr/lib/sasl2/

postfix:
postfix-2.5.1.tar.gz
安装路径 /usr(采用默认的安装路径)

postfixadmin:
postfixadmin-2.2.0-rc3.tar.gz
安装路径 /usr/local/apache2/htdocs/postfixadmin

squirrelmail:
安装路径 /usr/local/apache2/htdocs/webmail

apache2:
apache2.2.6.tar.gz
安装路径 /usr/local/apache2

mysql5数据库:
安装路径 /usr/local/mysql
建立postfix数据库和相关虚拟用户的使用的表,
参照postfixadmin提供的sql脚本DATABASE_MYSQL.TXT
访问数据库用户root,密码123456

php5:php-5.2.5.tar.gz
安装路径 /usr/local/php

dovecot--pop3,imap:源码安装路径/usr/local
dovecot-1.0.12.tar.gz

amavis-new:
amavisd-new-2.5.4.tar.gz
安装路径 /usr/local

clamav:
clamav-0.92.1.tar.gz
安装路径 /usr/local

SpamAssassin
Mail-SpamAssassin-3.2.4.tar.gz
采用perl命令安装,安装成perl模块:
perl -MCPAN -e shell

需要总的perl 模块:见文章最后附录


****客户端
邮件客户端outlook express
或者foxmail

-----------------

一:软件安装
0. dns安装,请参照blog文章:
http://hi.baidu.com/xiutuo/blog/item/047f3c06b966e6780308810b.html

cyrus-sasl的rpm包安装:
# rpm -ivh cyrus-sasl*

1.apache2_php5_mysql5 安装见blog文章:
http://hi.baidu.com/xiutuo/blog/item/e7b42b31ca4d191aebc4aff0.html
切记安装该组合需要其他的软件包!!!
编译php的时候记得加上--enable-mbstring,
否则使用setup.php安装postadmin的时候,(当然可以忽略这个错误)
提示错误如下:
Error: Depends on: multibyte string - NOT FOUND

pam_mysql安装:
# ./configure --with-pam-mods-dir=/lib/security \
--with-mysql=/usr/local/mysql \
--with-pam=/usr \
--with-cyrus-sasl2 \
--with-openssl
必须这样安装,才不会出错。

2.安装postfixadmin

# cd /home/xiutuo/software
# tar -zxvf postfixadmin-2.2.0-rc3.tar.gz
# mv postfixadmin-2.2.0-rc3 /usr/local/apache2/htdocs/postfixadmin
# cd /usr/local/apache2/htdocs/postfixadmin
# 把postfixadmin目录下的sql脚本DATABASE_MYSQL.TXT
# 导入mysql,建立postfix数据库并赋予postfix用户,密码123456
# mysql -u root < DATABASE_MYSQL.TXT
# 配置postfixadmin 数据库连接参数
# vi config.inc.php
修改以下参数
//$CONF['configured'] = false; 注释此行,在运行postfixadmin时
$CONF['database_type'] = 'mysql'; //数据库类型
$CONF['database_host'] = 'localhost'; //数据库服务器名
$CONF['database_user'] = 'postfix'; //数据库用户名
$CONF['database_password'] = '123456'; //数据库用户密码
$CONF['database_name'] = 'postfix';   //数据库名
$CONF['database_prefix'] = ''; //库前缀,这里为空
$CONF['admin_email'] = 'xiutuo@xiutuo.com'; //管理帐号
$CONF['smtp_server'] = 'localhost'; //邮件服务器ip
$CONF['smtp_port'] = '25'; //邮件服务器端口
$CONF['encrypt'] = 'md5'; //密码加密方式,选择自己需要的
$CONF['quota'] = 'YES'; //如果需要对用户邮箱进行限制,请用yes
其他参数根据自己需要修改!
# 设置postfixadmin文件夹权限和属组。
# chown -R xiutuo:xiutuo postfixadmin
# chmod -R 755 postfixadmin

插入相关管理员和虚拟域名数据
管理员xiutuo@xiutuo.com 密码123456
虚拟域 xiutuo.com,xt.xiutuo.com virtual.com
用户邮箱:xt@xiutuo.com,test@xiutuo.com 密码都是123456
注:mailbox表中quota就是容量限制字段。dovecot 默认采用k作为容量限制单位。

INSERT INTO `domain` (`domain`, `description`, `aliases`, `mailboxes`,
`maxquota`, `quota`, `transport`, `backupmx`, `created`, `modified`,
`active`) VALUES ('virtual.com', 'virtual.com', 10, 10, 0, 0, 'virtual',
0, '2008-03-25 21:14:11', '2008-03-25 21:14:11', 1),('xiutuo.com',
'xiutuo.com', 0, 0, 0, 0, 'dovecot', 0, '0000-00-00 00:00:00',
'0000-00-00 00:00:00', 1),('xt.xiutuo.com', 'ddd', 10, 10, 0, 0,
'virtual', 0, '2008-03-25 21:16:10', '2008-03-25 21:16:10', 1);

INSERT INTO `domain_admins` (`username`, `domain`, `created`, `active`)
VALUES ('xiutuo@xiutuo.com', 'ALL', '0000-00-00 00:00:00', 1);

INSERT INTO `mailbox` (`username`, `password`, `name`, `maildir`, `quota`,
`domain`, `created`, `modified`, `active`) VALUES ('xt@xiutuo.com',
'e10adc3949ba59abbe56e057f20f883e', 'e10adc3949ba59abbe56e057f20f883e',
'xt@xiutuo.com', 0, 'xiutuo.com', '0000-00-00 00:00:00',
'2008-04-01 16:00:20', 1),('xiutuo@virtual.com',
'e10adc3949ba59abbe56e057f20f883e', 'xiutuo', 'xiutuo@virtual.com/',
0, 'virtual.com', '2008-03-25 21:14:42', '2008-03-25 21:14:42', 1),
('test@xiutuo.com', 'e10adc3949ba59abbe56e057f20f883e', 'test',
'test@xiutuo.com/', 0, 'xiutuo.com', '2008-03-26 20:44:39', '2008-03-26 20:44:39', 1);

超级用户管理地址:
http://xt.xiutuo.com/postfixadmin/admin
普通用户管理地址
http://xt.xiutuo.com/postfixadmin/users

3.dovecot安装
先卸载系统自带的dovecot-0.99
增加dovecot用户用来启动dovecot
# useradd dovecot -d /dev/null -s /sbin/nologin
# rpm -e dovecot
# cd /home/xiutuo/software
# tar -zxvf dovecot-1.0.12.tar.gz
# cd dovecot-1.0.12
# ./configure --sysconfdir=/etc --with-mysql
# make
# make install
# cp /etc/dovecot-example.conf /etc/dovecot.conf

没有配置好dovecot.conf时,请先别启动dovecot

启动dovecot:
# dovecot -c /etc/dovecot.conf

弄成开机自启动,自己写个简单脚本,仿照mysql的自启动方式。
或者总结在在/etc/rc.d/rc.local加入
dovecot -c /etc/dovecot.conf

4.postfix安装:
# rpm -e sendmail --nodeps   #卸载系统自带的sendmail
# 增加postfix用户和postfix用户组
# adduser postfix -d /dev/null -s /sbin/nologin
# 建立虚拟用户邮件目录
# mkdir /var/vmail
# chown postfix:postfix /var/vmail
# cd /home/xiutuo/software
# tar -zxvf postfix-2.5.1.tar.gz
postfix采用默认安装路径,支持mysql,和dovecot-sasl-auth


# make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include \
-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl' \
'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm \
-L/usr/local/lib -lsasl2'
# make install

# 注意make install过程会提示postfix各个文件安装路径,直接回车选择默认即可
成功安装后,查看是否启用了cyrus-sasl-auth认证
# postconf -a
cyrus
有cyrus说明ok了。
*********************************************
如果要编译其他的请参照postfix安装说明,切记
CCARGS开头的都组合在一起,AUXLIBS开头的组合在一起,如下面的
# make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/ \
-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/local/sasl2/include/sasl \
-I/usr/local/BerkeleyDB/include \
-DUSE_TLS -I/usr/local/ssl/include/openssl '
'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm \
-L/usr/local/sasl2/lib -lsasl2 \
-L/usr/local/BerkeleyDB/lib \
-L/usr/local/ssl/lib -lssl -lcrypto'
以上编译支持mysql,cyrus_sasl,openssl,BerkeleyDB

------

# make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include \
-DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\"dovecot\"' \
'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm'
*********************************************

5.安装SpamAssassin,以perl 模块方式安装
事先需要安装的perl模块
# perl -MCPAN -e shell
cpan> install HTML::Parser
cpan> install Mail::SPF
cpan> install Mail::SPF::Query
cpan> install IP::Country
cpan> install Razor2
cpan> install Net::Ident
cpan> install IO::Socket::INET6
cpan> install IO::Socket::SSL
cpan> install Compress::Zlib
cpan> install Mail::DomainKeys
cpan> install Mail::DKIM
cpan> install Archive::Tar
cpan> install IO::Zlib
cpan> install Encode::Detect

********************************************
在安装这里模块时候会出现perl模块依赖关系,处理原则,缺什么安装什么。
安装文档全套需要的perl模块列表见文章最后。

这里推荐使用perl命令来安装(比较慢),建议:
a.先下载相关源码安装。源码安装方法
# tar -zxvf perl模块.tar.gz
# cd perl模块目录
# perl Makefile.PL
# make
# make install
b.如果源码方式安装出现out of date错误或者出现未知的perl依赖模块时,
再使用perl命令安装,这样会很好的解决问题。
perl命令安装方式(使用root用户操作):
# perl -MCPAN -e shell
cpan> o conf prerequisites_policy ask
cpan> install Mail::SpamAssassin //安装Mail::SpamAssassin模块
cpan> quit   //退出
*******************************************


6.安装clamav
# 注意安装clamav-0.92.1需要zlib-1.2.3,否则报zlib有bug错误,
# 可以通过--disable-zlib-vcheck 参数忽略zlib报错(不推荐)
# 增加启动clamav的用户clamav
# adduser clamav -d /dev/null -s /sbin/nologin
# id clamav
uid=12347(clamav) gid=12347(clamav) groups=12347(clamav)
# cd /home/xiutuo/software
# tar -zxvf clamav-0.92.1.tar.g
# cd clamav-0.92.1
# zlib-1.2.3安装见apache2的安装文档,安装在/usr/local/zlib目录
***************************************
# tar zvxf zlib-1.2.3.tar.gz
# cd zlib-1.2.3
# ./configure --prefix=/usr/local/zlib --shared
# make
# make test
# make install
**************************************
# ./configure --prefix=/usr/local/clamav/ \
--with-zlib=/usr/local/zlib \
--with-user=clamav --with-group=clamav
# make
# make install
# touch /var/log/clamav/freshclam.log
# chmod 600 /var/log/clamav/freshclam.log
# chown clamav:clamav /var/log/clamav/freshclam.log

# freshclam -d
./freshclam: error while loading shared libraries: libiconv.so.2: cannot open sh
ared object file: No such file or directory
加个连接就好了
# ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2

7.安装amavisd-new.tar.gz
需要的模块:
# perl -MCPAN -e shell
cpan> install Archive::Zip
cpan> install Compress::Zlib
cpan> install Convert::TNEF
cpan> install MIME::Base64
cpan> install MIME::Parser
cpan> install Mail::Internet
cpan> install Net::Server
cpan> install Digest::MD5
cpan> install IO::Stringy
cpan> install Time::HiRes
cpan> install Unix::Syslog
cpan> install BerkeleyDB
cpan> install Mail::ClamAV

cpan> install IO::Wrap
cpan> install IO::Stringy
cpan> install Unix::Syslog
cpan> install Compress::Zlib
cpan> install MIME::Words
cpan> install MIME::Head
cpan> install MIME::Body
cpan> install MIME::Entity
cpan> install MIME::Parser
cpan> install MIME::Decoder
cpan> install MIME::Decoder::Base64
cpan> install MIME::Decoder::Binary
cpan> install MIME::Decoder::QuotedPrint
cpan> install MIME::Decoder::NBit
cpan> install MIME::Decoder::UU
cpan> install MIME::Decoder::Gzip64
cpan> install Net::Server
cpan> install Net::Server::PreFork
此安装过程需要其他的perl模块列表见文章最后,提示少什么装什么。

这里我们使用clamav用户来启动amavis,就不单独建立用户了。
# mkdir /var/amavis
# cd /var/amavis
在/var/amavis目录下建立tmp var db home四个目录
# mkdir tmp var db home
# chown -R clamav:clamav /var/amavis
# chmod -R 750 /var/amavis
# cd /home/xiutuo/software
# tar -zxvf amavisd-new.tar.gz
# cd amavisd-new-2.5.4
# 安装amavisd程序,并设置权限
# cp amavisd /usr/local/sbin/
# chown root /usr/local/sbin/amavisd
# chmod 755 /usr/local/sbin/amavisd
# 安装配置文件,并设置权限
# cp amavisd.conf /etc/
# chown root:clamav /etc/amavisd.conf
# chmod 640 /etc/amavisd.conf
建立病毒邮件隔离存放目录,请确保所在文件的属主为非特权用户!
必要定时对该目录清空。
# mkdir /var/virusmails
# chown clamav:clamav /var/virusmails
# chmod 750 /var/virusmails

安装软件部分到此结束


————————————————————————————————————


类别:linux-mail | 添加到搜藏 | 浏览() | 评论 (1)
 
最近读者:
 
网友评论:
1
2009-05-17 12:16 | 回复
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu