Чтобы отправить электронное письмо с нашего сервера 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 # [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 — Настройте поддержку 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 к хостам в локальной сети.