Проверка почтового сервера играет важную роль в обеспечении корректной работы электронной почты. Она позволяет выявлять и устранять проблемы, связанные с отправкой, получением и обработкой почтовых сообщений. Одним из ключевых аспектов диагностики является использование фильтров на почтовых серверах, которые обеспечивают защиту от спама, вирусов и других угроз безопасности.
В данной статье будут рассмотрены как внешние сервисы, помогающие проверить работу почтового сервера со стороны, так и внутренние инструменты, позволяющие провести диагностику непосредственно на сервере. Все действия в качестве примера будут выполняться на выделенном сервере под управлением ОС Ubuntu 20.04.6 с настроенным решением в виде Postfix и Dovecot, однако, представленные методы применимы практически к любой операционной системе и почтовым клиентам.
Онлайн-сервисы для проверки почтового сервера
Первым и самым важным этапом является проверка с использованием сторонних онлайн-сервисов. Таким образом можно провести проверку серверов на наличие уязвимостей, настроек SPF, DKIM и DMARC, а также проверить репутацию IP-адресов, с которых осуществляется отправка почты. В большинстве случаев, использование одних только этих инструментов способно привести к результату.
Рассмотрим детальнее основные сервисы по проверке и их функционал:
MxToolBox позволяет провести проверку практически всех доступных параметров почтовых серверов. Сервис предоставляет инструменты для проверки всех доменных записей, общей доступности доменов, проверки SSL-сертификатов, статуса IP-адресов и многое другое. Для диагностики требуется перейти на страницу сервиса, ввести IP-адрес или домен, выбрать необходимый инструмент и запустить проверку.
Полный перечень всех доступных инструментов указан на скриншоте:
Как следует из перечисленного списка, на сайте также присутствует проверка на наличие IP/домена в black-листах. Производится проверка по всем основным источникам: Spamhaus, Barracuda, SURBL и многие другие. В случае наличия адреса в какой-либо базе, сервис предоставит информацию о причинах попадания в черный список. Таким образом, Вы сможете принять меры для исправления данной проблемы.
MailTester является вторым по популярности инструментом. С помощью сервиса пользователи могут отправить тестовое письмо на уникальный адрес, а затем получить детальный отчет качества отправленного сообщения. В отличии от MxToolBox, данный ресурс больше ориентирован не на диагностику почтового сервера, а на возможное улучшение своей электронной почты. Однако, это не означает, что сервис не способен провести полноценный анализ сервера отправителя. Он производит тестирование доставки письма, проводит исследование и дает рекомендации по улучшению работы почтового сервиса в целом.
Для проверки достаточно перейти на сайт ресурса и получить уникальный адрес электронной почты, на который требуется отправить письмо. После отправки необходимо выбрать «проверку оценки» и ожидать обновления страницы. Хороший результат выглядит так:
В случае наличия каких-либо проблем или рекомендаций, сервис сообщит об этом в соответствующем пункте отчета.
Вышеописанных сервисов достаточно для полноценного тестирования почтового сервера со стороны. Они позволяют выявить потенциальные проблемы с доставкой писем, проверить настройки безопасности, а также получить рекомендации по устранению возможных ошибок. Далее произведем тестирование на стороне сервера.
Проверка настроек почтового сервера
Проверка DNS-записей
Одной из самых распространенных проблем на стороне почтового сервера является неправильная настройка DNS-записей. Проверить их корректность можно через сторонние сервисы, о которых мы только что говорили. Однако, в некоторых случаях письмо может быть попросту не доставлено на сторонний ящик. В таком случае следует вручную проверить все записи. Для этого переходим в DNS-редактор и приступаем к проверке. В качестве примера возьмем за исходные данные: домен profit.com, IP-адрес 11.22.33.44, где @ - можно использовать название домена, если регистратор не позволяет заполнять в такой форме. Не забудьте поменять значения на свои.
A записи - определяют IP адреса почтовых серверов. Проще говоря, они направляют домен на адрес почтового сервера. Должно получится:
Type | Host | Value | TTL |
A | @ | 11.22.33.44 | 1 min |
MX-записи являются самыми важными для почтового сервера и отвечают за маршрут доставки почты. Иными словами, они направляют почту в почтовый ящик.
Type | Host | Value | TTL |
MX | @ | mail.profit.com | 1 min |
SPF-записи указывают на сервера, которые имеют право отправлять письма с конкретного домена. Обратите внимание: они публикуются в виде TXT. Указан лишь один из возможных вариантов значения.
Type | Host | Value | TTL |
TXT | @ | v=spf1 ip4:11.22.33.44 -all | 1 min |
Запись DKIM используется для подтверждения подлинности электронной почты. Обязательно должен содержать открытый сгенерированный ключ. Аналогично, указан лишь один из вариантов значения.
Type | Host | Value | TTL |
TXT | s1._domainkey.profit.com | v=DKIM1; k=rsa; p=QWIOJNDSLUB… | 1 min |
Запись DMARC– это следующий и заключительный этап защиты. Применяется к письмам, которые не прошли проверку SPF и DKIM.
Type | Host | Value | TTL |
TXT | _dmarc.profit.com | v=DMARC1; p=none; pct=100; rua=mailto:[email protected] | 1 min |
Также одной из важнейших записей для почтового сервера является PTR-запись. Можно сказать, что она работает обратно A-записи, то есть связывает IP-адрес с доменом. Данный тип записи возможно добавить только через запрос в техническую поддержку хостинг-провайдера, а проверить можно командой: nslookup IP, где IP – это адрес Вашего сервера. В ответ должен отобразиться привязанный домен.
Проверка портов
Проблемы с закрытыми портами также способны привести к полной неработоспособности почтового сервера. Для начала необходимо уточнить у провайдера имеются ли какие-либо ограничения на необходимые порты с его стороны. Мы не ограничиваем клиентов в количестве открытых портов на любых выделенных или виртуальных серверах. Однако, многие хостинг-поставщики услуг поступают иначе.
Проверить открытые порты можно при помощи предустановленной утилиты netstat. Достаточно ввести команду:
netstat – nat
При установленном и настроенном сервере SMTP/IMAP/POP3 увидим соответствующие открытые порты:
Как видно на скриншоте, основные порты для почтового клиента открыты, а именно: SMTP (25)/IMAPS (143, 993)/POP3S (110, 995). Также можно проверить почтовую службу на каждом порту в отдельности. В этом поможет инструмент telnet. Рассмотрим на примере POP3, то есть 110 порта:
telnet mail.yourdomain.com 110
Осуществляем выход из инструмента командой exit и проверяем остальные необходимые порты по аналогичному принципу. Отметим, что данным инструментом также возможно тестировать отправку электронных писем без использования дополнительного интерфейса. Это может быть полезно в тех случаях, когда пользователь только настраивает сервер и планирует отправлять почту локально.
При возникновении затруднений с открытием портов, необходимо обратить внимание на установленный Firewall. В большинстве дистрибутивов предустановлены Iptables/Firewalld.
Для iptables используем команды:
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 995 -j ACCEPT
iptables -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp --dport 993 -j ACCEPT
Для firewalld:
firewall-cmd --permanent --add-port=25/tcp
firewall-cmd --permanent --add-port=110/tcp
firewall-cmd --permanent --add-port=995/tcp
firewall-cmd --permanent --add-port=143/tcp
firewall-cmd --permanent --add-port=993/tcp
В некоторых случаях сервис SMTP требует также открытия портов 465 и 587 для корректной работы. Открытие данных портов происходит аналогично.
После добавления новых правил, необходимо произвести перезагрузку сервиса Firewall.
Проверка SSL/TLS сертификатов почтового сервера
SSL/TLS сертификаты на почтовом сервере используются для обеспечения безопасной передачи данных между почтовым клиентом и сервером, а также подтверждают подлинность самого почтового сервера отправителя, исключая возможность атак «человек-посередине». Однако, и они могут стать причиной проблем с отправкой или получением писем. Для начала диагностики необходимо выяснить установлены ли сертификаты на стороне сервера. Проверим наличие сертификата командой:
openssl s_client -showcerts -server mail.profit.com -connect IP:port
В данной команде необходимо заменить значения на свои: «mail.profit.com» - адрес почтового сервера; IP:port – данные сервера. В качестве примера проверим порт 993, который принадлежит протоколу IMAP. Проверка других протоколов происходит аналогично.
В ответ сервер должен передать данные сертификата:
Большинство почтовых клиентов устанавливают сертификаты автоматически. Однако, в некоторых случаях, необходимо вручную выпустить и добавить их к конкретному клиенту. Установка и настройка на разных платформах индивидуальны, поэтому рекомендуем обратиться к инструкции по конкретному решению. В качестве сертификата предлагаем воспользоваться Let’s Encrypt, а в качестве вспомогательного инструмента при его установке и настройке использовать Certbot.
Проверка логов
Наконец, мы подобрались к решению, которое помогает в подавляющем большинстве случаев – проверка логов почтового клиента. Основная часть пользователей заблуждаются, думая, что там нет решения их проблемы. Однако, современные почтовые клиенты хранят в логах большое количество информации:
- Дата и время отправки и получения писем.
- Адрес отправителя и получателя.
- Результаты фильтрации на предмет спама и вирусов.
- Состояние очереди отправки и получения писем.
- Действия администраторов и пользователей, связанные с почтовым сервером (например, создание, удаление почтовых ящиков, изменение настроек).
- Ошибки и проблемы, возникшие в процессе обработки и доставки писем.
Стандартный каталог, в котором хранятся логи большинства команд расположен по адресу: /var/log/. В зависимости от используемого решения, название конкретного лог-файла может различаться. Например, для Postfix – это файл mail.log, расположенный в той же директории. Рекомендуем не пренебрегать данным способом диагностики, и обращаться к логам сразу, как только появляются первые признаки плохой работоспособности почтового клиента.
Заключение
Таким образом, мы провели детальную диагностику почтового сервера. При тестировании были затронуты как онлайн инструменты для подробного исследования, так и локальные решения обнаружения возможных проблем. После проведения всех необходимых тестов была получена полная картина о текущем состоянии почтового сервера, а также предложены рекомендации по устранению потенциальных трудностей.