忘记密码   免费注册 查看新帖 | 论坛精华区
ChinaUnix.net
  平台论坛 博客 微博 读书 人才 精华 文库 自测 | 频道操作系统 开发 数据库 存储 服务器 网络 IT新闻 Linux 下载 Power用户组
最近访问板块 发新帖
查看: 3092 | 回复: 19

[RedHat] 搭建smtp + pop3服务器实验笔记(sendmail + dovecot) [复制链接]
更多

哥只是CU网友。

Rank: 8Rank: 8

帖子
2842
主题
77
精华
1
可用积分
27549
专家积分
30
在线时间
506 小时
注册时间
2007-02-15
最后登录
2011-12-06
论坛徽章:
0
发表于 2008-11-11 16:03:31 |显示全部楼层

如果觉得排版太难看,就下PDF吧……


搭建smtp_pop3服务器_sendmail_dovecot_实验笔记(第二次修改).pdf (375.81 KB, 下载次数: 273)


搭建smtp+ pop3服务器实验笔记(sendmail+ dovecot)




撰写者信息:Alin Fang (FangYunlin)
MSN:cst05001@hotmail.com
GTalk: cst05001@gmail.com
Blog:http://www.alinblog.cn/

修改日期:11 Nov, 2008
1次修改


版权:GNU

声明:本人实验笔记,非权威文档。如有错误请告知。十分感谢!



实验环境fqdn: mail.apple.com
OS: Red  Hat Enterprise Linux 5 update2
network: 192.169.200.1/24
/etc/resolve.conf配置为
nameserver192.168.200.1

fqdn: mail.orange.com
OS: Red  Hat Enterprise Linux 5 update2
network: 192.169.200.2/24
/etc/resolve.conf配置为
nameserver192.168.200.1

fqdn: client1.apple.com
OS: Red  Hat Enterprise Linux 5 update2
network: 192.169.200.3/24
/etc/resolve.conf配置为
nameserver192.168.200.1

fqdn: client1.orange.com
OS: Red  Hat Enterprise Linux 5 update2
network: 192.169.200.4/24
/etc/resolve.conf配置为
nameserver192.168.200.1


目标mail.apple.com上搭建smtp服务器
mail.orange.com上搭建smtp服务器
client1.apple.com通过mail.apple.commail.orange.com上的用户user1发送信件
client1.orange.com通过mail.orange.commail.apple.com上的用户user1发送信件

流程概述

  • 发信客户端把邮件交给发信服务器
  • 发信服务器通过查看/etc/mail/local-host-names判断邮件是否属于本域,如果是,则扣押下来以备对应的用户查阅,如果不是,则向DNS查询该邮件所属区域的MX记录,向该邮件服务器传递邮件。这个时候其实是发信服务器在向目标发送邮件,而不是发信客户端直接向目标发送邮件。




实验步骤mail.apple.com上操作配置DNS安装相关RPM[root@mailServer]# pwd
/misc/cd/Server
[root@mailServer]# rpm -ivh bind-9.3.4-6.P1.el5.i386.rpmbind-chroot-9.3.4-6.P1.el5.i386.rpmcaching-nameserver-9.3.4-6.P1.el5.i386.rpm
warning:bind-9.3.4-6.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID37017186
Preparing...               ########################################### [100%]
   1:bind                  ########################################### [ 33%]
   2:bind-chroot           ########################################### [ 67%]
  3:caching-nameserver    ########################################### [100%]
[root@mailServer]#

配置BIND[root@mailServer]# cd /var/named/chroot/etc/
[root@mailetc]# mv named.caching-nameserver.conf named.conf
[root@mailetc]# mv named.rfc1912.zones named.zones
[root@mailetc]#

修改named.confnamed.zones配置配置如下
named.conf:
acl"mynet" { 192.168.200.0/24; };

options{
        listen-onport 53 { 127.0.0.1; mynet; };
       listen-on-v6port 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";
       query-source   port 53;
       query-source-v6port 53;
        allow-query    { localhost; mynet; };
};
logging{
        channeldefault_debug {
               file"data/named.run";
               severitydynamic;
        };
};
viewlocalhost_resolver {
       match-clients     { localhost; mynet; };
       match-destinations{ localhost; };
        recursionyes;
        include"/etc/named.zones";
};

named.zones:
zone"." IN {
        typehint;
        file"named.ca";
};

zone"localdomain" IN {
        typemaster;
        file"localdomain.zone";
       allow-update{ none; };
};

zone"apple.com" IN {
        typemaster;
        file"apple.com.zone";
       allow-update{ none; };
};

zone"orange.com" IN {
        typemaster;
        file"orange.com.zone";
       allow-update{ none; };
};

zone"200.168.192.in-addr.arpa" IN {
        typemaster;
        file"200.168.192.rzone";
       allow-update{ none; };
};

zone"localhost" IN {
        typemaster;
        file"localhost.zone";
       allow-update{ none; };
};

zone"0.0.127.in-addr.arpa" IN {
        typemaster;
        file"named.local";
       allow-update{ none; };
};

zone"0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa"IN {
        typemaster;
        file"named.ip6.local";
       allow-update{ none; };
};

zone"255.in-addr.arpa" IN {
        typemaster;
        file"named.broadcast";
       allow-update{ none; };
};

zone"0.in-addr.arpa" IN {
        typemaster;
        file"named.zero";
       allow-update{ none; };
};


配置zone的正解和反解[root@mailetc]# cd ../var/named/
[root@mailnamed]# pwd
/var/named/chroot/var/named
[root@mailnamed]# ls
data             localhost.zone   named.ca         named.local  slaves
localdomain.zone named.broadcast  named.ip6.local  named.zero
[root@mailnamed]# cp localdomain.zone apple.com.zone
[root@mailnamed]# cp localdomain.zone orange.com.zone
[root@mailnamed]# cp named.local 200.168.192.rzone
[root@mailnamed]# ll
total48
-rw-r-----1 root  root   426 Nov 11 22:05 200.168.192.rzone
-rw-r-----1 root  root   198 Nov 11 22:05 apple.com.zone
drwxrwx---2 named named 4096 Aug 26  2004 data
-rw-r-----1 root  named  198 Feb 29  2008 localdomain.zone
-rw-r-----1 root  named  195 Feb 29  2008 localhost.zone
-rw-r-----1 root  named  427 Feb 29  2008 named.broadcast
-rw-r-----1 root  named 1892 Feb 29  2008 named.ca
-rw-r-----1 root  named  424 Feb 29  2008 named.ip6.local
-rw-r-----1 root  named  426 Feb 29  2008 named.local
-rw-r-----1 root  named  427 Feb 29  2008 named.zero
-rw-r-----1 root  root   198 Nov 11 22:05 orange.com.zone
drwxrwx---2 named named 4096 Jul 27  2004 slaves
[root@mailnamed]# chown root.named apple.com.zone orange.com.zone200.168.192.rzone
[root@mailnamed]# ll
total48
-rw-r-----1 root  named  426 Nov 11 22:05 200.168.192.rzone
-rw-r-----1 root  named  198 Nov 11 22:05 apple.com.zone
drwxrwx---2 named named 4096 Aug 26  2004 data
-rw-r-----1 root  named  198 Feb 29  2008 localdomain.zone
-rw-r-----1 root  named  195 Feb 29  2008 localhost.zone
-rw-r-----1 root  named  427 Feb 29  2008 named.broadcast
-rw-r-----1 root  named 1892 Feb 29  2008 named.ca
-rw-r-----1 root  named  424 Feb 29  2008 named.ip6.local
-rw-r-----1 root  named  426 Feb 29  2008 named.local
-rw-r-----1 root  named  427 Feb 29  2008 named.zero
-rw-r-----1 root  named  198 Nov 11 22:05 orange.com.zone
drwxrwx---2 named named 4096 Jul 27  2004 slaves
[root@mailnamed]#

[ 本帖最后由 cst05001 于 2008-11-12 17:07 编辑 ]
已有 1 人评分可用积分 收起 理由
7717060 + 6 精品文章

总评分: 可用积分 + 6   查看全部评分

好躁动啊。
哥只是CU网友。

Rank: 8Rank: 8

帖子
2842
主题
77
精华
1
可用积分
27549
专家积分
30
在线时间
506 小时
注册时间
2007-02-15
最后登录
2011-12-06
论坛徽章:
0
发表于 2008-11-11 16:04:09 |显示全部楼层
修改apple.com.zone这是我的apple.com.zone配置
$TTL   86400
@              IN SOA  localhost root (
                                       42             ; serial (d. adams)
                                       3H             ; refresh
                                       15M            ; retry
                                       1W             ; expiry
                                       1D)            ; minimum
                INNS           localhost
@              IN MX   5       mail
localhost      IN A            127.0.0.1
mail           IN A            192.168.200.1
client1        IN A            192.168.200.3

修改orange.com.zone这是我的orange.com.zone配置
$TTL   86400
@              IN SOA  localhost root (
                                       42             ; serial (d. adams)
                                       3H             ; refresh
                                       15M            ; retry
                                       1W             ; expiry
                                       1D)            ; minimum
                INNS           localhost
@              IN MX   5       mail
localhost      IN A            127.0.0.1
mail           IN A            192.168.200.2
client1        IN A            192.168.200.4

修改200.168.192.rzone这是我的200.168.192.rzone配置
$TTL   86400
@      IN      SOA     localhost. root.localhost.  (
                                     1997022700; Serial
                                     28800     ; Refresh
                                     14400     ; Retry
                                     3600000   ; Expire
                                     86400)    ; Minimum
        IN     NS      localhost.
1      IN      PTR     mail.apple.com.
2      IN      PTR     mail.orange.com.
3      IN      PTR     client1.apple.com.
4      IN      PTR     client1.orange.com.


启动DNS服务[root@mailnamed]# service named restart
Stoppingnamed:                                            [  OK  ]
Startingnamed:                                            [  OK  ]
[root@mailnamed]# chkconfig --level 35 named on
[root@mailnamed]#


修改/etc/resolv.conf,指定DNS服务器为自己这个是我的/etc/resolv.conf配置
[root@mailnamed]# cat /etc/resolv.conf
nameserver192.168.200.1
[root@mailnamed]#

测试DNS查询[root@mailnamed]# nslookup -type=MX apple.com
Server:        192.168.200.1
Address:       192.168.200.1#53

apple.com      mail exchanger = 5 mail.apple.com.

[root@mailnamed]# nslookup -type=MX orange.com
Server:        192.168.200.1
Address:       192.168.200.1#53

orange.com     mail exchanger = 5 mail.orange.com.

[root@mailnamed]# nslookup mail.apple.com
Server:        192.168.200.1
Address:       192.168.200.1#53

Name:  mail.apple.com
Address:192.168.200.1

[root@mailnamed]# nslookup mail.orange.com
Server:        192.168.200.1
Address:       192.168.200.1#53

Name:  mail.orange.com
Address:192.168.200.2

[root@mailnamed]# nslookup 192.168.200.1
Server:        192.168.200.1
Address:       192.168.200.1#53

1.200.168.192.in-addr.arpa     name = mail.apple.com.

[root@mailnamed]# nslookup 192.168.200.2
Server:        192.168.200.1
Address:       192.168.200.1#53

2.200.168.192.in-addr.arpa     name = mail.orange.com.

[root@mailnamed]#


安装配置sendmail[root@mailnamed]# rpm -q sendmail
sendmail-8.13.8-2.el5
[root@mailnamed]# rpm -q sendmail-cf
packagesendmail-cf is not installed
[root@mailnamed]# cd /misc/cd/Server
[root@mailServer]# rpm -ivh sendmail-cf-8.13.8-2.el5.i386.rpm
warning:sendmail-cf-8.13.8-2.el5.i386.rpm: Header V3 DSA signature: NOKEY,key ID 37017186
Preparing...               ########################################### [100%]
   1:sendmail-cf           ########################################### [100%]
[root@mailServer]#
这里面提供了sendmail的配置以及工具。

修改sendmail.conf允许sendmail监听所有主机的请求

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,Name=MTA')dnl
改为
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0,Name=MTA')dnl

启用发信验证功能

dnlTRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnldefine(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5LOGIN PLAIN')dnl
改为
TRUST_AUTH_MECH(`EXTERNALDIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS',`EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

生成新的sendmail.cf
[root@mailmail]# m4 sendmail.mc > sendmail.cf
[root@mailmail]#
这里可以用servicesendmail restart替代m4sendmail.mc > sendmail.cf


编辑/etc/mail/access设置允许RELAY发信的域
这个是我的/etc/mail/access的配置
Connect:localhost.localdomain          RELAY
Connect:localhost                      RELAY
Connect:127.0.0.1                      RELAY
Connect:apple.com                      RELAY

重新生成access.db[root@mailmail]# makemap hash access.db < access
确认access.db是否被更新
[root@mailmail]# strings access.db
RELAY
connect:localhost.localdomain
RELAY
connect:apple.com
RELAY
connect:127.0.0.1
RELAY
connect:localhost
[root@mailmail]#

配置/etc/mail/local-host-nameslocal-host-names指明哪些域的邮件的目的地就是本sendmail服务器要给保存下来。
这个是我的/etc/mail/local-host-names配置
apple.com
mail.apple.com

重启sendmail服务器重新加载配置开启发信验证服务[root@mail~]# service saslauthd restart
Stoppingsaslauthd:                                        [FAILED]
Startingsaslauthd:                                        [  OK  ]
[root@mail~]#

安装配置dovecot安装dovecot[root@mailServer]# rpm -vih dovecot-1.0.7-2.el5.i386.rpmmysql-5.0.45-7.el5.i386.rpm postgresql-libs-8.1.11-1.el5_1.1.i386.rpmperl-DBI-1.52-1.fc6.i386.rpm
warning:dovecot-1.0.7-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID37017186
Preparing...               ########################################### [100%]
   1:perl-DBI              ########################################### [ 25%]
   2:mysql                 ########################################### [ 50%]
  3:postgresql-libs       ########################################### [ 75%]
   4:dovecot               ########################################### [100%]
[root@mailServer]#

配置dovecot修改/etc/dovecot.conf

#protocols= imap imaps pop3 pop3s
改为
protocols= pop3
启动dovecot[root@mailServer]# service dovecot restart
StoppingDovecot Imap:                                     [FAILED]
StartingDovecot Imap:                                     [  OK  ]
[root@mailServer]# chkconfig --level 35 dovecot on
[root@mailServer]# netstat -ntpal | grep dovecot
tcp       0      0 :::110                      :::*                       LISTEN      14013/dovecot      
[root@mailServer]#

[ 本帖最后由 cst05001 于 2008-11-12 10:38 编辑 ]
好躁动啊。
哥只是CU网友。

Rank: 8Rank: 8

帖子
2842
主题
77
精华
1
可用积分
27549
专家积分
30
在线时间
506 小时
注册时间
2007-02-15
最后登录
2011-12-06
论坛徽章:
0
发表于 2008-11-11 16:04:47 |显示全部楼层
配置mail.orange.com不用配置DNSDNS指向192.168.200.1即可
安装与配置方法与mail.apple.com一模一样
为了不浪费版面,我只贴出操作方法和配置
安装配置sendmail

[root@mailcd]# cd Server/
[root@mailServer]# pwd
/misc/cd/Server
[root@mailServer]# rpm -ivh sendmail-cf-8.13.8-2.el5.i386.rpm
warning:sendmail-cf-8.13.8-2.el5.i386.rpm: Header V3 DSA signature: NOKEY,key ID 37017186
Preparing...               ########################################### [100%]
   1:sendmail-cf           ########################################### [100%]
[root@mailServer]# cd /etc/mail
修改/etc/mail/sendmail.conf[root@mailmail]# vim sendmail.mc


DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,Name=MTA')dnl
改为
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0,Name=MTA')dnl

启用发信验证功能

dnlTRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnldefine(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5LOGIN PLAIN')dnl
改为
TRUST_AUTH_MECH(`EXTERNALDIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS',`EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl


编辑/etc/mail/access
Connect:localhost.localdomain          RELAY
Connect:localhost                      RELAY
Connect:127.0.0.1                      RELAY
Connectrange.com                     RELAY
编辑/etc/mail/local-host-namesorange.com
mail.orange.com
使配置生效
[root@mailmail]# service sendmail restart
Shuttingdown sm-client:                                   [  OK  ]
Shuttingdown sendmail:                                    [  OK  ]
Startingsendmail:                                         [  OK  ]
Startingsm-client:                                        [  OK  ]
[root@mailmail]# strings access.db
RELAY
connect:localhost.localdomain
RELAY
connectrange.com
RELAY
connect:127.0.0.1
RELAY
connect:localhost
[root@mailmail]# netstat -ntpal | grep sendmail
tcp       0      0 0.0.0.0:25                  0.0.0.0:*                  LISTEN      3564/sendmail: acce
[root@mailmail]#

开启发信验证服务[root@mail~]# service saslauthd restart
Stoppingsaslauthd:                                        [FAILED]
Startingsaslauthd:                                        [  OK  ]
[root@mail~]#

安装配置dovecot安装dovecot[root@mailServer]# rpm -vih dovecot-1.0.7-2.el5.i386.rpmmysql-5.0.45-7.el5.i386.rpm postgresql-libs-8.1.11-1.el5_1.1.i386.rpmperl-DBI-1.52-1.fc6.i386.rpm
warning:dovecot-1.0.7-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID37017186
Preparing...               ########################################### [100%]
   1:perl-DBI              ########################################### [ 25%]
   2:mysql                 ########################################### [ 50%]
  3:postgresql-libs       ########################################### [ 75%]
   4:dovecot               ########################################### [100%]
[root@mailServer]#

配置dovecot修改/etc/dovecot.conf

#protocols= imap imaps pop3 pop3s
改为
protocols= pop3
启动dovecot[root@mailServer]# service dovecot restart
StoppingDovecot Imap:                                     [FAILED]
StartingDovecot Imap:                                     [  OK  ]
[root@mailServer]# chkconfig --level 35 dovecot on
[root@mailServer]# netstat -ntpal | grep dovecot
tcp       0      0 :::110                      :::*                       LISTEN      14013/dovecot      
[root@mailServer]#

mail.apple.com上操作添加邮件用户user1
[root@mailmail]# useradd --shell /sbin/nologin user1
[root@mailmail]# passwd user1
Changingpassword for user user1.
NewUNIX password:
BADPASSWORD: it is based on a dictionary word
Retypenew UNIX password:
passwd:all authentication tokens updated successfully.
[root@mailmail]#

mail.orange.com上操作添加邮件用户user1
[root@mailmail]# useradd --shell /sbin/nologin user1
[root@mailmail]# passwd user1
Changingpassword for user user1.
NewUNIX password:
BADPASSWORD: it is based on a dictionary word
Retypenew UNIX password:
passwd:all authentication tokens updated successfully.
[root@mailmail]#

测试请按照实验环境设置好DNS
client1.apple.com上发信






client1.orange.com上收信
好躁动啊。
哥只是CU网友。

Rank: 8Rank: 8

帖子
2842
主题
77
精华
1
可用积分
27549
专家积分
30
在线时间
506 小时
注册时间
2007-02-15
最后登录
2011-12-06
论坛徽章:
0
发表于 2008-11-11 16:05:23 |显示全部楼层
CU打击我的灌水积极性啊!
每次都说我字数太多不让我发帖!!!
好躁动啊。

帖子
91
主题
3
精华
0
可用积分
174
专家积分
0
在线时间
76 小时
注册时间
2008-10-06
最后登录
2009-01-16
论坛徽章:
0
发表于 2008-11-11 19:56:58 |显示全部楼层
我先顶你一下。哈哈。
wds

Rank: 8Rank: 8

帖子
5591
主题
402
精华
2
可用积分
10290
专家积分
108
在线时间
1022 小时
注册时间
2006-05-16
最后登录
2012-02-07
论坛徽章:
0
发表于 2008-11-11 20:10:24 |显示全部楼层
在顶一下,不错!
一直被模仿,从未被超越。
http://t.sina.com.cn/i/1459306634/l/

Rank: 7Rank: 7Rank: 7

帖子
2940
主题
50
精华
1
可用积分
13775
专家积分
30
在线时间
456 小时
注册时间
2007-10-21
最后登录
2011-01-24
论坛徽章:
0
发表于 2008-11-11 20:43:34 |显示全部楼层
总发这么精彩的东东。
TNND,把知识都交出来!

Rank: 1

帖子
596
主题
11
精华
0
可用积分
997
专家积分
0
在线时间
182 小时
注册时间
2008-07-31
最后登录
2012-02-09
论坛徽章:
0
发表于 2008-11-11 20:54:47 |显示全部楼层

Rank: 8Rank: 8

帖子
16373
主题
1580
精华
4
可用积分
20630
专家积分
50
在线时间
2068 小时
注册时间
2005-05-08
最后登录
2012-02-09
论坛徽章:
0
发表于 2008-11-11 21:09:07 |显示全部楼层

回复 #1 cst05001 的帖子

已经习惯使用postfix
毕竟设置很简便
有问题加QQ964891849 群27053595,遇忙邮件LVS-HOWTO中文翻译计划
Linux开源技术指导 提供专业Linux技术支持,Linux系统定制指导;每天坚持CU 1小时
哥只是CU网友。

Rank: 8Rank: 8

帖子
2842
主题
77
精华
1
可用积分
27549
专家积分
30
在线时间
506 小时
注册时间
2007-02-15
最后登录
2011-12-06
论坛徽章:
0
发表于 2008-11-11 22:30:23 |显示全部楼层
原帖由 kns1024wh 于 2008-11-11 21:09 发表
已经习惯使用postfix
毕竟设置很简便

我也知道大多人是用postfix-__-!!!
好躁动啊。
您需要登录后才可以回帖 登录 | 注册

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP