天天看点

在RHEL5下构建基于虚拟用户的Postfix邮件系统

<a href="http://blog.51cto.com/attachment/201009/142435502.jpg" target="_blank"></a>

在本邮件系统架构实验中,服务器所使用的相关配置环境如下:

邮件服务器IP地址:177.17.17.1

DNS服务器IP地址:177.17.17.1

Apache服务器:177.17.17.1

Mysql数据库:177.17.17.1

主机名:mail.sjzz.com

邮件账号:使用虚拟用户。

POP3/IMAP服务器软件:编译安装的Dovecot

Webmail平台软件:Extmail、Extman

APACHE、MYSQL平台:使用编译安装的apache、mysql,对应的安装目录分别为:/usr/local/apache2、/usr/local/mysql

关于Apache、MYsql、Postfix的安装配置过程已经在此前写的博文中出现过,在此不再赘述,相关配置详见以下三篇博文:

DNS服务器的配置如下:

<a href="http://blog.51cto.com/attachment/201009/144334297.jpg" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201009/144351891.jpg" target="_blank"></a>

接下来开始构建Postfix服务器:

一.配置Postfix支持虚拟用户

1.建立虚拟用户数据库:

直接导入Extman邮件管理工具套件提供的创建数据库和初始化数据库的sql脚本,当然也可以手动创建数据库:

#service mysqld restart            //重新启动一下mysql数据库

#tar zxf extman-0.2.5.tar.gz         

#cd extman-0.2.5/docs

#mysql -u root -p123456 &lt; extmail.sql  //导入extmail.sql脚本,root用户登入数据库密码为123456

#mysql-u root  -p123456 &lt; init.sql   //导入init.sql脚本

extmail.sql脚本完成的主要数据库操作如下:

*创建名为extmail的数据库及该库中的一些表;

*建立数据库用户extmail@localhost,初始密码为extmail,对数据库extmail中的表有select、update权限;

*建立数据库用户webman@localhost,初始密码为extman,对数据库extmail中的表有select、insert、delete、update权限。

init.sql脚本完成的主要数据库操作如下:

*初始化数据库Extmail;

*建立名为extmail.org的虚拟邮件域;

*建立数据库用户[email protected],初始密码为:extmail*123* ,作为邮件域的管理账户;

*建立数据库用户[email protected],初始密码为:extmail,作为基本邮件用户。

2.配置Postfix:

#vi /etc/postfix/main.cf

添加与修改的配置项如下:(包括postfix运行的基本参数、SMTP认证相关的参数和支持虚拟用户的配置参数)

<a href="http://blog.51cto.com/attachment/201009/151845269.jpg" target="_blank"></a>

将Extman软件包提供的虚拟用户映射表样例文件复制到“/etc/postfix”目录中,这样一会儿我们就不必手动创建虚拟邮件用户对应的别名等文件,使用样例文件即可完成此部分功能:(样例文件位于源码包解压后的/extman-0.2.5/docs目录下)

#cp mysql_virtual_*  /etc/postfix

3.为虚拟用户设置SMTP发信认证:

1)编译安装courier-authlib软件包:

#tar jxf courier-authlib-0.60.2.tar.bz2

#cd 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 &amp;&amp; make install

#make install-configure

2)修改courier-authlib相关配置,并启动服务:

将courier-authlib的库文件路径添加到系统的搜索路径中:

#vi /etc/ld.so.conf

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

#ldconfig

修改authdaemonrc主配置文件,仅保留authmysql认证方式,去掉其他方式:

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

#vi authdaemonrc

authmodulelist=“authmysql”           //需要修改的配置项

authmodulelistorig="authmysql"           //需要修改的配置项

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

修改authmysqlrc文件,用于描述如何向mysql数据库查询信息:

#vi authmysqlrc

复制courier-authlib脚本,并启动courier-authlib服务:

#cp courier-authlib.sysvinit    /etc/init.d/courier-authlib    //courier-authlib.sysvinit文件位于源码包解压后的courier-authlib-0.60.2目录下

#chmod 755 /etc/rc.d/init.d/courier-authlib

#service courier-authlib start

#chkconfig --level 35  courier-authlib  on

3)修改Cyrus sasl设置:(修改smtpd.conf文件,此文件在搭建基于系统用户的邮件系统时已建立,现在将认证方式更改为authdaemond,即courier-authlib)

#vi /usr/lib/sasl2/smtpd.conf

pwcheck_method: authdaemond

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

4.Dovecot的配置:

1)dovecot文件需要修改的配置如下:

<a href="http://blog.51cto.com/attachment/201009/162037891.jpg" target="_blank"></a>

2)建立数据库查询配置文件:

# vi /etc/dovecot-mysql.conf

<a href="http://blog.51cto.com/attachment/201009/162223126.jpg" target="_blank"></a>

3)建立虚拟用户[email protected]的邮箱目录,调整权限,并启动dovecot服务:

#mkdir -p /mailbox/extmial.org/postmaster/Maildir

#chown -R postfix:postfix /mailbox

#killall -9 dovecot        //如果dovecot服务已启动,先执行此步骤

#dovecot

5.测试虚拟用户实现结果:

测试authlib服务,如果之前的配置没有错误,将会看到“Authentication succeeded”信息:

<a href="http://blog.51cto.com/attachment/201009/163425699.jpg" target="_blank"></a>

二.配置ExtMail邮件使用及管理平台

1.部署ExtMail邮件使用界面:

1)按顺序先后安装三个Perl支持软件包

解包:

<a href="http://blog.51cto.com/attachment/201009/164112374.jpg" target="_blank"></a>

安装Unix-Syslog包:

# cd Unix-Syslog-1.1

# perl Makefile.PL

#make  &amp;&amp;  make install

安装DBI包:

# cd ../DBI-1.607

# make  &amp;&amp;  make install

安装DBD-mysql包:

# cd ../DBD-mysql-4.011

2)安装并配置ExtMail套件:

解压并释放extmail文件包到apache服务器的Web文档根目录中:

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

# cd /usr/local/apache2/htdocs

# mv extmail-1.0.5   extmail

设置cgi子目录的属主和属组,以便apache服务器有权限执行suexec操作:

# cd /extmail

# chown -R postfix:postfix cgi

建立webmail.cf配置文件:

# cp webmail.cf.default   webmail.cf

# vi webmail.cf              //需要修改的配置项如下图

<a href="http://blog.51cto.com/attachment/201009/172437892.jpg" target="_blank"></a>

3)修改httpd.conf文件中的配置(添加一个虚拟主机),并重新启动httpd服务:

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

<a href="http://blog.51cto.com/attachment/201009/172626531.jpg" target="_blank"></a>

# /usr/local/apache2/bin/apachectl  restart

4)登录并使用ExtMail邮件系统:

访问:http://mail.sjzz.com,使用默认的邮件账户“[email protected]”登录 ,密码为:"extmail"。

<a href="http://blog.51cto.com/attachment/201009/173443546.jpg" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201009/173513249.jpg" target="_blank"></a>

2.部署Extman Web管理界面:

1)安装perl支持软件包GD、File-Tail及rrdtool绘图引擎工具:

# tar zxf GD-2.41.tar.gz

# tar zxf File-Tail-0.99.3.tar.gz

安装GD包:

# cd GD-2.41

# make  &amp;&amp; make install

安装File-Tail包:

# cd  ../File-Tail-0.99.3

安装rrdrool绘图引擎包:

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

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

2)安装并配置Extman套件:

解压并释放Extman文件到apache服务器的web文档根目录中:

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

# mv extman-0.2.5   extman

调整cgi子目录的属主和属组,以便apache服务器有权限执行suexec操作:

# chown -R postfix:postfix  /usr/local/apache2/htdocs/extman/cgi

创建系统临时会话保存目录,并将属主、属组设置为postfix:postfix:

# mkdir /tmp/extman

# chown -R  postfix:postfix  /tmp/extman

修改webman.cf配置文件:(需要修改的地方如下,其它可以保持默认配置)

<a href="http://blog.51cto.com/attachment/201009/180324778.jpg" target="_blank"></a>

3)调整httpd.conf文件中的配置(添加extman相关目录的别名设置),并重启httpd服务:

<a href="http://blog.51cto.com/attachment/201009/181853339.jpg" target="_blank"></a>

 4)登录并管理Extman邮件系统:

访问http://mail.sjzz.com/extman ,使用默认的邮件管理员账户[email protected]登录,密码为extmail*123*

<a href="http://blog.51cto.com/attachment/201009/182216741.jpg" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201009/182242538.jpg" target="_blank"></a>

此时,我们就可以对邮件系统进行常规管理操作了。

但是我们这时候看“图形日志”这个链接时图片显示不出来(如下图),需要进行下一步的设置:

<a href="http://blog.51cto.com/attachment/201009/183615279.jpg" target="_blank"></a>

为Extman套件中mailgraph_ext插件程序建立链接文件,并启动相关程序:

<a href="http://blog.51cto.com/attachment/201009/184748226.jpg" target="_blank"></a>

若需要一开机就能自动启动mailgraph-init、qmonitor-init服务,可以将相关的启动命令添加到rc.local文件中:

# echo "/usr/sbin/mailgraph-init  start"  &gt;&gt; /etc/rc.d/rc.local

# echo "/usr/sbin/qmonitor-init  start"  &gt;&gt; /etc/rc.d/rc.local

再来刷新一下“图形日志”页面,此时可以显示图形日志了:

<a href="http://blog.51cto.com/attachment/201009/184913225.jpg" target="_blank"></a>

至此,基于虚拟用户的邮件系统基本上构建完成了。当然还需要作电子邮件过滤和防病毒的设置,以保障邮件服务器和用户计算机的安全。

本文转自 kk5234 51CTO博客,原文链接:http://blog.51cto.com/kk5234/395439,如需转载请自行联系原作者