Учебники

Установите Postfix MTA и IMAP / POP3

Чтобы отправить электронное письмо с нашего сервера CentOS 7, нам потребуется настройка для настройки современного агента пересылки почты (MTA). Mail Transfer Agent — это демон, отвечающий за отправку исходящей почты для пользователей системы или корпоративных интернет-доменов через SMTP.

Стоит отметить, что в этом руководстве рассказывается только о настройке демона для локального использования. Мы не будем вдаваться в подробности о расширенной конфигурации для настройки MTA для бизнес-операций. Это сочетание многих навыков, включая, но не ограничиваясь: DNS, получение статического маршрутизируемого IP-адреса, который не занесен в черный список, и настройка дополнительных параметров безопасности и обслуживания. Короче говоря, это руководство предназначено для ознакомления вас с базовой конфигурацией. Не используйте это руководство для настройки MTA хоста, выходящего в Интернет.

Благодаря совместному вниманию как к безопасности, так и к простоте администрирования, мы выбрали Postfix в качестве MTA для этого урока. MTA по умолчанию, установленный в более старых версиях CentOS, — это Sendmail . Sendmail отличный MTA. Однако, по скромному мнению автора, Postfix попадает в приятное место при рассмотрении следующих заметок для MTA. В самой последней версии CentOS Postfix заменил Sendmail в качестве MTA по умолчанию.

Postfix — это широко используемый и хорошо документированный MTA. Он активно поддерживается и развивается. Это требует минимальной настройки (это просто электронная почта) и эффективно с системными ресурсами (опять же, это просто электронная почта).

Шаг 1 — Установите Postfix из YUM Package Manager.

[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
# 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 — Настройте поддержку SASL для Postfix.

Без поддержки аутентификации SASL Postfix будет разрешать отправку электронной почты только локальным пользователям. Или это даст ошибку ретрансляции отказа, когда пользователи отправляют электронную почту из локального домена.

Примечание. SASL или Simple Application Security Layer Framework — это платформа, разработанная для аутентификации, поддерживающая различные методы среди различных протоколов уровня приложений. Вместо того чтобы оставлять механизмы аутентификации на уровне протокола прикладного уровня, разработчики (и потребители) 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

Настройте /etc/postfix/main.cf для аутентификации SASL

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

Мои параметры SASL в main.conf

##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 прослушивает, а демон отвечает на запросы из нашей внутренней локальной сети.

Установите Dovecot IMAP и POP3 сервер

Dovecot — это защищенный сервер IMAP и POP3, предназначенный для обработки входящих сообщений от небольших до крупных организаций. Благодаря его активному использованию с CentOS, мы будем использовать Dovecot в качестве примера установки и настройки сервера входящей почты для CentOS и MTA SASL Provider.

Как отмечалось ранее, мы не будем настраивать записи MX для DNS или создавать безопасные правила, позволяющие нашим службам обрабатывать почту для домена. Следовательно, установка этих служб на хосте, выходящем в Интернет, может освободить место для дыр в безопасности без записей SPF.

Шаг 1 — Установите Dovecot.

[root@centos]# yum -y install dovecot

Шаг 2 — Настройте голубятню.

Основной файл конфигурации для 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 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 , POP3 , IMAP и IMAP к хостам в локальной сети.