RHEL 5服务篇—部署Postfix邮件系统(一)-阿里云开发者社区

开发者社区> 安全> 正文

RHEL 5服务篇—部署Postfix邮件系统(一)

简介:

邮件系统并不是单一的一个系统,而是由不同的组件和功能组成的,而要想实现邮件的通信,就需要一些协议的支持(也就是邮件协议)。

下面分别介绍一下邮件系统角色和邮件系统的协议。

邮件系统的角色

MTA(邮件传输代理):一般被称为邮件服务器软件,负责接收客户端软件发送的邮件,并将邮件传输给其他的MTA程序,是邮件系统的中的核心部分。

MUA(邮件用户代理):一般被称为邮件客户端软件,负责为用户提供发送,接收和管理电子邮件的界面。

MDA(邮件分发代理):MDA软件负责在服务器中将邮件分发到用户的邮箱目录,并不面向用户,直接集成在MTA中。

邮件通信协议

SMTP(邮件传输协议):主要用于发送和传输邮件,使用TCP的25号端口。

POP(邮局协议):主要用于从邮件服务器中收取邮件,使用TCP的110号端口。

IMAP(互联网消息访问协议):同样用于收取邮件,IMAP提供了更为灵活和强大的邮件收取,邮件管理功能,使用TCP的143号端口。

注意:只有电子邮件客户端和服务器同时支持SMTP和POP/IMAP协议,才能够实现完整的邮件发送和收取功能。


编译安装Postfix邮件系统

1、准备工作

为了避免端口冲突,程序冲突等现象,应将系统自带的sendmail服务停用,并将默认启动状态设为关闭。(由于Postfix系统兼容并沿用了sendmail的部分设置,因此建议保留sendmail软件包,而不是直接卸载)

除此之外,在以后的文章中需要讲解Postfix支持SASL认证,所以应确认一下软件包是否安装。

[root@localhost /]#rpm -qa | grep cyrus

[root@localhost /]#rpm -qa | grep db4-devel*

[root@localhost /]#rpm -qa | grep pam-devel*

为了加强邮件服务器的权限控制,需要创建专门的运行组账号postfix和postdrop,以及用户账号postfix。

[root@localhost /]#groupadd -g 1200 postdrop

[root@localhost /]#groupadd -g 1000 postfix

[root@localhost /]#useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix

2编译安装Postfix

[root@localhost media]#tar zxf postfix-2.8.2.tar.gz -C /usr/src/

[root@localhost media]#cd /usr/src/postfix-2.8.2

postfix软件包的配置步骤使用“make makefiles”进行,具体配置选项可以参考源码目录中README_FILES/下的说明文件,如果使用postfix支持发信认证,可参考文件SASL_README中的相关信息。

[root@localhost 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/

[root@localhost postfix-2.8.2]#make && make install   //编译并安装

执行make install命令以后,最后阶段会需要设置一些安装的参数,一般直接按回车键接受默认或自动识别的配置即可。

完成安装后,应执行postconf -a命令检查所支持认证的方式,若输出的结果未包含“cyrus”,则应检查配置步骤,纠正错误后重新进行配置,编译安装。

[root@localhost postfix-2.8.2]#postconf -a

cyrus             //支持cyrus认证

dovecot         //支持dovecot认证

3、了解Postfix安装的几个主要目录

/etc/postfix:包括postfix服务的主配置文件,各类脚本,查询表。

/usr/libexec/postfix/:包括postfix服务的各个服务器程序文件。

/var/spool/postfix/:包括postfix邮件服务的邮件队列相关的子目录,每个子目录用于保存不同的邮件。常见的几个子目录及用途如下所述:

incoming:存放刚接收到的邮件。

active:存放正在投递的邮件。

deferred:存放以前投递失败的邮件。

hold:存放被阻止发送的邮件。

corrupt:存放不可读或不可分析的邮件。

/usr/sbin/:包括postfix服务的各种管理工具程序,这些程序文件名以post开头。常用程序解释如下:

postalias:构造,修改和查询别名表。

postconf:显示和编辑main.cnf主配置文件。

postfix:启动,停止,检查,重载服务(start,stop,check,reload)要求有root权限。

postmap:构造,修改或查询查询表文件(记录如别名等映射关系的文件)

postqueue:查看邮件列队,一般用户也可以使用。

postsuper:管理邮件队列,要求有root权限。

4、主要配置文件

postfix邮件系统的主要配置文件包括main.cf和master.cf,都位于/etc/postfix/目录下。其中main.cf是postfix服务的配置文件,设置邮件服务器时以修改此文件中的内容为主;而master.cf是主程序master的配置文件,一般不需要修改。

可以使用postconf -n命令显示main.cf配置文件中的非默认配置(可以理解为有效配置),为了避免配置参数过多带来的干扰,提高易读性,建议对main.cf配置文件进行适当的简化,只保留非默认配置。

[root@localhost /]#postconf -n > /main.cf

[root@localhost /]#mv /etc/postfix/main.cf /etc/postfix/main.cf.bk

[root@localhost /]#mv /main.cf /etc/postfix/main.cf

5、postfix的日志文件

postfix邮件服务器的日志文件位于/etc/log/miallog,该文件中记录了本机中的邮件进出相关的消息,包括邮件服务器的启动,出错,与其他SMTP服务器的会话信息等。在维护邮件服务器的过程中额可以使用tail -f可以跟踪日志的变化。

[root@localhost /]#tar -f /var/log/maillog

当日志内容较多时,还可以使用egrep命令进行过滤,只查看包含reject,error,fatal等教重要的记录。

[root@localhost /]#egrep '(reject|error|fatal|panic):' /var/log/maillog



本文转自yun5277 51CTO博客,原文链接:http://blog.51cto.com/dengqi/1218671,如需转载请自行联系原作者

版权声明:本文首发在云栖社区,遵循云栖社区版权声明:本文内容由互联网用户自发贡献,版权归用户作者所有,云栖社区不为本文内容承担相关法律责任。云栖社区已升级为阿里云开发者社区。如果您发现本文中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,阿里云开发者社区将协助删除涉嫌侵权内容。

分享:
+ 订阅

云安全开发者的大本营

其他文章