1 目标
要实现的功能为:
在目标机中用sendmail搭建邮件服务器,目标机内部可通过user1@linux.com或user1@mail.linux.com互相收发邮件,宿主机也可与目标机间通过该方式互相收发邮件。
注:所有操作在root权限下完成。
2 宿主机及目标机相关信息
2.1宿主机相关信息
2.1.1操作系统
XP3
2.1.2 IP信息
Ethernet adapter 本地连接:
IP Address. . . . . . . . . . . . : 192.168.1.2
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1
2.2目标机相关信息
2.2.1操作系统
Fefora 9
2.2.2主机名(hostname)
mail.linux.com
2.2.3域名(domainname)
linux.com
2.2.4 IP信息
ifconfig:
inet addr:192.168.1.254
Bcast:192.168.1.255
Mask:255.255.255.0
2.2.5目标机用于测试的用户及密码
user1 123456
user2 123456
2.2.6 其他
目标机为虚拟机,操作系统为Fefora 9。
宿主机与目标机通过Bridge方式连接,通信正常(能ping通)。
3 目标机配置
3.1 配置文件ifcfg-eth1(/etc/sysconfig/network-scripts/ifcfg-eth1)[静态IP等]
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth1
BOOTPROTO=none
NETMASK=255.255.255.0
IPADDR=192.168.1.254
USERCTL=yes
PEERDNS=yes
IPV6INIT=no
NM_CONTROLLED=yes
GATEWAY=192.168.1.1
TYPE=Ethernet
HWADDR=00:0c:29:37:fb:6a
ONBOOT=no
3.2 配置文件network(/etc/sysconfig/network)[设置主机名]
NETWORKING=yes
HOSTNAME=mail.linux.com
3.3 配置文件local-host-names(/etc/mail/local-host-names)[设置主机别名,便支持user1@linux.com的形式]
mail.linux.com
linux.com
3.4 配置文件sendmail.mc(/etc/mail/sendmail.mc)[sendmail配置相关文件,uncomment并适当修改]
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnldnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
FEATURE(`accept_unresolvable_domains')dnl
dnl # 以下与域名相关
dnl LOCAL_DOMAIN(`localhost.localdomain')dnl
LOCAL_DOMAIN(`linux.com')dnl
dnl MASQUERADE_AS(`mydomain.com')dnl
MASQUERADE_AS(`linux.com')dnl
dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl
dnl MASQUERADE_DOMAIN(mydomain.lan)dnl
MASQUERADE_DOMAIN(localhost)dnl
MASQUERADE_DOMAIN(localhost.localdomain)dnl
MASQUERADE_DOMAIN(linux.com)dnl
修改后通过m4生成/etc/mail/sendmail.cf配置文件:
m4 sendmail.mc > sendmail.cf
3.5 配置文件access(/etc/mail/access)[sendmail配置相关文件,添加相关内容]
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
Connect:linux.com RELAY # added
Connect:192.168.254 RELAY # added
修改后通过makemap生成/etc/mail/access.db文件:
makemap hash access.db < access
3.6 配置文件dovecot.conf(/etc/dovecot.conf)[sendmail配置相关文件,配置使用的协议]
protocols = imap imaps pop3 pop3s
3.7 配置文件named.conf(/etc/named.conf)[DNS配置相关文件,添加相关域]
zone "linux.com" IN {
type master;
file "linux.com.zone";
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "1.168.192.in-addr.arpa.zone";
};
3.8 配置文件linux.com.zone(/var/named/chroot/var/named/linux.com.zone)[DNS配置相关文件,正向解析,主要添加MX记录]
$TTL 86400
@ IN SOA mail.linux.com. root.linux.com. (
20130423; serial
3H ; refresh
15M ; retry
1W ; expire
1D ) ; minunum
@ IN NS mail.linux.com.
@ IN MX 5 mail.linux.com.
mail IN A 192.168.1.254
www IN CNAME mail
配置完成后创建符号连接:
ln -s /var/named/chroot/var/named/linux.com.zone /var/named/linux.com.zone
3.9 配置文件1.168.192.in-addr.arpa.zone(/var/named/chroot/var/named/1.168.192.in-addr.arpa.zone)[DNS配置相关文件,反向解析]
$TTL 86400
@ IN SOA 1.168.192.in-addr.arpa.zone. root.linux.com. (
20130423; serial
3H ; refresh
15M ; retry
1W ; expire
1D ) ; minunum
@ IN NS mail.linux.com.
@ IN MX 5 mail.linux.com.
254 IN PTR mail.linux.com.
254 IN PTR www.linux.com.
配置完成后创建符号连接:
ln -s /var/named/chroot/var/named/1.168.192.in-addr.arpa.zone /var/named/1.168.192.in-addr.arpa.zone
3.10 配置文件hosts(/etc/hosts)[DNS配置相关文件,配置主机名和IP地址的对应关系,把主机名映射到IP地址]
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.1.254 mail.linux.com mail # added
# 127.0.0.1 mail.linux.com mail # added 有次测试中,要添加此记录才可用host、nslookup等测试通过,不添加则不能通过,后来过一会加上这条记录也不行了
3.11 配置文件host.conf(/etc/host.conf)[DNS配置相关文件,配置DNS解析顺序及相关参数]
order hosts,bind
3.12 配置文件resolv.conf(/etc/resolv.conf)[DNS配置相关文件,域名解析配置文件]
# Generated by NetworkManager
domain linux.com # 主机域名
search linux.com # 搜索列表
nameserver 192.168.1.254 # DNS服务器IP
4 重启各服务
service network restart
service named restart
service dovecot restart
service sendmail restart
service saslauthd restart
5 现象
5.1 域名解析
ping 192.168.1.254 ; ping本机,测试通过
ping 192.168.1.2 ; ping宿主机,测试通过
ping mail.linux.com ; 测试通过
ping www.linux.com ; 提示unknown host www.linux.com
host mail.linux.com ; ;; connection time out; no servers could be reached
host www.linux.com ; 同上
至此,没必要再用nsloopup继续测试,应该DNS解析有问题,但是不知道哪里出了问题。
5.2 收发邮件
5.2.1 发送(本地用户user1向本地用户user2发送)[省略输出信息]
telnet 192.168.1.254 25
helo mail.linux.com
mail from:user1@linux.com
rcpt to:user2@linux.com
data
hello user2, this is a test message from user1.
.
quit
说明:发送后邮件并未投递出去,而是保存在了发送队列里(/var/spool/mqueue/目录下),查看user2的信箱(/var/spool/mail/user2),未收到相关邮件。
5.2.2 接收(本地用户user2读取新邮件)[省略输出信息]
telnet 192.168.1.254 110
user user2
pass 123456
list ; 查看邮件列表,为0
; retr 1 ; 收取邮件
quit
说明:user2未能收到邮件。
6. 疑惑
哪里出了问题???