Linux和Postfix的邮件系统的web mail安装手册
摘要: 本文介绍使用 Linux + Postfix + Cyrus-sasl + Courier-imap + Tmail3.0 + spamassassin + Clamav + mailscanner ,来架构一个具有多域名,有邮件列表、webmail、防病毒、防垃圾邮件、web管理界面的邮件系统。
Jacky, $Revision: 4.51 bate $Date: 2006-3-9
系统主要采用 MailScanner + clamav + Spamassassin 来对病毒过滤和垃圾邮件过滤。
本文在CentOS、REDHATas上测试通过,病毒过滤放弃采用amavisd。主要采用执行效率更高的MailSanner来对邮件过滤 和垃圾邮件过滤,配置更容易,并且降低了系统开消。让系统更加稳定,经过严格病毒邮件测试成功率达到了100%。垃圾邮件过滤基本上达到了95%的成功 率。
更新日志
新增使用mailscanner来对进出邮件进行监管。new
修正上一个版本的一些理解性和文件性错误。
主要“加强”了病毒过滤和垃圾邮件过滤,更加节约系统资源,使系统配置更简单化。
垃圾邮件过滤基本上达到了95%的成功率
本文首次使用MailScanner+Clamav配合对邮件病毒进行过滤。
经过严格病毒邮件测试成功率达到了100%。
翻译了病毒邮件提示为中文提示,让系统更加的人性化。
目录
0、演示地址1、安装系统
2、关闭selinux
3、设置YUM
4、安装mysql
5、安装apache
6、安装php
7、安装phpMyAdmin
8、设置数据库
9、增加postfix的用户和组
10、安装postfix
11、安装Courier-authlib
12、设置authlib的环境变量
13、安装Courier-imap
14、配置系统
15、配置sasl认证
16、配置courier-imap
17、安装WebMail
18、启动服务测试
19、安装Clamav
20、升级病毒库
21、安装Spamassassin
22、安装MailScanner
23、设置MailScanner
24、测试病毒邮件
25、关于本文;
26、更新日志;
27、参考文档;
28、相关文档;
+++++++++++++++++++++++++++++++++++++++++++
正文
+++++++++++++++++++++++++++++++++++++++++++
0、演示地址:
http://mail.toping.net用户名:[email protected]
密 码:demo
1.、安装系统
安装之前:因用户数据都保存在/var目录下,因此安装系统时/var的空间应尽量大。系统的版本为最小化安装,软件包只安装只装开发包 (development)。在文档中假设服务器的ip地址为192.168.0.2,域名为test.com,主机名为mail.test.com。所 需的软件包我都打包好了。
下载地址: http://www.toping.net/soft/src.tar.gz
请兄弟们仔细一些,注意空格和TAB。
祝兄弟们好运。本人水平有限。如果发现文章中有什么错误和不当的地方请发邮件:scyz at toping.net。我会在第一时间给予答复。
2.关闭selinux
SELINUX=disable
[root@mail]# reboot
3、设置YUM
[base]name=CentOS-4.2 - Basebaseurl=http://mirror.be10.com/centos/4.2/os/$basearch/gpgcheck=1gpgkey=http://mirror.be10.com/centos/RPM-GPG-KEY-centos4#released updates[update]name=CentOS-4.2 - Updatesbaseurl=http://mirror.be10.com/centos/4.2/updates/$basearch/gpgcheck=1gpgkey=http://mirror.be10.com/centos/RPM-GPG-KEY-centos4#packages used/produced in the build but not released[addons]name=CentOS-4.2 - Addonsbaseurl=http://mirror.be10.com/centos/4.2/addons/$basearch/gpgcheck=1gpgkey=http://mirror.be10.com/centos/RPM-GPG-KEY-centos4#additional packages that may be useful[extras]name=CentOS-4.2 - Extrasbaseurl=http://mirror.be10.com/centos/4.2/extras/$basearch/gpgcheck=1gpgkey=http://mirror.be10.com/centos/RPM-GPG-KEY-centos4#additional packages that extend functionality of existing packages[centosplus]name=CentOS-4.2 - Plusbaseurl=http://mirror.be10.com/centos/4.2/centosplus/$basearch/gpgcheck=1enabled=0gpgkey=http://mirror.be10.com/centos/RPM-GPG-KEY-centos4#contrib - packages by Centos Users[contrib]name=CentOS-4.2 - Contribbaseurl=http://mirror.be10.com/centos/4.2/contrib/$basearch/gpgcheck=1enabled=0gpgkey=http://mirror.be10.com/centos/RPM-GPG-KEY-centos4#packages in testing[testing]name=CentOS-4.2 - Testingbaseurl=http://mirror.be10.com/centos/4.2/testing/$basearch/gpgcheck=1enabled=0gpgkey=http://mirror.be10.com/centos/RPM-GPG-KEY-centos4[root@mail yum.repos.d]# vi dag.repo[dag]name=Dag RPM Repository for Red Hat Enterprise Linuxbaseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/daggpgcheck=1enabled=1 [root@mail yum.repos.d]# yum update
4、安装mysql
[root@mail build]#yum install mysql-devel
5、安装apache
6.安装php
[root@mail build]#yum install php
[root@mail build]#yum install php-mysql
[root@mail build]#yum install php-gd
[root@mail build]#yum install php-imap
[root@mail build]#yum install vsftpd
[root@mail build]#yum install clamav
[root@mail build]#yum install spamassassin
[root@mail build]#/usr/bin/freshclam
设置apache
默认:
User apache
改为
User postfix
默认
Group apache
改为
Group postfix
默认
AddDefaultCharset UTF-8
改为
AddDefaultCharset gb2312
新加入:
AddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps
7、安装phpMyAdmin
[root@mail build]#mv phpMyAdmin-2.8.0.1 /var/www/html/dbadmin/
[root@mail build]#cp /var/www/html/dbadmin/libraries/config.default.php /var/www/html/dbadmin/dbadmin/libraries/config.inc.php (line 1.)
8、设置数据库
Mysql> create datases postfix;
Mysql> use mysql;
Mysql> INSERT INTO user (host,user,password) VALUES('localhost','postfix','');
Mysql> update user set password=password('postfix') where User='postfix';
Mysql> GRANT ALL ON postfix.* TO postfix@localhost IDENTIFIED BY "postfix";
Mysql> exit
[root@mail build] tar –zxf ../src/webmail.tar.gz
[root@mail build] mysql –u root –p postfix < Tmail.sql
9、增加postfix的用户和组
[root@mail build] useradd -u 12345 -g 12345 -c postfix -d/dev/null -s/sbin/nologin postfix
[root@mail build] groupadd -g 54321 postdrop
10、安装postfix
[root@mail build] cd postfix-2.2.8
[root@mail build] patch -p1 < src/postfix-2.2.8-vda.patch
[root@mail build] make -f Makefile.init makefiles \
'CCARGS=-DUSE_SASL_AUTH -DHAS_MYSQL -I/usr/include/mysql -I/usr/include/sasl' \
'AUXLIBS=-L/usr/lib/mysql -L/usr/lib/sasl2 -lmysqlclient -lsasl2 -lz -lm'
[root@mail build] make
[root@mail build] make install
执行make install这里会出现很多问题,但postfix已经为我们设置好了默认的答案,直接使用这些答案就可以使postfix正常工作了,所以我们只要直 接按回车就可以了
11、安装Courier-authlib
[root@mail build] cd courier-authlib-0.58
[root@mail build] ./configure --prefix=/usr/lib/authlib --without-authpam \
--without-authcustom --without-authpgsql --without-authldap \
--without-authuserdb --without-authpwd --without-authshadow \
--without-authvchkpw --with-authmysql \
--with-authdaemonvar=/usr/lib/authlib/var \
--mandir=/usr/lib/man --without-stdheaderdir \
--sysconfdir=/usr/lib/authlib/etc \
--with-redhat
[root@mail build] make
[root@mail build] make install
[root@mail build] make install-migrate
[root@mail build] make install-configure
12、设置authlib的环境变量
[root@mail build] export COURIERAUTHCONFIG
13、安装Courier-imap
[root@mail build] cd courier-imap-4.0.6
[root@mail build] ./configure –prefix=/usr/lib/imapd \
--silent --without-authpgsql --without-ipv6 \
--with-redhat --with-authmysql \
--mandir=/usr/lib/man --disable-root-check
[root@mail build] make
[root@mail build] make install
[root@mail build] make install-configure
14、配置系统
[root@mail build] ln -s /etc/postfix/aliases /etc/aliases
[root@mail build] echo 'root: postfix'>>/etc/postfix/aliases
[root@mail build] /usr/bin/newaliases
[root@mail build] mv /var/mail /var/mail.bak
[root@mail build] mkdir /var/mail
[root@mail build] chown -R postfix:postfix /var/mail
[root@mail build] mv /etc/postfix/main.cf /etc/postfix/main.cf.bak
[root@mail build] vi /etc/postfix/main.cf command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
html_directory = no
mail_owner = postfix
mailq_path = /usr/bin/mailq
manpage_directory = /usr/local/man
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
sample_directory = /etc/postfix
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
unknown_local_recipient_reject_code = 550
header_checks = regexp:/etc/postfix/header_checks
#############NEW ADD#####################
#=====================BASE=====================
myhostname = mail.test.com
mydomain = test.com
mydestination = $myhostname
local_recipient_maps =
local_transport = virtual
#=====================MySQL=====================
virtual_alias_maps = mysql:/etc/postfix/mysql/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:54321
virtual_mailbox_base = /
virtual_mailbox_domains = mysql:/etc/postfix/mysql/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 51200000
virtual_mailbox_maps = mysql:/etc/postfix/mysql/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 125
virtual_transport = virtual
virtual_uid_maps = static:12345
#=====================Quota=====================
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_overquota_bounce = yes
#====================SASL=====================
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_delay_reject=yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,permit_auth_destination,reject
smtpd_client_restrictions = permit_sasl_authenticated [root@mail build] vi mysql_virtual_alias_maps.cf user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT alias FROM userinfo WHERE address='%s' AND active = 1 [root@mail build] vi mysql_virtual_domains_maps.cf user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT domain FROM domaininfo WHERE domain='%s' [root@mail build] vi mysql_virtual_mailbox_limit_maps.cf user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT quota FROM userinfo WHERE address='%s' [root@mail build] vi mysql_virtual_mailbox_maps.cf user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT maildir FROM userinfo WHERE address='%s' AND active = 1
15、配置sasl认证
log_level: 3
mech_list: plain login
authdaemond_path:/usr/lib/authlib/var/socket
16、配置courier-imap
[root@mail build] vi /usr/lib/authlib/etc/authlib/authmysqlrc MYSQL_SERVER localhost
MYSQL_USERNAME postfix
MYSQL_PASSWORD postfix
MYSQL_PORT 0
MYSQL_OPT 0
MYSQL_DATABASE postfix
MYSQL_USER_TABLE userinfo
MYSQL_CRYPT_PWFIELD passwd
MYSQL_UID_FIELD '12345'
MYSQL_GID_FIELD '54321'
MYSQL_LOGIN_FIELD address
MYSQL_HOME_FIELD homedir
MYSQL_NAME_FIELD realname
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD quota [root@mail build] mv /usr/lib/authlib/etc/authlib/authdaemonrc /usr/lib/authlib/etc/authlib/authdaemonrc.bak
[root@mail build] vi /usr/lib/authlib/etc/authlib/authdaemonrc authmodulelist="authmysql"
authmodulelistorig="authmysql"
version="authdaemond.mysql"
daemons=5
subsystem=mail
DEBUG_LOGIN=0
DEFAULTOPTIONS="wbnodsn=1" [root@mail build] vi /usr/lib/imapd/etc/pop3d
默认
POP3DSTART=NO
改为
POP3DSTART=YES
[root@mail build] vi /usr/lib/imapd/etc/imapd
默认
IMAPDSTART=NO
改为
IMAPDSTART=YES
[root@mail build] chmod +x /usr/lib/authlib/var/
17、安装WebMail
[root@mail build] vi /var/www/html/webmail/config/config_inc.php $CFG_BASEPATH = "/var/www/html/webmail/temp"; //临时目录
// Mysql
define(MYSQL_HOST, 'localhost'); //数据库主机名
define(MYSQL_USER, 'postfix'); //数据库用户名
- 最新评论