postfix+extmail+extman实现虚拟用户邮件系统(1)

 

 

 

 

postfix+extmail+extman实现虚拟用户邮件系统

如今主流的邮件服务器是基于web管理界面的,既简单又方便管理,下图大致描述了这种形式的邮件服务器的构成和工作原理:

用户通过邮件客户端编写邮件,通过邮件服务器(我们用postfix)把邮件发送出去,发送时需要进行身份验证,这样比较安全,同样,用户通过使用dovecot收件服务器来接收给自己的邮件,邮件未读取时都被放在自己的mailbox里,当用户收件时,需要进行身份验证。并不是说只有本机用户可以进行邮件的收发,邮件服务器通过courier-authlib组件来和mysql数据库连接,从而实现虚拟用户的登录,进行邮件收发,同时,为了方便用户们的发件和管理邮件,我们可以通过apache+extmail+extman实现对邮件的web界面管理,极大提高了邮寄服务器的便捷性。下面就让我们来共同学习一下通过web管理界面实现虚拟用户的邮件收发和注册。

环境:red hat 5.4

搭建步骤:

安装前确保搭建环境符合要求,要安装过一下四个开发工具

#yum grouplist

Development Libraries

Development Tools

Legacy Software Development

X Software Development

安装源码httpd

这里我使用的是httpd-2.4.4(在前面的博客里已经对httpd的源码安装已经有详细介绍,这里只做大概步骤的说明)

tar –jxvf httpd-2.4.4.tar.bz2 –C /usr/local/src/

编译安装需要依赖aprapr-utilpcre-devel,这里aprapr-util使用的源码安装,pcre-devel使用的系统光盘镜像

安装apr

tar -zxvf apr-1.4.6.tar.gz

./configure --prefix=/usr/local/apr

Make && make install

安装apr-util

tar -zxvf apr-util-1.4.1.tar.gz

./configure –with-apr=/usr/local/apr/bin/apr-1-config

Make && make install

安装pcre-devel

rpm -ivh /mnt/cdrom/Server/pcre-devel-6.6-2.el5_1.7.i386.rpm

安装httpd

执行makemake install命令,这样就安装完毕了

为了使httpd能够方便的完成启动、关闭、重启功能我们为它编写一个脚本

这样httpd就搭建完成了

Mysql源码搭建(为了方便我们直接用的mysql二进制软件包)

Mysql为二进制软件包,直接解压到/usr/local目录下

Tar –zxvf mysql-5.5.15-linux2.6-i686.tar.gz –C /usr/local/

进入解压后的目录为mysql目录建一个软连接方便打开

# ln -s mysql-5.5.15-linux2.6-i686 mysql

打开INSTALL-BINARY文件,并参考它的安装步骤进行安装

这样就可以使用servicemysql进行直接控制了

为了直接使用mysql进入数据库,去修改/etc/profile文件加入mysql环境配置路径

修改完毕更新profile

# . /etc/profile

为数据库root用户创建密码

# mysqladmin -u root -p password '123456'

接下来设置mysql的库文件和头文件来使其他应用能够找到它

/etc/ld.so.conf.d目录下创建mysql.conf文件并编辑,写上库文件的路径,编辑完后进行更新

#ldconfig

给头文件建立软连接

# ln -s include /usr/include/mysql

Root用户一个登录密码

#mysqladmin –u root –p password ‘123456’

启动mysql

Mysql的安装就结束了

配置dns(安装使用yum

#yum install bind bind-chroot caching-nameserver

切换到/var/named/chroot/etc目录下

并编辑

声明a.com

#vim /var/named/chroot/etc/named.rfc1912.zones

生成a.com.zone文件

# cd /var/named/chroot/var/named/

# cp -p localhost.zone a.com.zone

并编辑

修改dns指向、修改主机名

# vim /etc/sysconfig/network

# vim /etc/hosts

# vim /etc/resolv.conf(加入以下内容)

重启dns服务,并测试

Dns配置完毕

安装其他所需要的软件包

#yum install openssl-devel dovecot perl-DBD-MySQL tcl tcl-devel libart_lgpl libart_lgpl-devel libtool-ltdl libtool-ltdl-devel expect

安装postfix

按照INSTALL文件的基本步骤来进行配置

# groupadd -g 2525 postfix

# useradd -g postfix -u 2525 -s /sbin/nologin -M postfix

# groupadd -g 2526 postdrop

# useradd -g postdrop -u 2526 -s /bin/false -M postdrop

# tar zxvf postfix-2.6.5.tar.gz

# cd postfix-2.6.5

# make

# make install

Make install之后的选项基本选为默认值

执行/usr/bin/newaliases(生成新的aliases文件来和postfix结合)

为了方便启动postfix,我们使用光盘镜像下的控制脚本,创建一个临时目录

# cp /mnt/cdrom/Server/postfix-2.3.3-2.1.el5_2.i386.rpm ./

拆解rpm

# rpm2cpio postfix-2.3.3-2.1.el5_2.i386.rpm |cpio –id

/tmp/abc/etc/rc.d/init.d目录下有一个postfix可执行文件,它就是postfix的控制文件,我们把它拷贝到/etc/init.d目录下即可

现在可以直接用service来控制postfix服务

Postfix正常工作需要我们去更改它的main.cf文件

# vim /etc/postfix/main.cf

更改完毕后重启服务即可,接下来验证

使用root用户给user1发邮件

可以看出user1已收到邮件,postfix没有问题

接下来我们对它做身份验证

# cd /usr/lib/sasl2/

# cp -p Sendmail.conf smtpd.conf

# vim smtpd.conf

开启认证服务

# service saslauthd start

# chkconfig saslauthd on

# vim /etc/postfix/main.cf(在最后一行加入以下认证内容)

重启postfix服务,进行验证

可以看到已经有验证的信息

为使虚拟用户能够登陆邮件服务器,我们需要把邮件服务器和数据库连接起来,cyrus-sasl不能提供这种服务,我们需要安装courier-authlib组件

之后make时会提示说mysql.herrmsg.h文件找不到,我们需要在authmysqllib.cauthmysql.h文件里把它们的完整路径写在里面

# vim authmysqllib.c

# vim authmysql.h

更改完文件后再make&&make install

接下来

# cp authdaemonrc.dist authdaemonrc

# cp authmysqlrc.dist authmysqlrc

56 MYSQL_PORT 3306

68 MYSQL_DATABASE extmail

83 MYSQL_USER_TABLE mailbox

92 MYSQL_CRYPT_PWFIELD password

105 DEFAULT_DOMAIN a.com

113 MYSQL_UID_FIELD 2525

119 MYSQL_GID_FIELD 2525

128 MYSQL_LOGIN_FIELD username

133 MYSQL_HOME_FIELD concat('/var/mailbox/',homedir)

139 MYSQL_NAME_FIELD name

150 MYSQL_MAILDIR_FIELD concat('/var/mailbox/',maildir)

生成它的控制文件

建立库文件和头文件的链接

# vim /etc/ld.so.conf.d/courier-authlib.conf

加入以下内容

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

# ldconfig

# ln -s /usr/local/courier-authlib/include/ /usr/include/courier-authlib

postfix支持虚拟域和虚拟用户

编辑/etc/postfix/main.cf,添加如下内容

 

 

 

你可能感兴趣的:(postfix,邮件服务器,extman,exmail)