Sendmail的介绍
      sendmail是最重要的邮件传输代理程序。理解电子邮件的工作模式是非常重要的。一般情况下,我们把电子邮件程序分解成用户代理,传输代理和投递代理。 用户代理用来接受用户的指令,将用户的信件传送至信件传输代理,如:outlook express、foxmail等。而投递代理则从信件传输代理取得信件传送至最终用户的邮箱,如:procmail。
配置sendmail前需要准备的工作
一.安装sendmail-8.13.8-2.el5.i386.rpm软件包
              【用来修改sendmail.mc文件】
   [[email protected] Server]# rpm -ivh sendmail-cf-8.13.8-2.el5.i386.rpm
Preparing...                ########################################### [100%]
   1:sendmail-cf            ########################################### [100%]              [root @localhost mail]# rpm -qa |grep m4       【用来修改access文件】
     m4-1.4.5-3.el5.1
二. 修改主机名
   [[email protected] ~]# vim /etc/sysconfig/network
   NETWORKING=yes
   NETWORKING_IPV6=no
   HOSTNAME=mail.163.com
三. 在一个邮件服务器上安装dns服务器并且把dns服务器配置好
  1. 安装软件
[[email protected] Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm
Preparing...             ################################ [100%]        1:bind   #################################### [100%]
[[email protected] Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm
Preparing...                ########################################### [100%]
1:bind-chroot            ########################################### [100%]
[[email protected] Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm
Preparing...                ########################################### [100%] 1:caching-nameserver     ########################################### [100%]
2. 配置dns服务器
[[email protected] etc]# cp -p named.caching-nameserver.conf named.conf 【复制一份配置文件模板】
修改如下
 15         listen-on port 53 { any; };
 27         allow-query     { any; };
 28         allow-query-cache { any; };
 37         match-clients      { any; };
 38         match-destinations { any; };
 39         recursion yes;
[[email protected] named]# cp -p localhost.zone 163.com.zone
 修改一下几行
 2 @               IN SOA ns.163.com.        root (
 9                 IN NS           ns.163.com.
 10 ns              IN A            192.168.1.100
 11 mail            IN A            192.168.1.100
 12 pop3            IN CNAME        mail
 13 smtp            IN CNAME        mail
 14 @               IN MX 10        mail
四. 查看sendmail的配置文件并修改下列文件
[[email protected] ~]# cd /etc/mail
 

Sendmail在企业网中的应用 

1. 修改sendmail.mc文件

[[email protected] mail]# vim sendmail.mc

修改第116行把原来的127.0.0.1 修改为0.0.0.0

 

Sendmail在企业网中的应用 

 

重启服务后查看端口情况
[[email protected] mail]# netstat -tupln|less
tcp        0      0 0.0.0.0:25                  0.0.0.0:*         LISTE32761/sendmil: acc             LISTEN      32761/sendmail: acc 0.0
2.  sendmail默认情况下不支持中继,由于不支持中继就不能与外部通信所以需要修改
Access文件以下这种修改为基于ip地址的中继
[ [email protected] mail]# vim access
Connect:localhost.localdomain           RELAY
Connect:localhost                       RELAY
Connect:127.0.0.1                       RELAY
Connect:192.168.1                       RELAY
sina.com                                RELAY
163.com                                 OK
在另一台pc上测试
telnet 192.168.1.100 25                           【我的linux主机ip为192.168.1.100】
 

Sendmail在企业网中的应用 

 

3.        
 [[email protected] mail]# vim local-host-names
 # local-host-names - include all aliases for your machine here.i
 163.com
 mail.163.com
五. 安装邮件接收服务器这里利用yum进行安装
1. 利用yum进行安装
  [[email protected] Server]# yum install -y dovecot-1.0.7-7.el5.i386.rpm
  Running Transaction
  Installing     : perl-DBI                                                     1/3
  Installing     : mysql                                                        2/3
  Installing     : dovecot                                                                            
Installed:
六. 利用outlook Express 进行测试
 

Sendmail在企业网中的应用 

 

Sendmail在企业网中的应用 

 

Sendmail在企业网中的应用 

 

Sendmail在企业网中的应用 

 

Sendmail在企业网中的应用 

 

邮件的别名修改
[[email protected] ~]# vim /etc/aliases
 

Sendmail在企业网中的应用 

 

结果user1 和user2 都接受到邮件了
 

Sendmail在企业网中的应用 

 

七. 163服务器和sina服务器搭建好以后做好反向dns
  [[email protected] etc]# vim named.rfc1912.zones
  37 zone "1.168.192.in-addr.arpa" IN {
  38         type master;
  39         file "192.168.1.zone";
  40         allow-update { none; };
  41 };
  [[email protected] ~]# cd /var/named/chroot/var/named/
  [[email protected] named]# cp -p named.local 192.168.1.zone
  1 $TTL    86400
  2 @       IN      SOA     localhost. root.localhost. (
  3                                       1997022700 ; Serial
  4                                       28800      ; Refresh
  5                                       14400      ; Retry
  6                                       3600000    ; Expire
  7                                       86400 )    ; Minimum
  8         IN      NS      localhost.
  9 50       IN      PTR     mail.sina.com.
 

Sendmail在企业网中的应用 

 

Sendmail在企业网中的应用 

 

八.为邮件进行加密
1. 首先安装抓包软件
[[email protected] Server]# yum install -y wireshark-1.0.8-1.el5_3.1.i386.rpm
安装好之后发一封邮件 进行测试
Running as user "root" and group "root". This could be dangerous.【【抓包】】
Capturing on eth0
 39.735050 192.168.1.101 -> 192.168.1.100 TCP 1090 > 110 [SYN] Seq=0 Win=65535 Len=0 MSS=1460
 39.735533 192.168.1.101 -> 192.168.1.100 TCP 1090 > 110 [ACK] Seq=1 Ack=1 Win=65535 Len=0
 39.738192 192.168.1.101 -> 192.168.1.100 POP Request: USER user2【【账号】】
 39.739713 192.168.1.101 -> 192.168.1.100 POP Request: PASS 123【密  码】】
 39.770656 192.168.1.101 -> 192.168.1.100 POP Request: STAT
 39.876335 192.168.1.101 -> 192.168.1.100 POP Request: LIST
结果抓出了账号和密码
1.       实现邮件加密的步骤
实现CA
[[email protected] ~]# vim /etc/pki/tls/openssl.cnf
 

Sendmail在企业网中的应用 

 

[[email protected] ~]# cd /etc/pki/CA/
 [[email protected] CA]# mkdir  crl certs  newcerts     【创建目录】
 [[email protected] CA]# touch  index.txt  serial 【创建文件】
[[email protected] CA]# echo "01" >serial      【为serial文件创建***】
 [[email protected] CA]# openssl genrsa 1024 >private/cakey.pem 【产生私钥】
 [[email protected] CA]# chmod 600 private/*【修改cakey.Pem的权限】
[[email protected] CA]# openssl req -new -key private/cakey.pem -x509 -days 3650 -out cacert.pem
 【产生证书】
为sendmail发送服务器申请证书
申请证书要有钥匙,请求文件,证书
[[email protected] certs]# openssl genrsa 1024 >sendmail.key 【产生钥匙】
Generating RSA private key, 1024 bit long modulus
..................................................++++++
......++++++
[[email protected] certs]# openssl req -new -key sendmail.key -out sendmail.csr 【生成请求文件】
[[email protected] certs]# openssl ca -in sendmail.csr -out sendmail.cert 【申请证书】
进行证书和服务器的捆绑
[[email protected] ~]# vim /etc/mail/sendmail.mc
60 define(`confCACERT_PATH', `/etc/pki/CA')dnl
 61 define(`confCACERT', `/etc/pki/CA/cacert.pem')dnl
 62 define(`confSERVER_CERT', `/etc/mail/certs/sendmail.cert')dnl
 63 define(`confSERVER_KEY', `/etc/mail/certs/sendmail.key')dnl
 64 dnl #
测试
发送邮件
 

Sendmail在企业网中的应用 

 

Sendmail在企业网中的应用 

 

抓包测试
[[email protected] certs]# tshark -ni eth0 -R "tcp.dstport eq 25 or tcp.srcport eq 25"
Running as user "root" and group "root". This could be dangerous.
Capturing on eth0
 
73.595784 192.168.1.101 -> 192.168.1.100 SMTP C: STARTTLS 【【说明已经成功加密了】】