/ 中存储网

Sendmail的配置实例

2014-07-13 20:18:19 来源:中存储网
Sendmail的配置实例:
  sina.com 10.0.0.20           163.com  10.0.0.30
  MX:dns.sina.com (hostname)       MX:smtp.163.com(hostname)
邮件服务器A(MTA)                  邮件服务器B(MTA)
        DNS解析系统     邮件客户端A(MUA)                   邮件客户端B(MUA)
目标:
1.两台邮件服务器分别属于sina.com和163.com;各集成smtp和pop3服务功能。
2.其中sina的邮件服务器被同时配置为DNS服务器集成DNS功能并能够解析两个域的所有主机。
3.最终两台服务器实现两个域的邮件转发,经过OUTLOOK测试成功
4.其他附加功能在后。
步骤:
1.配置DNS服务。基本配置:hostname=dns.sina.com;ipaddr=10.0.0.20
   DNS服务相关文件为:
#/etc/named.conf中添加正向、反向解析区域:
zone "sina.com" IN {
        type master;
        file "sina.com.zone";
        allow-update { none; };
};

zone "163.com" IN {
        type master;
        file "163.com.zone";
        allow-update { none; };
};

zone "0.0.10.in-addr.arpa" IN {
        type master;
        file "sina.com.local";
        allow-update { none; };
};
之后区域文件sina.com.zone、163.com.zone和163.com.local内容如下:
$TTL    86400
$ORIGIN sina.com.
@           1D IN SOA   dns.sina.com.  root.sina.com. (
      42      ; serial (d. adams)
      3H      ; refresh
      15M     ; retry
      1W      ; expiry
      1D )        ; minimum

                        1D IN NS  dns.sina.com.
          1D IN MX   5    dns.sina.com.
dns                     1D IN A       10.0.0.20
smtp                    1D IN CNAME     dns
pop3                    1D IN CNAME     dns

$TTL    86400
$ORIGIN 163.com.
@           1D IN SOA   dns.sina.com.  root.sina.com. (
      42      ; serial (d. adams)
      3H      ; refresh
      15M     ; retry
      1W      ; expiry
      1D )        ; minimum

                       1D IN NS   dns.sina.com.
          1D IN MX   5    smtp.163.com.
smtp                       1D IN A        10.0.0.30
pop3                    1D IN CNAME     smtp

$TTL    86400
@       IN      SOA     dns.sina.com. root.sina.com.  (
         1ArrayArray7022700 ; Serial
         28800      ; Refresh
         14400      ; Retry
         3600000    ; Expire
         86400 )    ; Minimum
   IN      NS      dns.sina.com.

20       IN      PTR     smtp.sina.com.
20       IN      PTR     pop3.sina.com.
30       IN      PTR     smtp.163.com.
30       IN      PTR     pop3.163.com.
#service sendmail restart
解析测试。
2.配置sina的邮件服务。
    更改/etc/mail/sendmail.mc文件,修改下列地方:
DaemonPortsOptions=Port=smtp,Addr=127.0.0.1, Name=MTA    更改为:
DaemonPortsOptions=Port=smtp,Addr=yourip或者0.0.0.0, Name=MTA
然后m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
更改/etc/mail/accesss文件,增加:
10               RELAY            或者
sina.com          RELAY
163.com          RELAY
完成后makemap hash /etc/mail/access.db 进行数据库更新
修改/etc/mail/local-hosts-name文件,增加本地域和主机的FQDN,记住只是本地主机的FQDN和域名FQDN,不要添加其他域的,否则向外域发送邮件的时候会出现user unknown的错误:
dns.sina.com
sina.com
最后service sendmail restart         此时的hostname是FQDN格式的计算机名
3. 配置163的邮件服务。(方法同上)
4. 如果要通过在图形界面中使用客户端,则还需要修改/etc/xinetd.d/ipop3文件,修改为disable=no
  重启动超级进程/etc/rc.d/init.d/xinetd restart。
之后的配置包括:
a.修改/etc/access,分别使用OK、REJECT、DISCARD等字段检查是否允许relay。
b.修改/etc/aliases文件实现邮件转发和邮件列表:
  转发:a: b   或   a: b@sina.com 或 a:b@163.com  (远程)
  列表:a: b,c,d
  局部转发:直接vi 用户目录下的.forward文件,启动服务即可。(不需要修改aliases文件)
  #newaliases
  #service sendmail restart
c.修改/etc/mail/virtuserable文件:
  转发c@sina.com d    或    c@sina.com  d@163.com     均可
与aliases文件的区别在于其中c并不存在,而d存在。
但配置时需注意,若虚拟用户是存在于虚拟域中的,则针对虚拟域需要更改/named.conf文件,添加虚拟区域记录,同时要vi虚拟区域文件。
并且需要修改local-host-names以及access文件。
另外要注意,虚拟用户应采用user@FQDN格式添加进virtusertable文件,而不应该采用仅user的格式。
d.编辑/etc/mail/userdb文件实现出站别名。
  出站别名:a:mailname b@sina.com a所发送的邮件以b@sina.com的身份出去;
  可以a的用户身份登录,telnet邮件服务器的25端口,向root发送一封信,查看root的邮件列表时会发现邮件是从b用户发出的。
  入站别名:a:maildrop b@sina.com 发给a 的邮件被转发给b。
  上面对于userdb文件的更改,不能够在冒号后面留有空格,切记!
  完成之后,更新user数据库:
#cd /etc/mail
#makemap btree userdb.db
#service sendmail restart
e.配置带有SMTP认证的Sendmail:
RedHat默认安装的Sendmail是不具备对使用者身份进行认证的功能。这种配置容易使邮件服务器成为垃圾邮件的中转站。并且会造成管理人员对邮件进行跟踪的困难。但如果完全拒绝为可信赖区域以外的用户转发邮件会对用户造成使用上的不便。
因此解决这个问题的方法就是配置发信的认证功能。验证模块采用cyrus-sasl安全验证库,因此在操作之前应该先检查是否安装cyrus-sasl。rpm ?qa | grep cyrus。
有关的软件包在第一和第二张光盘中。
认证的配置:修改/etc/mail/sendmail.mc中的字段,取消“TRUST_AUTH_MECH”一行和下一行“define”处的注释。(于sendmail.mc文件的第43、44和Array2行)然后m4 /etc/ mail/sendmail.mc>/etc/mail/sendmail.cf。
完成后重启服务,执行命令sendmail ?d0.1 ?bv root | grep SASL,查看是否带有SASL字段。
执行telnet dns.sina.com 25,然后elho localhost,看是否有认证信息
“250-AUTH GSSAPI LOGIN PLAIN”出现。若出现则可以使用客户端进行认证测试。
通常选择“发送服务器要求验证”即可。