开发手册 欢迎您!
软件开发者资料库

设置Postfix MTA和IMAP / POP3

Linux管理员设置Postfix MTA和IMAP / POP3 - 从基本到高级概念的简单简单步骤学习Linux管理员,包括CentOS概述,基本CentOS Linux命令,文件/文件夹管理,用户管理,配额管理,系统服务启动和停止,使用systemctl的资源管理,带有crgoups的资源管理,进程管理,防火墙设置,在CentOS Linux中配置PHP,使用CentOS Linux设置Python,在CentOS Linux上配置Ruby,为CentOS Linux设置Perl,安装和配置Open LDAP ,创建SSL证书,安装Apache Web服务器CentOS 7,在CentOS 7上安装MySQL,设置Postfix MTA和IMAP / POP3,安装匿名FTP,远程管理,CentOS中的流量监控,日志管理,备份和恢复,系统更新,Shell脚本,包管理,卷管理。

为了从我们的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