- Linux管理员教程
- 首页
- CentOS概述
- 基本的CentOS Linux命令
- 文件/文件夹管理
- 用户管理
- 配额管理
- Systemd服务的启动和停止
- 使用systemctl进行资源管理
- 使用cgroups进行资源管理
- 进程管理
- 防火墙设置
- 在CentOS Linux中配置PHP
- 在CentOS Linux中设置Python
- 在CentOS Linux上配置Ruby
- 为CentOS Linux设置Perl
- 安装和配置OpenLDAP
- 创建SSL证书
- 安装Apache Web服务器CentOS 7
- 在CentOS 7上设置MySQL
- 配置Postfix MTA和IMAP/POP3
- 安装匿名FTP
- 远程管理
- CentOS中的流量监控
- 日志管理
- 备份和恢复
- 系统更新
- Shell脚本
- 包管理
- 卷管理
- Linux管理员实用资源
- Linux管理员 - 快速指南
- Linux管理员 - 有用资源
- Linux管理员 - 讨论
配置Postfix MTA和IMAP/POP3
为了从我们的CentOS 7服务器发送电子邮件,我们需要设置一个现代邮件传输代理(MTA)。邮件传输代理是负责通过SMTP为系统用户或公司互联网域名发送出站邮件的守护进程。
值得注意的是,本教程只讲解了为本地使用设置守护进程的过程。我们不会详细介绍为业务运营设置MTA的高级配置。这需要许多技能,包括但不限于:DNS、获取未列入黑名单的静态可路由IP地址以及配置高级安全和服务设置。简而言之,本教程旨在使您熟悉基本配置。请勿将本教程用于面向互联网主机的MTA配置。
由于其同时注重安全性和易于管理,我们选择**Postfix**作为本教程的MTA。CentOS旧版本中安装的默认MTA是*Sendmail*。**Sendmail**是一个很棒的MTA。然而,据作者拙见,Postfix在解决MTA的以下注意事项时达到了一个最佳点。在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主机命名为:centos,域名是vmnet.local。让我们在本节中继续使用它。
# 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 # [email protected]. # # 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将只允许从本地用户发送电子邮件。或者,当用户从本地域名之外发送电子邮件时,它会显示*relaying denied*错误。
**注意** - **SASL**或**简单应用安全层框架**是一个旨在支持不同应用层协议之间不同技术的身份验证框架。SASL的开发人员(和使用者)没有将身份验证机制留给应用层协议,而是利用当前的身份验证协议来实现更高级别的协议,这些协议可能没有方便或更安全身份验证(在谈论对安全服务的访问时)内置的功能。
安装“cyrus-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
为SASL Auth配置/etc/postfix/main.cf
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
我在main.conf中的SASL选项
##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服务器
Dovecot是一个安全的IMAP和POP3服务器,旨在处理中小型组织的传入邮件需求。由于它在CentOS中广泛使用,我们将使用Dovecot作为在CentOS上安装和配置传入邮件服务器以及MTA SASL提供者的示例。
如前所述,我们不会为DNS配置MX记录或创建安全规则以允许我们的服务处理域的邮件。因此,仅在面向互联网的主机上设置这些服务可能会在没有SPF记录的情况下留下安全漏洞。
**步骤1** - 安装Dovecot。
[root@centos]# yum -y install dovecot
**步骤2** - 配置dovecot。
dovecot的主要配置文件位于:/etc/dovecot.conf。我们将首先备份主配置文件。在进行编辑之前始终备份配置文件是一个好习惯。这样,如果(例如)换行符被文本编辑器破坏,多年的更改就不会丢失。恢复就像将当前备份复制到生产环境一样简单。
为dovecot启用协议和守护程序服务
# 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和IPv6监听指定的端口。
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]#
我们的传入邮件服务器正在接受对LAN上主机的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