sendmail简介:

sendmail是最重要的邮件传输代理程序。理解电子邮件的工作模式是非常重要的。一般情况下,我们把电子邮件程序分解成用户代理,传输代理和投递代理。 用户代理用来接受用户的指令,将用户的信件传送至信件传输代理,如:outlook expressfoxmail等。而投递代理则从信件传输代理取得信件传送至最终用户的邮箱,如:procmail。

sendmail工作原理:

linux下sendmail邮件服务的安全性_休闲

电子邮件系统的相关术语:

mua 邮件用户代理

Msa:邮件提交代理

Mta:邮件传输代理

Mda:邮件投递代理

Maa:邮件访问代理

电子邮件系统的相关协议

SMTP

– Simple Mail Transfer Protocol-简单邮件传输协议

– 用于发送和接收邮件

– 端口号25

POP3

– Post Office Protocol v3-邮局协议版本3

– 用于客户端接收邮件

– 端口号110

Imap

网际消息访问协议4,提供邮件下载服务。支持pop所有功能。

Sendmail的安装 :

Sendmail相关的软件包

–sendmail

Sendmail服务器程序的安装包

–m4

包括了配置Sendmail服务器的必要工具

–sendmail-cf

包括了重新配置Sendmail服务器的必要配置文件

–sendmail-doc

包括了sendmail服务器的说明文档

Sendmail主要配置文件:

配置目录:

–Sendmail的所有配置文件都保存在配置目录中

/etc/mail

配置文件:

–sendmail.cf

Sendmail服务器的主配置文件,手工配置难度很大

/etc/mail/sendmail.cf

–sendmail.mc

修改sendmail.mc文件后,通过m4命令可生成新的sendmail.cf配置文件

# m4 sendmail.mc > sendmail.cf

配置Sendmail的一般步骤:

–修改sendmail.mc文件中的设置内容

–使用m4命令生成新的sendmail.cf文件

–重新启动sendmail服务器程序,使新的配置生效

数据库文件:

–数据库文件的后缀是“.db”

/etc/mail/access.db

–数据库文件辅助进行sendmail服务器的配置

–数据库文件是通过makemap文件生成的

# makemap hash access.db <access

 

邮件服务器的安全性(一):

对邮件发送和接收进行加密实现邮件安全性:

输出服务详细信息:

[root@mail ~]# sendmail -d0.1 –bv

[root@mail ~]# telnet 127.0.0.1 25

linux下sendmail邮件服务的安全性_职场_02

创建邮件验证密匙:

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

[root@mail pki]# vim tls/openssl.cnf

linux下sendmail邮件服务的安全性_休闲_03

linux下sendmail邮件服务的安全性_休闲_04

创建相关文件夹:

[root@mail pki]# cd CA/

[root@mail CA]# mkdir crl certs newcerts

[root@mail CA]# touch serial index.txt

[root@mail CA]# echo "01" >serial

证书的创建与签发:

[root@mail CA]# openssl genrsa 1024 &gt;private/cakey.pem

[root@mail CA]# chmod 600 private/*

[root@mail CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650

linux下sendmail邮件服务的安全性_blank_05

[root@mail CA]# mkdir /etc/mail/certs

[root@mail CA]# cd /etc/mail/certs/

[root@mail certs]# openssl genrsa 1024 &gt;sendmail.key

[root@mail certs]# openssl req -new -key sendmail.key -out sendmail.csr

linux下sendmail邮件服务的安全性_foxmail_06

证书签发信息:

[root@mail certs]# openssl ca -in sendmail.csr -out sendmail.cert

linux下sendmail邮件服务的安全性_blank_07

[root@mail certs]# cp /etc/pki/CA/cacert.pem .

修改sendmail配置文件:

[root@mail certs]# cd ..

[root@mail mail]# vim sendmail.mc

linux下sendmail邮件服务的安全性_休闲_08

linux下sendmail邮件服务的安全性_休闲_09

[root@mail mail]# service sendmail restart

[root@mail mail]# cd certs/

[root@mail certs]# chmod 600 *

[root@mail certs]# service sendmail restart

抓包工具的安装与使用:

[root@mail certs]# mount /dev/cdrom /mnt/cdrom/

[root@mail certs]# cd /mnt/cdrom/Server/

[root@mail Server]# yum install –y wareshark

抓去eth0网卡的110端口信息:

[root@mail Server]# tshark -ni eth0 -R "tcp.dstport eq 110"

外部主机用户user1的创建:

 

linux下sendmail邮件服务的安全性_foxmail_10

linux下sendmail邮件服务的安全性_blank_11

linux下sendmail邮件服务的安全性_休闲_12

用户user1,创建并向user1发送邮件:

linux下sendmail邮件服务的安全性_职场_13

抓包结果:(能够抓取用户信息,不安全)

linux下sendmail邮件服务的安全性_休闲_14

实现邮件安全性配置:

dovecot证书的创建与签发:

[root@mail ~]# mkdir -pv /etc/dovecot/certs

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

[root@mail certs]# openssl genrsa 1024 &gt;dovecot.key

[root@mail certs]# openssl req -new -key dovecot.key -out dovecot.csr

linux下sendmail邮件服务的安全性_blank_15

证书签发信息:

[root@mail certs]# openssl ca -in dovecot.csr -out dovecot.cert

linux下sendmail邮件服务的安全性_foxmail_16

[root@mail certs]# chmod 600 *

修改dovecot配置文件:

[root@mail certs]# vim /etc/dovecot.conf

linux下sendmail邮件服务的安全性_职场_17

监听端口:

[root@mail certs]# netstat -tupln |grep dov

linux下sendmail邮件服务的安全性_blank_18

修改配置信息,启用imaps:

[root@mail certs]# vim /etc/dovecot.conf

linux下sendmail邮件服务的安全性_职场_19

[root@mail certs]# service dovecot restart

[root@mail certs]# netstat -tupln |grep dov

linux下sendmail邮件服务的安全性_职场_20

外部主机用户测试:

linux下sendmail邮件服务的安全性_休闲_21

抓包结果:(CA证书颁发后,已经无法抓去用户信息,从而保证了用户信息安全)

linux下sendmail邮件服务的安全性_foxmail_22

外部主机邮件服务器通过993端口测试:

抓取eth0的993端口信息:

[root@mail Server]# tshark -ni eth0 -R "tcp.dstport eq 993"

用户user1的配置信息:

linux下sendmail邮件服务的安全性_blank_23

启用imaps协议:

linux下sendmail邮件服务的安全性_foxmail_24

linux下sendmail邮件服务的安全性_blank_25

证书的验证过程:

linux下sendmail邮件服务的安全性_blank_26

993端口抓包结果:(没有抓取到用户信息,所有的都经过tls加密)

linux下sendmail邮件服务的安全性_休闲_27

 

邮件服务器的安全性(二):

通过对用户的认证来实现邮件安全性

搜索与验证有关的软件包信息:

[root@mail ~]# rpm -qa |grep sasl

[root@mail ~]# cd /mnt/cdrom/Server/

[root@mail Server]# ll |grep sasl

端口状态查看:

[root@mail Server]# chkconfig --list |grep sasl

linux下sendmail邮件服务的安全性_职场_28

[root@mail Server]# service saslauthd start

[root@mail Server]# chkconfig saslauthd on

设置验证方法配置文件:

[root@mail Server]# vim /usr/lib/sasl2/Sendmail.conf

linux下sendmail邮件服务的安全性_foxmail_29

修改sendmail配置信息:

[root@mail Server]# vim /etc/mail/sendmail.mc

linux下sendmail邮件服务的安全性_职场_30

linux下sendmail邮件服务的安全性_foxmail_31

linux下sendmail邮件服务的安全性_休闲_32

[root@mail Server]# service sendmail restart

通过本地telnet查看认证:

[root@mail Server]# telnet 127.0.0.1 25

多出一种验证方式:

linux下sendmail邮件服务的安全性_blank_33

mail from要求用户验证:

linux下sendmail邮件服务的安全性_blank_34

外部主机合法用户user1测试:

linux下sendmail邮件服务的安全性_blank_35

创建和发送邮件:

linux下sendmail邮件服务的安全性_blank_36

能够顺利发送邮件:

linux下sendmail邮件服务的安全性_blank_37

外部主机非法用户user10测试:

user10配置信息:

linux下sendmail邮件服务的安全性_blank_38

linux下sendmail邮件服务的安全性_blank_39

创建并发送邮件:

linux下sendmail邮件服务的安全性_休闲_40

不能够顺利发送邮件要求用户名和密码:

linux下sendmail邮件服务的安全性_休闲_41