第一章postfix所需软件包及存放目录

本文档是基于centos5.6来实现postfix邮件服务器的架构,下面列出所需相关软件包。


httpd-2.2.9.tar.gz                      安装源码包apache

mysql-5.0.56.tar.gz                     安装源码包mysql

php-5.2.6.tar.bz2                      安装php软件

postfix-2.4.6.tar.gz                     postfix主程序

postfix-2.4.6-vda-ng.patch.gz                 postfix的补丁包

dovecot-1.1.4.tar.gz                     IMAP和POP3邮件服务器软件

squirrelmail-1.4.13.tar.bz2                  web界面邮件管理

zh_CN-1.4.13-20071220.tar.bz2                汉化包

extman-0.2.5.tar.gz                     邮件后台管理程序

extmail-1.0.5.tar.gz                     web界面邮件管理

courier-authlib-0.60.2.tar.bz2                 SMTP发信认证

Unix-Syslog-1.1.tar.gz                    

DBI-1.607.tar.gz

DBD-mysql-4.011.tar.gz                   以上三个包为extmail的倚赖包

GD-2.41.tar.gz

File-Tail-0.99.3.tar.gz

rrdtool-1.2.23-3.el5.i386.rpm

rrdtool-perl-1.2.23-3.el5.i386.rpm               以上四个包为extman的倚赖包


下面开始进行postfix邮件服务器的搭建:


以上软件包分别上传到服务器的“/”下面的 “/azb”和“/gjanb”这两个目录中
















删除 RPM包举例:sendmail

# yum remove sendmail -y


防火墙配置

# service iptables stop

#vim /etc/sysconfig/iptables

清楚原有配置,并添加以下内容

# Generated byiptables-save v1.3.5 on Sun Oct  911:23:39 2011

*filter

:INPUT DROP[45878:2859393]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT  [3335:228744]

-A INPUT -p tcp -mtcp --sport 80 -j ACCEPT

-A INPUT -p tcp -mtcp --dport 143 -j ACCEPT

-A INPUT -p tcp -mtcp --dport 80 -j ACCEPT

-A INPUT -p udp -mudp --sport 53 -j ACCEPT

-A INPUT -p udp -mudp --dport 161 -j ACCEPT

-A INPUT -p tcp -mtcp --dport 21 -j ACCEPT

-A INPUT -p tcp -mtcp --dport 5666 -j ACCEPT

-A INPUT -p tcp -mtcp --dport 20 -j ACCEPT

-A INPUT -p tcp -mtcp --dport 110 -j ACCEPT

-A INPUT -p tcp -mtcp --dport 25 -j ACCEPT

-A INPUT -p tcp -mtcp --sport 25 -j ACCEPT

-A INPUT -p tcp -mtcp --dport 22 -j ACCEPT

-A INPUT -p tcp -mtcp --dport 3306 -j ACCEPT

-A INPUT -i lo -jACCEPT

-A INPUT -p icmp -jACCEPT

-A INPUT -m state--state RELATED,ESTABLISHED -j ACCEPT

COMMIT

# Completed on SunOct  9 11:23:39 2011

# service iptables start

查看当前防火墙策略

# iptables -L -n

第二章 平台结构

首先卸载系统自带的httpd-2.2.3-31.el5.cento

# yum remove httpd -y

2.1安装apache软件

下面我们将把所有需要的安装包解压到/usr/local/src/下面以方便我们统一管理维护

#tarzxvf httpd-2.2.9.tar.gz -C /usr/local/src

#cd/usr/local/src/httpd-2.2.9

#./configure--prefix=/usr/local/apache2 --enable-so --enable-rewrite

#make&& make install

这里我们并没有将Suexec编译进apache中去,提到这个的原因是因为后面我们装postfix时候的后台管理extman是通过CGI的方式来调用程序的,如果不启用Suexec的话那么就会限制其他用户调用CGI程序,但考虑到启用Suexec的风险我们在此就不启用它了。(启用方式:--enable-suexec -with-suexec-caller=daemon -with-suexec-docroot=/usr/local/apache2/htdocs)

2.2安装mysql软件

#useradd-M -s /sbin/nologin mysql      添加mysql用户,如果安装系统时候已经装过mysql会提示用户已存在,建议在安装前先卸载掉系统自带的mysql,卸载完成后必须重启,否则新装的mysql会无法启动,提示错误信息3306端口被占有

#tarzxvf mysql-5.0.56.tar.gz -C /usr/local/src

#cd /usr/local/src/mysql-5.0.56

#./configure--prefix=/usr/local/mysql

#make&& make install

安装完成。

配置mysql

#cd /usr/local/src/mysql-5.0.56

#cp support-files/my-medium.cnf/etc/my.cnf 复制主配置文件

#/usr/local/mysql/bin/mysql_install_db--user=mysql 初始化

#chown-R root:mysql /usr/local/mysql

#chown-R mysql /usr/local/mysql/var

#echo"/usr/local/mysql/lib/mysql"  >> /etc/ld.so.conf 添加库文件路径

#ldconfig刷新库文件搜索路径

#/usr/local/mysql/bin/mysqld_safe--user=mysql & 后台安全启动 (如果显示启动并且卡住不动按回车)

#cd /usr/local/src/mysql-5.0.56

#cp support-files/mysql.server/etc/init.d/mysqld 复制启动脚本

#chmod+x /etc/init.d/mysqld 赋予脚本执行权限

#chkconfig--add mysqld 添加到系统自动启动服务中

#chkconfigmysqld on 默认启动mysql

#chkconfig--list mysqld 查看mysql在什么级别启动或者关闭

#echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile

#source /etc/profile

设置系统全局的环境变量PATH值,方便使用mysql数据库命令

测试Mysql

#/usr/local/mysql/bin/mysqladmin  ping

#/usr/local/mysql/bin/mysqladmin  version

#/usr/local/mysql/bin/mysql


2.3安装php软件

#tarjxvf php-5.2.6.tar.bz2 -C /usr/local/src

#cd /usr/local/src/php-5.2.6

#./configure--prefix=/usr/local/php5 --enable-mbstring --with-apxs2=/usr/local/apache2/bin/apxs--with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5

#make

#maketest

#makeinstall

#cd /usr/local/src/php-5.2.6

#cp php.ini-dist/usr/local/php5/php.ini 复制配置文件

#vim/usr/local/apache2/conf/httpd.conf 修改apache服务的主配置文件使其支持php

LoadModulephp5_module modules/libphp5.so  确认这行的存在,如果没有就重新编译php

AddTypeapplication/x-httpd-php .php 添加这行记录

DirectoryIndexindex.php index.html 在这行添加关于php格式的首页

#ServerNamewww.example.com:80去掉注释,更改为

ServerNamelocalhost:80

然后保存退出


2.4测试php是否与apache整合成功

# /usr/local/apache2/bin/apachectl -t        检查配置文件语法错误

# /usr/local/apache2/bin/apachectl -k start   启动apachel

#vim/usr/local/apache2/htdocs/test.php

<?php

phpinfo();

?>

在浏览器中输入http://192.168.0.202/test.php 看到下图表示跟apache服务整合成功

spacer.gif

Mysql测试

#vim/usr/local/apache2/htdocs/testdb.php

<?php

$link=mysql_connect('localhost','test','');

if(!$link) echo"Fail!!!";

else echo"Success!!";

mysql_close();

?>  


在IE浏览器中输入网址http://192.168.0.202/testdb.php看到下图表示跟mysql服务整合成功spacer.gif

第三章 安装postfix软件

3.1安装postfix之前首先停止掉系统自带的sendmail软件

#servicesendmail stop

#chkconfig--level 35 sendmail off

3.2编译安装postfix软件

#groupadd-g 1200 postdrop

#groupadd-g 1000 postfix

#useradd-M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix

不创建宿主目录附属组

#tarzxvf postfix-2.4.6.tar.gz -C /usr/local/src

# cppostfix-2.4.6-vda-ng.patch.gz /usr/local/src/ 补丁文件,用以支持虚拟用户设置配额

#cd /usr/local/src

#gunzip postfix-2.4.6-vda-ng.patch.gz

#cd postfix-2.4.6

#patch -p1 <../postfix-2.4.6-vda-ng.patch   打补丁(注意此处-p1,后面是数字1而不是字母l)

spacer.gif

以上显示表示补丁已经打上。

#makemakefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH-DUSE_CYRUS_SASL -I/usr/include/sasl''AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient  -lz  -lm -L/usr/lib/sasl2 -lsasl2'

#make

#makeinstall

安装过程中会出现互动提问,直接选择默认设置即可。

安装完毕。


检查postfix

支持的SASL验证类型,参数-a查询服务器端类型,用来验证登录用户,-A查询客户端类型,Postfix用来和别的服务器通讯。

#postconf -a

显示:dovecotcyrus

说明现在已经支持dovecot和cyrus认证了


查看是否支持mysql

# postconf -m

显示内容如果有mysql说明支持mysql

#postfixcheck 检查配置

#postconf-n 查看配置


第四章 配置postfix

4.1postfix主配文件修改

#vim/etc/postfix/main.cf

inet_interfaces= all默认设置

myhostname= mail.abc.com 主机名

mydomain= abc.com 邮件域名

myorigin= $mydomain 外发邮件时发件人地址中的邮件域名

mydestination= $mydomain, $myhostname 可接收的邮件地址中的域名

home_mailbox= Maildir/ 邮件存储位置格式

快捷方式,直接添加以下内容

inet_interfaces = all

myhostname = mail.abc.com

mydomain = abc.com

myorigin = $mydomain

mydestination = $mydomain, $myhostname

home_mailbox = Maildir/

删除 sendmail

# yum remove sendmail -y

增加smtp认证包

#yum install cyrus-sasl-plain -y

#postfixstart 启动

4.2Smtp发送邮件测试

邮件本地账户管理

#groupaddmailusers

#useradd-g mailusers -s /sbin/nologin chenglu

#useradd-g mailusers -s /sbin/nologin test

#passwdchenglu

#passwdtest

SMTP发送邮件测试

#telnetlocalhost 25   连接本地的SMPT端口

Tring127.0.0.1..

Connectedto localhost.localdomain (127.0.0.1).

Escapecharacter is ‘^]’.

220mail.wisefund.com ESMTP Postfix

ehlolocalhost            宣告客户端主机地址

250mail.wisefund.com

MAILFROM:chenglu@abc.com   发信人地址

2502.1.0 ok

RCPTTO: test@abc.com      收信人地址

2502.1.5 ok

DATA                标记开始写信

354End data with <CR><LF>.<CR><LF>

Subject:just a test letter          信件题目

Hello!

Thisis a test mail.

.                   “点”表示信件结束

2502.0.0. ok:queued as 2F9AD787DA

quit                  退出

2212.0.0 Bye

Connectionclosed by foreign host.

查看接收到的邮件

#cat/home/test/Maildir/new/      按tab键

可以看见刚才发的那封邮件,说明SMPT没有问题。

第五章 Dovecot 邮局软件安装(提供pop3/imap4协议)

5.1安装Dovecot

#useradd-M -s /sbin/nologin dovecot

#tarzxvf dovecot-1.1.4.tar.gz -C /usr/local/src

#cd /usr/local/src/dovecot-1.1.4

#./configure--sysconfdir=/etc --with-mysql

#make

#makeinstall

5.2安装完成,配置

#cp /etc/dovecot-example.conf/etc/dovecot.conf 复制主配置文件

#vim/etc/dovecot.conf

ssl_disable= yes 禁用SSL机制

protocols= pop3 imap 指定邮局协议

disable_plaintext_auth= no 允许明文密码认证

mail_location= maildir:~/Maildir 设置邮件存储格式和位置

快捷方式,直接添加以下内容

ssl_disable = yes

protocols = pop3 imap

disable_plaintext_auth = no

mail_location = maildir:~/Maildir

#vim/etc/pam.d/dovecot 创建pam认证文件

authrequired pam_nologin.so

authinclude system-auth

accountinclude system-auth

sessioninclude system-auth

#/usr/local/sbin/dovecot-c /etc/dovecot.conf 启动

5.3POP3邮件接收测试

#telnetlocalhost 110

Trying127.0.0.1...

Connectedto localhost.localdomain (127.0.0.1).

Escapecharacter is '^]'.

+OKDovecot ready.

usertest               输入用户名

+OK

pass123456              输入密码

+OK Loggedin.

list                  列出邮件列表

+OK1 messages;

1480

.

retr1                 查看第一封邮件

+OK 480octets

下面显示邮件内容,测试完成

第六章 安装Webmail软件

5.1squirrelmail安装

#tarjxvf squirrelmail-1.4.13.tar.bz2 -C /usr/local/apache2/htdocs

#cd /usr/local/apache2/htdocs/

#mv squirrelmail-1.4.13webmail

#tar jxvf zh_CN-1.4.13-20071220.tar.bz2 -C /usr/local/apache2/htdocs/webmail  解压汉化软件

5.2配置webmail

#cd /usr/local/apache2/htdocs/webmail

#mkdir-p attach data

#chown-R daemon:daemon attach/  data/

#chmod730 attach/

#cp config/config_default.phpconfig/config.php 创建配置文件

#vimconfig/config.php

$squirrelmail_default_language= ‘zh_CN’;

$default_charset= ‘zh_CN.UTF-8’;

$domain= ‘abc.com’;

$smtpServerAddress= ‘localhost’; 设置发信服务器地址

$smtpPort= 25; 设置发信服务器端口

$imap_server_type= 'dovecot'; 设置收信服务器软件

$imapPort= 143; 设置收信服务器端口

$data_dir= '/usr/local/apache2/htdocs/webmail/data/';

$p_w_upload_dir= '/usr/local/apache2/htdocs/webmail/attach/';

#/usr/local/apache2/bin/apachectlrestart 重启apache 服务

客户端IE地址栏中输入 http://mail.wisefund.com/webmail (前提mail.wisefund.com可以被解析,否则用ip)

即可看见下图:

spacer.gif

到此我们的postfix+webmail已经安装完成,但是为了使我们更好的管理维护邮件服务器的前端与后台接下来我们来安装extmail和extman以便实现我们的需求。

第六章 初始化 extman 软件

6.1数据库脚本

#servicemysqld restart

#tarzxvf extman-0.2.5.tar.gz -C /usr/local/src

#cd /usr/local/src/extman-0.2.5/docs

#mysql-u root -p < extmail.sql

#mysql-u root -p <init.sql 脚本导入数据库的时候会询问密码,默认情况下root用户密码为空

第七章 配置 Postfix

#postconf-m |grep mysql 返回值有mysql,说明可以支持mysql 数据库的查询表

7.1修改配置文件

#vim/etc/postfix/main.cf

#mydestination = $mydomain, $myhostname 该行需要注释掉

virtual_mailbox_base= /mailbox 指定虚拟邮箱存储目录的路径起点

virtual_alias_maps= mysql:/etc/postfix/mysql_virtual_alias_maps.cf

指定虚拟邮件用户对应的别名文件位置

virtual_mailbox_maps= mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf

指定记录虚拟邮箱地址与存储位置对应关系的映射文件位置

virtual_mailbox_domains= mysql:/etc/postfix/mysql_virtual_domains_maps.cf

设置postfix服务器可以接收的虚拟邮件域的域名

virtual_uid_maps= static:1000 设置所有虚拟邮件用户映射的本地用户的UID号

virtual_gid_maps= static:1000 设置所有虚拟邮件用户映射的本地组的GID 号

快捷方式,直接添加以下内容

virtual_mailbox_base = /mailbox

virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf

virtual_mailbox_maps =mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf

virtual_mailbox_domains =mysql:/etc/postfix/mysql_virtual_domains_maps.cf

virtual_uid_maps = static:1000

virtual_gid_maps = static:1000


#cd /usr/local/src/extman-0.2.5/docs

#cp mysql_virtual_*/etc/postfix/ 在上面的三行配置中指定了这三个文件

第八章 虚拟用户设置SMTP发信认证

8.1软件安装

注意:确认系统中的rpm格式的mysql 软件被卸载

#tarjxvf courier-authlib-0.60.2.tar.bz2 -C /usr/local/src

# cd/usr/local/src/courier-authlib-0.60.2/

#./configure--prefix=/usr/local/courier-authlib --without-stdheaderdir --with-authmysql --with-redhat-with-mysql-libs=/usr/local/mysql/lib/mysql --with-mysql-includes=/usr/local/mysql/include/mysql

#make

#makeinstall

#makeinstall-configure 生成默认配置文件authmysqlrc 和 authdaemonrc

8.2添加courier-authlib的库文件路径

#vim/etc/ld.so.conf

/usr/local/courier-authlib/lib/courier-authlib

#ldconfig

8.3修改authdaemonrc主配置文件

#cd /usr/local/courier-authlib/etc/authlib

#cp authdaemonrcauthdaemonrc.bak

#vimauthdaemonrc

authmodulelist="authmysql"

authmodulelistorig="authmysql"

#chmod-R 755 /usr/local/courier-authlib/var/spool/authdaemon

8.4修改authmysqlrc 文件

#cd /usr/local/courier-authlib/etc/authlib

#cp authmysqlrcauthmysqlrc.bak

#vimauthmysqlrc

MYSQL_SERVER      localhost 数据库服务器位置

MYSQL_USERNAME     extmail 数据库管理员账户

MYSQL_PASSWORD     extmail 数据库管理员账户密码

MYSQL_SOCKET      /tmp/mysql.sock文件位置

MYSQL_DATABASE     extmail 虚拟用户数据库

MYSQL_USER_TABLE    mailbox 从mailbox表获得邮件账户信息

MYSQL_CRYPT_PWFIELD   password 从password字段获得账户密码

MYSQL_UID_FIELD     uidnumber 从uidnumber字段获得映射的本地用户UID

MYSQL_GID_FIELD     gidnumber 从gidnumber字段获得映射的本地组GID

MYSQL_LOGIN_FIELD    username 从username字段获得账户名称,带@后缀

MYSQL_HOME_FIELD    concat('/mailbox/',homedir)合并出用户的宿主目录路径

MYSQL_NAME_FIELD    name 从name 字段获得账户名称,不带@后缀

MYSQL_MAILDIR_FIELD   concat('/mailbox/',maildir)合并出用户的邮件存储路径

8.5复制脚本,启动服务

#cd /usr/local/src/courier-authlib-0.60.2/

#cp courier-authlib.sysvinit/etc/init.d/courier-authlib

#chmod755 /etc/rc.d/init.d/courier-authlib

#chkconfig--level 35 courier-authlib on

#servicecourier-authlib start

第九章 修改Cyrus sasl 设置

#vim/usr/lib/sasl2/smtpd.conf          编辑smtpd认证配置文件,该文件默认不存在

pwcheck_method:authdaemond

authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket

第十章 修改Dovecot配置

10.1修改Dovecot

#vim/etc/dovecot.conf

mail_location= maildir:~/Maildir   注释掉,更换成下面配置

mail_location= maildir:/mailbox/%d/%n/Maildir

…………………………………………………………………….省略号表示文件中原有的内容

authdefault {

  mechanisms = plain

  passdbsql {


<<<<  注释掉#并添加

     args = /etc/dovecot-mysql.conf


  }

  userdbsql {

     args = /etc/dovecot-mysql.conf

  }

……………………………………………………………………...省略号表示文件中原有内容

10.2建立数据查询配置文件

#vim/etc/dovecot-mysql.conf

driver= mysql

connect= host=localhost dbname=extmail user=extmail password=extmail

default_pass_scheme= CRYPT 数据库中存储的密码串的加密算法

password_query= SELECT username AS user,password AS password FROM mailbox WHERE username = '%u'查询用户密码的语句

user_query= SELECT maildir, uidnumber AS uid, gidnumber AS gid FROM mailbox WHERE username= '%u' 查询用户身份语句

第十一章 建立虚拟用户

11.1建立邮箱目录并调整权限

#mkdir-p /mailbox/extmail.org/postmaster/Maldir

# cd/mailbox/extmail.org/postmaster/Maldir

#chown-R postfix:postfix /mailbox

#dovecot启动服务

11.2虚拟用户测试

确认authlib服务

#/usr/local/courier-authlib/sbin/authtest -s login postmaster@extmail.org extmail

Authenticationsucceeded.             成功提示信息


  Authenticated: postmaster@extmail.org (uid1000, gid 1000)

 Home Directory:/mailbox/extmail.org/postmaster

     Maildir:/mailbox/extmail.org/postmaster/Maildir/

      Quota: (none)

EncryptedPassword: $1$phz1mRrj$3ok6BjeaoJYWDBsEPZb5C0

CleartextPassword: extmail

     Options: (none)

第十二章 ExtMail平台

基于Perl 语言开发的中文Webmail管理平台

套件:ExtMail --Web 界面的邮件操作

  Extman -Web 界面的邮件系统管理

12.1平台安装

3个倚赖包

#tar-zxvf Unix-Syslog-1.1.tar.gz -C /usr/local/src

#cd /usr/local/src/Unix-Syslog-1.1

#perlMakefile.PL

#make

#makeinstall

#tar-zxvf DBI-1.607.tar.gz -C /usr/local/src

#cd /usr/local/src/DBI-1.607

#perlMakefile.PL

#make

#maketest

#makeinstall

#tar-zxvf DBD-mysql-4.011.tar.gz -C /usr/local/src

#cd /usr/loca/src/DBD-4.011

#perlMakefile.PL

#make

#makeinstall

注意以上三个包在编译安装过程可能会提示警告信息 隐式函数 计算出的变量值未被使用等,只要没有error信息就一切ok

安装ExtMail

#tar-zxvf extmail-1.0.5.tar.gz -C /usr/local/apache2/htdocs

#cd /usr/local/apache2/htdocs

#mv extmail-1.0.5extmail

#cd extmail

#chown-R postfix:postfix cgi

#cp webmail.cf.defaultwebmail.cf

12.2修改配置文件

#cd /usr/local/apache2/htdocs/extmail

#vimwebmail.cf

SYS_CONFIG= /usr/local/apache2/htdocs/extmail/ 程序根目录

SYS_LANGDIR= /usr/local/apache2/htdocs/extmail/lang 语言包文件目录

SYS_TEMPLDIR= /usr/local/apache2/htdocs/extmail/html 系统模版目录

SYS_MAILDIR_BASE= /mailbox 邮件存储目录

SYS_MYSQL_USER= extmail 访问mysql数据库的用户

SYS_MYSQL_PASS= extmail 访问mysql数据库的用户的密码

SYS_MYSQL_DB= extmail  使用数据库的名称

SYS_MYSQL_HOST= localhost 数据库服务器地址

SYS_MYSQL_SOCKET= /tmp/mysql.sock 数据库套接文件位置

12.3修改apache服务,添加虚拟主机

#vim/usr/local/apache2/conf/httpd.conf

NameVirtualHost*:80

<VirtualHost*:80>

ServerNamemail.abc.com

DocumentRoot/usr/local/apache2/htdocs/extmail/html/

ScriptAlias/extmail/cgi/ "/usr/local/apache2/htdocs/extmail/cgi/"

Alias/extmail "/usr/local/apache2/htdocs/extmail/html/"

</VirtualHost>

Userpostfix    找到 User 该用户为postfix

Grouppostfix   找到 Group 该组为postfix

这里由于前面我们并没有启用Suexec 所以我们没有在虚拟主机中添加 SuexecUerGroup postfixpostfix

#/usr/local/apache2/bin/apachectlrestart

12.4Extmail无法访问问题原因

到这一步很多网上的文档都会说这时候只要在客户端访问http://mail.wisefund.com就可以看到ExtMail的登录界面,但是经过我很多次实践改动配置得到的结果都是访问页面不存在404的错误提示页面,一度我曾认为可能是我之前编译的那三个倚赖包有问题,或者是我的PHP有问题,以及cgi权限问题都想到但是结果依然是404页面不存在,但是我可以很正常的看到访问http://mail.wisefund.com时候页面确实是跳转到了http://mail.wisefund.com/extmail/cgi/index.cgi这个目录,而且我这个目录中文件确实存在,没有任何问题,经过我多次尝试终于找到原因如果要成功的访问到这个页面就必须把Extman装上,并且在apache配置文件中写入extman的路径这样我终于如愿以偿的看到了期望已久的ExtMail的登录界面。

下面我们开始安装Extman

第十三章 Extman平台

13.1安装包

4个倚赖包

#tar-zxvf GD-2.41.tar.gz -C /usr/local/src

#cd /usr/local/src/GD-2.41

#perlMakefile.PL

#make

#makeinstall

#tar-zxvf File-Tail-0.99.3.tar.gz -C /usr/local/src

#cd /usr/local/src/File-Tail-0.99.3

#perlMakefile.PL

#make

#makeinstall

rrdtool_i386_32位系统安装

#rpm-ivh rrdtool-1.2.23-3.el5.i386.rpm

#rpm-ivh rrdtool-perl-1.2.23-3.el5.i386.rpm

rrdtool_ADM64_64位系统安装

#rpm -ivh rrdtool-1.2.27-3.el5.x86_64.rpm

#rpm -ivh rrdtool-perl-1.2.27-3.el5.x86_64.rpm

Extman套件

#tar-zxvf extman-0.2.5.tar.gz -C /usr/local/apache2/htdocs

#cd /usr/local/apache2/htdocs

#mv extman-0.2.5extman

#cd extman

#chown-R postfix:postfix cgi

#mkdir/tmp/extman 临时回话保存目录

#chown-R postfix:postfix /tmp/extman

13.2修改配置文件

#vim/usr/local/apache2/htdocs/extman/webman.cf

SYS_CONFIG= /usr/local/apache2/htdocs/extman/ 程序根目录

SYS_LANGDIR= /usr/local/apache2/htdocs/extman/lang 语言包文件目录

SYS_TEMPLDIR= /usr/local/apache2/htdocs/extman/html 系统模版目录

SYS_MAILDIR_BASE= /mailbox 邮件数据存放路径

SYS_MYSQL_USER= webman 访问mysql数据库的用户

SYS_MYSQL_PASS= webman 访问mysql数据库的用户的密码

SYS_MYSQL_DB= extmail 使用的数据库名称

SYS_MYSQL_HOST= localhost 数据库服务器地址

SYS_MYSQL_SOCKET= /tmp/mysql.sock 数据库套接文件位置

13.3调整apache主配文件。添加extman相关目录别名

#vim/usr/local/apache2/conf/httpd.conf

NameVirtualHost*:80

<VirtualHost*:80>

ServerNamemail.abc.com

DocumentRoot/usr/local/apache2/htdocs/extmail/html/

ScriptAlias/extmail/cgi/ "/usr/local/apache2/htdocs/extmail/cgi/"

Alias/extmail "/usr/local/apache2/htdocs/extmail/html/"


<<<<  添加

ScriptAlias/extman/cgi "/usr/local/apache2/htdocs/extman/cgi/"


Alias /extman"/usr/local/apache2/htdocs/extman/html/"

</VirtualHost>

#/usr/local/apache2/bin/apachectlrestart

13.4现在在客户端访问

修改登录extmailPOP3SMTP服务器设置信息提示信息:

# vim/usr/local/apache2/htdocs/extmail/html/default/index.html

               POP3<b>:</b>&nbsp;&nbsp;pop3.abc.com<br />

               SMTP<b>:</b>&nbsp;&nbsp;smtp.abc.com<br />

http://mail.wisefund.com就可以看见ExtMail的登录界面了。

在客户端访问

http://mail.wisefund.com/extman就可以看见Extman后台管理登录界面了

默认管理员账户:root@extmail.org

默认密码:extmail*123*

第十四章 设置邮件系统的图形化日志信息

[root@localhost~]# ln -sf /usr/local/apache2/htdocs/extman/addon/mailgraph_ext/mailgraph-ini /usr/sbin/

[root@localhost~]# ln -sf /usr/local/apache2/htdocs/extman/addon/mailgraph_ext/qmonitor-init /usr/sbin/

[root@localhost~]# cp -a /usr/local/apache2/htdocs/extman/addon/mailgraph_ext /usr/local

#/usr/local/apache2/htdocs/extman/addon/mailgraph_ext/mailgraph-init  start

#/usr/local/apache2/htdocs/extman/addon/mailgraph_ext/qmonitor-init  start

#echo /usr/local/apache2/htdocs/extman/addon/mailgraph_ext/mailgraph-init  start >> /etc/rc.local

#echo /usr/local/apache2/htdocs/extman/addon/mailgraph_ext/qmonitor-init  start >> /etc/rc.local


参考启动文件rc.local

touch/var/lock/subsys/local

/usr/local/mysql/bin/mysqld_safe--user=mysql &

/usr/local/apache2/bin/apachectlstart

/usr/local/sbin/dovecot

/usr/sbin/postfixstart

/usr/local/apache2/htdocs/extman/addon/mailgraph_ext/mailgraph-init  start

/usr/local/apache2/htdocs/extman/addon/mailgraph_ext/qmonitor-init  start

/etc/init.d/saslauthdstart

/etc/init.d/courier-authlibstart

/usr/local/nagios/bin/nrpe-c /usr/local/nagios/etc/nrpe.cfg -d

第十五章 垃圾邮件过滤

15.1根据客户端的主机名/地址过滤邮件

[root@localhost~]# vim /etc/postfix/main.cf

smtpd_client_restrictions= check_client_access hash:/etc/postfix/access

[root@localhost~]# vim /etc/postfix/access

192.168.4REJECT

192.168.4.1OK

bbc.comREJECT

[root@localhost~]# postmap /etc/postfix/access

15.2根据客户机HELO 信息中的主机名地址过滤邮件

[root@localhost~]# vim /etc/postfix/main.cf

smtpd_helo_required= yes

smtpd_helo_restrictions= reject_invalid_hostname

[root@localhost~]# postfix reload

15.3根据发件人的地址过滤邮件

[root@localhost~]# vim /etc/postfix/mail.cf

smtpd_sender_login_maps=

mysql:/etc/postfix/mysql_virtual_sender_maps.cf,

mysql:/etc/postfix/mysql_virtual_alias_maps.cf

smtpd_sender_restrictions=

permit_mynetworks,

reject_sender_login-mismatch,

reject_non_fqdn_sender,

reject_unknown_sender_domain,

check_sender_accesshash:/etc/postfix/sender_access

[root@localhost~]# vim /etc/postfix/sender_access

ads@xxxx.comREJECT

marketing@REJECT

fake.aptech.comREJECT

[root@localhost~]# postmap /etc/postfix/sender_access

15.4根据收件人的地址过滤邮件

[root@localhost~]# vim /etc/postfix/main.cf

smtpd_recipient_restrictions=

permit_mynetworks,

permit_sasl_authenticated,

reject_unauth_destination,

reject_non_fqdn_recipient,

reject_unknown_recipient_domain

[root@localhost~]# postfix restart

15.5基于邮件内容的过滤

15.5.1安装并配置MailScanner 扫描调度工具

1) 安装MailScanner 扫描调度工具

[root@localhost~]# tar zxvf MailScanner-4.75.11-1.rpm.tar.gz

[root@localhost~]# cd MailScanner-4.75.11-1

[root@localhostMailScanner-4.75.11-1]# ./install.sh

2) 修改配置文件MailScanner

[root@localhost~]# vim /etc/MailScanner/MailScanner.conf

RunAs User = postfix

RunAs Group = postfix

IncomingQueue Dir = /var/spool/postfix/hold

OutgoingQueue Dir = /var/spool/postfix/incoming

MTA=postfix

RequiredSpamAssassin Score =7

HighSpamAssassin Score = 10

SpamActions = deliver header “X-Spam-Status: Yes”

HighSoring Spam Actions = delete forward spam@extmail.org

3) 配置Postfix 支持调用MailScanner

[root@localhost~]# vim /etc/postfix/main.cf

header_checks= regexp: /etc/postfix/header_checks

[root@localhost~]# vim /etc/postfix/header_checks

/^Received:/HOLD

4) 调整邮件过滤队列的目录属主、属组,并启动MailScanner服务程序

[root@localhost~]# chown -R postfix.postfix

/var/spool/MailScanner/incoming

[root@localhost~]# chown -R postfix.postfix

/var/spool/MailScanner/quarantine

[root@localhost~]# service MailScanner start

[root@localhost~]# chkconfig -level 35 MailScanner on

15.5.2安装并配置SpamAssassin 垃圾邮件过滤器

1) 安装并配置SpamAssassin 垃圾邮件过滤器

[root@localhost~]# mount /dev/cdrom /media

[root@localhost~]# cd /media

[root@localhostmedia]# rpm -ivh spamassassin-3.1.7-4.e15.i386.rpm

2) 修改配置文件local.cf

(位于“/etc/mail/spamassassin/local.cf”,一般不需要进行任何修改,保

持默认设置即可)

3) 启动SpamAssassin 服务

[root@localhost~]# service spamassassin start

[root@localhost~]# chkconfig -level 35 spamassassin on

15.5.3安装并配置F-Port 病毒查杀软件

1) 安装F-Port 软件包安装过程中出现提示是按回车键接受默认设置

[root@localhost~]# tar zxvf fp-Linux-i686-ws.tar.gz -C /opt/

[root@localhost~]# cd /opt/f-prot/

[root@localhostf-prot]# ./install-f-prot.pl

2) 升级F-Port 病毒库(服务器要能够访问Internet 互联网)

[root@localhostf-prot]# /opt/f-prot/fpupdate

[root@localhostf-prot]# crontab -e

00 8* * * /opt/f-prot/fpupdate

[root@localhostf-prot]# service crond start

[root@localhostf-prot]# chkconfig -level 35 crond on

15.6Extmail 登录页面

下面附上我成功访问之后的登录界面

如下图:

spacer.gif

15.7Extman登录页面

spacer.gif

从后台登录创建wisefund.com域名

添加用户chenglu

登录ExtMail

这里需要注意一点就是要登录extmail必须解析域名,使用IP访问时候无法登录,会提示IP域名无效。下面我们看一下登录进去的界面。

第十六章 Extman后台管理设置

16.1首页概况

登录进去首页显示系统管理员列表

spacer.gif



域列表中的wisefund.com是我们刚才创建的

spacer.gif



16.2添加用户

基础设置 设置用户名,后面可选用户所在的域。

用户的磁盘限额、网络磁盘限额以及过期日期是否激活等(默认磁盘、网络磁盘限额为5M)

设置完基本信息保存修改会提示密码错误,所有要设置密码之后才可以保存修改。

spacer.gif


16.2.1密码设置

设置密码、密码找回问题以及是否禁止用户修改密码

spacer.gif


16.2.2功能设置

这里一般保持默认即可

spacer.gif

16.3添加别名

可以添加别名、别名所在的域,设置多个目标地址提示 目标地址每行只能写一个 并激活

spacer.gif

16.4添加域

基础设置 设置域名、域名描述、最大用户、最大别名、最大限额、最大网络磁盘限额、传输方式、还有是否允许自由注册(如果勾上这个选项的话,在ExtMail登录页面下面有一个免费注册邮箱就可以注册,如果不勾的话注册免费邮箱时候就会提示域名不提供注册服务!)是否激活域名、最后是域名过期日期。

spacer.gif


16.4.1模版设置

设置域名新账户默认限额、网络磁盘限额、新账户默认生命周期以及新账户默认开启的服务

spacer.gif



16.5添加管理员

管理员名称、通用名、过期日期是否激活等。同普通用户一样需要设置密码才能保存修改。

spacer.gif





16.5.1密码相关设置

同普通用户一样也是 设置密码、找回密码问题与答案是否禁止用户修改密码等

spacer.gif



16.5.2管理域名

可以设置管理员管理的域名增加、删除域名等

spacer.gif


16.6群发邮件

按照提示说明可以设置邮件的群发,可用于通知类型的邮件

spacer.gif

16.7图像日志

在这里可以查看各类日志分析邮件服务器是否正常

spacer.gif


第十七章 Extmail登录

17.1邮件用户登录界面首页

spacer.gif

17.2偏好设置

这里可以设置个人的信息包括姓名、密码及密码问题等

spacer.gif

其他选项卡同其他的邮件服务器一样。