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-基本邮件服务互相通信

案例拓扑图

00000

实验过程:

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

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

01

重启网络服务

02

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

 03

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

04

安装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的配置文件

05

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

06

07

创建正向解析域文件
[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

08
穿件反向解析域文件
[root@mail named]# cp -p named.local  sohu.com.local
[root@mail named]# vim sohu.com.local

09

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

10

测试dns的解析

11

12


搭建sendmail服务

查看sendmail软件包的安装情况
13

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

查看域sendmail相关的文件

14

[root@mail mail]# vim sendmail.mc

15


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

16
编辑mail服务器的本地域名
[root@mail mail]# vim local-host-names

17

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

18

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

19

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

20

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

切换到user1,给user2发送邮件

21

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

22

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

23

 

配置sina.com域服务器

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

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

01

[root@mail ~]# service network restart

配置主机名字

02

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

03

搭建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

04

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

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

05

06

创建正向区域文件:

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

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

07

创建反向区域文件:

[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

08

启动DNS服务:

[root@mail named]# service named start

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

09

 

搭建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

10

编辑sendmail的中继文件:

[root@mail mail]# vim access

11

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

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

12

重启sendmail服务:

13

 

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

[root@mail Server]# yum install dovecot

[root@mail Server]# service dovecot start

创建邮件服务器用户:

14

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

19

 

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

地址配置如图

20

outlook客户短的配置,

21-2

配置账户地址

21-1

配置别名服务器

22

输入账户密码

 23

改成一个好记的名字

24

配置连接sohu.com的PC机

31

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

32

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

42

user1收到邮件。

41

 

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

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

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

01

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

02

修改申请CA的默认参数

03

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

04

[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

05

创建私钥,根证书。
[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

06

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

07
根据私钥文件,产生证书申请文件
[root@mail certs]# openssl req -new -key sendmail.key -out sendmail.csr

08
根据证书申请文件,向本地CA服务器申请证书
[root@mail certs]# openssl ca -in sendmail.csr -out sendmail.cert

09

10
修改这3个文件的权限,禁止其它用户修改;
[root@mail certs]# chmod 600 *

11

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

12
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的加密加密服务

13

重新启动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

14
根据私钥文件产生证书申请文件
[root@mail certs]# openssl req -new -key dovecot.key -out dovecot.csr

15
根据证书申请文件产生证书文件
[root@mail certs]# openssl ca -in dovecot.csr -out dovecot.cert
修改这3个文件的权限,

16
[root@mail certs]# chmod 600 *

17

五、在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

18
重启dovecot服务
[root@mail certs]# service dovecot restart

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

19

20

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

21

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

22

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

23

收到user1发来的邮件了。

24

 

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

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

01

[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

05
重启验证服务
[root@mail ~]# service saslauthd restart

测试  pc机
telnet 192.168.10.100 25

07

进入user2,查收邮件

09

使用outlook验证账户加密

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

10

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

用户user1向user2发送邮件:

p_w_picpath

获得证书:

p_w_picpath

提示错误:

p_w_picpath

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

修改用户属性:

p_w_picpath

再次发送邮件:

p_w_picpath

User2成功接收邮件:

p_w_picpath

p_w_picpath

 

 

 

 

 

 

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