📅  最后修改于: 2020-10-31 13:35:33             🧑  作者: Mango
为了从我们的CentOS 7服务器发送电子邮件,我们将需要进行设置以配置现代的邮件传输代理(MTA)。邮件传输代理是守护程序,负责通过SMTP为系统用户或公司Internet域发送出站邮件。
值得注意的是,本教程仅讲授设置守护程序供本地使用的过程。我们不会详细介绍用于为业务运营设置MTA的高级配置。这是许多技能的组合,包括但不限于:DNS,获取未列入黑名单的静态可路由IP地址以及配置高级安全性和服务设置。简而言之,本教程旨在使您熟悉基本配置。不要将本教程用于面向Internet的主机的MTA配置。
由于兼顾安全性和易于管理性,我们选择了Postfix作为本教程的MTA。在较早版本的CentOS中安装的默认MTA是Sendmail 。 Sendmail是一个很棒的MTA。但是,根据作者的拙见,在解决以下MTA注释时,Postfix达到了最佳效果。使用最新版本的CentOS,Postfix已取代Sendmail作为默认的MTA。
Postfix是一种广泛使用且有据可查的MTA。它是积极维护和发展的。它只需要最少的配置(这只是电子邮件),就可以有效利用系统资源(同样,这只是电子邮件)。
步骤1-从YUM软件包管理器安装Postfix。
[root@centos]# yum -y install postfix
步骤2-配置Postfix配置文件。
Postfix配置文件位于: /etc/postfix/main.cf
在简单的Postfix配置中,必须为特定主机配置以下内容:主机名,域,源,inet_interfaces和目标。
配置主机名-主机名是Postfix主机的标准域名。在OpenLDAP一章中,我们将CentOS框命名为:域vmnet.local上的centos。在本章中,我们坚持一下。
# The myhostname parameter specifies the internet hostname of this
# mail system. The default is to use the fully-qualified domain name
# from gethostname(). $myhostname is used as a default value for many
# other configuration parameters.
#
myhostname = centos.vmnet.local
配置域-如上所述,我们将在本教程中使用的域是vmnet.local
# The mydomain parameter specifies the local internet domain name.
# The default is to use $myhostname minus the first component.
# $mydomain is used as a default value for many other configuration
# parameters.
#
mydomain = vmnet.local
配置源-对于单个服务器和域设置,我们只需要取消注释以下部分并保留默认的Postfix变量。
# SENDING MAIL
#
# The myorigin parameter specifies the domain that locally-posted
# mail appears to come from. The default is to append $myhostname,
# which is fine for small sites. If you run a domain with multiple
# machines, you should (1) change this to $mydomain and (2) set up
# a domain-wide alias database that aliases each user to
# user@that.users.mailhost.
#
# For the sake of consistency between sender and recipient addresses,
# myorigin also specifies the default domain name that is appended
# to recipient addresses that have no @domain part.
#
myorigin = $myhostname
myorigin = $mydomain
配置网络接口-我们将让Postfix监听单个网络接口以及与该接口关联的所有协议和IP地址。只需保留启用Postfix的默认设置即可。
# The inet_interfaces parameter specifies the network interface
# addresses that this mail system receives mail on. By default,
# the software claims all active interfaces on the machine. The
# parameter also controls delivery of mail to user@[ip.address].
#
# See also the proxy_interfaces parameter, for network addresses that
# are forwarded to us via a proxy or network address translator.
#
# Note: you need to stop/start Postfix when this parameter changes.
#
#inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
# Enable IPv4, and IPv6 if supported
inet_protocols = all
步骤3-配置对Postfix的SASL支持。
没有SASL身份验证支持,Postfix将仅允许从本地用户发送电子邮件。否则,当用户从本地域发送电子邮件时,它将给出中继拒绝错误。
注– SASL或简单应用程序安全层框架是专为身份验证而设计的框架,支持不同应用程序层协议之间的不同技术。 SASL开发人员(和使用者)不是将身份验证机制留给应用程序层协议使用,而是将当前身份验证协议用于更高级别的协议,这些协议可能没有内置的便利或更安全的身份验证(在谈到访问安全服务时)。
[root@centos]# yum -y install cyrus-sasl
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: repos.forethought.net
* extras: repos.dfw.quadranet.com
* updates: mirrors.tummy.com
Package cyrus-sasl-2.1.26-20.el7_2.x86_64 already installed and latest version
Nothing to do
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
##Configure SASL Options Entries:
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服务器,旨在处理规模较小的组织的传入邮件需求。由于它与CentOS一起大量使用,我们将以Dovecot为例,为CentOS和MTA SASL Provider安装和配置传入邮件服务器。
如前所述,我们将不会为DNS配置MX记录,也不会创建允许我们的服务处理域邮件的安全规则。因此,仅在面向Internet的主机上设置这些服务可能会为没有SPF记录的安全漏洞留下杠杆余地。
步骤1-安装Dovecot。
[root@centos]# yum -y install dovecot
步骤2-配置鸽舍。
dovecot的主要配置文件位于: /etc/dovecot.conf 。我们将首先备份主配置文件。最好在进行编辑之前始终备份配置文件。这样,id(例如)换行符将被文本编辑器销毁,并且丢失了多年的更改。还原很容易,因为将当前备份复制到生产环境中。
# Protocols we want to be serving.
protocols = imap imaps pop3 pop3s
现在,我们需要启用dovecot守护程序在启动时进行监听-
[root@localhost]# systemctl start dovecot
[root@localhost]# systemctl enable dovecot
让我们确保Dovecot在指定端口上本地侦听:imap,pop3,imap保护的和pop3保护的。
[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,则POP3,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