电子邮件服务的概述:

Internet最基本的服务,也是最重要的服务之一,就是电子邮件服务。据统计Internet上百分之三十以上的业务量是电子邮件,仅次于WWW服务。与传统的邮政信件服务类似,电子邮件可以用来在Internet或Intranet上进行信息的传递和交流,但电子邮件服务还具有快速、经济的特点。发一份电子邮件给远在他方的一位用户,通常来说,对方几分钟之内就能收到。如果选用传统邮件,发一封特快专递也需要至少一天的时间。而且电子邮件的费用最多只需几毛钱。与实时信息交流,如电话相比,因为电子邮件是采用存储转发的方式,发送邮件时,并不需要收件人处于在线状态,收件人可以根据实际需要随时上网从邮件服务器上收取邮件,方便了信息的交流。

对于一个完整的电子邮件系统而言,它主要由以下三部分构件组成:
1.用户代理
2.邮件服务器
3.电子邮件使用的协议:SMTP协议、POP3协议、IMAP4协议

电子邮件服务的工作原理:

sendmail在企业网中的使用_邮件

E-mail的传输过程如下。
① 用户在各自的POP服务器注册登记,由网络管理员设置为授权用户,并取得一个POP信箱,获得POP和SMTP服务器的地址信息。假设两个服务器的域名分别为example.com和163.com,注册用户分别为liu和chen,E-mail地址分别为liu@example.com和chen@163.com。
② 当example.com服务器上的用户liu向chen@163.com发送E-mail时,E-mail首先从客户端被发送至example.com的SMTP服务器。
③ example.com的SMTP服务器根据目的E-mail地址查询163.com的SMTP服务器,并转发该E-mail。
④ 163.com的SMTP服务器收到转发的E-mail,并保存。
⑤ 163.com的chen用户利用客户端登录至163.com的POP服务器,从其信箱中下载并浏览E-mail。

主流电子邮件服务器软件:

在Linux平台中,有许多邮件服务器可供选择,但目前使用较多的是Sendmail服务器、 Postfix服务器和Qmail服务器。
Sendmail是一个很优秀的邮件服务软件。几乎所有Linux的缺省配置中都内置了这个软件,只需要设置好操作系统,它就能立即运转起来。
Postfix是一个由IBM资助下由Wietse Venema 负责开发的一个自由软件工程产物,它的目的就是为用户提供除Sendmail之外的邮件服务器选择。
Qmail是有Dan Bernstein开发的可以自由下载邮件服务器软件,其第一个beta版本0.70.7发布于1996年1月24日,当前版本是2.3.3-2。

 

①:电子邮件的特点

1.快捷   2.安全   3.多样性

②:相关术语

1.协议
smtp  简单邮件传输协议   tcp  25  明文
pop  pop2/pop3  tcp  109/110   明文   脱机
imap4  tcp  143          联机
mime   多用途邮件扩展 【http  邮件】
文本   base64---ascii
2. 系统
MUA  邮件用户代理     outlook    foxmail  
                              mail   mutt   thunderbird   evolution
MTA   邮件传输代理  【发送服务器】
      Windows   电子邮件服务
      exchanger   2003  2007 
      mdaemon 
      linux   sendmail  50%   uucp  smtp 
      无身份验证   无防垃圾   无防病毒
      postfix  快 3-4    
      qmail 
MDA  邮件的分发   procmail    dropmail 
MAA  邮件访问代理   【接收服务器】
     linux    dovecot  【pop2/pop3   imap4  pop3s imaps   】
ssl/tls
http ---https
pop3---pop3s
ftp--- ftps
imap--imaps

③:安全问题

    smtps  465
    pop3s  995
    imaps  993
    防垃圾    Apache SpamAssassin
    防病毒    clamav
调用
mimedefang、
mailscanner
中继
   1.ip地址验证
   2.帐号验证  sasl 【简单认证安全层】  cryus-sasl
               本地账号
               虚拟帐号

smtps  465  点对点
starttls  25

接受 pop2/pop3  --->pop3s
     imap4    ---->imaps
端到端   s/mime  windows  pgp   gpg

④:使用sasl验证用户

1,启动sasl认证
2.编辑main.cf 支持sasl
mynetwork 所跟的网段区段,否则该网段的不认证
加入
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes 
启用sasl认证
smtpd_sasl_security_options = noanonymous
安全选项 不允许匿名
smtpd_sasl_application_name = smtpd
smtpd_recipient_restrictions =  
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination

 

 

配置:

1:修改sendmail.mc文件

sendmail在企业网中的使用_邮件_02

sendmail在企业网中的使用_Internet_03

防火墙上对于邮件的设置:

sendmail在企业网中的使用_的_04

试着以telnet的方式发封邮件:

sendmail在企业网中的使用_的_05

sendmail在企业网中的使用_的_06

查看日志情况:tail –f /var/log/maillog

sendmail在企业网中的使用_Internet_07

查看user1的邮件:

sendmail在企业网中的使用_的_08

编辑文件access:

sendmail在企业网中的使用_邮件_09

然后重启服务:service sendmail restart

可以发邮件了,中继成功:

sendmail在企业网中的使用_的_10

布局163.com地区的dns服务器:

编译163.com.zone

sendmail在企业网中的使用_的_11

修改地址和名称:

sendmail在企业网中的使用_Internet_12

sendmail在企业网中的使用_用户_13

sendmail在企业网中的使用_用户_14

编译文件、/etc/resolv.conf:

sendmail在企业网中的使用_用户_15

修改access文件:

sendmail在企业网中的使用_用户_16

修改local-host-names文件:

sendmail在企业网中的使用_用户_17

安装接收邮件服务器:rpm -ivh dovecot-1.0.7-7.el5.i386.rpm

安装rpm -ivh perl-DBI-1.52-2.el5.i386.rpm

利用netstat -tupln |less查看监听端口:

sendmail在企业网中的使用_用户_18

把named服务起来:service named start

尝试着给自己发一封邮件:

sendmail在企业网中的使用_Internet_19

 

成功发送!

尝试着用user1给user2发一封邮件:

sendmail在企业网中的使用_邮件_20

成功接收:

sendmail在企业网中的使用_邮件_21

克隆一下163.com的服务器,克隆当前状态,得到example.com

下面来配置example的服务器:

编译文件:sendmail在企业网中的使用_用户_22

sendmail在企业网中的使用_邮件_23

修改文件:/var/named/chroot/etc/named.rfc1912.zones

sendmail在企业网中的使用_邮件_24

 

拷贝163.com.zone 成example.com.zone

修改文件example.com.zone

sendmail在企业网中的使用_Internet_25

修改/etc/mail/access文件

sendmail在企业网中的使用_用户_26

修改/etc/mail/local-host-names文件

sendmail在企业网中的使用_邮件_27

修改/etc/sysconfig/network文件

sendmail在企业网中的使用_的_28

改完了重新启动:init 6

在example的客户机上ping  example.com

sendmail在企业网中的使用_的_29 

在163.com的服务器端修改/var/named/chroot/etc/named.conf文件

sendmail在企业网中的使用_的_30

在example.com的服务器端修改/var/named/chroot/etc/named.conf文件

sendmail在企业网中的使用_邮件_31

163地区的解析本地的:

sendmail在企业网中的使用_用户_32

163地区的解析example地区的:

sendmail在企业网中的使用_Internet_33

example地区的解析163地区的:

sendmail在企业网中的使用_Internet_34

在163服务器上用user1给example上的user3发一封邮件:

sendmail在企业网中的使用_用户_35

切换到example下的user3用户查看收件箱的邮件:

sendmail在企业网中的使用_的_36

163服务器上:

修改文件/var/named/chroot/etc/named.rfc1912.zones

sendmail在企业网中的使用_Internet_37

考别文件:cp -p named.local 192.168.145.zone

然后编译文件:192.168.145.zone

sendmail在企业网中的使用_的_38

在163服务器上进行正反向解析:

正向解析:

sendmail在企业网中的使用_的_39

反向解析:

sendmail在企业网中的使用_用户_40

example服务上:

修改文件/var/named/chroot/etc/named.rfc1912.zones

sendmail在企业网中的使用_用户_41

考别文件:cp -p named.local 192.168.145.zone

然后编译文件:192.168.145.zone

sendmail在企业网中的使用_Internet_42

正向解析:

sendmail在企业网中的使用_用户_43

反向解析:

sendmail在企业网中的使用_邮件_44

然后能顺利从163地区发邮件到example地区

sendmail在企业网中的使用_用户_45

到此,sendmail邮件服务搭建完毕。

下面介绍邮件的安全问题:

1:发送邮件服务器的证书

编译文件/etc/pki/tls/openssl.cnf

sendmail在企业网中的使用_邮件_46

sendmail在企业网中的使用_邮件_47

sendmail在企业网中的使用_邮件_48

手动创建文件和目录

sendmail在企业网中的使用_的_49

修改权限:

sendmail在企业网中的使用_的_50

创建证书:

openssl req -new -key private/cakey.pem  -x509 -days 3650 -out cacert.pem

sendmail在企业网中的使用_邮件_51

创建成功!

产生钥匙:

sendmail在企业网中的使用_Internet_52

生成请求文件:

openssl req -new -key sendmail.key -out sendmail.csr

sendmail在企业网中的使用_邮件_53

sendmail在企业网中的使用_用户_54

产生证书:

sendmail在企业网中的使用_邮件_55

 

修改文件/etc/mail/sendmail.mc :

sendmail在企业网中的使用_用户_56 

sendmail在企业网中的使用_Internet_57

user1@163.com给自己发一封邮件:

sendmail在企业网中的使用_用户_58

user1@163.comuser3@example.com发一封邮件:

sendmail在企业网中的使用_邮件_59

2:接收邮件服务器的证书:

创建目录:

mkdir -pv /etc/dovecot/certs

生成钥匙:

openssl genrsa 1024 >dovecot.key

创建请求文件:

openssl req -new -key dovecot.key  -out dovecot.csr

sendmail在企业网中的使用_用户_60

利用CA生成证书:

sendmail在企业网中的使用_Internet_61

修改文件/etc/dovecot.conf

sendmail在企业网中的使用_的_62

sendmail在企业网中的使用_的_63

重启dovecot服务:service dovecot restart

客户端设置:

sendmail在企业网中的使用_Internet_64

user1用户接收邮件时候:

sendmail在企业网中的使用_Internet_65

成功抓包:

sendmail在企业网中的使用_的_66

至此,sendmail的安全问题配置完毕!

下面介绍身份验证问题:

修改文件/etc/mail/sendmail.mc

sendmail在企业网中的使用_的_67 

sendmail在企业网中的使用_的_68 

sendmail在企业网中的使用_邮件_69

sendmail在企业网中的使用_的_70

sendmail在企业网中的使用_邮件_71

sendmail在企业网中的使用_的_72

客户端配置:

sendmail在企业网中的使用_的_73

至此,sendmail的安全机制和身份验证机制已成功完成!