设置Postfix MTA和IMAP / POP3

为了从我们的CentOS 7服务器发送电子邮件,我们需要设置来配置现代邮件传输代理(MTA).邮件传输代理是守护进程,负责通过SMTP为系统用户或公司Internet域发送出站邮件.

值得注意的是,本教程仅教授为本地设置守护进程的过程使用.我们不会详细介绍为业务运营设置MTA的高级配置.这是许多技能的组合,包括但不限于:DNS,获取未列入黑名单的静态可路由IP地址,以及配置高级安全和服务设置.简而言之,本教程旨在让您熟悉基本配置.不要将本教程用于面向主机的主机的MTA配置.

我们选择 Postfix 作为安全性和易管理性的重点.本教程的MTA.旧版CentOS中安装的默认MTA是 Sendmail . Sendmail 是一个很棒的MTA.然而,在作者的拙见中,Postfix在解决MTA的以下注释时遇到了一个好处.使用最新版本的CentOS,Postfix已取代Sendmail作为默认MTA.

Postfix是一种广泛使用且记录良好的MTA.它得到积极维护和发展.它需要最少的配置(这只是电子邮件)并且对系统资源有效(再次,这只是电子邮件).

步骤1 : 从YUM Package Manager安装Postfix.

 
 [root @ centos] #yum -y install postfix

第2步 : 配置Postfix配置文件.

Postfix配置文件位于:/etc/postfix/main.cf

在简单的Postfix配置中,必须为特定主机配置以下内容:主机名,域,源,inet_interfaces和目标.

配置主机名 ;主机名是Postfix主机的完全限定域名.在OpenLDAP章节中,我们命名了CentOS框:域 vmnet.local 上的centos.让我们坚持本章的内容.

 
 #myhostname参数指定此
#邮件系统的互联网主机名.默认设置是使用gethostname()中的完全限定域名
#. $ myhostname用作许多
#其他配置参数的默认值. 
#
 myhostname = centos.vmnet.local

配置域 : 如上所述,我们将在本教程中使用的域是 vmnet.local

 
 #mydomain参数指定本地互联网域名. 
#默认是使用$ myhostname减去第一个组件. 
#$ mydomain用作许多其他配置
#参数的默认值. 
#
 mydomain = vmnet.local

配置原点 : 对于单个服务器和域设置,我们只需要取消注释以下部分并保留默认的Postfix变量.

 
 #SENDING MAIL 
#
#myorigin参数指定本地发布的
#mail似乎来自的域.默认是附加$ myhostname,
#,这适用于小型网站.如果您运行具有多个
#机器的域,则应该(1)将其更改为$ mydomain并且(2)设置
#一个域范围的别名数据库,该数据库将每个用户别名为
 #user@that.users.mailhost. 
#
#为了发送方和收件人地址之间的一致性,
#myorigin还指定将
#附加到没有@domain部分的收件人地址的默认域名. 
#
 myorigin = $ myhostname 
 myorigin = $ mydomain

配置网络接口 去;我们将在我们的单一网络接口以及与该接口相关的所有协议和IP地址上留下Postfix监听.这是通过简单地为Postfix启用默认设置来完成的.

 
#inet_interfaces参数指定网络接口
#地址邮件系统接收邮件.默认情况下,
#软件声明机器上的所有活动接口. 
#参数还控制向用户@ [ip.address]发送邮件. 
#
#另请参阅proxy_interfaces参数,了解
#通过代理或网络地址转换器转发给我们的网络地址. 
#
#注意:当此参数更改时,您需要停止/启动Postfix. 
#
 #inet_interfaces = all 
 #inet_interfaces = $ myhostname 
 #inet_interfaces = $ myhostname,localhost 
 #inet_interfaces = localhost 
#启用IPv4,以及IPv6如果支持
 inet_protocols = all

步骤3 : 配置对Postfix的SASL支持.

如果没有SASL身份验证支持,Postfix将仅允许从本地用户发送电子邮件.或者当用户从本地域发送电子邮件时,它会给出中继被拒绝错误.

注意 :   SASL 简单应用程序安全层框架是一个框架,用于支持不同应用层协议之间的不同技术的身份验证. SASL开发人员(和消费者)不再将身份验证机制留给应用程序层协议,而是利用当前的身份验证协议来处理更高级别的协议,这些协议可能没有内置的便利性或更安全的身份验证(当谈到访问安全服务时).

安装"cyrus-sasl * package

 
 [root @ centos] #yum -y install cyrus- sasl 
加载的插件:fastermirror,langpacks 
从缓存的主机文件加载镜像速度
 * base:repos.forethought.net 
 * extras:repos.dfw.quadranet.com 
 *更新:mirrors.tummy.com 
已安装包cyrus-sasl-2.1.26-20.el7_2.x86_64和最新版本
无所事事

为SASL Auth配置/etc/postfix/main.cf

 
 smtpd_sasl_auth_enable = yes 
 smtpd_recipient_restrictions = 
 permit_mynetworks,permit_sasl_authenticated,reject_una uth_destination 
 smtpd_sasl_security_options = noanonymous 
 smtpd_sasl_type = dovecot 
 smtpd_sasl_path = private/auth

main中的我的SASL选项.conf

 
 ##配置SASL选项条目:
 smtpd_sasl_auth_enable = yes 
 smptd_recipient_restrictions = 
 permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination 
 smtp_sasl_type = dovecot 
 smtp_sasl_path = private/auth/etc

步骤4 : 配置FirewallD以允许传入的SMTP服务.

[root@centos]# firewall-cmd --permanent --add-service=smtp 
success

[root@centos]# firewall-cmd --reload 
success

[root@centos]#

现在让我们检查以确保我们的CentOS主机允许并响应端口25(SMTP)上的请求.

Nmap scan report for 172.16.223.132 
Host is up (0.00035s latency). 
Not shown: 993 filtered ports 
PORT    STATE  SERVICE 
   20/tcp  closed ftp-data 
   21/tcp  open   ftp 
   22/tcp  open   ssh 
   25/tcp  open   smtp 
   80/tcp  open   http 
   389/tcp open   ldap 
   443/tcp open   https 
MAC Address: 00:0C:29:BE:DF:5F (VMware)

如您所见,SMTP正在侦听,守护程序正在响应来自内部LAN的请求.

安装Dovecot IMAP和POP3服务器

Dovecot是一个安全的IMAP和POP3服务器,用于处理较小到较大组织的传入邮件需求.由于其与CentOS的大量使用,我们将使用Dovecot作为为CentOS和MTA SASL Provider安装和配置接收邮件服务器的示例.

如前所述,我们不会为DNS配置MX记录或创建安全规则,允许我们的服务处理域的邮件.因此,只需在面向互联网的主机上设置这些服务,就可以为没有SPF记录的安全漏洞留出空间.

步骤1 : 安装Dovecot.

 
 [root @ centos] #yum -y install dovecot

第2步 : 配置dovecot.

dovecot的主要配置文件位于:/etc/dovecot.conf .我们将首先备份主配置文件.在进行编辑之前始终备份配置文件是一种很好的做法.这样,id(例如)换行符被文本编辑器破坏,并且多年的更改都会丢失.将当前备份复制到生产环境中很容易还原.

dovecot

启用协议和守护程序服务

 
#我们想要服务的协议. 
 protocols = imap imaps pop3 pop3s

现在,我们需要启用dovecot守护进程来监听启动 :

 
 [root @ localhost] #systemctl start dovecot 
 [root @ localhost] #systemctl enable dovecot

让我们确保Dovecot在指定的端口上本地监听:imap,pop3,imap secure和pop3 secure.

 
 [ root @ localhost] #netstat -antup | grep dovecot 
 tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 4368/dovecot 
 tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 4368/dovecot 
 tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 4368/dovecot 
 tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 4368/dovecot 
 tcp6 0 0 ::: 110 ::: * LISTEN 4368/dovecot 
 tcp6 0 0 ::: 143 ::: * LISTEN 4368/dovecot 
 tcp6 0 0 ::: 993 ::: * LISTEN 4368/dovecot 
 tcp6 0 0 ::: 995 ::: * LISTEN 4368/dovecot 
 [root @ localhost]#

如图所示, dovecot 正在侦听IPv4和IPv4的指定端口.

POP3110
POP3s995
IMAP143
IMAPs993

现在,我们需要制定一些防火墙规则.

[root@localhost]# firewall-cmd --permanent --add-port=110/tcp 
success
 
[root@localhost]# firewall-cmd --permanent --add-port=143/tcp 
success
 
[root@localhost]# firewall-cmd --permanent --add-port=995/tcp 
success
 
[root@localhost]# firewall-cmd --permanent --add-port=993/tcp 
success
 
[root@localhost]# firewall-cmd --reload 
success
 
[root@localhost]#

我们的传入邮件服务器正在接受对局域网中主机的 POP3 POP3s IMAP IMAPs 的请求.

Port Scanning host: 192.168.1.143

   Open TCP Port:   21          ftp 
   Open TCP Port:   22          ssh 
   Open TCP Port:   25          smtp 
   Open TCP Port:   80          http 
   Open TCP Port:   110         pop3 
   Open TCP Port:   143         imap 
   Open TCP Port:   443         https 
   Open TCP Port:   993         imaps 
   Open TCP Port:   995         pop3s