为了从我们的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的指定端口.
POP3 | 110 |
POP3s | 995 |
IMAP | 143 |
IMAPs | 993 |
现在,我们需要制定一些防火墙规则.
[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