发邮件服务器,linux下实现两台不同域名的邮件服务器互发邮件

一、实验环境
两台 linux 服务器( Red Hat Enterprise Linux ),主机名分别是 RHEL1 和 RHEL2 ,一台物理机 win7
IP :
RHEL1 : 192.168.1.51/24 gateway : 192.168.1.1
RHEL2 : 192.168.1.52/24 gateway : 192.168.1.1
Win7 : 192.168.1.104/24 gateway : 192.168.1.1
域:
RHEL1 : test1.com
RHEL2 : test2.com
邮件客户端:
Outlook 2010
两台 linux 的防火墙、 selinux 都已关闭
二、主机名的修改
先在 RHEL1 上修改:
要做三处修改,很重要!
( 1 ) [root@RHEL1 ~]# hostname RHEL1.test1.com
( 2 ) [root@RHEL1 ~]# vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=RHEL1.test1.com
GATEWAY=192.168.1.1
( 3 ) [root@RHEL1 ~]# vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.1.51 RHEL1.test1.com RHEL1
在 RHEL2 上做类似修改
全部修改完毕,重启!
三、在 RHEL1 上配置 DNS 服务器
( 1 )安装 bind
[root@RHEL1 ~]# mkdir /mnt/cdrom
[root@RHEL1 ~]# mount /dev/hdc /mnt/cdrom
mount: block device /dev/hdc is write-protected, mounting read-only
[root@RHEL1 ~]# cd /mnt/cdrom/Server
[root@RHEL1 Server]# find -name "bind*"
./bind-9.3.4-10.P1.el5.i386.rpm
./bind-chroot-9.3.4-10.P1.el5.i386.rpm
./bind-devel-9.3.4-10.P1.el5.i386.rpm
./bind-libbind-devel-9.3.4-10.P1.el5.i386.rpm
./bind-libs-9.3.4-10.P1.el5.i386.rpm
./bind-sdb-9.3.4-10.P1.el5.i386.rpm
./bind-utils-9.3.4-10.P1.el5.i386.rpm
[root@RHEL1 Server]# rpm -ivh bind-9.3.4-10.P1.el5.i386.rpm
( 依次安装上面几个 RPM 包 )
最后安装:
[root@RHEL1 Server]# rpm -ivh caching-nameserver-9.3.4-10.P1.el5.i386.rpm
( 2 )在 RHEL1 上自定义正向和反向区域
[root@RHEL1 Server]# cd /var/named/chroot/etc/
[root@RHEL1 etc]# ll
婊璁 ?16
-rw-r--r-- 1 root root 405 06-12 18:16 localtime
-rw-r----- 1 root named 1195 2009-01-06 named.caching-nameserver.conf
-rw-r----- 1 root named 955 2009-01-06 named.rfc1912.zones
-rw-r----- 1 root named 113 06-14 10:18 rndc.key
[root@RHEL1 etc]# cp -p named.caching-nameserver.conf named.conf
[root@RHEL1 etc]# vi named.conf
修改为如下内容
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";

// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;

allow-query { any ; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { any ; };
match-destinations { any ; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
保存退出
[root@RHEL1 etc]# vi named.rfc1912.zones
添加以下内容:
zone "test1.com" IN {
type master;
file "test1.com.hosts";
allow-update { none; };
};

zone "1.168.192.in-addr.arpa" IN {
type master;
file "test1.com.rev";
allow-update { none; };
};
保存退出
( 3 )建立正向和反向区域数据库文件
[root@RHEL1 etc]# cd /var/named/chroot/var/named
[root@RHEL1 named]# cp -p localhost.zone test1.com.hosts
[root@RHEL1 named]# cp -p named.local test1.com.rev
[root@RHEL1 named]# vi test1.com.hosts
修改为以下内容:
$TTL 86400
@ IN SOA ns.test1.com. root.test1.com. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum

IN NS ns.test1.com.
IN MX 10 mail.test1.com.
ns IN A 192.168.1.51
mail IN A 192.168.1.51
[root@RHEL1 named]# vi test1.com.rev
修改反向区域数据库文件为以下内容:
$TTL 86400
@ IN SOA ns.test1.com. root.test1.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.test1.com.
IN NS ns.test2.com.
51 IN PTR ns.test1.com.
51 IN PTR mail.test1.com.
52 IN PTR ns.test2.com.
52 IN PTR mail.test2.com.
( 4 )配置 DNS 客户端
[root@RHEL1 named]# vi /etc/resolv.conf
修改为:
search test1.com
nameserver 192.168.1.51
重启 DNS 服务:
设置开机启动,执行以下命令
[root@RHEL1 named]# ntsysv
用空格键选中 named 进程, tab 键切换“确定”按钮保存设置!
四、安装 sendmail
[root@RHEL1 named]# cd /mnt/cdrom/Server
[root@RHEL1 Server]# find -name "sendmail*"
./sendmail-8.13.8-2.el5.i386.rpm
./sendmail-cf-8.13.8-2.el5.i386.rpm
./sendmail-devel-8.13.8-2.el5.i386.rpm
./sendmail-doc-8.13.8-2.el5.i386.rpm
[root@RHEL1 Server]# rpm -ivh sendmail-8.13.8-2.el5.i386.rpm
(依次安装以上各个 RPM 包)

在 RHEL2 上安装 sendmail :
[root@RHEL2 ~]# mkdir /mnt/cdrom
[root@RHEL2 ~]# mount /dev/hdc /mnt/cdrom
mount: block device /dev/hdc is write-protected, mounting read-only
[root@RHEL2 ~]# cd /mnt/cdrom/Server
[root@RHEL2 Server]# find -name "sendmail*"
./sendmail-8.13.8-2.el5.i386.rpm
./sendmail-cf-8.13.8-2.el5.i386.rpm
./sendmail-devel-8.13.8-2.el5.i386.rpm
./sendmail-doc-8.13.8-2.el5.i386.rpm
[root@RHEL2 Server]# rpm -ivh sendmail-8.13.8-2.el5.i386.rpm
(依次安装以上各个 RPM 包)
五、在 RHEL1 上建立 RHEL2 DNS 服务增加区域 test2.com
[root@RHEL1 Server]# cd /var/named/chroot/etc/
[root@RHEL1 etc]# vi named.rfc1912.zones
添加以下记录:
zone "test2.com" IN {
type master;
file "test2.com.hosts";
allow-update { none; };
};
创建 test2.com.hosts 的区域数据库文件
[root@RHEL1 etc]# cd /var/named/chroot/var/named
[root@RHEL1 named]# ll
婊璁 ?44
drwxrwx--- 2 named named 4096 06-14 10:50 data
-rw-r----- 1 root named 198 2009-01-06 localdomain.zone
-rw-r----- 1 root named 195 2009-01-06 localhost.zone
-rw-r----- 1 root named 427 2009-01-06 named.broadcast
-rw-r----- 1 root named 1892 2009-01-06 named.ca
-rw-r----- 1 root named 424 2009-01-06 named.ip6.local
-rw-r----- 1 root named 426 2009-01-06 named.local
-rw-r----- 1 root named 427 2009-01-06 named.zero
drwxrwx--- 2 named named 4096 2004-07-27 slaves
-rw-r----- 1 root named 244 06-14 10:41 test1.com.hosts
-rw-r----- 1 root named 451 06-14 10:43 test1.com.rev
[root@RHEL1 named]# cp -p test1.com.hosts test2.com.hosts
[root@RHEL1 named]# vi test2.com.hosts
修改为以下内容:
$TTL 86400
@ IN SOA ns.test2.com. root.ns.test2.com. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum

IN NS ns.test2.com.
IN MX 10 mail.test2.com.
ns IN A 192.168.1.52
mail IN A 192.168.1.52
保存退出,重启 DNS 服务:
[root@RHEL1 named]# service named restart
六、在 RHEL2 上修改 DNS 客户端配置文件,使指向 192.168.1.51
[root@RHEL2 Server]# vi /etc/resolv.conf
修改为以下内容:
search test2.com
nameserver 192.168.1.52
保存退出
七、验证 DNS 的配置
[root@RHEL1 named]# nslookup
> mail.test1.com
Server: 192.168.1.51
Address: 192.168.1.51#53

Name: mail.test1.com
Address: 192.168.1.51
> 192.168.1.51
Server: 192.168.1.51
Address: 192.168.1.51#53

51.1.168.192.in-addr.arpa name = ns.test1.com.
51.1.168.192.in-addr.arpa name = mail.test1.com.
> mail.test2.com
Server: 192.168.1.51
Address: 192.168.1.51#53

Name: mail.test2.com
Address: 192.168.1.52
> 192.168.1.52
Server: 192.168.1.51
Address: 192.168.1.51#53

52.1.168.192.in-addr.arpa name = ns.test2.com.
52.1.168.192.in-addr.arpa name = mail.test2.com.
经验证, DNS 可以正向、反向解析
DNS 配置得到验证!
八、编辑两台 sendmail 服务器的宏配置文件 sendmail.mc
在 RHEL1 上:
[root@RHEL1 named]# cd /etc/mail
[root@RHEL1 mail]# vi 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
[root@RHEL1 mail]# m4 sendmail.mc>sendmail.cf
在 RHEL2 上:
做与上面相同的修改
[root@RHEL2 mail]# m4 sendmail.mc>sendmail.cf
九、编辑 local-host-names 数据库文件
在 RHEL1 上:
[root@RHEL1 mail]# vi local-host-names
修改为:
mail.test1.com
test1.com
在 RHEL2 上:
[root@RHEL2 mail]# vi local-host-names
修改为:
mail.test2.com
test2.com
十、编辑 access 数据库文件
在 RHEL1 上:
[root@RHEL1 mail]# vi access
修改为:
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
Connect:192.168.1 RELAY
Connect:test1.com RELAY
Connect:test2.com RELAY
Connect:RHEL1.test1.com RELAY
Connect:RHEL1 RELAY
保存退出
[root@RHEL1 mail]# makemap hash access.db 重启 sendmail
[root@RHEL1 mail]# service sendmail restart

在 RHEL2 上:
[root@RHEL2 mail]# vi access
修改为:
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
Connect:192.168.1 RELAY
Connect:test2.com RELAY
Connect:test1.com RELAY
Connect:RHEL2.test2.com RELAY
Connect:RHEL2 RELAY
保存退出
[root@RHEL2 mail]# makemap hash access.db 重启 sendmail
[root@RHEL2 mail]# service sendmail restart
十一、配置 dovecot 服务,开启 pop3 服务
在 RHEL1 上:
安装提供 dovecot 服务的 rpm 包
[root@RHEL1 ~]# cd /mnt/cdrom/Server
[root@RHEL1 Server]# rpm -ivh perl-DBI-1.52-2.el5.i386.rpm
[root@RHEL1 Server]# rpm -ivh mysql-5.0.22-2.1.i386.rpm
[root@RHEL1 Server]# rpm -ivh postgresql-libs.7.4.6-1.RHEL4.2.i386.rpm
[root@RHEL1 Server]# rpm -ivh dovecot-1.0-1.2.rc15.el5.i386.rpm
配置
[root@RHEL1 Server]# cd /etc
[root@RHEL1 etc]# vi dovecot.conf
找到 #protocols = imap imaps pop3 pop3s 一行
修改为
protocols = imap imaps pop3 pop3s
保存退出,启动 dovecot 服务,设置开机启动
[root@RHEL1 etc]# service dovecot start
[root@RHEL1 etc]# ntsysv
空格键选中 ntsysv 进程, tab 键切换保存退出

在 RHEL2 上:
[root@RHEL2 ~]# cd /mnt/cdrom/Server/
[root@RHEL2 Server]# rpm -ivh perl-DBI-1.52-2.el5.i386.rpm
[root@RHEL2 Server]# rpm -ivh mysql-5.0.22-2.1.i386.rpm
[root@RHEL2 Server]# rpm -ivh postgresql-libs.7.4.6-1.RHEL4.2.i386.rpm
[root@RHEL2 Server]# rpm -ivh dovecot-1.0-1.2.rc15.el5.i386.rpm
[root@RHEL2 Server]# cd /etc
[root@RHEL2 etc]# vi dovecot.conf
找到 #protocols = imap imaps pop3 pop3s 一行
修改为
protocols = imap imaps pop3 pop3s
[root@RHEL2 etc]# service dovecot start
[root@RHEL2 etc]# ntsysv
十二、测试 RHEL1 RHEL2 win7 之间的连通性
分别在 RHEL1 和 RHEL2 上添加用户 zhangsan , lisi ,并创建密码
[root@RHEL1 ~]# useradd zhangsan
[root@RHEL1 ~]# passwd zhangsan
[root@RHEL2 etc]# useradd lisi
[root@RHEL2 etc]# passwd lisi

是否能互相 ping 通
[root@RHEL1 ~]# ping 192.168.1.52
PING 192.168.1.52 (192.168.1.52) 56(84) bytes of data.
64 bytes from 192.168.1.52: icmp_seq=1 ttl=64 time=0.850 ms
64 bytes from 192.168.1.52: icmp_seq=2 ttl=64 time=0.258 ms
……
[root@RHEL1 ~]# ping 192.168.1.104 ( 104 为物理机 win7 的 IP )
PING 192.168.1.104 (192.168.1.104) 56(84) bytes of data.
64 bytes from 192.168.1.104: icmp_seq=1 ttl=64 time=0.456 ms
64 bytes from 192.168.1.104: icmp_seq=2 ttl=64 time=0.320 ms
……

[root@RHEL2 etc]# ping 192.168.1.51
PING 192.168.1.51 (192.168.1.51) 56(84) bytes of data.
64 bytes from 192.168.1.51: icmp_seq=1 ttl=64 time=8.38 ms
64 bytes from 192.168.1.51: icmp_seq=2 ttl=64 time=0.347 ms
……
[root@RHEL2 etc]# ping 192.168.1.104
PING 192.168.1.104 (192.168.1.104) 56(84) bytes of data.
64 bytes from 192.168.1.104: icmp_seq=1 ttl=64 time=0.372 ms
64 bytes from 192.168.1.104: icmp_seq=2 ttl=64 time=0.369 ms
……

C:/Users/guoyin>ping 192.168.1.51
正在 Ping 192.168.1.51 具有 32 字节的数据 :
来自 192.168.1.51 的回复 : 字节 =32 时间 <1ms TTL=64
来自 192.168.1.51 的回复 : 字节 =32 时间 <1ms TTL=64
来自 192.168.1.51 的回复 : 字节 =32 时间 <1ms TTL=64
……
C:/Users/guoyin>ping 192.168.1.52
正在 Ping 192.168.1.52 具有 32 字节的数据 :
来自 192.168.1.52 的回复 : 字节 =32 时间 <1ms TTL=64
来自 192.168.1.52 的回复 : 字节 =32 时间 <1ms TTL=64
来自 192.168.1.52 的回复 : 字节 =32 时间 <1ms TTL=64
……
在 win7 上打开 C:/windows/system32/drivers/etc/hosts
添加以下两条主机记录:
192.168.1.51 mail.test1.com
192.168.1.52 mail.test2.com

C:/Users/guoyin>ping mail.test1.com
正在 Ping mail.test1.com [192.168.1.51] 具有 32 字节的数据 :
来自 192.168.1.51 的回复 : 字节 =32 时间 <1ms TTL=64
来自 192.168.1.51 的回复 : 字节 =32 时间 <1ms TTL=64
……
C:/Users/guoyin>ping mail.test2.com
正在 Ping mail.test2.com [192.168.1.52] 具有 32 字节的数据 :
来自 192.168.1.52 的回复 : 字节 =32 时间 <1ms TTL=64
来自 192.168.1.52 的回复 : 字节 =32 时间 <1ms TTL=64
……
经测试, ping ip 和域名都能 ping 通!

十三、在 outlook 上互发邮件验证
(1) 在 outlook 上建立两个邮件账户 ( 步骤略 )
账户信息如下:
zhangsan


lisi


( 2 )发送测试邮件
先用 [email protected][email protected] 发送一份测试邮件,结果显示:
zhangsan 的 ” 已发送邮件 ” 如下,说明 zhangsan 给 lisi 发送成功


再看 lisi 的收件箱中,显示如下,说明 lisi 收到了 zhangsan 发来的邮件

再用 [email protected][email protected] 发送一封测试邮件,结果如下:
lisi 的“已发送邮件”中显示如下,说明 lisi 给 zhangsan 发送邮件成功


同样,在 zhangsan 的收件箱中可以看到 lisi 发来的邮件,说明 lisi 给 zhangsan 发送成功

综上:邮件测试工作完成。 zhangsan 和 lisi 能够正常通信!
Tags:  linux服务器 虚拟服务器发邮件 发邮件服务器

延伸阅读

最新评论

发表评论