简介
postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。在Internet世界中,大部分的电子邮件都是通过sendmail来投递的,大约有100万用户使用sendmail,每天投递上亿封邮件。这真是一个让人吃惊的数字。Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性。
工作原理
客户端通过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
[[email protected] ~]# vim /etc/sysconfig/selinux
[[email protected] ~]# chkconfig iptables off #开机关闭防火墙服务,永久关闭
[[email protected] ~]# shutdown -r now #重启生效
2、安装依赖包
[[email protected] ~]# yum -y install gcc gcc-c++ #安装编译器
[[email protected] ~]# yum -y install db4-devel #有些机器默认已经安装,注意看下
[[email protected] ~]# cd /mnt/sr0/Packages/
[[email protected] Packages]# rpm -ivh cyrus-sasl-devel-2.1.23-13.el6_3.1.x86_64.rpm
二、指定DNS,实现邮件交换记录
1、安装DNS服务器
[[email protected] ~]# cd /mnt/sr0/Packages/
[[email protected] Packages]# rpm -ivh bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm
2、查看网卡信息
[[email protected] ~]# ifconfig
3、修改DNS服务器配置文件
[[email protected] ~]# vim /etc/named.conf #修改主配置文件
4、创建并修改DNS正向解析文件
[[email protected] ~]# cd /var/named/
[[email protected] named]# cp -p named.localhost bt.com.zone #将模板文件改为正向解析文件进行修改
[[email protected] named]# vim /var/named/bt.com.zone # 修改正向解析文件
5、创建并修改DNS反向解析文件
[[email protected] named]# cp -p bt.com.zone 192.168.1.zone
[[email protected] named]# vim 192.168.1.zone
[[email protected] named]# /etc/init.d/named start #启动DNS服务器
6、测试DNS解析
一、源码安装Postfix
1、解压、编译及安装
[[email protected] ~]# tar xvfz postfix-2.11.11.tar.gz -C /usr/src/ #解压
[[email protected] ~]# cd /usr/src/postfix-2.11.11/
[[email protected] 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代表第二个版本
[[email protected] postfix-2.11.11]# postconf -a #查看postfix支持的功能
[[email protected] postfix-2.11.11]# postfix start
2、修改postfix配置文件
[[email protected] ~]# 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服务
[[email protected] ~]# postfix reload #注意:postfix没有重启的命令,只有stop后在start相当于restart,直接reload就可以了,注意有时候不太靠谱,建议先stop、后start
4、添加邮箱测试账号
[[email protected] ~]# groupadd mailusers
[[email protected] ~]# useradd -g mailusers -s /sbin/nologin zhangsan
[[email protected] ~]# passwd zhangsan
[[email protected] ~]# useradd -g mailusers -s /sbin/nologin lisi
[[email protected] ~]# passwd lisi
二、源码安装Dovecot(POP3/IMAP的接收信件的服务器软件)
1、解压Dovecot源码包
[[email protected] ~]# tar xvfz dovecot-2.0.21.tar.gz -C /usr/src/
2、建立系统账户
[[email protected] ~]# useradd -M -s /sbin/nologin dovecot #建立系统用户与postfix关联
[[email protected] ~]# useradd -M -s /sbin/nologin dovenull
3、源码包配置
[[email protected] ~]# rpm -qa |grep pam
[[email protected] ~]# cd /mnt/sr0/Packages/
[[email protected] Packages]# rpm -ivh pam-devel-1.1.1-17.el6.x86_64.rpm
[[email protected] ~]# cd /usr/src/dovecot-2.0.21/
[[email protected] dovecot-2.0.21]# ./configure --sysconfdir=/etc/ --with-pam
sysconfdir:指定配置文档所在目录
with-pam:让其支持pam认证
4、编译及编译安装
[[email protected] dovecot-2.0.21]# make && make install
5、建立配置文件以及添加PAM认证
[[email protected] dovecot-2.0.21]# cp -rf /usr/local/share/doc/dovecot/example-config/* /etc/dovecot/ #一般情况下把所有的配置样例都复制到dovecot目录下
[[email protected] dovecot-2.0.21]# cd /etc/pam.d/
[[email protected] pam.d]# cp login dovecot #复制一个模板,建立配置文件。dovecot是需要pam认证的,需要建立pam文件
[[email protected] pam.d]# ls -l login dovecot
[[email protected] pam.d]# vim dovecot #修改dovecot对应的pam配置文件
6、修改配置文件
[[email protected] pam.d]# cd /etc/dovecot/
[[email protected] 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、添加系统权限
[[email protected] dovecot-2.0.21]# cd /usr/src/dovecot-2.0.21/doc/
[[email protected] doc]# cp dovecot-initd.sh /etc/init.d/dovecot #将dovecot的启动脚本复制到/etc/init.d/
[[email protected] doc]# chmod a+x /etc/init.d/dovecot #赋予可执行权限
[[email protected] doc]# chkconfig --add dovecot #添加为系统为服务,添加的前提条件/etc/init.d/有dovecot服务脚本
8、启动服务
[[email protected] ~]# service dovecot start
[[email protected] ~]# netstat -anpt | grep dovecot
三、测试收发邮件
[[email protected] ~]# cd /mnt/sr0/Packages/
[[email protected] Packages]# rpm -ivh telnet-0.17-47.el6_3.1.x86_64.rpm #安装telent客户端服务,通过telent命令连接25端口进行测试。
1、发送邮件
[[email protected] ~]# telnet 192.168.1.77 25
2、接收邮件
[[email protected] ~]# telnet mail.bt.com 110
原文地址:http://blog.51cto.com/11905606/2141904