Простой способ настроить полноценный почтовый сервер на CentOS 8 с использованием iRedMail

Настройка почтового сервера на Linux с нуля может оказаться сложной задачей для неопытных пользователей. В данном руководстве объясняется, как с помощью iRedMail быстро развернуть полноценный почтовый сервер на CentOS 8, что позволит сэкономить время и избежать множества сложностей. iRedMail — это программный пакет для развёртывания и управления почтовым сервером с открытым исходным кодом, который поддерживает такие протоколы, как SMTP, IMAP и POP3.

iRedMail представляет собой оболочный скрипт, который автоматически устанавливает и конфигурирует все необходимые компоненты для работы почтового сервера на вашем сервере с Linux или BSD, избавляя от необходимости ручного вмешательства. Благодаря iRedMail вы сможете без труда управлять неограниченным количеством почтовых ящиков и доменов через удобный веб-интерфейс администратора. Почтовые ящики могут храниться в базах данных, таких как MariaDB/MySQL, PostgreSQL или OpenLDAP. Ниже представлен перечень программ с открытым исходным кодом, которые будут установлены и настроены iRedMail автоматически.

  • Почтовый сервер Postfix
  • Сервер IMAP Dovecot
  • Веб-сервер Nginx для административной панели и почтового сервиса.
  • Для хранения данных о пользователях можно использовать OpenLDAP, MySQL/MariaDB или PostgreSQL.
  • Amavised-new для проверки и подписания DKIM
  • SpamAssassin для борьбы со спамом
  • ClamAV как средство для антивирусной защиты
  • Веб-интерфейс почты Roundcube
  • Fail2ban для обеспечения безопасности SSH
  • Менеджер по рассылке mlmmj
  • Слежение за сервером Netdata
  • Политический сервер Postfix iRedAPD для управления серым списком.

Содержание статьи

Подберите подходящего хостинг-поставщика и приобретите домен

Чтобы настроить полноценный почтовый сервер с помощью iRedMail, вам понадобится сервер с минимальным объемом оперативной памяти в 3 ГБ, поскольку после установки его потребление ОЗУ превысит 2 ГБ. Рекомендуется устанавливать iRedMail на новую, незанятую версию CentOS 8.

Данное руководство было разработано на виртуальном частном сервере (VPS) от Kamatera, стоимостью $9 в месяц, который включает один процессор и 3 ГБ оперативной памяти. Также компания предоставляет 30-дневный бесплатный пробный период.

Kamatera — прекрасный вариант для развертывания почтового сервера, так как

  • Порт 25 не заблокирован, что позволяет вам отправлять неограниченное количество писем, включая транзакционные и рассылки, без дополнительных расходов на SMTP-ретрансляцию. У Kamatera отсутствуют ограничения по использованию SMTP, поэтому вы можете отправлять до миллиона писем ежедневно.
  • IP-адрес не зарегистрирован в черных списках электронной почты. (По крайней мере, это касается моего случая, так как я выбрал дата-центр в Далласе.) Вам точно не следует попасть в черные списки Microsoft Outlook или spamrats. Некоторые из этих списков блокируют целые диапазоны IP-адресов, и в таком случае вы не сможете удалить свой адрес из списка.
  • Для повышения успешности доставки писем вы имеете возможность изменить запись PTR.
  • Они дают возможность отправлять сообщения вашим подписчикам без ограничений по времени, будь то часы или дни.
  • Вы имеете возможность заказать несколько IP-адресов для одного сервера. Это особенно полезно для тех, кто отправляет значительные объемы писем. Распределяя трафик электронной почты между несколькими IP-адресами, вы сможете повысить эффективность доставки сообщений.

Некоторые провайдеры VPS, такие как DigitalOcean, не разрешают использование порта 25. В случае с DigitalOcean его разблокировка невозможна, поэтому вам придется организовать ретрансляцию SMTP для обхода этой блокировки, что может повлечь дополнительные расходы. Если вы выбираете Vultr VPS, имейте в виду, что порт 25 по умолчанию также закрыт. Вы можете запросить его разблокировку через службу поддержки, однако, если они посчитают вашу почтовую активность неподобающей, порт может быть заблокирован вновь. Vultr вправе ограничить доступ к порту, если вы используете их серверы для массовых рассылок. Зайдите на платформу Kamatera, чтобы зарегистрироваться, а затем настройте сервер через панель управления вашей учетной записи.

Типы серверов Kamatera

После создания сервера вам придёт письмо от Kamatera с информацией для SSH-доступа. Для подключения к серверу воспользуйтесь SSH-клиентом. Если на вашем компьютере установлены Linux или macOS, просто откройте терминал и введите следующую команду для подключения, заменив 12.34.56.78 на IP-адрес вашего сервера.

Вам предложат ввести пароль.

Также потребуется зарегистрировать доменное имя. Я выбрал NameCheap для этого, так как там доступные цены, а защита конфиденциальности whois предоставляется бесплатно на постоянной основе.

Настройка MX-записи в DNS

MX-запись определяет, какие хосты отвечают за обработку электронных писем для конкретного доменного имени. К примеру, для домена linux16.ru хостом, занимающимся обработкой почты, является mail.linux16.ru. Когда пользователь с аккаунтом Gmail отправляет сообщение на [email protected], сервер Gmail запрашивает MX-запись для linux16.ru. Установив, что за прием писем отвечает mail.linux16.ru, сервер далее запрашивает A-запись mail.linux16.ru для получения IP-адреса, что позволяет успешно доставить письмо.

В вашем DNS-менеджере добавьте MX-запись для своего доменного имени. В качестве имени укажите @, чтобы указать на основное доменное имя, а в поле значения впишите mail.your-domain.com.

Создание MX-записи для почтового сервера IredMail.

Обратите внимание: имя хоста для записи MX не должно быть псевдонимом для другого доменного имени. Рекомендуется использовать именно имена хостов, а не чистые IP-адреса для записи MX. Ваш DNS-менеджер может запросить указание значения предпочтения, известного также как приоритет. Это значение может варьироваться от 0 до 65 356, при этом меньшее число означает более высокий приоритет. Рекомендуется установить его на 0, чтобы данный почтовый сервер имел наивысший приоритет для получения почты. После создания записи MX необходимо также добавить запись A для mail.your-domain.com, чтобы она могла быть сопоставлена с IP-адресом. Если ваш сервер использует IPv6, не забудьте добавить запись AAAA. Если вы применяете DNS-сервис Cloudflare, не активируйте функцию CDN при добавлении записи A для mail.your-domain.com, так как Cloudflare не поддерживает SMTP-прокси.

Конфигурация имени хоста

Подключитесь к своему серверу через SSH и выполните следующую команду для обновления установленных программ.

sudo dnf update - y

Рекомендую создать пользователя с правами sudo для администрирования сервера, а не использовать стандартного пользователя root. Для этого выполните следующую команду, заменив username на желаемое имя пользователя.

sudo adduser username

Назначьте пароль для данного пользователя.

sudo passwd username

Включите этого пользователя в группу wheel, чтобы предоставить ему возможность использовать sudo.

sudo gpasswd - a username wheel

Поменяйте пользователя на нового.

Читайте также:  Как убрать пароль при входе в систему Linux Mint: подробная инструкция с примерами кода.

su -username

Затем задайте полное доменное имя (FQDN) для вашего сервера, используя следующую команду.

sudo hostnamectl set-hostname mail.your-domain.com

Необходимо также внести изменения в файл /etc/hosts, используя текстовый редактор в командной строке, такой как Nano.

sudo nano /etc/hosts

Измените его следующим образом. (Применяйте стрелки для перемещения курсора в документе.)

127.0.0.1 mail.your-domain.com localhost

Сохраните изменения и закройте документ. (Для сохранения файла в текстовом редакторе Nano нажмите Ctrl+O, а затем Enter для подтверждения. Чтобы выйти из редактора, используйте комбинацию Ctrl+X.)

Для того чтобы отобразить изменения, войдите снова и выполните следующую команду для проверки хоста.

hostname -f

Конфигурация почтового сервера на CentOS 8 с использованием iRedMail

Используйте следующие команды, чтобы скачать последнюю версию установочного скрипта iRedMail из репозитория на Github.

sudo dnf install wget tar - y wget https://github.com/iredmail/iRedMail/archive/1.5.0.tar.gz

Распакуйте заархивированный файл.

tar xvf 1.5.0.tar.gz

После этого зайдите в только что созданную папку.

cd iRedMail-1.5.0/

Предоставьте права на выполнение для скрипта iRedmail.sh.

chmod +x iRedmail.sh

Затем запустите Bash-скрипт с правами суперпользователя.

sudo bash iRedmail.sh

Откроется мастер конфигурации почтового сервера. Выберите вариант «Да» с помощью клавиши Tab и нажмите Enter.

centos-8-iredmail-server

На следующем этапе вам будет предложено указать директорию для хранения электронной почты. Вы можете оставить значение по умолчанию, указав путь /var/vmail, просто нажмите Enter.

centos-8-iredmail-default-storage-path

После этого определитесь, хотите ли вы активировать веб-сервер. Рекомендуется выбрать эту опцию, так как веб-интерфейс понадобится для создания почтовых учетных записей. Это также даст доступ к веб-почте Roundcube. По умолчанию выбран Nginx, так что просто нажмите Enter. (Звездочка указывает на текущий выбор.)

centos-8-iredmail-nginx-web-server

После этого выберите хранилище для ваших почтовых аккаунтов. Рекомендуется выбрать то, с которым вы уже знакомы. В данном руководстве мы используем MariaDB. Для выбора используйте клавиши вверх и вниз, а для подтверждения нажмите пробел.

CentOS 8 сервер электронной почты

Если вы решили использовать MariaDB или MySQL, необходимо задать пароль для пользователя root в MySQL.

Центр обработки почты на базе CentOS 8.

Введите ваш первый почтовый домен. Дополнительные домены можно будет добавить позже через веб-интерфейс панели администратора. В этом руководстве предполагается, что вы хотите создать почтовый аккаунт, например, [email protected]. В таком случае введите здесь your-domain.com без субдомена. Убедитесь, что после имени домена нет пробела, так как это может вызвать проблемы при установке iRedMail.

Настройка почтового сервера на CentOS 8.

Затем задайте пароль для администратора почтового домена.

centos-8-email-server-step-by-step

Выберите дополнительные элементы. Все 4 компонента по умолчанию уже отмечены. Просто нажмите Enter.

Дополнительные компоненты IredMail для CentOS 8

Теперь у вас есть возможность ознакомиться с вашими параметрами. Нажмите Y, чтобы начать установку всех элементов почтового сервера.

Обзор конфигурации iRedMail на CentOS 8.

Проверьте, чтобы во время установки не возникло никаких ошибок. Если ошибки обнаружены, рекомендуется выполнить переустановку операционной системы, а затем заново установить iRedMail на сервере, иначе почтовый сервер может функционировать неправильно. По завершении установки выберите «y», чтобы активировать правила брандмауэра от iRedMail, и перезапустите брандмауэр. Установка iRedMail успешно завершена. Вам предоставят URL для веб-почты, адрес для доступа к административной панели и данные для входа. В файле iRedmail.tips содержится важная информация о вашем сервере iRedMail.

URL установленных веб-приложений в IredMail

Перезапустите сервер на базе CentOS 8.

sudo shutdown - r now

После восстановления работы вашего сервера вы сможете зайти в панель управления веб-сайтом.

https://mail.your-domain.com/iredadmin/

Учтите, что в указанном URL подкаталог для входа в админ-панель — это /iredadmin/, а не /iredmail/. Также, поскольку используется самоподписанный TLS сертификат, необходимо создать исключение безопасности в вашем браузере.

Инсталляция TLS сертификата Let’s Encrypt

Так как почтовый сервер использует сертификат TLS, подписанный самим собой, пользователи настольных и веб-почтовых клиентов столкнутся с предупреждением. Для решения этой проблемы можно получить и установить бесплатный сертификат TLS от Let’s Encrypt.

Сначала подключитесь к вашему серверу по SSH и выполните следующие команды для установки клиента Let’s Encrypt (certbot) на CentOS 8.

sudo dnf install certbot python3-certbot-nginx - y

iRedMail уже настроил конфигурацию TLS в основном виртуальном хосте Nginx, поэтому для получения сертификата я советую использовать плагин webroot вместо плагина nginx. Выполните указанную ниже команду, подставив вместо выделенного текста ваш email и доменное имя.

sudo certbot certonly --webroot --agree-tos --email -d mail.your-domain.com -w /var/www/html/

Если вам предложат получать уведомления от EFF, вы можете отказаться, выбрав вариант «Нет».

Если все выполнено успешно, на экране появится сообщение, подтверждающее успешное получение TLS-сертификата. Сам сертификат и цепочка были сохранены в папке /etc/letsencrypt/live/mail.your-domain.com/.

сертификат tls для iredmail

Ошибка при выдаче TLS-сертификата

Если certbot не удалось получить TLS-сертификат, это может быть связано с тем, что ваши DNS-записи ещё не распространились в Интернете. Время распространения зависит от вашего регистратора доменов и может варьироваться от мгновенного до 24 часов. Для проверки распространения DNS можно воспользоваться сайтом https://dnsmap.io, введя имя вашего почтового сервера (mail.your-domain.com).

Добавление сертификата в Nginx

После получения TLS-сертификата, необходимо настроить веб-сервер Nginx для его применения. Для этого откройте и измените файл шаблона SSL.

sudo nano /etc/nginx/templates/ssl. tmpl

Найдите последующие две строки.

ssl_certificate /etc/pki/tls/certs/iRedmail.crt; ssl_certificate_key /etc/pki/tls/private/iRedmail.key;

Замените их следующим образом:

ssl_certificate /etc/letsencrypt/live/mail.your-domain.com/fullchain. pem; ssl_certificate_key /etc/letsencrypt/live/mail.your-domain.com/privkey. pem;

Сохраните файл и закройте его. После этого проверьте настройки nginx и выполните перезагрузку.

sudo nginx - t sudo systemctl reload nginx

Снова зайдите в панель администратора iRedMail; теперь ваш веб-браузер не будет выдавать предупреждения, так как Nginx использует действующий TLS-сертификат.

iredadmin

Установка сертификата TLS для Postfix и Dovecot

Также требуется настроить серверы Postfix SMTP и Dovecot IMAP для работы с сертификатом, полученным от Let’s Encrypt, чтобы почтовый клиент на компьютере не показывал предупреждение о безопасности. Необходимо внести изменения в основной конфигурационный файл Postfix.

sudo nano /etc/postfix/main.cf

Пожалуйста, найдите три указанные строки: 95, 96 и 97.

smtpd_tls_key_file = /etc/pki/tls/private/iRedmail.key smtpd_tls_cert_file = /etc/pki/tls/certs/iRedmail.crt smtpd_tls_CAfile = /etc/pki/tls/certs/iRedmail.crt

Замените их следующим образом:

smtpd_tls_key_file = /etc/letsencrypt/live/mail.your-domain.com/privkey. pem smtpd_tls_cert_file = /etc/letsencrypt/live/mail.your-domain.com/smtp. pem smtpd_tls_CAfile = /etc/letsencrypt/live/mail.your-domain.com/chain.pem

Сохраните изменения в файле и закройте его. После этого перезапустите Postfix.

sudo systemctl reload postfix

Затем внесите изменения в основной файл конфигурации Dovecot.

sudo nano /etc/dovecot/dovecot.conf

Пожалуйста, отыщите следующие две строки. (строки 47 и 48)

ssl_cert =</etc/pki/tls/certs/iRedmail.crt ssl_key = </etc/pki/tls/private/iRedmail.key

Замените их следующим образом:

ssl_cert =</etc/letsencrypt/live/ mail.your-domain.com/fullchain. pem ssl_key =</etc/letsencrypt/live/ mail.your-domain.com/privkey.pem

Сохраните файл и закройте его. После этого перезапустите Dovecot.

sudo systemctl reload dovecot

Теперь пользователи настольных почтовых клиентов не будут получать уведомления о безопасности.

Отправка пробного сообщения

Зайдите в панель управления iredadmin, используя учетную запись почтового администратора ([email protected]). В разделе «Добавить» можно подключить новые домены или электронные почтовые адреса.

добавить адреса электронной почты в iredadmin

Если вы столкнулись с ошибкой «домен не под контролем», пожалуйста, ознакомьтесь с этой статьёй.

После регистрации пользователя вы можете перейти на сайт веб-почты Roundcube и войти в систему, используя новую учетную запись электронной почты.

https://mail.your-domain.com/mail/

IredMail Roundcube веб-почта

Теперь у вас есть возможность протестировать процесс отправки и получения электронной почты. Учтите, что может потребоваться некоторое время для получения писем, так как iRedMail по умолчанию активирует серую списку, позволяющую другим SMTP-серверам повторить попытку через несколько минут. В следующей строке файла журнала почты /var/log/maillog указано, что серая списку активирована.

Читайте также:  Конфигурация сервера тайлов OpenStreetMap (OSM) на Debian 12 Bookworm

Адрес получателя отклонен: Намеренное отклонение политики, пожалуйста, попробуйте позже;

Проверка функционирования ClamAV

ClamAV предназначен для обнаружения вирусов в электронных письмах. Он может потреблять довольно много оперативной памяти. При недостатке памяти на вашем сервере ClamAV может функционировать некорректно, что приведет к сбоям в отправке писем вашим почтовым сервером. Статус ClamAV можно проверить с помощью:

systemctl status clamd@amavisd

Если ваш ClamAV постоянно запускается, как указано ниже, это свидетельствует о наличии проблемы.

Проверьте состояние службы clamd@amavisd с помощью команды: systemctl status clamd@amavisd.

Просмотрите логи ClamAV.

sudo journalctl - eu clamd@amavisd

Если в журналах вы обнаружите следующую запись, это свидетельствует о нехватке оперативной памяти на вашем сервере для корректной работы ClamAV.

daemonize() failed: Cannot allocate memory

Можно установить файл подкачки на сервер, что позволит увеличить общее количество оперативной памяти. Однако имейте в виду, что использование подкачки может негативно сказаться на производительности системы. Если вы стремитесь к более высокой производительности, рекомендуется увеличить объем физической памяти вместо использования файла подкачки.

Для создания пространства подкачки на сервере сначала воспользуйтесь командой fallocate, чтобы создать файл. К примеру, создайте файл под названием swapfile объемом 1 ГБ в корневой файловой системе:

sudo fallocate - l 1G /swapfile

Убедитесь, что доступ на чтение и запись имеет только пользователь root.

sudo chmod 600 /swapfile

Конечно, пришлите текст, который вы хотите перефразировать, и я помогу с его уникализацией!

sudo mkswap /swapfile

Настройка пространства подкачки версия 1, размер = 1024 MiB (1073737728 байт) без метки, UUID=0aab5886-4dfb-40d4-920d-fb1115c67433

Активируйте файл подкачки.

sudo swapon /swapfile

Пожалуйста, подождите несколько секунд; ваш ClamAV должен быть запущен, и это не повлияет на отправку электронных писем вашим почтовым сервером.

systemctl status clamd@amavisd

использование памяти clamav

Для того чтобы автоматически подключить область подкачки при загрузке операционной системы, необходимо внести изменения в файл /etc/fstab.

sudo nano /etc/fstab

Вставьте следующую строку в завершающую часть данного файла.

/swapfile swap swap defaults 0 0

Сохраните изменения и закройте файл, после чего перезапустите systemd.

sudo systemctl daemon-reload

Убедитесь, что порт 25 (исходящий) не заблокирован

Ваш интернет-провайдер или хостинг-компания не ограничивает входящие соединения на порт 25 вашего сервера, что позволяет вам получать электронные письма от других почтовых серверов. Однако многие провайдеры блокируют исходящие соединения на порт 25, из-за чего вы не сможете отправлять электронные письма.

Если ваше сообщение не было доставлено на другой адрес электронной почты, такой как Gmail, вы можете воспользоваться утилитой telnet для проверки, заблокирован ли исходящий порт 25. Установите telnet на CentOS 8 с помощью:

sudo dnf install telnet

После этого выполните следующую команду на вашем почтовом сервере.

telnet gmail-smtp-in. l.google.com 25

Если порт 25 для исходящих соединений открыт, вы получите сообщения, аналогичные указанным ниже, что свидетельствует о том, что соединение было успешно установлено. (Совет: введите quit и нажмите Enter, чтобы завершить соединение.)

Trying 74.125.68.26. Connected to gmail-smtp-in. l.google.com. Escape character is '^]'. 220 mx. google.com ESMTP y22si1641751pll.208 - gsmtp

Если исходящий порт 25 закрыт, вы можете увидеть следующее:

Trying 2607:f8b0:400e:c06::1a. Trying 74.125.195.27. telnet: Unable to connect to remote host: Connection timed out

В такой ситуации ваш Postfix не способен отправлять электронные письма на другие SMTP-серверы. Обратитесь к вашему интернет-провайдеру или хостинг-компании с просьбой разблокировать этот функционал. Если они откажут, вам потребуется настроить SMTP-ретрансляцию для обхода блокировки порта 25.

По-прежнему не удается отправить электронное письмо?

Если порт 25 (исходящий) открыт, но вы все равно не можете отправить электронные письма с собственного почтового сервера на другие адреса, такие как Gmail, стоит ознакомиться с почтовым журналом (/var/log/mail.log).

sudo nano /var/log/mail.log

К примеру, у некоторых пользователей в документе могут отображаться такие строки.

host gmail-smtp-in. l.google.com[2404:6800:4003:c03::1b] said: 550-5.7.1 [2a0d:7c40:3000:b8b::2] Наша система обнаружила, что 550-5.7.1 это сообщение не соответствует руководящим принципам отправки по IPv6 относительно PTR 550-5.7.1 записей и аутентификации . Пожалуйста, ознакомьтесь с 550-5.7.1 https://support. google.com/mail/?p=IPv6AuthError для получения дополнительной информации

Это подразумевает, что ваш почтовый сервер отправляет электронные письма с использованием IPv6, однако записи для этого протокола еще не настроены. Рекомендуется зайти в менеджер DNS, создать запись AAAA для mail.your-domain.com, а затем настроить запись PTR для вашего IPv6-адреса, что будет рассмотрено на девятом шаге.

В iRedMail по умолчанию активирован механизм серого листинга, который рекомендует отправляющим SMTP-серверам повторить попытку через некоторое время. Этот подход в основном помогает бороться со спамом, но может негативно сказываться на опыте пользователей. Если вы хотите отключить серый листинг, ознакомьтесь с приведенными ниже инструкциями.

Убедитесь, что файл /opt/iredapd/settings. py имеет разрешение на запись.

sudo chmod 600 /opt/iredapd/settings. py

После этого внесите изменения в конфигурационный файл.

sudo nano /opt/iredapd/settings.py

Определите следующую строку.

plugins = ["reject_null_sender", "wblist_rdns", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy"]

Исключите «greylisting» из перечня. Сохраните изменения и закройте файл. После этого перезапустите iredapd.

sudo systemctl restart iredapd

Верните конфигурационный файл в режим только для чтения.

sudo chmod 400 /opt/iredapd/settings.py

Применение почтовых приложений на вашем ПК или смартфоне.

Откройте свой настольный почтовый клиент, например, Mozilla Thunderbird, и создайте почтовый аккаунт. Если Thunderbird успешно обнаружил настройки вашего почтового сервера, как указано ниже, просто нажмите на кнопку «Готово», и у вас появится возможность читать и отправлять электронные письма.

Настройка существующей учетной записи электронной почты в Mozilla Thunderbird.

Если Thunderbird не обнаружил настройки вашего почтового сервера, нажмите на кнопку «Ручная настройка», чтобы ввести информацию о сервере.

  • В настройках входящего сервера выберите протокол IMAP, укажите mail.your-domain.com в качестве адреса сервера, установите порт 143 и используйте STARTTLS. В качестве метода аутентификации выберите обычный пароль.
  • В настройках исходящего сервера выберите протокол SMTP, укажите mail.your-domain.com в качестве адреса сервера, установите порт 587 и выберите метод шифрования STARTTLS. Для аутентификации выберите стандартный пароль.

Ubuntu, Postfix, Dovecot, Let's Encrypt, HTTPS

Имейте в виду, что вы можете подключаться к IMAP через порт 993 с использованием шифрования SSL/TLS.

Fail2ban запрещает доступ с вашего собственного IP-адреса

Если вы сделали ошибку и несколько раз не смогли войти на почтовый сервер, служба Fail2ban может заблокировать ваш IP-адрес. Чтобы избежать этого, вы можете внести свой IP-адрес в белый список, изменив файл jail. local.

sudo nano /etc/fail2ban/jail. local

Включите свой IP-адрес в перечень исключений, как указано ниже. Замените 12.34.56.78 на свой действительный IP-адрес.

ignoreip = 12.34.56.78 127.0.0.1 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16

Сохраните изменения в файле и закройте его. После этого перезапустите Fail2ban.

sudo systemctl restart fail2ban

Повышение эффективности доставки электронной почты

Для того чтобы избежать попадания ваших писем в папку со спамом, необходимо правильно настроить записи PTR, SPF, DKIM и DMARC. Запись типа PTR, также известная как запись указателя, связывает IP-адрес с полным доменным именем (FQDN). Она является аналогом записи типа A и используется для выполнения обратного DNS-запроса, что может быть полезно в борьбе со спамом. Многие SMTP-серверы отказываются принимать электронные письма, если для сервера отправителя отсутствует запись PTR.

Читайте также:  Убрать у всех право на запись в Linux

Для проверки записи PTR по IP-адресу используйте следующую команду:

dig - x IP-адрес +short

host IP-адрес

Запись PTR не контролируется вашим регистратором домена. Она находится под управлением организации, предоставляющей вам IP-адрес. Поскольку IP-адрес вы получаете от хостинг-провайдера или интернет-провайдера, а не от регистратора домена, необходимо установить запись PTR для вашего IP через панель управления вашего хостинга или связаться с вашим интернет-провайдером. Значение записи должно соответствовать имени вашего почтового сервера: mail.your-domain.com. Если ваш сервер использует IPv6, обязательно создайте запись PTR для вашего IPv6-адреса.

Для редактирования записи обратного DNS вашего VPS на Kamatera, зайдите в клиентскую панель и создайте запрос в службу поддержки, попросив добавить запись PTR для вашего IP-адреса сервера с указанием mail.your-domain.com. Это может показаться не совсем удобным, но необходимо для предотвращения использования платформы спамерами, что помогает поддерживать хорошую репутацию IP для законных отправителей электронной почты, таких как мы.

Запись SPF (Sender Policy Framework) определяет, какие серверы или IP-адреса имеют право отправлять письма от имени вашего домена. Необходимо разрешить отправку почты только вашему почтовому серверу или серверу вашего интернет-провайдера. В панели управления DNS создайте новую TXT-запись, как указано ниже.

Запись SPF для почтового сервера

  • TXT указывает на то, что это запись формата TXT.
  • Введите символ @ в строке имени, чтобы указать основное доменное имя.
  • v=spf1 обозначает, что данная запись относится к SPF и использует первую версию SPF.
  • MX указывает на то, что все хосты, указанные в записях MX, имеют разрешение на отправку электронных писем от имени вашего домена, в то время как все остальные хосты не имеют такого права.
  • ~Все указывает на то, что письма с вашего домена могут отправляться только с хостов, указанных в записи SPF. Сообщения, поступающие с других хостов, будут отмечены как фальсифицированные.

Для того чтобы удостовериться, что ваша SPF-запись доступна в публичной сети Интернет, воспользуйтесь утилитой dig на вашем устройстве с Linux следующим образом:

dig your-domain.com txt

Опция txt указывает dig, что мы заинтересованы лишь в получении TXT записей.

Запись DKIM представляет собой цифровую подпись для электронной почты

DKIM (DomainKeys Identified Mail) применяет приватный ключ для создания цифровой подписи для писем, исходящих с вашего домена. SMTP-серверы, принимающие сообщения, проверяют эту подпись с помощью открытого ключа, который размещается в DNS-записи DKIM.

Скрипт iRedMail автоматически сконфигурировал DKIM на вашем сервере. Теперь необходимо лишь добавить запись DKIM в DNS-менеджере. Используйте следующую команду для отображения открытого ключа DKIM.

sudo amavisd - c /etc/amavisd/amavisd.conf showkeys

Открытый ключ DKIM представлен в круглых скобках. В вашем DNS-менеджере добавьте запись типа TXT, указав dkim._domainkey в качестве имени. Скопируйте содержимое из скобок и вставьте его в значение. Убедитесь, что вы удалили все двойные кавычки и переносы строк.

amavisd-new для Ubuntu

После того как вы внесли изменения, выполните следующую команду для проверки корректности вашей записи DKIM.

sudo amavisd - c /etc/amavisd/amavisd.conf testkeys

Если запись DKIM настроена верно, тест будет успешным.

TESTING#1 linux16.ru: dkim._domainkey. linux16.ru => pass

Имейте в виду, что для распространения вашей записи DKIM в интернете может потребоваться время. В зависимости от вашего регистратора доменов, обновление DNS может произойти сразу или занять до 24 часов. Вы можете посетить https://www.dmarcanalyzer.com/dkim/dkim-check/, ввести dkim в поле селектора и указать ваше доменное имя, чтобы проверить статус распространения записи DKIM.

Запись DMARC

DMARC означает аутентификацию, отчетность и соответствие по домену. Этот механизм помогает почтовым серверам, получающим письма, различать подлинные сообщения и защищает ваше доменное имя от злоупотреблений, связанных с фальсификацией электронной почты.

Для создания записи DMARC зайдите в управление DNS и добавьте запись типа TXT. Введите _dmarc в поле имени, а в поле значения укажите следующий текст. (Рекомендуется создать адрес электронной почты [email protected].)

создать текстовую запись DMARC

Оценка почтовых уведомлений и их размещение

После настройки записей PTR, SPF и DKIM посетите сайт https://www.mail-tester.com. Там вы получите уникальный адрес электронной почты. Отправьте сообщение с вашего домена на этот адрес и проверьте полученный результат. Как видно, я достиг максимальной оценки. В процессе тестирования убедитесь, что ваши записи PTR, SPF и DKIM действительны.

Оценка и размещение электронной почты.

Mail-tester.com предоставляет лишь оценку отправителя. Существует также сервис GlockApps, который помогает определить, попало ли ваше письмо в папку «Входящие» у получателя, в «Спам» или было отклонено. Этот сервис поддерживает множество популярных почтовых провайдеров, включая Gmail, Outlook, Hotmail, YahooMail, iCloud и другие.

glockapps-email-placement-test-scalahosting-vps

Почтовый ящик Microsoft возвращает электронные письма?

Microsoft применяет внутренний черный список, который препятствует доступу многих легитимных IP-адресов. Если ваши электронные письма не доходят до Outlook или Hotmail, вам следует обратиться к приведённым ниже инструкциям, чтобы обойти блокировку Microsoft Outlook.

Как поступить, если ваши электронные сообщения продолжают попадать в папку «Спам»?

В этой статье я поделюсь с вами несколькими рекомендациями о том, как предотвратить попадание ваших электронных писем в спам. Хотя это потребует времени и усилий, следуя данным советам, вы сможете добиться того, чтобы ваши сообщения снова оказались в папке «Входящие».

Диагностика проблем

В первую очередь, рекомендуется выбирать VPS с не менее чем 4 ГБ оперативной памяти. Если вы попытаетесь установить iRedMail на VPS с 1 ГБ ОЗУ, это может привести к сбоям в работе базы данных, SpamAssassin или ClamAV из-за нехватки ресурсов. Использование VPS с 1 ГБ ОЗУ чревато потерей входящих сообщений и другими негативными последствиями.

Если веб-интерфейс iRedMail не работает, например, возникает ошибка 502 gateway, рекомендуется просмотреть логи Nginx, находящиеся в папке /var/log/nginx/, для получения дополнительной информации. Также стоит обратить внимание на журнал почты, который расположен по пути /var/log/maillog.

Убедитесь, что все необходимые службы активны.

systemctl status postfix systemctl status dovecot systemctl status nginx systemctl status mariadb systemctl status clamd@amavisd systemctl status amavisd

Если вы активировали брандмауэр, необходимо разблокировать следующие порты.

HTTP порт: 80 HTTPS порт: 443 SMTP порт: 25 Порт для отправки: 587 (и 465, если вы собираетесь использовать клиент Microsoft Outlook) IMAP
renewal Let's Encrypt для iRedMail

Сохраните изменения и закройте файл. Убедитесь в корректности конфигурации Nginx, а затем выполните перезагрузку.

sudo nginx - t sudo systemctl reload nginx

Настройка задачи Cron

В случае успешного завершения теста вы можете настроить задачу Cron для автоматического обновления сертификата. Для этого просто откройте файл crontab от имени пользователя root.

sudo crontab - e

После этого вставьте указанную строку в конец файла.

@daily certbot renew - w /var/www/html --quiet && systemctl reload postfix dovecot nginx

Перезапуск Postfix, Dovecot и Nginx требуется для того, чтобы эти приложения могли обновить свои сертификаты и закрытые ключи.

Для опытных пользователей

Вы имеете возможность адаптировать фильтр контента SpamAssassin для более точного распознавания спама.

  • Ограничение спама в электронной почте через анализ заголовков и содержания сообщений в Postfix/SpamAssassin.

В случае, если ваш веб-сайт и почтовый сервер размещены на различных VPS (виртуальных частных серверах), вы можете организовать SMTP-ретрансляцию между ними. Это позволит вашему веб-сайту отправлять электронные письма через почтовый сервер. Подробности можно найти в следующей статье.

  • Настройка передачи SMTP между двумя серверами Postfix на CentOS/RHEL.

Искренне надеюсь, что данное руководство оказалось полезным для настройки почтового сервера на CentOS 8 с iRedmail.