sendmail简单实验
邮件服务器的运行和DNS关系密切,所以在这周六寂寞的下午,结合DNS做了sendmail的简单实验.
[实验目的]
1.配置一个DNS服务器,解析两个域sb.com和hrb.com。
2.配置两个sendmail服务器。实现两个域的邮件发送。

[实验环境]
1.虚拟机 CentOS4 两台
主机1:DNS+Sendmail
主机2:Sendmail

[实验步骤]
一.配置网络基本参数.
1.两台CentOS关掉iptables
# service iptables stop
# chkconfig iptables off
2.两台CentOS检查必要软件
# rpm -qi bind
如果没安装,从CentOS的CD3中找到rpm安装
# rpm -ivh bind-9.2.4-16-EL3.i386.rpm
3.互连两台主机.
①编辑两台主机的相应文件
同时作为DNS服务器的主机1:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
onBOOT=yes
IPADDR=192.168.1.88
NETMASK=255.255.255.0
/etc/hosts
127.0.0.1 localhost localhost.localdomain
/etc/resolv.conf
nameserver 192.168.1.88
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=www.sb.com
主机2:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
onBOOT=yes
IPADDR=192.168.1.125
NETMASK=255.255.255.0
/etc/hosts
127.0.0.1 localhost localhost.localdomain
/etc/resolv.conf
nameserver 192.168.1.88
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=www.hrb.com
②验证两台机能互相ping通

二.在主机1上配置DNS.
1.编辑/etc/named.conf文件:
/etc/named.conf
options {
directory "/var/named/";
};
zone "sb.com" IN {
type master;
file "sb.com";
};
zone "hrb.com" IN {
type master;
file "hrb.com";
};
-----------------------------------------------------------------------
2.用vi创建两个区域文件:/var/named/sb.com和/var/named/hrb.com
/var/named/sb.com的内容是
$TTL 86400
@ IN SOA www.sb.com. root.www.sb.com. ( 2007072101 1H 1M 1W 1D )
IN NS www.sb.com.
IN A 192.168.1.88
www IN A 192.168.1.88
mail IN A 192.168.1.88
@ IN MX 10 mail.sb.com.
/var/named/hrb.com的内容是
$TTL 86400
@ IN SOA www.hrb.com. root.www.hrb.com. ( 2007072101 1H 1M 1W 1D )
IN NS www.sb.com.
IN A 192.168.1.125
www IN A 192.168.1.125
@ IN MX 10 www.hrb.com.
SOA 括弧中的5个数字:
对应为( serial refresh retry expire Minimum )
serial 可以是任何数字,一般:年月日修改数.
refresh 是SOA信息的刷新时间.
Retry是与授权服务器联系的频率.
Expire slave服务器保存有关的区域信息,不更新它的时间间隔.
Minimum 区域中记录的存活时间.
H=hour D=day M=minute W=week
重新启动named后必须在两台主机上利用nslookop验证dns对两个域的解析是否完全正确。

三.配置两台主机上的sendmail
下面以主机1为例,主机2同理设置
1,安装sendmail系列rpm包
centos4带的是
sendmail-8.13.1-3.RHEL4.5.386.rpm
sendmail-cf-8.13.1-3.RHEL4.5.386.rpm
m4-1.4.1-16.i386.rpm
2,编辑/etc/mail/sendmail.mc
去掉下列行中最前面的的dnl三个字母,将127.0.0.1改成0.0.0.0
DAEMON_OPTIONS(Port=smtp,Addr=0.0.0.0,Name=MTA)
作用是:使得可以接受其他域的mail。
利用m4产生新的配置文件,最好先备份/etc/mail/sendmail.cf
cp /etc/mial/sendmail.cf /etc/mail/sendmail.cf.BAK
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
3,编辑/etc/mail/access开放允许网段的中继权限,用域名和IP均可。
localhost.localdomain RELAY
localhost RELAY
127.0.0.1 RELAY
sb.com RELAY
mail.sb.com RELAY
产生的文件转化为accessd.db格式
makemap hash /etc/mail/access.db < /etc/mail/access
4,修改/etc/mail/local-host-names设定主机
在后面加入本机域和MAIL域
sb.com
mail.sb.com
5,检测sendmail是否可识别你的域名。
# sendmial -d0 < /dev/null
Version 8.12.5
Compiled with: DNSMAP HESIOD HES_GETMAILHOST LDAPMAP LOG MAP_REGEX
MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6
NETUNIX NEWDB NIS PIPELINING SASL SCANF STARTTLS TCPWRAPPERS
USERDB USE_LDAP_INIT
============ SYSTEM IDENTITY (after readcf) ============
(short domain name) $w = www
(canonical domain name) $j = www.sb.com
(subdomain name) $m = sb.com
(node name) $k = www.sb.com
========================================================
Recipient names must be specified
如果显示localhost的话,检查/etc/hosts 去掉除127.0.0.1以外的行。如果还有问题,
查看是否在/etc/sysconfig/network中设置了HOSTNAME=www.sb.com
6,两个域的用户互相发信
直接使用域名发信
mail girl@hrb.com
或者 telnet localhost 25
成功