Mail服务器(Postfix+Dovecot+Extmail+Extman基于虚拟账号)

实验拓扑

171225900.png

LAMPLinux+Apache+MySQL+PHP)环境搭建

首先需要搭建LAMP环境

安装Apache

[root@mail apr-1.4.6]# tar -zxvf apr-util-1.5.1.tar.gz -C /usr/local/src/

[root@mail apr-1.4.6]# cd /usr/local/src/apr-1.4.6/

[root@mail apr-1.4.6]# ./configure --prefix=/usr/local/apr

[root@mail apr-1.4.6]# make

[root@mail apr-1.4.6]# make install

[root@mail src]# cd apr-util-1.5.1/

[root@mail apr-util-1.5.1]# ./configure --with-apr=/usr/local/apr/bin/apr-1-config

[root@mail apr-util-1.5.1]# make

[root@mail apr-util-1.5.1]# make install

[root@mail cdrom]# cd /mnt/cdrom/Server/

[root@mail Server]# rpm -ivh /mnt/cdrom/Server/pcre-devel-6.6-2.el5_1.7.i386.rpm

安装http

[root@mail ~]# tar -jxvf httpd-2.4.4.tar.bz2 -C /usr/local/src/

[root@mail ~]# cd /usr/local/src/httpd-2.4.4/

[root@mail httpd-2.4.4]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-rewrite --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-pcre -with-z --enable-mpms-shared=all

[root@mail httpd-2.4.4]# make

[root@mail httpd-2.4.4]# make install

[root@mail ~]# cd /etc/init.d/

[root@mail init.d]# chmod a+x httpd

[root@mail init.d]# ln -s /usr/local/apache/include/ /usr/include/apche

[root@mail init.d]# vim /etc/man.config

171226429.png

安装mysql

[root@mail ~]# groupadd mysql

[root@mail ~]# useradd -r -g mysql mysql

[root@mail src]# cd /usr/local/

[root@mail local]# ln -s /usr/local/src/mysql-5.5.15-linux2.6-i686/ mysql

[root@mail mysql]# chown -R mysql .

[root@mail mysql]# chgrp -R mysql .

[root@mail mysql]# scripts/mysql_install_db --user=mysql

[root@mail mysql]# chown -R root .

[root@mail mysql]# chown -R mysql data

[root@mail mysql]# cp support-files/my-medium.cnf /etc/my.cnf

[root@mail mysql]# cp support-files/mysql.server /etc/init.d/mysqld

[root@mail mysql]# service mysqld start

Starting MySQL..... [ OK ]

[root@mail mysql]# chkconfig --add mysqld

配置mysql环境变量

[root@mail mysql]# vim /etc/profile

171226970.png

[root@mail mysql]# . /etc/profile

创建mysql.conf文件并添加库文件路径

[root@mail mysql]# vim /etc/ld.so.conf.d/mysql.conf

/usr/local/mysql/lib

[root@mail mysql]# ldconfig

171227242.png

处理头文件

[root@mail mysql]# ln -s include /usr/include/mysql

mysql数据库添加密码

171227941.png

安装php

[root@mail php-5.4.13]# tar -jxvf php-5.4.13.tar.bz2 -C /usr/local/src/

[root@mail php-5.4.13]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --enable-xml --with-png-dir --with-png --with-jpeg-dir --with-zlib --enable-mbstring --with-freetype-dir

[root@mail php]# make

[root@mail php]# make install

编辑/etc/profile

171227739.png

171227707.png

库文件处理

171228698.png

[root@mail php]# ldconfig

处理头文件

[root@mail php]# ln -s /usr/local/php/include/ /usr/include/php

编辑apache的配置文件支持php模块

171228374.png

171229173.png

下面进行exymail的搭建

本次主要来搭建北京地区extmail

关闭开发平台的sendmail功能,因为要搭建extmail

171230175.png

更改主机名和dns指向

171230383.png

171230877.png

171230331.png

关闭sendmail并设为开机关闭

171230861.png


上传搭建extmail所需要的软件包

postfix-2.8.2.tar.gz

courier-authlib-0.63.0.tar.bz2

Unix-Syslog-0.100.tar.gz

extmail-1.2.tar.gz

extman-1.1.tar.gz

打开saslauth服务设为开机启动

171231248.png

安装其他软件包

Yum install mysql-devel

171231304.png

171232877.png

安装postfix

[root@host ~]# tar -zxvf postfix-2.8.2.tar.gz -C /usr/local/src/

[root@host ~]# cd /usr/local/src/postfix-2.8.2/

[root@host postfix-2.8.2]# group -g 2525 postfix

-bash: group: command not found

[root@host postfix-2.8.2]# groupadd -g 2525 postfix

[root@host postfix-2.8.2]# useradd -g postfix -u 2525 -s /sbin/nologin -M postfix

[root@host postfix-2.8.2]# groupadd -g 2526 postdrop

[root@host postfix-2.8.2]# useradd -g postdrop -u 2526 -s /bin/false -M postdro

Mysql的路径一定要正确

171232679.png

[root@host postfix-2.8.2]# make && make install

install_root: [/] /

tempdir: [/usr/local/src/ postfix-2.6.5] /tmp

config_directory: [/etc/postfix]

daemon_directory: [/usr/libexec/postfix]

command_directory: [/usr/sbin]

queue_directory: [/var/spool/postfix]

sendmail_path: [/usr/sbin/sendmail]

newaliases_path: [/usr/bin/newaliases]

mailq_path: [/usr/bin/mailq]

mail_owner: [postfix]

setgid_group: [postdrop]

html_directory: [no] /var/www/postfix_html

manpages: [/usr/local/man]

readme_directory: [no]

执行/usr/bin/newaliases生成新的别名文件,提高postfix的效率

[root@host postfix-2.8.2]# /usr/bin/newaliases

2.进行一些基本配置,测试启动postfix并进行发信

#vi /etc/postfix/main.cf

171233779.png

171233900.png

为了管理postfix服务的启动关闭,创建脚本,复制postfixrpm包的控制脚本

[root@host ~]# cd /tmp/

[root@host tmp]# mkdir abc

[root@host tmp]# cd abc/

[root@host abc]# cp /mnt/cdrom/Server/postfix-2.3.3-2.1.el5_2.i386.rpm ./

[root@host abc]# rpm2cpio postfix-2.3.3-2.1.el5_2.i386.rpm |cpio -id

171234497.png

171234480.png

编辑postfix配置文件

[root@host init.d]# vim /etc/postfix/main.cf

171235141.png

配置邮件服务器的中继

171236546.png

171236170.png

发送邮件测试

171237454.png

为postfix开启基于rycus-sasl认证功能.

vim /etc/postfix/main.cf

添加认证功能

171238337.png

171239825.png

171240471.png

四、安装Courier authentication library

[root@host ~]# tar jxvf courier-authlib-0.63.0.tar.bz2 -C /usr/local/src/

[root@host ~]# cd /usr/local/src/courier-authlib-0.63.0/

[root@mail courier-authlib-0.63.0]# ./configure \

> --prefix=/usr/local/courier-authlib \

> --sysconfdir=/etc \

> --with-authmysql \

> --with-mysql-libs=/usr/local/mysql/lib \

> --with-mysql-includes=/usr/local/mysql/include \

> --with-redhat \

> --with-authmysqlrc=/etc/authmysqlrc \

> --with-authdaemonrc=/etc/authdaemonrc \

> --with-ltdl-lib=/usr/lib \

> --with-ltdl-include=/usr/include

[root@mail courier-authlib-0.63.0]# make

[root@mail courier-authlib-0.63.0]# make install

[root@mail courier-authlib-0.63.0]# chmod 755 /usr/local/courier-authlib/var/spool/authdaemon

[root@mail courier-authlib-0.63.0]# cp /etc/authdaemonrc.dist /etc/authdaemonrc

[root@mail courier-authlib-0.63.0]# cp /etc/authmysqlrc.dist /etc/authmysqlrc

[root@mail etc]# vim /etc/authdaemonrc

171241976.png

[root@mail etc]# vim /etc/authmysqlrc

171242732.png

171356294.png

171356483.png

171356513.png

171357262.png

[root@mail etc]# cd /usr/local/src/courier-authlib-0.63.0/

[root@mail courier-authlib-0.63.0]# cp courier-authlib.sysvinit /etc/init.d

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

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

# chkconfig --add courier-authlib

# chkconfig --level 2345 courier-authlib on

#echo "/usr/local/courier-authlib/lib/courier-authlib" >> /etc/ld.so.conf.d/courier-authlib.conf

# ldconfig -v

启动服务

[root@mail etc]# service courier-authlib start

Starting Courier authentication services: authdaemond

新建虚拟用户邮箱所在的目录,并将其权限赋予postfix用户:

#mkdir -pv /var/mailbox

#chown R postfix /var/mailbox

接下来重新配置SMTP 认证,编辑 /usr/local/lib/sasl2/smtpd.conf ,确保其为以下内容:

pwcheck_method: authdaemond

log_level: 3

mech_list:PLAIN LOGIN

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

171357863.png

五、postfix支持虚拟域和虚拟用户

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

171359300.png

2、使用extman源码目录下docs目录中的extmail.sqlinit.sql建立数据库:

[root@mail ~]# tar -zxvf extman-1.1.tar.gz

[root@mail ~]# mv extman-1.1 /var/www/extsuite/extman

由于mysql版本的原因。导入数据库之前我们需要对extmail.sql进行更改,extmail.sql中所包含的的text的行把后面的default ‘ ’删掉,把TYPE=MyISAMCOMMENT=ExtMail - Virtual Mailboxes‘行删除,把87行改成can_signup varchar(255).

171400694.png

171401580.png

171402397.png

171404845.png

171405555.png

[root@mail docs]# mysql -u root -p < extmail.sql

mysql数据库导入初始化init.sql脚本

[root@mail docs]# mysql -u root -p < init.sql

导入后查看数据库验证

171405222.png

171406607.png

171406973.png

六、配置dovecot

之前已经安装过

配置dovecot

[root@mail Server]# vim /etc/dovecot.conf

171406582.png

171406690.png

171406379.png

创建dovcotmysql连接时的配置文件

[root@mail Server]# vim /etc/dovecot-mysql.conf

171407484.png

171407122.png

设为开机启动

[root@mail Server]# chkconfig dovecot on

七、安装Extmail-1.2 (先安装httpd

[root@mail ~]# mkdir -pv /var/www/extsuite

[root@mail ~]# tar -zxvf extmail-1.2.tar.gz

[root@mail ~]# mv extmail-1.2 /var/www/extsuite/extmail

cp /var/www/extsuite/extmail/webmail.cf.default /var/www/extsuite/extmail/webmail.cf

编辑配置文件

171407741.png

171407688.png

171407410.png

171407328.png

apache相关配置

171408402.png

171408254.png

171409259.png

修改cgi 执行文件属于postfix运行身份用户

[root@mail extmail]# chown -R postfix.postfix /var/www/extsuite/extmail/cgi/

4、依赖关系的解决

[root@mail ~]# tar -zxvf Unix-Syslog-0.100.tar.gz -C /usr/local/src/

[root@mail ~]# cd /usr/local/src/Unix-Syslog-0.100/

[root@mail Unix-Syslog-0.100]# perl Makefile.PL

[root@mail Unix-Syslog-0.100]# make

[root@mail Unix-Syslog-0.100]# make install

重启httpd服务器

171409399.png

八、配置Extman-1.1

[root@mail ~]# mv extman-1.1 /var/www/extsuite/extman

[root@mail ~]# cp /var/www/extsuite/extman/webman.cf.default /var/www/extsuite/extman/webman.cf

[root@mail ~]# vim /var/www/extsuite/extman/webman.cf

12 SYS_MAILDIR_BASE = /var/mailbox

21 SYS_CAPTCHA_ON = 0

127 SYS_MYSQL_USER = webman

128 SYS_MYSQL_PASS = webman

129 SYS_MYSQL_DB = extmail

130 SYS_MYSQL_HOST = localhost

131 SYS_MYSQL_SOCKET = /tmp/mysql.sock

apache的主配置文件中extmail的虚拟主机部分。添加一下两行

171410381.png

创建运行时所需的临时目录,并修改权限

[root@mail ~]# mkdir -pv /tmp/extman

mkdir: created directory `/tmp/extman'

[root@mail ~]# chown postfix.postfix /tmp/extman

重启一下apache服务器

171410305.png

登录测试一下默认管理帐号为:root@extmail.org 密码为:extmail*123*

http//10.1.1.100

171411341.png

171411855.png

171412463.png

171502340.png

171503222.png