实现 postfix实现extmail界面
环境:
主机1:172.16.115.169 (DNS服务器)
主机2:172.16.115.161(邮件服务器)
【主机1】
1. 搭建DNS服务器
yum install -y bind
1.1 编辑主配置vim /etc/named.conf
# 监听本机所有ip,允许客户机查询
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
1.2 编辑域配置文件vim /etc/named.rfc1912.zones
#正向解析和反向解析
zone "huangzp2.com" IN {
type master;
file "huangzp2.com";
allow-update { none; };
};
zone "115.16.172.in-addr.arpa" IN {
type master;
file "huangzp2.empty";
allow-update { none; };
};
1.3 编辑数据配置文件
cd /var/named/
1.3.1 正向解析数据记录
cp -p named.localhost huangzp2.com
或者
cp named.localhost huangzp2.com;chown named huangzp2.com
vim huangzp2.com
# 添加正向解析记录
$TTL 1D
@ IN SOA huangzp2.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.huangzp2.com.
MX 3 mail.huangzp2.com.
dns A 172.16.115.169
mail A 172.16.115.161
1.3.2 反向解析数据记录
cp -p named.empty huangzp2.empty
vim huangzp2.empty
# 反解析记录
$TTL 3H
@ IN SOA huangzp2.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.huangzp2.com.
169 PTR dns.huangzp2.com.
161 PTR mail.huangzp2.com.
2. 启动named
service named restart
【主机2】
1. 测试邮件域解析
vim /etc/sysconfig/network-scripts/ifcfg-eth0
# 设置DNS服务器
DEVICE=eth0
HWADDR=00:0C:29:CB:DB:6C
TYPE=Ethernet
UUID=05904c7e-119a-4e58-8b65-26d344366982
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=172.16.115.161
NETMASK=255.255.0.0
GATEWAY=172.16.0.199
DNS1=172.16.115.169
DNS=202.96.134.133
# 测试正向解析
[root@huangzp2 docs]# nslookup mail.huangzp2.com
Server: 172.16.115.169
Address: 172.16.115.169#53
Name: mail.huangzp2.com
Address: 172.16.115.161
# 测试反向解析
[root@huangzp2 docs]# nslookup 172.16.115.161
Server: 172.16.115.169
Address: 172.16.115.169#53
161.115.16.172.in-addr.arpa name = mail.huangzp2.com.
2. 安装工具包
yum install -y mysql mysql-server mailx
service mysqld start
3. 安装extmail和extman
下载 extmail-1.2.tar.gz
extman-1.1.tar.gz
解压
tar -zxf extmail-1.2.tar.gz -C /var/www/extsuite/
tar -zxf extmman-1.1.tar.gz -C /var/www/extsuite/
更名
mv extmail-1.2 extmail
mv extman-1.1 extman
4. 导入数据库模板文件
进入目录:
/var/www/extsuite/extman/docs
4.1 拷贝配置文件:
cp mysql_virtual_alias_maps.cf /etc/postfix/
cp mysql_virtual_domains_maps.cf /etc/postfix/
cp mysql_virtual_mailbox_maps.cf /etc/postfix/
cp mysql_virtual_sender_maps.cf /etc/postfix/
4.2 修改数据库初始数据:
vim /var/www/extsuite/extman/docs/init.sql
# 替换域名
:1,$s/extmail.org/huangzp2.com/g
# 更改密码
INSERT INTO `manager` VALUES ('root@huangzp2.com','123456','admin','root','Super User','my question','my answer','0','2007-02-14 15:10:04','2010-11-08',1);
4.3 导入数据库模板
mysql < extmail.sql
mysql < init.sql
5. 创建虚拟用户映射的真实用户
useradd -u 600 vmail
6. 修改主postfix配置文件
vim /etc/postfix/main.cf
# 对所有地址提供服务
inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
# Enable IPv4, and IPv6 if supported
inet_protocols = all
# 邮件保存位置;收取邮件时使用的用户和组id ;添加指定配置文件
virtual_mailbox_base = /home/vmail
virtual_uid_maps = static:600
virtual_gid_maps = static:600
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
7. 启动postfix
service postfix start
netstat -anpt
8. 发邮件测试
发送邮件:
echo "hi" |mail -s test support@huangzp2.com
查看生成的目录内容:
# support是postmaster的别名
ls /home/vmail/huangzp2.com/postmaster/Maildir/new
9. 安装和配置dovecot(MRA)
说明:提供检索作用
yum install -y dovecot dovecot-mysql
9.1 修改配置文件:
vim /etc/dovecot/conf.d/10-mail.conf
# 设置收取邮件的位置
mail_location = maildir:/home/vmail/%d/%n/Maildir
# 收邮件的虚拟用户id号从600开始排
first_valid_uid = 600
9.2 修改配置文件:
vim /etc/dovecot/conf.d/10-auth.conf
# 收邮件认证方式数据库认证
!include auth-system.conf.ext
!include auth-sql.conf.ext
9.3 拷贝并编辑数据库验证模板配置文件
cp /usr/share/doc/dovecot-2.0.9/example-config/dovecot-sql.conf.ext /etc/dovecot
编辑该配置文件:
vim /etc/dovecot/dovecot-sql.conf.ext
# 设置数据库类型是mysql
driver = mysql
# 数据库的连接和默认的加密方式
connect = host=localhost dbname=extmail user=extmail password=extmail
default_pass_scheme = MD5
# 查询密码以及用户的方法
password_query = \
SELECT username, domain, password \
FROM mailbox WHERE username = '%u' AND domain = '%d'
user_query = SELECT maildir, 600 AS uid, 600 AS gid FROM mailbox WHERE username = '%u'
9.4 启动dovecot
service dovecot start
10. 测试收取邮件
说明:表示dovecot能够通过mysql进行身份认证(postmaser用户的用户名和密码)只有验证成功,才能登陆进来,并查看邮件内容
[root@huangzp2 docs]# telnet mail.huangzp2.com 110
Trying 172.16.115.161...
Connected to mail.huangzp2.com.
Escape character is '^]'.
+OK Dovecot ready.
user postmaster@huangzp2.com
+OK
pass extmail
+OK Logged in.
list
+OK 2 messages:
1 533
2 530
11. 安装和配置web服务器
yum install -y httpd
11.1 编辑配置文件
vim /etc/httpd/conf/httpd.conf
# 开启虚拟主机
NameVirtualHost *:80
# 调用脚本,设置目录别名,调用脚本运行的用户和组
<VirtualHost *:80>
DocumentRoot /var/www/extsuite/extmail/html
ServerName mail.huangzp2.com
scriptalias /extmail/cgi /var/www/extsuite/extmail/cgi
alias /extmail /var/www/extsuite/extmail/html
scriptalias /extman/cgi /var/www/extsuite/extman/cgi
alias /extman /var/www/extsuite/extman/html
suexecusergroup vmail vmail
</VirtualHost>
12. 设置extmail的cgi目录权限和编辑配置文件
# 权限 ;将模板配置文件变成主配置配置文件
cd /var/www/extsuite/extmail
chown -R vmail.vmail cgi/
cp webmail.cf.default webmail.cf
编辑配置文件
vim /var/www/extsuite/extmail/webmail.cf
#设置邮件的基本目录;加密类型;数据库的用户和密码
SYS_MAILDIR_BASE = /home/vmail
SYS_CRYPT_TYPE = plain
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail
13. 设置extman的cgi目录权限和编辑配置文件
cd /var/www/extsuite/extman
chown -R vmail.vmail cgi/
cp webman.cf.default webman.cf
加密方式;基本家目录;临时会话目录;校验码
SYS_CRYPT_TYPE = plain
SYS_MAILDIR_BASE = /home/vmail
SYS_SESS_DIR = /tmp/
SYS_CAPTCHA_ON = 0
14. 客户机测试解析
启动httpd
15. 编译安装Unix-syslog模块
yum install perl-CGI gcc*
Unix-Syslog-1.1.tar.gz
tar -zxf Unix-Syslog-1.1.tar.gz
cd Unix-Syslog-1.1
# 模块使用perl语言写的,需要用perl安装
perl Makefile.PL
make test
make install
16. 客户端测试:
浏览器:http://mail.huangzp2.com/extmail/cgi/index.cgi
邮箱登录
默认用户名:postermaster
默认密码:密码extmail
邮箱管理登录
默认用户名:root@huangzp2.com
默认密码:123456