Как проверить письма на СПАМ в Mail-tester?

Как проверить письма на СПАМ в Mail-tester? Хостинг

Как проверить письма на СПАМ в Mail-tester?

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

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

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

Содержание
  1. MX Toolbox
  2. Microsoft Remote Connectivity Analyzer
  3. Проверка через онлайн-сервисы
  4. Через утилиту nslookup в Windows
  5. Типы DNS-записей
  6. Способы проверки DNS-записей домена
  7. Встроенные в систему службы
  8. Проверка DNS-записей с помощью сторонних сервисов
  9. Заключение
  10. Whois – Проверить домен на занятость
  11. Как работает сервис Whois
  12. Whois — проверка домена
  13. Правила пользования Whois IP сервисом
  14. SMTP Test Tool — Free SMTP Checker
  15. What is an SMTP?
  16. Why use the SMTP server test tool?
  17. How the SMTP tester helps in checking your SMTP configuration by sending test mail from that SMTP host?
  18. Диагностика почтовых протоколов
  19. Введение
  20. Обозначения
  21. Почтовые порты
  22. Используемые и рекомендуемые утилиты
  23. Примеры сессий
  24. Проверка авторизации на сервере
  25. Протокол SMTP
  26. Протокол POP3
  27. Примеры авторизации и используемый формат
  28. PLAIN
  29. CRAM-MD5
  30. Cпособы конвертации текста в и из base64
  31. Утилита (пакет)
  32. Mmencode (xemacs21-bin)
  33. Openssl (openssl)
  34. Анализ почтового трафика при помощи tshark. Расшифровка SSL/TLS
  35. Ссылки на материалы

MX Toolbox

Одним из лучших сервисов по диагностике почты является MX Toolbox. Достаточно ввести имя вашего домена, все остальные проверки сервис выполнит самостоятельно. Первым делом будут определены MX-записи:

После чего можно будет выполнить поиск проблем:

В результате вы получите общий список ошибок и предупреждений, более подробно с результатами проверки можно ознакомиться выбрав соответствующий раздел. Так например настройка DNS не содержит ошибок, а настройка почтового сервера лишь два предупреждения:

Как проверить письма на СПАМ в Mail-tester?

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

Для этих целей полезно воспользоваться еще одним инструментом — анализатором заголовков (Email Header Analyzer), скопировав заголовок письма вы сможете оценить задержки на всех этапах его прохождения от отправителя к получателю.

В нашем случае видно как веб-интерфейс Zimbra отдал почту непосредственно серверу (1), который передал ее на localhost для антивирусной и антиспам проверки (2), пройдя проверку письмо вернулось обратно серверу, задержавшись на 1 секунду (3) и было отдано серверу-получателю. Возникновение значительных задержек на одном из этапов — повод обратить внимание на работу этого компонента.

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

Как проверить письма на СПАМ в Mail-tester?

Microsoft Remote Connectivity Analyzer

Второй используемый нами инструмент — Microsoft Remote Connectivity Analyzer, несмотря на то, что в первую очередь предназначен для диагностики продуктов Microsoft, может оказаться полезен и для проверки любых других почтовых серверов.

Нас должен заинтересовать раздел Тесты для электронной почты в Интернете, который не только выполнит проверку настроек, но и попробует отправить тестовое письмо, сопроводив этот процесс подробным отчетом:

В нашем случае для домена указаны две MX-записи, одна из которых полностью рабочая, а вторая не прошла проверку.

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

Мы настоятельно рекомендуем использовать этот инструмент при возникновении проблем с входящим / исходящим потоком почты, так как он позволяет быстро и наглядно выявить проблему. Также сервис позволяет выполнить аналогичные проверки для почтовых клиентов, подключающихся по протоколу POP3 или IMAP.

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

В частности определяются и указываются имена участвующих в обработке почты служб, что позволяет гораздо быстрее определить узел вносящий наибольшие задержки. Действительно, MX Toolboox просто уведомил нас, что вторым шагом отдал почту на localhost и, только зная архитектуру Zimbra, мы можем сказать кому именно была отдана почта. Сервис от Microsoft гораздо подробнее, он сообщает что почта отдана сервису amavisd-new на порт 10026, это может сэкономить немало времени, особенно если почта проходит обработку на нескольких узлах.

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

MX-запись – вид DNS-записи, предназначенный для регистрации почтовых серверов с использованием протокола SMTP. Именно с ее помощью почтовый агент отправителя определяет сервер, на который и необходимо выполнить доставку электронного письма. На одном домене может быть несколько таких записей с различными приоритетами.

Зачем нужен приоритет MX-записи? Если почтовых серверов несколько, но некоторые из них недоступны, приоритет указывает на то, в каком порядке обращаться к почтовым серверам (то есть на какой сервер отправлять почту).

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

Проверка через онлайн-сервисы

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

Как проверить письма на СПАМ в Mail-tester?

Здесь, например, можно узнать все возможные наименования серверов, их приоритеты и TTL

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Через утилиту nslookup в Windows

Чтобы проверить mx-записи этим способом, необходимо сначала открыть командную строку. Сделать это можно с помощью консоли.

  • Находим командную строку через поисковую строку на панели задач. Можно ввести запрос «Командная строка» или «CMD». Если у вас Windows 7, то поиск осуществляется в меню «Пуск».
  • Открываем ее от имени администратора и в появившемся окне вводим вот такую команду:

nslookup -type=mx имя_домена

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

Утилита nslookup поможет проверить наличие mx-записей с приоритетами для указанного домена

На одном домене может быть несколько mx-записей с различными приоритетами. Очень часто у провайдеров предусмотрены собственные утилиты для проверки и настройки mx-записей. Но если такие не предусмотрены или не найдены, можно воспользоваться любым вышеуказанным методом.

Я расскажу, какими способами можно проверить каждый тип DNS-записи.

Типы DNS-записей

Функции ресурсных записей – это не только хранение, передача информации и привязка к IP адресу. Они также помогают настроить обработку запросов, перенаправляют их на другие серверы. Вот несколько наиболее важных типов DNS-записей:

  • AAAA – аналогична предыдущей, только действительна на основе интернет-протокола IPv6.
  • CNAME – данный тип записи указывает на каноническое имя для псевдонима. С ее помощью к одному поддомену привязываются все ресурсные записи домена первого уровня.
  • DKIM-подпись – подтверждает подлинность отправителя электронного письма. Именно эта ресурсная запись добавляет в сообщение цифровую подпись. Тем самым снижается вероятность попадания письма в папку «Спам».
  • MX – регистрирует почтовые серверы, используя при этом протокол SMTP. Отвечает за доставку электронного письма на указанный сервер.
  • NS – указывает на DNS-серверы, которые обслуживают домен. Чуть ли не одна из самых важных записей, без которой функционирование домена дало бы сбой.
  • SOA – используется для указания на новую зону и авторитетность указанной в ней информации.
  • SPF – защищает домен от подделки, показывает список доверенных серверов, с которых отправляются электронные письма. Это нужно для того, чтобы предотвратить рассылку спама от вашего доменного имени.
  • SRV – хранит данные о местоположении серверов, обеспечивающих работу тех или иных служб.
  • TXT – содержит общую вспомогательную информацию о домене, используется для указания SPF-записей, подтверждения прав собственности, обеспечения безопасности электронной почты и так далее.
Читайте также:  Тестовый хостинг для сайта wordpress

Способы проверки DNS-записей домена

А зачем проверять DNS-записи? Ошибки, допущенные в ресурсных записях, приводят к нарушению работоспособности сайта. Даже после внесения всех правок полноценный доступ к сайту появится не сразу, так как изменения, внесенные в ресурсные записи, вступают в силу в течение 72 часов.

Есть множество способов, позволяющих проверить DNS-записи. Можно воспользоваться как специальными командами в системе, так и онлайн-сервисами.

Встроенные в систему службы

nslookup -type=тип_записи site.com

Как проверить письма на СПАМ в Mail-tester?

Можно перед доменным именем добавить опцию -t и указать тип записи для получения более подробного поиска. Выглядеть это будет примерно вот так:

host -t A site.com

host -t MX site.com

Проверка DNS-записей с помощью сторонних сервисов

Еще можно воспользоваться бесплатными онлайн-сервисами для проверки DNS записей.

Как проверить письма на СПАМ в Mail-tester?

Как проверить письма на СПАМ в Mail-tester?

Заключение

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

Этот домен в других зонах:

Whois – Проверить домен на занятость

Сервис Whois позволяет получить сведения о регистрации доменов.

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

Как работает сервис Whois

Чаще всего сервис Whois используется для того, чтобы проверить домен на занятость. Сделать это можно
легко, быстро и абсолютно бесплатно.

Перейдите на страницу Регистрация доменов, введите интересующее
имя в строку поиска и нажмите кнопку «Зарегистрировать». Поиск информации обычно занимает считанные секунды.

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

Если сервис выдаст сообщение «Домен занят», то, нажав на кнопку «Whois», вы сможете посмотреть
подробную информацию о домене.

Какие сведения можно получить при помощи Whois

После проверки домена, который уже был зарегистрирован, Whois-сервис отображает следующую информацию:

  • В полях «nserver» будут показаны сведения о DNS-серверах. Это позволяет узнать, у какого
    хостинг-провайдера владелец домена разместил свой сайт, поскольку, как правило, в этих строках отображаются записи хостера.
  • ВВ поле «state» вы увидите актуальный статус домена.
  • В случае если домен был зарегистрирован на физическое лицо, сервис Whois покажет в строке
    «person» данные об администраторе, однако в ряде доменных зон они могут быть скрыты. В этом
    случае вместо имени владельца в строке «person» вы увидите запись «Private Person».
  • Если доменом владеет юридическое лицо, вместо записи «person» вы увидите строку «org», где
    отобразятся данные об этой организации.
  • Поле «registrar» показывает имя компании-регистратора, в которой был зарегистрирован данный домен.
  • Поле «created» содержит сведения о дате регистрации доменного имени. Выяснив возраст домена,
    можно выявить мошеннические сайты-однодневки. Проверить сайт имеет смысл, если вам прислали
    e-mail с какой-либо подозрительной ссылкой либо в случае, когда вы зашли на вызывающий у вас
    сомнения веб-ресурс. Сайт, созданный недавно, вполне может оказаться мошенническим ресурсом.
  • Поле «paid-till» показывает, когда закончится срок регистрации домена.
  • Из строки «free-date» вы узнаете, когда этот адрес окажется свободен, если владелец не станет его продлевать.

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

Главная
Whois сервис — информация о доменах и IP

Информация о домене, регистраторе (объекты RIPN) и проверка работоспособности сайта

Whois — проверка домена

Whois можно применять в тех случаях, когда нужно быстро уточнить, занят ли домен или свободен. Если по результатам проверки Whois сервисом не появляется никаких сведений о конкретном сайте, то это означает, что доменное имя пока никем не занято. Свободный домен можно зарегистрировать на свое имя. Это очень удобно для бизнеса, так как удачные имена домена очень часто регистрируют заранее, чтобы занять свободный адрес до того, как на нём появится сайт.

Если же Whois сервис дает информацию о домене, можно узнать дату его регистрации. Данные о дате регистрации будут находиться в поле created. Их можно использовать с пользой в период подготовки и совершения торговой сделки, при рассмотрении бизнес-партнеров и всестороннего анализа информации о доменном имени, находящемся в свободном доступе. К примеру, таким образом можно избежать контакта со злоумышленниками, которые активно создают «однодневные» сайты и выставляют их на продажу под видом настоящих магазинов. Узнав настоящий возраст домена, можно отказаться от сомнительной сделки.

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

Правила пользования Whois IP сервисом

Чтобы проверить домен, используя Whois, необходимо скопировать адрес ресурса и вставить в окно проверки или ввести вручную. Whois выведет на экран актуальные данные о сайте. Сведения об истории домена могут различаться. Такие ситуации возникают не по вине протокола Whois, а из-за владельцев сайтов, которые применяют разные систем регистрации и разных доменных зон.

Основные параметры, которые можно узнать, используя сервис Whois:

  • Domain Name Servers. Эти данные дают возможность определить хостинг-провайдер домена.
  • State. Информация о точном статусе доменного имени.
  • Person. Персональная информация об администраторе, если он представлен физическим лицом.
  • Org. Персональные данные администратора, который является юридическим лицом.
  • Registrar. Информация о компании, выполнившей регистрацию доменного имени.
  • Created. Точная дата, которая проставляется в момент регистрации домена.
  • Paid-til. Срок окончания регистрации, после которого можно будет купить домен.
  • Free-til. Информация о дате, после которой домен снова станет свободным.

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

Инструмент позволяет проверить наличие в DNS PTR-записи и правильность ее настройки.

Если PTR-запись есть, она совпадает с именем домена, от имени которого пришло письмо (проверяется совпадение имени из обращения HELO (EHLO) почтового сервера-отправителя), проверка “PTR-check” будет пройдена и по этому критерию письмо будет признано НЕ спамом.

PTR-запись надо прописывать, если вы используете свой виртуальный или выделенный почтовый сервер (в дата-центре или прямо в офисе). Если вы используете услуги почтового хостинга (на яндексе, гугле, мейле, и прочих хостингах предлагающих почту для домена), то PTR-запись вносить не надо.

  • хостинг-провайдер — если почтовый сервер размещается в дата-центре у хостинг-провайдера.
  • интернет-провайдер — если почтовый сервер размещается в офисе.

Введите в поле:

Как проверить письма на СПАМ в Mail-tester?

Очень часто перед администратором встает необходимость проверить работу почтового сервера по протоколу SMTP, как своего, так и чужого. Обычно это связано с проблемами отправки или получения почты и следует не только убедиться в доступности сервера, но и понять, что происходит с письмом дальше. Несмотря на то, что существуют различные сервисы для диагностики почтовых систем, лучше всего проверить работу сервера подключившись к нему через Telnet и отправив письмо при помощи SMTP-команд, получив необходимую информацию, что называется «из первых рук».

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

Прежде всего сразу следует выяснить какой узел в указанном домене отвечает за прием почты, это следует сделать даже если вы знаете точный адрес этого сервера, так как позволит выявить возможные ошибки при настройке DNS. Для этого мы будем использовать утилиту nslookup, в Windows она входит в штатный комплект поставки, а в Linux вам возможно потребуется установить пакет dnsutils.

Для получения записей MX-хостов узла (т.е. серверов, принимающих почту) выполним:

nslookup -type=mx host31.ru

В качестве ответа вы должны получить имя одного или нескольких серверов.

Как проверить письма на СПАМ в Mail-tester?

Прежде всего запустим самого клиента:

в ответ мы увидим строку приглашения, куда введем строку соединения с сервером, обычно используется порт 25, но могут также быть 465 или 587:

OPEN mx.yandex.net 25

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

Как проверить письма на СПАМ в Mail-tester?

Обратите внимание, что оно отличается от адреса, к которому мы подключались. Это связано с тем, что почту могут обслуживать несколько серверов и при обращении к домену mx.yandex.net каждый раз будет выдаваться разный адрес, для распределения нагрузки между серверами. В этом несложно убедиться, выполнив еще раз команду nslookup, без аргументов она сообщит нам А-записи, которые соответствуют адресам серверов.

Читайте также:  Веб-хостинг «Надежное и безопасное ООО» | Исключительные услуги веб-хостинга

После того как мы подключились к серверу нужно отправить приветствие, которое будет содержать полное доменное имя клиента (либо адрес, если клиент не имеет доменного имени):

На приветствие сервер отвечает кодом 250 OK и сообщает поддерживаемые SMTP-расширения, это означает что сервер готов к получению почты.

Для начала почтовой сессии введите команду:

Теперь укажем получателя:

Также мы можем попросить сервер отправить нам отчет о доставке или невозможности это сделать, для этого добавим в команду необязательные параметры:

Как проверить письма на СПАМ в Mail-tester?

Для этого введем команду:

В ответ мы получим сообщение с кодом 354, которое разрешит нам ввод письма, которое следует закончить точкой с новой строки.

В первую очередь следует указать тему:

Затем вводим пустую строку, по правилам тему письма следует отделять от тела пустой строкой, и далее пишем текст сообщения. Количество символов и строк не ограничено, главное — не превысить допустимый размер письма. Закончив, ставим точку в новой строке и нажимаем Enter.

TEST TEST TEST.

После чего сервер выполнит попытку отправки нашего письма и сообщит нам результат.

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

Как проверить письма на СПАМ в Mail-tester?

Еще одна часто встречающаяся ситуация — это технология серых списков. Ее суть заключается в том, что если отправитель первый раз присылает почту и в его отношении есть некоторые сомнения, то данные о нем вносятся в серый список, а ему выдается сообщение о временной недоступности сервера. Смысл такого поведения заключается в том, что нормальный сервер повторит отправку, в то время как спамерские скрипты этого обычно не делают. Кроме того, согласно требованиям протокола SMTP, повторную отправку следует производить не ранее, чем через полчаса.

Для проверки мы отправили сообщение с подделанным отправителем и сразу же получили ошибку 451 4.7.1 Sorry, the service is currently unavailable. Please come back later.

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

Для окончания сессии с сервером введите команду

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

Test SMTP authentication, send an email, and troubleshoot Email issues in real-time with an SMTP tester.

SMTP Test Tool — Free SMTP Checker

Use the SMTP checker to check your SMTP server’s health status. The tool connects to your SMTP server & then sends an email also.

What is an SMTP?

Before performing the SMTP test with an SMTP tester, you must get to know what is SMTP and how does it work?

SMTP stands for Simple Mail Transfer Protocol. The protocol consists of commands that authenticate and direct email transfer. Commonly, SMTP is linked with IMAP or POP3. However, SMTP is the protocol for sending emails, whereas IMAP and POP3 are the protocols for retrieving or receiving emails. So in other words, SMTP is a protocol for sending emails to people.

For example, when you send an email using an email client:

  • The email travels from your device to the email server, also called the SMTP server (that server is already configured in your email client).
  • Your SMTP server then sends the message to your recipient’s email server using SMTP protocol.
  • Then the email stays on the recipient’s server until the recipient logs in to their email account and downloads the emails using IMAP or POP3.

Here we assume the recipient’s email address is correctly spelled and still exists. But if it is misspelled and does not exist, you will receive a mail delivery failure message in your inbox.

Why use the SMTP server test tool?

So what is the solution?

You must address the root problems related to your outbound emails. And SMTP test tool is the solution to that problem.

How the SMTP tester helps in checking your SMTP configuration by sending test mail from that SMTP host?

  • Enter the host or IP address of your SMTP server.
  • Enter the port. The default port is 25. However, SMTP servers use many custom ports.
  • Enter the sender’s email address.
  • Enter the receiver’s email address. The SMTP tester will send the test mail to that address.
  • Check for «use Secured Connection» if the SMTP server needs a secure connection (SSL, TSL).
  • Check for «use authentication» if the SMTP server needs this.
  • Hit the «Test SMTP» button to perform the SMTP test.

Диагностика почтовых протоколов

Время на прочтение

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

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

1. Введение
2. Примеры сессий
3. Проверка авторизации на сервере (LOGIN, PLAIN, CRAM-MD5), Base64
4. Проверка шифрования SSL/TLS
5. Анализ почтового трафика при помощи tshark. Расшифровка SSL/TLS
6. Ссылки на материалы

Как проверить письма на СПАМ в Mail-tester?

Введение

В сети достаточно материалов по отдельным пунктам, но все разбросано по разным местам и, когда возникает необходимость выполнить ту или иную операцию, приходится по разным ресурсам вспоминать нюансы авторизации, способы быстрой кодировки в base64, ключи к openssl и tshark. Здесь все собрано вместе, а также добавлена информация о дешифровке SSL/TLS трафика.

Обозначения

$ — приглашение в обычном шелле, указанная после него команда выполняется от обычного пользователя

# — приглашение в рутовом шелле, указанная после него команда выполняется с правами администратора

## — строка с комментарием

Запрос клиента в почтовых сессиях выделен жирным шрифтом.

Почтовые порты

Основные порты, использующиеся в работе почтовых серверов по RFC (документы, регламентирующие работу сети интернет и ее основных компонентов):

  • 25/tcp SMTP (стандартный порт)
  • 465/tcp SMTPS (устаревший)
  • 587/tcp submission (порт для обслуживания клиентов)
POP3
  • 110/tcp POP3 (стандартный порт)
  • 995/tcp POP3S (порт с предварительной установкой SSL/TLS соединения)
IMAP
  • 143/tcp IMAP (стандартный порт)
  • 993/tcp IMAPS (порт с предварительной установкой SSL/TLS соединения)

Здесь перечислены только основные, помимо них разные реализации серверов могут использовать другие порты для своих служебных целей, для пользовательского и административного веб-интерфейса, общения узлов кластера и т.д.

Используемые и рекомендуемые утилиты

В статье используются telnet, openssl, tshark. Для наглядности взаимодействия сервера и клиента, использования команд протокола. На регулярной основе и для автоматизации каких-то процессов можно использовать утилиты, которые скрывают от нас все эти детали, но которые проще включаются в скрипты. Из таких утилит могу порекомендовать скрипт на perl smtp-cli (http://www.logix.cz/michal/devel/smtp-cli/), обладающий широкой функциональностью, в том числе и возможностью SMTP авторизации. Также рекомендую утилиту imtest из состава cyrus-clients, которой можно протестировать IMAP протокол. smtp-sink, утилиту из состава postfix, которая эмулирует почтовый сервер. С ее помощью можно отлаживать работу почтового клиента в том случае, если нет ни доступа к существующим почтовым серверам, ни возможности включения в настройках клиента подробного журналирования.

При помощи nmap можно быстро проверить, доступны ли порты снаружи, то есть, слушаются ли они программами и не закрыты ли при этом файерволом:

По этому выводу видно, что на сервере доступны SMTP/IMAP порты, но недоступны порты для
POP3 протокола.

Через netstat можно посмотреть не только прослушиваемые и используемые порты, как часто предполагают, но и процессы, связанные с этими портами. Вот вывод netstat для этого же почтового сервера:

# netstat -lnpvut (и -anpvut, если необходимо посмотреть текущие соединения по портам)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 477/dovecot
tcp 0 0 0.0.0.0:2000 0.0.0.0:* LISTEN 477/dovecot
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 603/master
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 430/unbound
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 10042/sshd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 603/master
tcp 0 0 0.0.0.0:1025 0.0.0.0:* LISTEN 603/master
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 477/dovecot
tcp 0 0 127.0.0.1:1953 0.0.0.0:* LISTEN 430/unbound
tcp 0 0 127.0.0.1:1026 0.0.0.0:* LISTEN 603/master
tcp 0 0 127.0.0.1:2025 0.0.0.0:* LISTEN 603/master
tcp 0 0 :::22 :::* LISTEN 10042/sshd
udp 0 0 127.0.0.1:53 0.0.0.0:* 430/unbound

Читайте также:  Ограничение трафика mikrotik

В этом примере в качестве SMTP сервера используется postfix и dovecot в качестве IMAP. POP3 в списке отсутствует, так как в настройках dovecot этот протокол отключен, как неиспользуемый.

В современных дистрибутивах пакет net-tools уже часто не ставится, считается устаревшим. В качестве замены испольуется утилита ss из состава iproute. Это более узко заточенная и в свой области, вероятно, более функциональная утилита с возможностью настройки фильтров как в tcpdump/tshark. Но мне, например, не нравится, как у нее отформатирован вывод информации. Чтобы чуть это исправить, можно использовать sed:

*) для удобства использования можно поместить следующую bash функцию в ~/.bashrc

Примеры сессий

Здесь приведены примеры сессий по SMTP/IMAP/POP3 протоколам. Для соединения используется клиент телнет, который либо в системе установлен по-умолчанию, либо устанавливается из репозиториев:

Debian/Ubuntu

# apt-cache search telnet
# apt-get install telnet

RHEL/CentOS/Fedora

# yum search telnet
# yum install telnet

Вводимые команды в тексте выделены жирным шрифтом.

250 2.1.0 Ok

250 2.1.5 Ok

250 2.0.0 Ok: queued as 1CF5FC0AAE
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

001 OK completed

* CAPABILITY IMAP4 IMAP4REV1 ACL NAMESPACE UIDPLUS IDLE LITERAL+ QUOTA ID MULTIAPPEND LISTEXT CHILDREN BINARY LOGIN-REFERRALS STARTTLS AUTH=LOGIN AUTH=PLAIN AUTH=CRAM-MD5 AUTH=DIGEST-MD5 AUTH=MSN
002 OK completed

003 SELECT Inbox

004 FETCH 7214 body

* BYE IMAP closing connection
005 OK completed
Connection closed by foreign host.

+OK please send the PASS

+OK 7214 messages (174404489 bytes)

+OK marked deleted

+OK POP3 Server connection closed
Connection closed by foreign host.

Проверка авторизации на сервере

Существующие способы авторизации: LOGIN, PLAIN, CRAM-MD5, DIGEST-MD5, GSSAPI, NTLM/MSN, EXTERNAL. Перечень их еще шире, мы же рассмотрим только наиболее распространенные, а именно LOGIN, PLAIN и CRAM-MD5.

В первую очередь необходимо узнать список методов, поддерживаемых сервером. Для каждого из почтовых протоколов есть команды, позволяющие получить эти данные наряду с другой информацией о доступных расширениях протокола. Обратите внимание, что в зависимости от настроек почтового сервера, LOGIN и PLAIN, передающие данные в открытом виде, могут быть недоступны без предварительной инициализации шифрования через SSL/TLS

Итак, вывод доступных способов авторизации:

Протокол SMTP

Какие-то почтовые сервера могут выводить эту информацию в «приветствии сервера», например dovecot.

* CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS XEXEC QUOTA STARTTLS AUTH=PLAIN AUTH=LOGIN AUTH=DIGEST-MD5 AUTH=CRAM-MD5
001 OK Capability completed.

* BYE Logging out
002 OK Logout completed.
Connection closed by foreign host.

Протокол POP3

+OK methods supported:
LOGIN
PLAIN
.

+OK POP3 server at signing off
Connection closed by foreign host.

Примеры авторизации и используемый формат

250-mail.server.net Hello client.server.net
250-AUTH LOGIN PLAIN CRAM-MD5 DIGEST-MD5 GSSAPI
250-ENHANCEDSTATUSCODES
250 STARTTLS

235 2.7.0 Authentication successful

PLAIN

AUTH PLAIN dGVzdAB0ZXN0AHRlc3RwYXNz

CRAM-MD5

В отличии от предыдущих способов авторизации CRAM-MD5 пароль не передается в открытом виде, вместо этого используется сравнение хэшей. Ручная проверка этого способа авторизации может быть проблемой, так как нужно будет выполнить несколько преобразований, а время на введение команд ограничено. Для упрощения процесса ниже приведен простой perl скрипт, который принимает на вход имя пользователя, пароль и «кодовое слово» (выдаваемое сервером), и конвертирует их в строку в base64 формате.

Для скрипта понадобится дополнительный модуль perl «Digest-HMAC». В Debian/Ubuntu его можно найти и установить следующим образом:

В тех дистрибутивах, в чьих репозиториях нет этого пакета (что маловероятно), можно использовать установку модуля из CPAN.

Скрипт и пример сессии с его использованием:

## кодовое слово, выдаваемое сервером:
PDMzMjE2NDkzMTA1OTExNDQuMTQxNDc5NTExOUBtYWlsLnNlcnZlci5uZXQ+

221 2.0.0 Bye

# ./md5cram.pl test testpass PDMzMjE2NDkzMTA1OTExNDQuMTQxNDc5NTExOUBtYWlsLnNlcnZlci5uZXQ+
dGVzdCAxNTU0YTQwNzA1NTgxZjUwZmI1MmNjZDhlZDhjM2EyYg==

01 AUTHENTICATE CRAM-MD5

* BYE Logging out
02 OK Logout completed.
Connection closed by foreign host.

# ./md5cram.pl test testpass PDgxOTAyMjA2NTYwNzcyMzEuMTQxNDc5NzA3MkBtYWlsLnNlcnZlci5uZXQ+
dGVzdCA1YTZlNjYwMDlmZGJlZWNjYWRlNDY5M2FlMjU5YTA2ZQ==

Cпособы конвертации текста в и из base64

Авторизация предполагает обмен строками, закодированными в base64. Для Linux cуществует много утилит для конвертации в base64 и обратно. Мы укажем несколько, включая способ их запуска. Для Windows можно использовать кроссплатформенные perl, python, php, по ним также будут привидены примеры.

Утилита (пакет)

Чтобы раскодировать, потребуется добавить первую и последнюю строку. Это можно сделать, например, следующими способами;

$ uudecode<<EOF
begin-base64 644 —
dGVzdAB0ZXN0AHRlc3RwYXNz
====
EOF

Mmencode (xemacs21-bin)

Модуль MMIME::Base64 стандартно идет в комплекте.

$ perl -MMIME::Base64 -e ‘print encode_base64(«testtesttestpass»)’
dGVzdAB0ZXN0AHRlc3RwYXNz
$ perl -MMIME::Base64 -e ‘print decode_base64(«dGVzdAB0ZXN0AHRlc3RwYXNz»)’
testtesttestpass

Openssl (openssl)

Для шифрования трафика в почтовых протоколах между клиентом и сервером используется SSL/TLS в двух вариантах. Использование специальных портов, при соединении с которым сначала осуществляется установка SSL/TLS, после чего уже поверх него идет обычный почтовый трафик. Этот метод, кстати, признан устаревшим (deprecated), относительно SMTP точно. Второй вариант, более предпочтительный — соединение с обычным портом для сервиса и переход сессии в зашифрованный вид с использованием расширения STARTTLS.

Для проверки работы почтового сервера поверх SSL/TLS можно использовать утилиту openssl, дальше действуя, как при обычной сессии через telnet.

$ openssl s_client -starttls smtp -crlf -connect mail.truevds.ru:25
$ openssl s_client -starttls smtp -crlf -connect mail.truevds.ru:587
$ openssl s_client -crlf -connect mail.truevds.ru:465

$ openssl s_client -connect mail.truevds.ru:995
$ openssl s_client -starttls pop3 -crlf -connect mail.truevds.ru:110

$ openssl s_client -crlf -connect mail.truevds.ru:993
$ openssl s_client -starttls imap -crlf -connect mail.truevds.ru:143

Можно явным образом указать, что использовать для шифрования, ssl3 или tls1, а также конкретные алгоритмы:

$ openssl s_client -ssl3 -starttls smtp -crlf -connect mail.truevds.ru:25

Посмотреть перечень поддерживаемых протоколов в вашей версии openssl:

$ openssl ciphers -ssl3
$ openssl ciphers -tls1

Ниже, в главе про tshark, эта возможность будет использована в практических целях.

Анализ почтового трафика при помощи tshark. Расшифровка SSL/TLS

При необходимости более сложной диагностики в том случае, когда журналы не дают достаточно информации о проблемах в работе сервера или клиента, можно использовать tcpdump/wireshark для анализа непосредственно самой сессии между клиентом и сервером. Как в реальном времени, так и сохранив дамп сессии для последующего анализа. Для быстрого анализа удобно использовать консольный вариант wireshark — tshark. Для его работы потребуются права root.

Tshark предоставляет информацию в понятном виде и в использовании довольно прост.

# tshark -i eth0 -f «port 25» -R smtp

# tshark -i eth0 -f «port 143» -R imap

# tshark -i eth0 -f «port 110» -R pop

# tcpdump -s0 -nn -i eth0 -w smtps.pcap port 465 and host HOSTIP
# dumpcap -s0 -i eth0 -w smtp.pcap -f ‘port 25 and host HOSTIP’

# tshark -n -r smtp.pcap -R smtp

Во многих случаях в почтовых протоколах активно используется шифрование и таким способом сессию уже не посмотреть. Тем не менее, этот вопрос в целом также решаем. tshark может дешифровать SSL/TLS трафик «со стороны сервера» при наличии доступа к приватному ключу сервера (для клиента есть вариант с использованием Master-Key, подробнее wiki.wireshark.org/SSL). К счастью или к сожалению, wireshark с приватным ключем может дешифровать не все использвуемые алгоритмы. Например DHE-* EXP-*,EDH-* не работают. Возможно, какие-то из этих алгоритмов добавлены в более поздних версиях программы.

В процессе тестирования использовалась утилита openssl с явным указанием при соединении с конкретных алгоритмов. Проверенные варианты, с которыми дешифровка трафика прошла успешно:

  • ssl3: RC4-SHA, RC4-MD5, DES-CBC-SHA, AES128-SHA
  • tls1: RC4-MD5, AES256-SHA, DES-CBC-SHA, DES-CBC3-SHA

# openssl ciphers -ssl3
# openssl ciphers -tls1

Для анализа реальной сессии можно отключить в конфигурации почтового сервера (только на время тестирования!) всех алгоритмов, кроме заведомо рабочих.

Tshark запускается на сервере, там, где есть ключ, а клиент openssl на локальном компьютере. Но, это, конечно, необязательно, вполне можно tshark запускать на клиенте в другой консоли, просто это потребует копирования приватного ключа на локальный компьютер. А openssl можно запускать в screen в соседнем с tshark окне.

Здесь 94.127.66.53 — ip адрес сервера, с которым соединяется клиент, /etc/pki/tls/private/server.key — путь до приватного ключа сервера. Приватный ключ, как правило, размещается в /etc/pki или /etc/ssl, в зависимости от сервера. Эту информацию можно посмотреть в настройках самого почтового сервера.

Пример для postfix:

$ grep key_file /etc/postfix/main.cf
smtpd_tls_key_file = /etc/pki/tls/private/server.key
smtp_tls_key_file = /etc/pki/tls/private/server.key

Для портов, где используется starttls вместо порта в официальной документации рекомендуется использовать start_tls. Например, ssl.keys_list:94.127.66.53,start_tls,smtp,/etc/pki/tls/private/server.key вместо ssl.keys_list:94.127.66.53,25,smtp,/etc/pki/tls/private/server.key. Но у меня этот вариант не сработал, показывался трафик только до инициализации шифрования.

Для отладки процесса SSL/TLS дешифровки используется опция -o «ssl.debug_file: /tmp/debug.log»

Пример вывода дешифрованного трафика:

Ссылки на материалы

Удачи в решении почтовых проблем!

Как проверить письма на СПАМ в Mail-tester?

Оцените статью
Хостинги