邮件:

SMTP:简单邮件传输协议 是基于tcp的25端口

Pop3:邮件协议时tcp的110端口

IMAP4:互联网邮件访问协议基于tcp的143

MIME:多用途网际邮件扩展(把二进制数据-------纯文本数据,常用的是base64的编码方式)

邮件的传递过程:

MUA:邮件用户代理(编写邮件并能够提交发送的)

软件:web mail,outlook,foxmail,evolution(图形界面),thunderbird,mutt(纯文本)也可以telnet对方服务器的25端口发邮件

邮件写完了通过SMTP协议发送到SMTP服务器上,MTA邮件传输代理,能够提供SMTP服务的,只是用于传递邮件的,服务器为每个用户准备的都有邮筒,在/var/mail下(/var/spool/mail)当用户通过mail命令看过邮件之后该邮件就放在了该用户的家目录中名为mbox(邮件存储空间支持:mbox和maildir)

软件:

Exchage(微软),Lotus Notes domino,senmail,postfix,qmail(senmail,没有防止垃圾邮件和认证的功能,只要是本地邮件则无条件接受,如果不是本地用户则要开启中继功能。Smtp是基于ip认证的,所要要基于SASL是一个协议,简单认证安全层它的软件是cyrus-sasl,进程是sasluthd,有了sasl后用户要发送接受邮件要提供用户名和密码,smtp本身没有反垃圾邮件的功能,要想让其有这个功能,需要组建来完成,组建有apache Spamassassin,如果有附件病毒则需要反病毒组建,clamav可以扫描病毒但是并不能杀毒,但是smtp不能与其结合,需要一个呼叫器才能与其结合,调用器有:mimedefang,mailscanner,amavisd-new,邮件加密可以保证邮件的安全性,用SSL但是SMTP用SSL没有多大意义因为SMTP可以中继,可以用S/MIME提供端到端的加密)

MDA(邮件投递代理,软件:procmail,maildrop):从服务器端把邮件放到用户的邮筒中

MAA:(邮件访问代理)负责把用户的邮件发给用户而用户不需要登陆到服务器上(所有的协议是pop3,imap,软件:courrier-imap,dovecot)

提供邮件服务的软件:

SENMAIL,POSTFIX,(两个不能同时使用,要用alternative进行修改,可以用alternative—display mta显示当前的mta是谁),默认安装上linux后sendmail已经安装好了,但是只能是本机到本机的链接,因为它只监听127.0.0.1的端口上

本机到本机用户的发送邮件:gao发给hui

邮件服务_邮件服务

在另一个用户上查看:

邮件服务_职场_02

可以在:

邮件服务_邮件_03下看发送的状态

邮件有三部分组成:信封(发件人 收件人),信息头(什么时间发的),邮件正文(内容是什么)

你也可用用管道发

邮件服务_休闲_04

-s 为主题是什么

也可以登陆到服务器上发送邮件(端口要为25):

邮件服务_职场_05

邮件服务_休闲_06

如果想要sendmail向远程发送邮件需要安装sendmail-cf(用于转换文件) (sendmail已经安装过了),还要装上m4,sendmail-doc

邮件服务_邮件_07

邮件服务_邮件_08

Sendmail 的主配置文件是/etc/mail/sendmail.cf它是m4宏写的,比较难懂,需要编辑/etc/mail/sendmail.mc之后转换成sendmail.cf

修改/etc/mail/sendmail.mc可以让其监听其他的地址(在116行)。

邮件服务_邮件服务_09

之后重启服务:

邮件服务_邮件服务_10

此时可以远程登录到此服务器进行发送了

在/etc/mail/下的access定义允许那些人通过此服务器发邮件的(服务器位192.168.0.82)

邮件服务_休闲_11

在192.168.0.173上:

邮件服务_职场_12

由于服务器上没有定义126.com允许中继所以邮件发不出去

如果在0.82上邮件的收信人是126.com则可以发送出去,因为在文件中定义了来源于谁的可以中继,在文件中定义了127.0.0.1可以中继而没有定义0.0网段的可以中继,如果想要0.0发则可以在文件中定义

邮件服务_休闲_13

重启服务即可

邮件服务_邮件_14

Access文件也可以定义拒接谁(REJECT)

/etc/mail/local-host-names此文件可以判断谁是中继谁不是中继

定义那些是自己负责接收的,自己的主机名和自己所在的域或自己所负责接收的域(这些都不是中继)要写入改文件,此域的MX记录一定要指向自己

邮件别名:在/ect/alias下定义:

邮件服务_职场_15

发给a的邮件都发给gao a不一定要存在a收不到此文件

邮件服务_邮件_16

邮件服务_职场_17

Sendmail不能识别此文件还要把此文件转化成aliases.db

重启可以转化或使用newaliases命令

此文件也可以发送给多个人

邮件服务_职场_18

可以再window中实现邮件的发送:telnet 192.168.0.82 25,语法一样,也可以用windows自带的outlook发送邮件,但是不能接收邮件因为服务器端没有MAA。

邮件服务_邮件服务_19

Dovecot是接收邮件的可以提供pop3,imap4,pops,imaps四种协议(后两种是加密的)

主配置文件在

邮件服务_休闲_20

定义向客户端提供的服务即可(大概在20几行左右)

邮件服务_邮件服务_21

然后重启服务即可(看端口是否开启)

接收邮件的命令

telnet ,mutt

邮件服务_休闲_22

List显示自己有多少邮件

用retr 1 可以看第一封邮件

也可以用mutt接收

Mutt –f pop ://用户@服务器ip(-f 指定协议)

本例中为 mutt –f pop://gao@192.168.0.82

mutt -f pop://gao@station36.example.com,要输入gao的密码

地址伪装:

发邮件时发件人的地址怎么写都统一成一个格式

邮件服务_休闲_23

以MASQUERADE_AS开头 的定义使用什么样的属性和参数的

所有发件人的地址都伪装成此

以FEATURE开头的定义sendmail启用什么样的功能的

邮件服务_休闲_24

表示伪装所有的。

Sendmail支持smtps和sasl:

Smtp基于一个端口支持SSL和TLS,smtps支持的端口是465,SMTP也支持STARTTLS端口是25(不占用其他的端口,如果客户端支持加密则加密如果不支持则不加密)

查看是否启用了STARTTLS(如果出现STARTTLS则表示启用了)

邮件服务_邮件_25

Sendmail编译时是否支持STARTTLS的选项(用如下命令查看,如果有STARTTLS则表示支持)

邮件服务_邮件_26

邮件服务_邮件_27

第一个是CA的路径(是个目录)

证书文件

服务器的证书

服务器的撕咬请求文件

并且还要开启SMTPS的功能(监听465端口)

邮件服务_职场_28

打开日志功能并且是详细的信息:

邮件服务_邮件_29

重启

此时在登录时EHLO会出现STARTTLS

让SMTP实现认证的功能:SASL

邮件服务_休闲_30

强行使用认证

邮件服务_休闲_31

邮件服务_休闲_32

邮件服务_休闲_33

邮件服务_职场_34

在此文件中说明支持SASL和支持的认证机制

邮件服务_休闲_35

检查是否支持认证功能:(出现SASLV2)

邮件服务_邮件服务_36

重启服务即可

邮件服务_休闲_37

邮件服务_职场_38

做编码:-n表示没有换行符

邮件服务_休闲_39

邮件服务_休闲_40

此时发邮件不用access文件了

让dovecot也支持认证(pop3(995)imap3(993))

为服务建证书:

邮件服务_邮件服务_41

签发:

邮件服务_休闲_42

在配置文件中修改

邮件服务_职场_43

邮件服务_邮件服务_44

重启服务

利用抓包工具可以 看出在传输过程中是否加密

Wrieshark和tshark

邮件服务_休闲_45

Tshark –ni eth0 –R “tcp.srcport eq 110 or tcp.dstport eq 110”

抓eth0的tcp的源端口和目标端口是110的数据包

也可以用

邮件服务_休闲_46

Postfix的介绍:

Sendmail是单体设计而postfix是模块化设计(提供了安全,性能比sendmail好)

软件包是postfix(端口还是25)

主配置文件:/etc/postfix/main.cf(子进程所用到的配置) /etc/postfix/master.cf

进程:master进程(不做邮件的发送和接收的工作,只是协调其他的进程的,它的配置文件为/etc/postfix/master.cf定义子进程如何搭配工作)

安装软件:

Yum install postfix –y

监听的地址还是本地的,发送本地到本地的邮件和sendmail一样

让其监听某一个地址

邮件服务_休闲_47

邮件服务_职场_48

定义自己的主机名那些是可以接收的

邮件服务_邮件服务_49

定义自己所处的域是什么

邮件服务_职场_50

做地址伪装的

邮件服务_休闲_51

监听的端口

邮件服务_邮件_52

定义服务器那些地方的邮件是自己负责接收的

邮件服务_职场_53允许谁通过自己中继的(来源为那些地址的)

可以在/etc/postfix/access定义接受检查来自和目的的邮件是否转发的

邮件服务_职场_54

要把主配置文件中的mynetwork去掉

用postmap access进行转换

用postfix check用于检查主配置文件是否有语法错误

让postfix支持认证(SASL):

启动SASL

在配置文件中加入:

邮件服务_邮件服务_55

邮件服务_休闲_56

语法检查

重启服务

测试:

邮件服务_邮件服务_57

编码:

邮件服务_职场_58

定义认证的方式:

邮件服务_邮件服务_59