简介

postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。在Internet世界中,大部分的电子邮件都是通过sendmail来投递的,大约有100万用户使用sendmail,每天投递上亿封邮件。这真是一个让人吃惊的数字。Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性。

工作原理

详解postfix邮箱服务器安装、配置及其工作原理(内附源码包)

客户端通过Outlook软件,向邮件服务器发送一封邮件,邮件服务器会检查是发往本域?还是发往其他域?
1、如果发送到本域,直接存放到Mailbox中,另外一个用户上线,需要收取这封邮件,需要借助dovecot(dovecot提供的是MRA的功能)软件,通过dovecot进入数据库验证身份,验证通过以后,就可以通过MRA调用POP3或者IMAP4的协议,进入邮箱收取邮件,并且将邮件转发给用户
2、如果发送到其他域,其他MTA。但是转发之前,验证用户身份,是否要为其转发邮件,验证的时候是用到了SASL函数库,用户的信息是放到了数据库中,此时我们需要一个中间层authlib,通过authlib替SASL函数库向数据库进行验证,做“发信认证”,认证通过,允许转发,验证不通过,拒绝转发
3、通过浏览器访问邮件服务器(EXtmall),转发到其他域,放到邮箱,到数据库验证

邮件系统角色

MUA:邮件用户代理(客户端 例如微软邮件客户端)
MTA:邮件传输代理(服务器端 postfix)
MDA:邮件分发代理分发邮件(至mialbox中)
MRA:邮件检索代理

邮件应用协议

1、SMTP,简单邮件传输协议,TCP,25端口,加密时使用TCP,465端口(发送邮件)客户端向其他服务器发送邮件或者服务器向其他服务器转发邮件,发送方使用的都是SMTP协议
2、POP3,第3版邮局协议, TCP 110端口,加密时使用TCP 995端口[收邮件 收取邮件的时候,先将服务器的邮件下载到本地,所有的操作都是在本地完成
3、IMAP4,第4版互联网消息访问协议,TCP 143端口,机密时使用993端口(比POP3灵活)接收邮件,客户端和服务器端交互了以后,在服务器端处理,好处能实现更多的功能,例如查看邮件的信息,但是消耗的系统的资越高

实验环境

系统环境:centos6.5
虚拟机IP地址:192.168.1.77
yum挂载目录:/mnt/sr0
DNS域名:bt.com.
源码包下载地址:百度云下载 密码:kv94

搭建步骤:

一、准备工作:

1、关闭selinux、iptables

[root@mail ~]# vim /etc/sysconfig/selinux
详解postfix邮箱服务器安装、配置及其工作原理(内附源码包)

[root@mail ~]# chkconfig iptables off #开机关闭防火墙服务,永久关闭
[root@mail ~]# shutdown -r now #重启生效

2、安装依赖包

[root@mail ~]# yum -y install gcc gcc-c++ #安装编译器
[root@mail ~]# yum -y install db4-devel #有些机器默认已经安装,注意看下
[root@mail ~]# cd /mnt/sr0/Packages/
[root@mail Packages]# rpm -ivh cyrus-sasl-devel-2.1.23-13.el6_3.1.x86_64.rpm

二、指定DNS,实现邮件交换记录

1、安装DNS服务器

[root@mail ~]# cd /mnt/sr0/Packages/
[root@mail Packages]# rpm -ivh bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm

2、查看网卡信息

[root@mail ~]# ifconfig
详解postfix邮箱服务器安装、配置及其工作原理(内附源码包)

3、修改DNS服务器配置文件

[root@mail ~]# vim /etc/named.conf #修改主配置文件

详解postfix邮箱服务器安装、配置及其工作原理(内附源码包)

4、创建并修改DNS正向解析文件

[root@mail ~]# cd /var/named/
[root@mail named]# cp -p named.localhost bt.com.zone #将模板文件改为正向解析文件进行修改
[root@mail named]# vim /var/named/bt.com.zone # 修改正向解析文件
详解postfix邮箱服务器安装、配置及其工作原理(内附源码包)

5、创建并修改DNS反向解析文件

[root@mail named]# cp -p bt.com.zone 192.168.1.zone
[root@mail named]# vim 192.168.1.zone
详解postfix邮箱服务器安装、配置及其工作原理(内附源码包)
[root@mail named]# /etc/init.d/named start #启动DNS服务器

6、测试DNS解析

详解postfix邮箱服务器安装、配置及其工作原理(内附源码包)

一、源码安装Postfix

1、解压、编译及安装

[root@redhat6 ~]# tar xvfz postfix-2.11.11.tar.gz -C /usr/src/ #解压
[root@redhat6 ~]# cd /usr/src/postfix-2.11.11/
[root@redhat6 postfix-2.11.11]# make makefiles 'CCARGS=-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl' 'AUXLIBS=-L/usr/lib/sasl/sasl2 -lsasl2'

CCARGS:支持SASL认证;
-I:增加一个文件的路径;
AUXLIBS:添加一个函数库的位置,sasl2代表第二个版本

[root@redhat6 postfix-2.11.11]# postconf -a #查看postfix支持的功能
详解postfix邮箱服务器安装、配置及其工作原理(内附源码包)

[root@redhat6 postfix-2.11.11]# postfix start

详解postfix邮箱服务器安装、配置及其工作原理(内附源码包)

2、修改postfix配置文件

[root@mail ~]# vim /etc/postfix/main.cf

inet_interfaces = all //监听服务的IP地址,有一个默认localhost,修改时候注意下,别忘记
myhostname = mail.bt.com //邮件服务器主机名
mydomain = bt.com //邮件域名
myorigin = $mydomain //发件人地址邮件域名
mydestination = $mydomain, $myhostname //收件人地址邮件域名
home_mailbox = Maildir/ //邮件存放位置

3、重载Postfix服务

[root@mail ~]# postfix reload #注意:postfix没有重启的命令,只有stop后在start相当于restart,直接reload就可以了,注意有时候不太靠谱,建议先stop、后start

4、添加邮箱测试账号

[root@mail ~]# groupadd mailusers
[root@mail ~]# useradd -g mailusers -s /sbin/nologin zhangsan
[root@mail ~]# passwd zhangsan

[root@mail ~]# useradd -g mailusers -s /sbin/nologin lisi
[root@mail ~]# passwd lisi

二、源码安装Dovecot(POP3/IMAP的接收信件的服务器软件)

1、解压Dovecot源码包

[root@mail ~]# tar xvfz dovecot-2.0.21.tar.gz -C /usr/src/

2、建立系统账户

[root@mail ~]# useradd -M -s /sbin/nologin dovecot #建立系统用户与postfix关联
[root@mail ~]# useradd -M -s /sbin/nologin dovenull

3、源码包配置

[root@mail ~]# rpm -qa |grep pam
详解postfix邮箱服务器安装、配置及其工作原理(内附源码包)

[root@mail ~]# cd /mnt/sr0/Packages/
[root@mail Packages]# rpm -ivh pam-devel-1.1.1-17.el6.x86_64.rpm

[root@mail ~]# cd /usr/src/dovecot-2.0.21/
[root@mail dovecot-2.0.21]# ./configure --sysconfdir=/etc/ --with-pam

sysconfdir:指定配置文档所在目录
with-pam:让其支持pam认证

4、编译及编译安装

[root@mail dovecot-2.0.21]# make && make install

5、建立配置文件以及添加PAM认证

[root@mail dovecot-2.0.21]# cp -rf /usr/local/share/doc/dovecot/example-config/* /etc/dovecot/ #一般情况下把所有的配置样例都复制到dovecot目录下
[root@mail dovecot-2.0.21]# cd /etc/pam.d/
[root@mail pam.d]# cp login dovecot #复制一个模板,建立配置文件。dovecot是需要pam认证的,需要建立pam文件
[root@mail pam.d]# ls -l login dovecot
详解postfix邮箱服务器安装、配置及其工作原理(内附源码包)

[root@mail pam.d]# vim dovecot #修改dovecot对应的pam配置文件

详解postfix邮箱服务器安装、配置及其工作原理(内附源码包)

6、修改配置文件

[root@mail pam.d]# cd /etc/dovecot/
[root@mail dovecot]# vim dovecot.conf

开启protocols = imap pop3 lmtp
修改!include conf.d/10-auth.conf #启动本地系统的账户和密码
添加ssl=no #不使用加密
添加disable_plaintext_auth=no #启用明文认证
添加mail_location = maildir:~/Maildir #设置邮件位置

7、添加系统权限

[root@mail dovecot-2.0.21]# cd /usr/src/dovecot-2.0.21/doc/
[root@mail doc]# cp dovecot-initd.sh /etc/init.d/dovecot #将dovecot的启动脚本复制到/etc/init.d/
[root@mail doc]# chmod a+x /etc/init.d/dovecot #赋予可执行权限
[root@mail doc]# chkconfig --add dovecot #添加为系统为服务,添加的前提条件/etc/init.d/有dovecot服务脚本

8、启动服务

[root@mail ~]# service dovecot start

[root@mail ~]# netstat -anpt | grep dovecot

详解postfix邮箱服务器安装、配置及其工作原理(内附源码包)

三、测试收发邮件

[root@mail ~]# cd /mnt/sr0/Packages/
[root@mail Packages]# rpm -ivh telnet-0.17-47.el6_3.1.x86_64.rpm #安装telent客户端服务,通过telent命令连接25端口进行测试。

1、发送邮件

[root@mail ~]# telnet 192.168.1.77 25
详解postfix邮箱服务器安装、配置及其工作原理(内附源码包)

2、接收邮件

[root@mail ~]# telnet mail.bt.com 110

详解postfix邮箱服务器安装、配置及其工作原理(内附源码包)