第10章-Postfix邮件系统(一)
一、电子邮件系统基础
(1)、邮件系统角色、邮件协议
【前提条件】:需要DNS服务器提供域名的解析
1、电子邮件系统的角色
【MTA(Mail Transfer Agent,电子传输代理)】
Ø一般称为邮件服务器软件
Ø负责接收客户端软件发送的邮件,并将邮件传输给其他的MTA程序
Ø包括:Exchange、Sendmail、Postfix
【MUA(Mail User Agent,邮件用户代理)】
Ø一般称为邮件客户端软件
Ø功能:为用户提供发送、接收和管理电子邮件的界面
Ø包括:Outlook、Foxmail、Outlook Express
【MDA(Mail Delivery Agent,邮件分发代理)】
ØMDA软件负责在服务器中将邮件分发到用户的邮箱记录
ØPostfix就集成了MDA的功能
2、邮件通信协议
【SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)】
Ø作用:用于发送和传输邮件
Ø端口:TCP/25
【POP(Post Office Protocol,邮局协议)】
Ø作用:用于从邮件服务器中收取邮件
Ø端口:TCP/110
【IMAP(Internet Message Access Protocol,互联网消息访问协议)】
Ø作用:用于收取邮件
Ø端口:TCP/143
(2)、常见的邮件服务器软件
1、商业邮件系统
【Exchange】:微软公司收费产品,windows服务器平台构建邮件系统的首选产品
【Notes/Domino】:IBM公司收费产品,多应用于一些高校、政府、银行类型的企业
2、开源邮件系统
【Sendmail】:运行在UNIX/Linux环境中,属于早期产品,sendmail运行的稳定性较好,但安全性欠佳
【Qmail】:运行在UNIX/Linux环境中,比sendmail具有更好的执行效率,且配置,管理更加方便
【Postfix】:运行在UNIX/Linux环境中,其目的是为Sendmail提供一个更好的替代产品,postfix在投递效率、稳定性、服务性能及安全性能方面都相当的出色
二、Postfix邮件服务基础
ØPostfix邮件服务器采用模块化的设计,由许多个不同的程序集合而成,分别用于实现不同的功能
ØPostfix在启动时首先启动名为master的进程,由master进程主导邮件的处理工作,并在需要时自动加载其他程序以协同工作
(1)、编译安装及服务控制
1、准备工作
/etc/init.d/sendmail stop /先要停止此服务
Chkconfig --level 2345 sendmail off /永久关闭它
Rpm -qa | grep cyrus /查看cyrus相关软件包
《注意》:
虽然停了sendmail的服务,但不能卸载它,因为Postfix能兼容sendmail,如果把sendmail卸了,那么在安装postfix时就找不到对应的目录。
yum -y install db*-devel
yum -y install cyrus-sasl-* /安装相关依赖包
yum -y install pam-devel*
2、源码编译安装
【创建运行组、用户】
groupadd -g 1200 postdrop
groupadd -g 1000 postfix
useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix
【解包】
tar zxf postfix-2.8.2.tar.gz -C /usr/src
cd /usr/src/postfix-2.8.2
【配置】
make makefiles ‘CCARGS=-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl’ ‘AUXLIBS=-L/usr/lib/sasl2 -lsasl2’
#CCARGS参数:为编译器提供额外的扩展参数。例如启用SASL认证,并指出cyrus_sasl认证程序的文件位于/usr/include/sasl
#AUXLIBS参数:为编译器指出位于标准位置之外的额外函数库。例如,cyrus_sasl认证程序的库文件位于/usr/lib/sasl2/
make && make install
postconf -a /检查所支持的认证方式
3、postfix服务控制
postfix start /启动postfix服务
netstat -antp | grep 25 /查看服务进程’master’是25号端口
postfix check /语法检查
(2)、主要目录和配置文件
1、主要目录
Ø/etc/postfix:postfix服务的主配置文件,各类脚本、查询等表
Ø/usr/libexec/postfix:包括postfix服务的各个服务器程序文件
Ø/var/spool/postfix:包括postfix服务的邮件队列相关的子目不录
incoming(传入):存放刚接收到的邮件
active(活动):存放正在投递的邮件
deferred(推迟):存放以前投递失败的邮件
hold(约束):存放被阻止发送的邮件
corrupt(错误):存放不可读或不可分析的邮件
Ø/usr/sbin/:包括postfix服务的各种管理工具程序,这些程序文件名以post开头postalias:构造、修改和查询别名表
postconf:显示和编辑main.cf配置文件
postfix:启动、停止postfix邮件服务,要求有root用户权限
postmap:构造、修改或查询查询表文件
postqueue:查看邮件队列、一般用户可以使用
postsuper:管理邮件队列,要求有root用户权限
2、主要配置文件
【包括】:main.cf/一般不改它 master.cf/一般改它
【位置】:/etc/postfix/目录下
postconf -n > ganbing /简化参数并输出为“ganbing”
mv /etc/postfix/main.cf /etc/postfix/main.cf.bak /改名
mv ganbing /etc/postfix/main.cf /把ganbing移动并改名
3、postfix的日志文件
【位置】:/var/log/maillog
【定义】:该文件中记录了本机中的邮件进出相关的消息,包括邮件服务的启动、出错、与其他SMTP服务器的会话信息等
三、邮件服务器的基本构建
(1)、配置SMTP发信服务
【位置】:/etc/postfix/main.cf
1、设置main.cf并启动服务
vim /etc/postfix/main.cf
inet_interfaces=10.0.0.1 127.0.0.1 /监听服务器的IP地址默认为all
myhostname=mail.benet.com /邮件服务器的主机名
mydomain=benet.com /邮件域
myorigin=$mydomain /引用邮件域,外发邮件时发件人地址中的邮件域
mydestination=$mydomain,$myhostname /允许投递到本地的目标邮件域
home_mailbox=Maildir/ /设置邮件存储位置和格式
postfix reload
【postfxi支持两种最常见的邮箱存储方式】
Mailbox:同一个用户的所有邮件内容存储为单个文件,保存在/var/spool/mail/目录下,文件名与用户名 相同,Mailbox存储方式比较古老,当邮件数量较多时会降低查询和管理效率
Maildir:使用目录结构来存储用户的邮件内容,每一个用户使用一个目录,每封邮件都作为独立的文件存放,Maildir方式的存取速度和效率要好一些
2、添加邮箱账号
groupadd mailusers /创建邮箱用户组,也可不要
useradd -g mailusers -s /sbin/nologin gan /新建账号gan
passwd gan /设个密码
useradd -g mailusers -s /sbin/nologin bing /新建账号bing
passwd bing
3、SMTP发送邮件测试
telnet mail.benet.com 25 /连接到postfix服务器
helo nihao /打招呼,告诉客户机在哪
mail from: gan@benet.com /告知发件人地址
rcpt to: bing@benet.com /告知收件人地址
data /告知要发送邮件数据
#################
subject:this is a test mail /指定邮件标题
###############. /邮件正文,以.点号表示结束正文
quit /断开并退出连接
ls -lh /home/bing/Maildir/new
cat /home/bing/Maildir/mew/130.....mail.benet.com /查看邮件内容
(2)、配置POP/IMAP收信服务
ØDovecot是一个安全性较好的pop3/IMAP服务器软件,响应速度快而且扩展性好
ØDovecot默认也使用Linux的系统用户,并通过PAM(Pluggable Authentication Module,可插拔认证模块)机制进行身份认证,只有通过认证后才允许用户收取邮件
1、编译安装Dovecot软件包
【预先创建运行用户】
useradd -M -s /sbin/nologin dovecot
useradd -M -s /sbing/nologin dovenull
【源码编译安装】
tar zxf dovecot-2.0.12.tar.gz -C /usr/src/
cd /usr/src/dovecot-2.0.12
./configure --sysconfdir=/etc /指定配置文档的父目录
make && make install
【添加为系统服务dovecot】
cp doc/dovecot-initd.sh /etc/init.d/dovecot
chkconfig --add dovecot
2、建立配置文件,并启动服务
【建立配置文档】
cp -r /usr/local/share/doc/dovecot/example-config/* /etc/dovecot/
vim /etc/pam.d/dovecot
#%PAM-1.0
auth required pam_nologin.so
auth include system_auth
account include system_auth
session include system_auth
【调整主配置文件】
vim /etc/dovecot/dovecot.conf
......//省略部分内容
!include conf.d/lo-auth.conf /只使用系统用户认证
ssl=no /禁用SSL机制
disable_plaintext_auth=no /允许明文的验证
mail_location=maildir:~/Maildir /设置邮箱格式及位置
【启动dovecot服务,并确认监听状态】
/etc/init.d/dovecot start
netstat -anpt | grep dovecot
(3)、测试发信、收信功能
使用Microsoft office 2007的Outlook为例
1、设置邮箱账号
2、发送邮件测试
3、接收邮件测试
本文转自甘兵 51CTO博客,原文链接:http://blog.51cto.com/ganbing/1204608,如需转载请自行联系原作者