设为首页 收藏本站
查看: 2282|回复: 0

[经验分享] Postfix邮件系统(一)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-9 08:48:14 | 显示全部楼层 |阅读模式
                      Postfix邮件系统(一)
  具体步骤:
  1. 准备工作
  为了避免发生端口冲突、程序冲突等现象,应将系统自带的sendmail服务停用,并将默认启动状态设为关闭。由于Postfix系统兼容并沿用了Sendmail的部分设置,因此建议保留Sendmail软件包,而不是直接卸载。 wKiom1ZmrXvjrzppAAAM2sJawaU254.jpg
  除此以外,因在下一章中需要Postfix支持SASL认证(通过软件包cyrus-sasl),所以应确认已安装好相关软件包。
   wKiom1ZmrXzjRTj5AAAOhbYhQtQ755.jpg
  2. 源码编译及安装
  1) 创建运行组、用户
  为了加强邮件服务的权限控制,需要创建专门的运行组账号postfixpostdrop,以及用户账号postfix。运行用户不需要直接登录到系统,也无需创建宿主文件夹。
   wKioL1ZmreyiLPavAAAPbD47f00057.jpg
  2) 解包
  将下载的postfix源码包解压,释放到/usr/src/目录下,并切换到展开后的源码目录。
   wKiom1ZmrX3g9U0JAAAc44UUDZE120.jpg
  3) 配置
  Postfix软件包的配置步骤使用“make makefiles”进行,具体配置选项可以参考源码目录中README_FILES/文件下的说明文件。例如,若要使Postfix支持发信认证,可参考文件SASL_README中的相关信息。
   wKioL1Zmre2yOhc7AAAMmya4TV4898.jpg
  其中,编译参数CCARGS和AUXLIBS的作用如下:
  ? CCARGS参数:为编译器提供额外的扩展参数。例如,启用SASL认证,并指出cyrus-sasl认证程序的头文件位于/usr/include/sasl/。
  ? AUXLIBS参数:为编译器指出位于标准位置之外的额外函数库。例如,cyrus-sasl认证程序的库文件位于/usr/lib/sasl2/。
  注:1. 如果配置写错误,需要重新配置,首先输入“make makefies clean”命令清除。
  2如果配置失败,可能是缺少db*-devel包。
   wKioL1Zmre7xli_WAAAGWaUfWgw701.jpg
  4) 编译并安装
   wKioL1Zmre6xLKeBAAAGCzMw9Og023.jpg
  注:如果编译失败,除了缺少ncurses-devel包之外,可能还缺少cyrus-sasl*包。
  执行make install命令以后,最后阶段会需要设置一些安装参数,一般直接按回车键接受默认或自动识别的配置即可。完成安装以后,应执行postconf –a命令检查所支持的认证方式,若输出结果中未包含“cyrus”,则应检查配置步骤,纠正错误后重新进行配置、编译并安装。
   wKioL1Zmre_x7ktAAAAIbcclPEU419.jpg
  3. Postfix服务控制
  Postfix邮件系统的控制主要通过/usr/sbin/postfix命令进行,结合start、stop、check、reload选项分别实现启动、停止、检查、重载服务的操作。
   wKiom1ZmrX-BuztnAAAR0pfqEJw095.jpg
  需要注意的是,实际监听服务的进程名并不是postfix,而是master
   wKioL1ZmrfDi64JOAAALMwikp5k863.jpg
  当重新调整邮件服务配置以后,可以通过check选项进行基本的语法检查,检查无误后再通过reload选项来重载服务。
   wKioL1ZmrfDwhBddAAANJWVGrtk268.jpg
  n 主要目录和配置文件
  1. 主要目录
  ? /etc/postfix包括postfix服务的主配文件、各类脚本、查询表等。
  ? /usr/libexec/postfix/:包括postfix服务的各个服务器程序文件。
  ? /var/spool/postfix/:包括postfix服务的邮件队列相关的子目录,每个队列子目录用于保存不同的邮件。常见的几个子目录及用途如下所述:
  u incoming(传入):存放刚接收到的邮件。
  u active(活动):存放正在投递的邮件。
  u deferred(推迟):存放以前投递失败的邮件。
  u hold(约束):存放被阻止发送的邮件。
  u corrupt(错误):存放不可读或不可分析的邮件。
  ? /usr/sbin/:包括postfix服务的各种管理工具程序,这些程序文件名以post开头。主要的几个程序文件及其用途如下所述:
  u postalias构造、修改和查询别名表。
  u postconf显示和编辑main.cf配置文件。
  u postfix启动、停止postfix邮件服务,要求有root用户权限。
  u postmap构造、修改或者查询查询表文件(记录如别名等映射关系的文件)。
  u postqueue查看邮件队列,一般用户也可以使用。
  u postsuper管理邮件队列,要求有root用户权限。
  2. 主要配置文件
  Postfix邮件系统的主要配置文件包括main.cf、master.cf,都位于/etc/postfix/文件夹下。其中,main.cf是postfix服务的配置文件,设置邮件服务器时以修改此文件的内容为主;而master.cf是主程序master的配置文件,一般不需要修改。
  在主配置文件main.cf中,可以调整的各种配置参数有近千个。大部分的配置参数都被自动设置了默认值,如果在main.cf文件中没有对应的设置,那么postfix服务器将使用默认值来启动及运行。因此,只需要修改很少的几个配置参数,就可以满足基本邮件服务器的要求了。
  使用postconf工具可以辅助配置过程,不带任何选项时将列出当前postfix服务器启用的所有配置参数,若添加“-n”选项则只列出使用非默认值的配置参数。
   wKiom1ZmrYHhs0LoAAAHJIda4gM260.jpg wKiom1ZmrYGhgBk1AAAd7CU8-OQ734.jpg
  为了避免配置参数过多带来的干扰,提高易读性,建议对main.cf配置文件进行适当的简化,只保留与默认配置不同的参数。
   wKioL1ZmrfKhka3DAAAO1zsys0M995.jpg
  3. Postfix的日志文件
  Postfix邮件服务的日志文件位于/var/log/maillog,该文件中记录了本机中的邮件进出相关的信息,包括邮件服务的启动、出错、与其他SMTP服务器的会话信息等。在维护邮件服务器的过程中,经常会使用带“-f”选项的tail命令来跟踪日志变化。
   wKioL1ZmrfLjHUfSAAAF824I2kM589.jpg
  当日志内容较多时,还可以使用egrep命令进行过滤,只查看包含reject、error、fatal等较重要的记录。
   wKioL1ZmrfPBYVnuAAAIHKOMiYQ684.jpg
  n 配置SMTP发信服务
  在整个电子邮件系统中,postfix基于SMTP协议提供邮件传递服务,并负责将邮件分发到用户的邮箱空间。对postfix服务的配置主要通过修改主配置文件/etc/postfix/main.cf来进行。
  在main.cf文件中,以“#”号开头的行表示注释信息,其他行表示有效设置。设置行的格式与为shell变量赋值的形式非常类似,采用“配置参数=值”的形式,其中等号两边的空格可有可无。当某个配置参数包含多个值时,使用逗号或空格进行分隔,也允许换行进行分隔,但行首至少应有一个空格。
  1. 设置main.cf,并启动服务
   wKiom1ZmrYPCncOBAAAFlGMq4zQ979.jpg wKiom1ZmrYTAEweJAAARuvf-dDo748.jpg wKiom1ZmrYSTyPSZAAAKwSe77xA523.jpg
  在上述配置中,将mydestination的值设置为“$mydomain,$myhostname”,表示将@benet.com和@mail.benet.com域作为本地目标域,允许投递到本地邮箱空间。各用户的邮件将被保存到宿主目录下的Maildir/文件夹中。
  邮箱空间用来存放每个用户的电子邮件内容。在postfix服务器中,支持两种最常见的邮箱存储方式:Mailbox、Maildir(当指定的存储位置最后一个字符为“/”时,自动使用Maildir存储方式)。
  ? Mailbox同一个用户的所有邮件内容存储为单个文件,通常保存在/var/spool/mail/目录下,文件名与用户名相同。Mailbox存储方式比较古老,当邮件数量较多时会降低查询和管理的效率。
  ? Maildir使用目录结构来存储用户的邮件内容,每一个用户使用一个文件夹,每封邮件都作为一个独立的文件存放。Maildir方式的存取速度和效率要好一些,对于管理邮件内容也更加方便,大多数较新的邮件服务器都采用这种方式。
  2. 添加邮箱账号
  Postfix服务器默认使用本机中的系统用户作为邮件账号,因此使用时只需要添加Linux用户账号即可。测试时,可以添加两个邮件账号xiaoqi和lisi,并为其设置密码。
   wKiom1ZmrYXgQtPlAAAjsz0Icho460.jpg
  3. SMTP发送邮件测试
  将postfix服务器交付使用之前,最好先在本机测试一下发信功能是否正常。命令行中的测试工作可以通过telnet命令进行。例如:可以连接到邮件服务器的25端口,并输入相关的SMTP命令,以邮件账户xiaoqi@benet.com作为发件人,给lisi@benet.com发送一封测试邮件。
   wKiom1ZmrYbjBjvUAAAkiSSAUu4772.jpg
  邮件发送并投递成功以后,可以到服务器中lisi用户的宿主目录下进行查看,新接收到的邮件保存在Maildir/new/目录中。
   wKiom1ZmrYejKi92AAAsEslORQQ026.jpg
  通过以上测试结果,不难发现已经能够通过postfix服务器发送并投递邮件了,但是还只能在服务器本机查看收到的邮件。若要使收件人能够从其他主机查收邮件,还需要进一步安装POP3或IMAP服务器,以提供邮件的下载服务。
  n 配置POP/IMAP收信服务
  Dovecot是一个安全性较好的POP3/IMAP服务器软件,响应速度快而且扩展性好。Dovecot默认也使用Linux的系统用户,并通过PAM(Pluggable Authentication Module,可插拔认证模块)机制进行身份认证,只有通过认证后才允许用户收取邮件。
  1. 编译安装Dovecot软件包
  1) 预先创建运行用户
   wKioL1ZmrffDvr3xAAALS7IwFjQ971.jpg
  2) 源码编译安装
   wKioL1ZmrfizFydbAAARb9rALCU729.jpg
  注:在编译安装之前,先确认pam-devel包是否安装。如果没有安装,必须先安装成功后,然后再配置。
   wKioL1Zmrfiy3KyfAAAGCsJx_5E655.jpg wKioL1ZmrfiTzV2iAAAGWM0mlgk990.jpg
  3) 添加为系统服务dovecot
   wKiom1ZmrYnS9FutAAASCCsCfuI484.jpg
  2. 建立配置文件,并启动服务
  1)建立配置文档
  Dovecot的配置文件位于/etc/dovecot/目录下,主配置文件为dovecot.conf,默认并没有此文件,需要参考样例目录重新创建。为了方便以后的扩展配置,建议将各种样例配置文件都复制到/etc/dovecot/目录下。
   wKiom1ZmrYnig4nmAAAMFeLhR3U336.jpg
  若要支持系统用户认证,还应建立相应的PAM认证文件/etc/pam.d/dovecot,具体内容请参考/etc/pam.d/目录下的其他文件。
   wKiom1ZmrYqC_fAsAAAGHg7PWTU066.jpg wKioL1Zmrfqit0r3AAAO03fKF1I123.jpg
  2)调整主配置文件
  为了降低初学难度,这里只使用系统用户认证,而并不使用SSL等安全机制。因此需要修改主配置文件dovecot.conf,将“!include conf.d/*.conf”行改为“!include conf.d/10-auth.conf”,并禁用SSL机制,允许在验证时使用明文的用户名和密码。除此之外,还需要指定邮箱格式及存储位置。
   wKioL1ZmrfvjgdZHAAAF7MaAf_s112.jpg wKiom1ZmrYvwzHThAAAMiwao14E221.jpg
  4) 启动dovecot服务,并确认监听状态
  Dovecot默认已配置为监听POP3/IMAP邮件协议,因此启动dovecot服务后,可以查看对TCP端口143、110的监听。
   wKiom1ZmrYzzcsTdAAAbS1jxL9I372.jpg
  3. POP3接收邮件测试
  使用telnet连接到Dovecot邮件服务器的110端口,输入POP3操作命令,以邮箱账户lisi@benet.com的身份查收邮件内容。测试过程如下所述:
   wKiom1ZmrY2wo0HDAAASTQ1oHKE875.jpg wKiom1ZmrY3QLwNIAAAh7Va_R74537.jpg
  通过以上测试结果,不难发现用户已经能够通过Dovecot服务器收取邮件。该服务器具备了SMTP发信功能、POP3/IMAP收信功能,一台简单的邮件服务器的设置就基本上大功告成了。
  n 测试发信、收信功能
  1. 设置邮箱账号
   wKioL1Zmrf7CfLibAABUYWZbXqY956.jpg
  在点击上图中的“测试账户设置”后,会弹出如下图所示的窗口,并自动测试。如果显示状态都为“已完成”,说明设置没问题。
   wKiom1ZmrY-jG-1ZAABHDaHYJWw689.jpg
  2. 发送测试邮件
   wKiom1ZmrZDhjNsKAABfS9V2Y3w790.jpg
  3. 接受邮件测试
   wKioL1ZmrgKD9rE-AACL0aGAEoU045.jpg
  在测试收信、发信的过程中,若出现失败的情况,应及时查看/var/og/maillog邮件进出日志,并根据相关信息分析、排查故障。
   wKioL1ZmrgOgIR-pAABMHAULBkM328.jpg
  n 邮件系统的角色
  ? MTA(Mail Transfer Agent,邮件传输代理):一般被称为邮件服务器软件。MTA软件负责接收客户端软件发送的邮件,并将邮件传输给其他的MTA程序,是电子邮件系统中的核心部分。
  ? MUAMail User Agent,邮件用户代理):一般被称为邮件客户端软件。MUA软件的功能是为用户提供发送、接收和管理电子邮件的界面。
  ? MDAMail Delivery Agent,邮件分发代理):MDA软件负责在服务器中将邮件分发到用户的邮箱目录。MDA软件相对比较特殊,它并不直接面向邮件用户,而是在后台默默的工作。有时候MDA的功能可以直接集成在MTA软件中,因此经常被忽略。
  n 邮件通信协议
  ? SMTP(Simple Mail Transfer Protocol,简单邮件传输协议):主要用于发送和传输邮件。MUA使用SMTP协议将邮件发送到MTA服务器中,而MTA将邮件传输给其他MTA服务器时同样也使用SMTP协议。SMTP协议使用的TCP端口为25。对于支持发信认证的邮件服务器,将会采用扩展的SMTP协议(Extended SMTP)。
  ? POP(Post Office Protocol,邮局协议):主要用于从邮件服务器中收取邮件。目前POP协议的最新版本是POP3。大多数MUA软件都支持使用POP3协议,因此该协议应用最为广泛。POP3协议使用的TCP端口号为110。
  ? IMAP(Internet Message Access Protocol,互联网消息访问协议):同样用于收取邮件。目前IMAP协议的最新版本是IMAP4。与POP3相比较,IMAP4协议提供了更为灵活和强大的邮件收取、邮件管理功能。IMAP4协议使用的TCP端口号为143。
                   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-148552-1-1.html 上篇帖子: Centos 7.1 快速搭建postfix邮件系统 下篇帖子: Postfix邮件系统(二) 邮件系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表