Sendmail :电子邮件服务

特点:1、快捷 2、安全 3、多样性

相关术语:

1. 协议 端口

Smtp   简单邮件传输(发送)协议 tcp 25 明文

Pop      接收协议 pop2 /pop3 tcp 109/110 明文 脱机的浏览方式 会从服务器下载到本地

Imap4  接收协议tcp 143

联机的方式,在线的方式 直接查看服务器的邮件目录 打开时会下载到本地读取

Mime 多用途邮件扩展 【http 邮件】

文本 base64 – ascii 把邮件办成二进制码来传递

2. 系统

MUA 邮件用户代理 outlook foxmail为每个用户建立一个独自的文件夹,实现安全

                          Linux os 命令mail mutt thunderbird evolution

MTA 邮件传输代理【类似邮局】

       Windows 电子邮件服务 exchanger 2003/2007【比较大】 Mdaemon小巧

       Linux   sendmail邮政系统【uucp smtp 来传递邮件】 无身份验证 不能防范垃圾邮件 无防病毒

                  postfix 发送快 比sendmail块3-4倍

                  qmail 最快的,但是已经没人使用了

MDA 邮件的分发,邮件分拣 procmail dropmail

MAA 邮件访问代理 【接受服务器】

            Linux dovecot 【pop2/pop3 imap4 pop3s imaps 】

3.安全

增加一个安全套接层 ssl/tls,既可以实现多种服务的安全加密。

http – https

pop – pops

ftp – ftps

imap – imaps

4.中继

1、 ip地址验证

2、 帐号验证 sasal【简单认证安全层】 cryus-sasl

本地帐号

虚拟帐号 外面的帐号来了,映射成本地的一个帐号

Smtps 465 点对点

Starttls 25

接收 pop2/pop3 ---pop3s

Imap4 – imaps

案例1-基本邮件服务互相通信

案例拓扑图

Sendmail服务器在企业里的应用_在线的

实验过程:

首先配置sohu.com域的服务器

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 //设置ip地址

Sendmail服务器在企业里的应用_服务器_02

重启网络服务

Sendmail服务器在企业里的应用_在线的_03

[root@mail ~]# vim /etc/sysconfig/network    //修改主机名

 Sendmail服务器在企业里的应用_在线的_04

[root@mail ~]# vim /etc/resolv.conf 修改DNS指向

Sendmail服务器在企业里的应用_在线的_05

安装DNS服务
[root@mail ~]# mount /dev/cdrom /mnt/cdrom
[root@mail ~]# cd /mnt/cdrom/Server/
[root@mail Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm
[root@mail Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm
[root@mail Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm

编辑DNS的配置文件
[root@mail Server]# cd /var/named/chroot/etc
[root@mail etc]# cp -p named.caching-nameserver.conf named.conf  //生成主配置文件
[root@mail etc]# vim  named.conf  //DNS的配置文件

Sendmail服务器在企业里的应用_在线的_06

[root@mail etc]# vim named.rfc1912.zones   //声明DNS正向反向可以解析的区域

Sendmail服务器在企业里的应用_服务器_07

Sendmail服务器在企业里的应用_服务器_08

创建正向解析域文件
[root@mail etc]# cd /var/named/chroot/var/named
[root@mail named]# cp -p localhost.zone sohu.com.zone
[root@mail named]# vim sohu.com.zone

Sendmail服务器在企业里的应用_在线的_09
穿件反向解析域文件
[root@mail named]# cp -p named.local  sohu.com.local
[root@mail named]# vim sohu.com.local

Sendmail服务器在企业里的应用_在线的_10

至此DNS已经配置成功,启动DNS服务

Sendmail服务器在企业里的应用_在线的_11

测试dns的解析

Sendmail服务器在企业里的应用_在线的_12

Sendmail服务器在企业里的应用_服务器_13


搭建sendmail服务

查看sendmail软件包的安装情况
Sendmail服务器在企业里的应用_在线的_14

[root@mail Server]#  rpm -ivh sendmail-cf-8.13.8-2.el5.i386.rpm

查看域sendmail相关的文件

Sendmail服务器在企业里的应用_服务器_15

[root@mail mail]# vim sendmail.mc

Sendmail服务器在企业里的应用_服务器_16


编辑中继文件
[root@mail mail]# vim access

Sendmail服务器在企业里的应用_在线的_17
编辑mail服务器的本地域名
[root@mail mail]# vim local-host-names

Sendmail服务器在企业里的应用_在线的_18

到此,sendmail已经安装配置完成,启动邮件服务

Sendmail服务器在企业里的应用_服务器_19

安装dovecot服务,并启动
yum install dovecot

Sendmail服务器在企业里的应用_在线的_20

给sohu.com域创建用户,及赋予密码

Sendmail服务器在企业里的应用_服务器_21

测试用户之间相互发送邮件,来测试服务器

切换到user1,给user2发送邮件

Sendmail服务器在企业里的应用_服务器_22

切换到user2,查看邮件箱,查看邮件

Sendmail服务器在企业里的应用_在线的_23

root账户给user1发送邮件,切换到user1查看邮件。

Sendmail服务器在企业里的应用_服务器_24

 

配置sina.com域服务器

sohu.com服务器的配置与sina.com服务器的配置类似,下面简单的介绍一下

配置服务器ip地址[root@mail ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

Sendmail服务器在企业里的应用_在线的_25

[root@mail ~]# service network restart

配置主机名字

Sendmail服务器在企业里的应用_服务器_26

DNS指向[root@mail ~]# vim /etc/resolv.conf

Sendmail服务器在企业里的应用_在线的_27

搭建DNS服务器:

安装需要的软件包

[root@mail Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm

[root@mail Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm

[root@mail Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm

编辑DNS主配置文档:

[root@mail Server]# cd /var/named/chroot/etc/

[root@mail etc]# cp -p named.caching-nameserver.conf named.conf   //生成主配置文档

[root@mail etc]# vim named.conf

Sendmail服务器在企业里的应用_在线的_28

声明DNS正向区域,反向区域

[root@mail etc]# vim named.rfc1912.zones

Sendmail服务器在企业里的应用_服务器_29

Sendmail服务器在企业里的应用_服务器_30

创建正向区域文件:

[root@mail named]# cp -p localhost.zone sina.com.zone

[root@mail named]# vim sina.com.zone

Sendmail服务器在企业里的应用_服务器_31

创建反向区域文件:

[root@mail etc]# ccd /var/named/chroot/var/named/

[root@mail named]# cp -p named.local sina.com.local

[root@mail named]# vim sina.com.local

Sendmail服务器在企业里的应用_服务器_32

启动DNS服务:

[root@mail named]# service named start

测试sina.com区域的DNS服务器解析:

Sendmail服务器在企业里的应用_在线的_33

 

搭建sendmail服务器:

安装sendmail所需的软件包:

[root@mail Server]# rpm -ivh sendmail-cf-8.13.8-2.el5.i386.rpm

编辑sendmail主配置文档:

[root@mail ~]# cd /etc/mail/

[root@mail mail]# vim sendmail.mc

Sendmail服务器在企业里的应用_服务器_34

编辑sendmail的中继文件:

[root@mail mail]# vim access

Sendmail服务器在企业里的应用_服务器_35

编辑mail服务器的本地域名:

[root@mail mail]# vim local-host-names

Sendmail服务器在企业里的应用_在线的_36

重启sendmail服务:

Sendmail服务器在企业里的应用_在线的_37

 

搭建dovecot服务器,启动dovecot服务

[root@mail Server]# yum install dovecot

[root@mail Server]# service dovecot start

创建邮件服务器用户:

Sendmail服务器在企业里的应用_在线的_38

测试sina.com域中账户之间发送邮件

Sendmail服务器在企业里的应用_在线的_39

 

开启一个winxp,作为sina.com区域的一个客户机

地址配置如图

Sendmail服务器在企业里的应用_在线的_40

outlook客户短的配置,

Sendmail服务器在企业里的应用_服务器_41

配置账户地址

Sendmail服务器在企业里的应用_在线的_42

配置别名服务器

Sendmail服务器在企业里的应用_服务器_43

输入账户密码

 Sendmail服务器在企业里的应用_在线的_44

改成一个好记的名字

Sendmail服务器在企业里的应用_服务器_45

配置连接sohu.com的PC机

Sendmail服务器在企业里的应用_服务器_46

登录账户,设置别名服务器

Sendmail服务器在企业里的应用_在线的_47

跨区域发邮件验证服务器搭建情况:user3给user1发邮件

Sendmail服务器在企业里的应用_在线的_48

user1收到邮件。

Sendmail服务器在企业里的应用_服务器_49

 

应用2-实现企业网内邮件服务器的加密转发和接受

加密需要借助ssl套接层来实现,需要有CA服务器,证书……

一、给sohu.com域配置CA服务器
1[root@mail ~]# vim /etc/pki/tls/openssl.cnf
修改CA路径

Sendmail服务器在企业里的应用_服务器_50

指明多区域的人可以使用这个CA

Sendmail服务器在企业里的应用_服务器_51

修改申请CA的默认参数

Sendmail服务器在企业里的应用_在线的_52

2根据openssl.cnf文件的说明,需要在CA目录中创建需要的子目录

Sendmail服务器在企业里的应用_在线的_53

[root@mail ~]# cd /etc/pki/CA

[root@mail CA]# vim /etc/pki/tls/openssl.cnf
[root@mail CA]# mkdir crl certs newcerts
[root@mail CA]# touch index.txt serial
[root@mail CA]# echo "01" >serial

Sendmail服务器在企业里的应用_在线的_54

创建私钥,根证书。
[root@mail CA]# openssl genrsa 1024 >private/cakey.pem
修改密钥文件的权限,禁止其它账户查看。
[root@mail private]# chmod 600 cakey.pem
根据撕咬文件申请创建根证书,并配置相关的信息
[root@mail CA]# openssl req -new -key private/cakey.pem -x509 -days 3650 -out cacert.pem

Sendmail服务器在企业里的应用_服务器_55

二、在sohu.com服务器上申请证书
建立相关的目录来存放证书及私钥
[root@mail ~]# mkdir -pv /etc/mail/certs
[root@mail ~]# cd /etc/mail/certs
产生自己的私钥文件,
[root@mail certs]# openssl genrsa 1024 >sendmail.key

Sendmail服务器在企业里的应用_服务器_56
根据私钥文件,产生证书申请文件
[root@mail certs]# openssl req -new -key sendmail.key -out sendmail.csr

Sendmail服务器在企业里的应用_在线的_57
根据证书申请文件,向本地CA服务器申请证书
[root@mail certs]# openssl ca -in sendmail.csr -out sendmail.cert

Sendmail服务器在企业里的应用_在线的_58

Sendmail服务器在企业里的应用_服务器_59
修改这3个文件的权限,禁止其它用户修改;
[root@mail certs]# chmod 600 *

Sendmail服务器在企业里的应用_服务器_60

三、在sendmail服务器中启用ssl套接层,启动加密措施
编辑sendmail的配置文件
[root@mail ~]# vim /etc/mail/sendmail.mc做以下修改
CA服务器的路径

Sendmail服务器在企业里的应用_服务器_61
define(`confCACERT_PATH', `/etc/pki/CA')dnl
CA的根证书路径
define(`confCACERT', `/etc/pki/CA/cacert.pem')dnl
sendmail服务器的证书位置
define(`confSERVER_CERT', `/etc/mail/certs/sendmail.cert')dnl
sendmail服务器的私钥位置
define(`confSERVER_KEY', `/etc/mail/certs/sendmail.key')dnl
打开sendmail的加密加密服务

Sendmail服务器在企业里的应用_在线的_62

重新启动sendmail服务
[root@mail ~]# service sendmail restart

四、给dovecot服务启用ssl套接层,启动加密措施
创建相关的存放证书的目录
[root@mail ~]# mkdir -pv /etc/dovecot/certs
进入此目录
[root@mail ~]# cd /etc/dovecot/certs/
产生1024位的私钥文件
[root@mail certs]# openssl genrsa 1024 >dovecot.key

Sendmail服务器在企业里的应用_服务器_63
根据私钥文件产生证书申请文件
[root@mail certs]# openssl req -new -key dovecot.key -out dovecot.csr

Sendmail服务器在企业里的应用_在线的_64
根据证书申请文件产生证书文件
[root@mail certs]# openssl ca -in dovecot.csr -out dovecot.cert
修改这3个文件的权限,

Sendmail服务器在企业里的应用_在线的_65
[root@mail certs]# chmod 600 *

Sendmail服务器在企业里的应用_在线的_66

五、在dovecot服务中启动ssl,加密验证方式

[root@mail certs]# vim /etc/dovecot.conf做一下修改,开启验证规则
ssl_cert_file = /etc/dovecot/certs/dovecot.cert
ssl_key_file = /etc/dovecot/certs/dovecot.key

Sendmail服务器在企业里的应用_服务器_67
重启dovecot服务
[root@mail certs]# service dovecot restart

六、测试
配置PC机中outlook客户端,开启安全连接ssl。

Sendmail服务器在企业里的应用_服务器_68

Sendmail服务器在企业里的应用_服务器_69

user1给user2发送一份邮件,测试加密验证

Sendmail服务器在企业里的应用_在线的_70

sendmail服务器会出示自己的证书

Sendmail服务器在企业里的应用_服务器_71

user2接受邮件,接受sendmail服务器出示的证书。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Sendmail服务器在企业里的应用_在线的_72

收到user1发来的邮件了。

Sendmail服务器在企业里的应用_服务器_73

 

应用三-实现企业网内邮件服务器用户认证

查看sendmail使用的身份验证方式:
[root@mail ~]# vim /usr/lib/sasl2/Sendmail.conf

Sendmail服务器在企业里的应用_在线的_74

[root@mail ~]# vim /etc/mail/sendmail.mc  对sendmail的配置文件做一下4处的修改

39 define(`confAUTH_OPTIONS', `A y')dnl
52 TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
53 define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
启动强制身份验证
116 DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA, M=Ea')dnl

重启sendmail服务
[root@mail ~]# service sendmail restart

Sendmail服务器在企业里的应用_在线的_75
重启验证服务
[root@mail ~]# service saslauthd restart

测试  pc机
telnet 192.168.10.100 25

Sendmail服务器在企业里的应用_在线的_76

进入user2,查收邮件

Sendmail服务器在企业里的应用_在线的_77

使用outlook验证账户加密

通过帐号和密码字符串,生成相应的base64的字符串:

Sendmail服务器在企业里的应用_在线的_78

a、客户端没有开启身份验证时:

用户user1向user2发送邮件:

Sendmail服务器在企业里的应用_在线的_79

获得证书:

Sendmail服务器在企业里的应用_服务器_80

提示错误:

Sendmail服务器在企业里的应用_在线的_81

b、客户端用户开启身份验证:

修改用户属性:

Sendmail服务器在企业里的应用_在线的_82

再次发送邮件:

Sendmail服务器在企业里的应用_服务器_83

User2成功接收邮件:

Sendmail服务器在企业里的应用_在线的_84

Sendmail服务器在企业里的应用_服务器_85

 

 

 

 

 

 

测试通过!!!!!!!!!!!!!!!!!!!!