Анализ логов при блокировке за спам
Для предотвращения попадания наших IP-адресов в спам-листы мы используем систему мониторинга и автоматической блокировки подозрительных рассылок. При обнаружении подобной рассылки почтовые функции аккаунта будут заблокированы, а на ваш контактный ящик придет соответствующее уведомление.
Помимо сообщения о факте блокировки, в уведомлении вы найдете логи отправки qmail
и логи доступа access_log
, с помощью которых можно определить источник проблемной рассылки. Если по каким-то причинам вам не удается скачать логи, свяжитесь с нами.
В статье ниже мы рассмотрим, на что нужно обратить внимание в логах и какие меры необходимо предпринять в конкретном случае.
После того, как проблема будет устранена, сообщите в нашу поддержку о принятых мерах, чтобы снять блокировку.
Чтение лога
Дополнительную информацию о том, как разбирать логи qmail
и access_log
, можно найти в инструкции Чтение логов.
В рамках данной статьи еще раз отметим, что неудачные отправки будут помечены в логе qmail
двумя звездочками (**
):
Jun 25 01:23:45 vh84 splogger[19943]: 1joDo0-0005Bd-LB ** mail@hotmail.fr R=dnslookup T=remote_smtp: SMTP error from remote mail server after RCPT TO:<titus121@hotmail.fr>: host eur.olc.protection.outlook.com [104.47.9.33]: 550 5.5.0 Requested action not taken: mailbox unavailable (S2017062302).
Определение причины блокировки
Существует несколько причин, из-за которых ваша рассылка может быть определена как нежелательная и заблокирована:
- Письма отклоняются как спам
- Письма не проходят проверку DMARC
- Рассылка выполняется на несуществующие почтовые ящики
- IP-адрес отправителя находится в черном списке
Ниже мы приведем примеры записей в логах для каждой из этих причин и рассмотрим, что нужно сделать, чтобы устранить проблему.
Письма отклоняются как спам
В этом случае в логе будут встречаться ошибки вида:
550 spam reject;
554 5.7.1 Message rejected under suspicion of SPAM
Сообщение означает, что принимающий сервер отклонил письмо, заподозрив, что это спам.
Пример подобного лога:
Jun 25 01:24:53 vh256 splogger[10713]: 1joDp7-0002mn-2s X-PHP-Originating-Script: "2157:class-phpmailer.php"
Jun 25 01:24:53 vh256 splogger[10713]: 1joDp7-0002mn-2s <=user@server.timeweb.ru U=user P=local S=4666 id=e2d6cb8a510412a2c1d736c19c5cce2e@goodmanexpert.com
Jun 25 01:24:53 vh256 splogger[10716]: 1joDp7-0002mn-2s **name@mail.ru R=dnslookup T=remote_smtp H=mxs.mail.ru [94.100.180.31] X=TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256 CV=yes: SMTP error from remote mail server after end of data: 550 spam message rejected. Please visit http://help.mail.ru/notspam-support/id?c=2VFQCmsIj_XndmnnBFTa1ne5-RHRbW_DSzxt0X6mKocNAAAAov4AACD1dCY~ or report details to abuse@corp.mail.ru. Error code: 0A5051D9F58F086BE76976E7D6DA540411F9B977C36F6DD1D16D3C4B872AA67E. ID: 0000000D0000FEA22674F52
Для решения вопроса вам необходимо связаться с технической поддержкой сервера получателя. Способ связи с ними, как правило, указан в самом логе.
Например, в логе, который мы привели, указаны ссылка и e-mail для обращений, а также код ошибки и ID сообщения, которые будет нужно предоставить поддержке:
Please visit http://help.mail.ru/notspam-support/id?c=2VFQCmsIj_XndmnnBFTa1ne5-RHRbW_DSzxt0X6mKocNAAAAov4AACD1dCY~ or report details to abuse@corp.mail.ru. Error code: 0A5051D9F58F086BE76976E7D6DA540411F9B977C36F6DD1D16D3C4B872AA67E. ID: 0000000D0000FEA22674F52
Письма не проходят проверку DMARC
Письмо отвергается почтовым сервером получателя, так как не проходит проверку DMARC, используемую почтовыми сервисами для борьбы со спамом и фишингом.
Пример лога:
Jun 25 14:27:20 vh256 splogger[7270]: 1joQ2K-0001tG-3U X-PHP-Originating-Script: "1253:sendmail.php"
Jun 25 14:27:20 vh256 splogger[7270]: 1joQ2K-0001tG-3U <= user@server.timeweb.ru U=user P=local S=1572
Jun 25 14:27:20 vh256 splogger[7274]: 1joQ2K-0001tG-3U ** email@mail.ru R=dnslookup T=remote_smtp H=mxs.mail.ru [94.100.180.31] X=TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256 CV=yes: SMTP error from remote mail server after end of data: 550 5.7.1 This message was not accepted due to domain (mail.ru) owner DMARC policy (RFC 7489) https://help.mail.ru/mail-help/postmaster/dmarc
DMARC проверяет, совпадает ли адрес отправителя, указанный в письме, с фактическим отправителем сообщения.
Чаще всего причиной отклонения писем является наличие в заголовках From
или envelope-from
домена известных почтовых сервисов. В примере выше это mail.ru, как видно из строки:
This message was not accepted due to domain (mail.ru) owner DMARC policy
Для решения проблемы рекомендуем указывать в качестве отправителя письма в настройках сайта ящик на домене, делегированном на наши NS-серверы. В этом случае проблем с отправкой не будет т.к. все нужные записи присваиваются автоматически.
Альтернативным решением проблемы может стать использование SMTP-авторизации при отправке почты. Для перевода почтовых служб на SMTP-отправку вы можете воспользоваться нашей инструкцией.
Рассылка выполняется на несуществующие почтовые ящики
В этом случае в логах могут встречаться ошибки с формулировками, сообщающими, что такой ящик или пользователь отсутствует.
Примеры ошибок:
User not found;
User unknown;
No such user here;
account unknown;
Address rejected;
non-existent hosts;
Unrouteable address;
Invalid mailbox;
Mailbox unavailable;
Invalid recipient;
DNS: no such domain;
Recipient address rejected;
Bad destination mailbox address;
Host or domain name not found;
The email account that you tried to reach does not exist.
Пример такого лога:
Jun 25 01:23:44 vh84 splogger[19941]: 1joDo0-0005Bd-LB X-PHP-Originating-Script: "2917:tools.php"
Jun 25 01:23:44 vh84 splogger[19941]: 1joDo0-0005Bd-LB <=user@server.timeweb.ru U=user P=local S=925
Jun 25 01:23:45 vh84 splogger[19943]: 1joDo0-0005Bd-LB ** mail@hotmail.fr R=dnslookup T=remote_smtp: SMTP error from remote mail server after RCPT TO:<titus121@hotmail.fr>: host eur.olc.protection.outlook.com [104.47.9.33]: 550 5.5.0 Requested action not taken: mailbox unavailable (S2017062302).
Как правило, причинами рассылки на несуществующие ящики являются:
- некорректные контакты в базе клиентов, по которой шла рассылка;
- незащищенная форма обратной связи на сайте;
- вредоносные скрипты на сайте.
Рассылка по базе клиентов
Если рассылка была выполнена по вашей базе клиентов, необходимо удалить из нее неактуальные почтовые адреса. Проверить адреса на валидность можно с помощью специальных сервисов в сети, например, https://2ip.ru/mail-checker/.
Рассылка через форму на сайте
Для выяснения источника рассылки (то есть, определения, с какого именно сайта она выполнялась) вы можете сопоставить неудачные отправки (отмеченные **
в логе отправки qmail
) с временем POST-запросов в логе access_log
.
Далее необходимо установить защиту для отправки писем с форм сайта (обратная связь, регистрация), например, CAPTCHA.
Если CAPTCHA уже установлена, рекомендуем проверить сайты на наличие вредоносного кода. Эту услугу можно заказать у сторонних специалистов.
Рассылка через вредоносные скрипты
Подозрительные рассылки могут быть результатом взлома вашего сайта и заражения его вредоносным кодом.
В первую очередь необходимо проверить, какой скрипт выполняет отправку. Он будет указан в логе в строке X-PHP-Originating-Script:
в виде uid:имя_скрипта
(uid
— это ID пользователя на сервере).
Например, в логе ниже имя скрипта — tools.php
:
Aug 29 15:10:03 vh188 splogger[14344]: 1i3JFb-0003jM-Pk X-PHP-Originating-Script: "1254:tools.php"
Aug 29 15:10:03 vh188 splogger[14344]: 1i3JFb-0003jM-Pk <=user@vh188.timeweb.ru U=user P=local S=1011
Aug 29 15:10:03 vh188 splogger[14354]: 1i3JFb-0003jM-Pk ** sahjambox@gmail.com R=dnslookup T=remote_smtp: SMTP error from remote mail server after RCPT TO:<sahjambox@gmail.com>: host gmail-smtp-in.l.google.com [2a00:1450:4010:c0e::1a]: 550-5.1.1 The email account that you tried to reach does not exist. Please try\n550-5.1.1 double-checking the recipient's email address for typos or\n550-5.1.1 unnecessary spaces. Learn more at\n550 5.1.1 https://support.google.com/mail/?p=NoSuchUser r4si1728450ljg.165 - gsmtp
Выполнить поиск данного скрипта вы можете с помощью команды ниже, подключившись к своему аккаунту по SSH:
find ~/ -type f -name "имя_скрипта"
Например:
find ~/ -type f -name "tools.php"
Стоит обратить внимание на название скрипта, который инициирует рассылку.
- Если название является стандартным, к примеру,
tools.php
,phpmailer.php
,sendmail.php
,mail.php
,class-phpmailer.php
и другие, то, скорее всего, причиной рассылки были неактуальные адреса или незащищенная форма на сайте. - Если скрипт имеет нестандартное название, например
12435.php
,dgffgf.php
и так далее, то стоит провести проверку файлов сайта на вирусы, так как, скорее всего, произошел взлом вашего сайта. - Если же название отсутствует (
X-PHP-Originating-Script: ""
), значит, отправка осуществлялась cron-задачей. Ее тоже нужно проверить. Для этого можно обратиться в службу поддержки. После рекомендуем обязательно проверить файлы сайта на вирусы.
IP-адрес отправителя находится в черном списке
В этом случае в логе будут встречаться ошибки вида:
Access denied, banned sending IP
Пример лога:
Jul 12 01:23:35 vh180 splogger[973]: 1juNuB-0000Fh-Kv X-PHP-Originating-Script: "1397:class-phpmailer.php"
Jul 12 01:23:35 vh180 splogger[973]: 1juNuB-0000Fh-Kv <= user@vh180.timeweb.ru U=co22556 P=local S=32765 id=26c0ee2383eeaa08a8a77552e6eec23e@procollaboration.ru
Jul 12 01:23:37 vh180 splogger[975]: 1juNuB-0000Fh-Kv ** mail@mail.com R=dnslookup T=remote_smtp: SMTP error from remote mail server after RCPT TO:<amy@advancecnc.com>: host advancecnc-com.mail.protection.outlook.com [104.47.59.138]: 550 5.7.606 Access denied, banned sending IP [92.53.96.251]. To request removal from this list please visit https://sender.office.com/ and follow the directions. For more information please go to http://go.microsoft.com/fwlink/?LinkID=526655 AS(1430) [DM6NAM12FT015.eop-nam12.prod.protection.outlook.com]
Если вы обнаружили такую ошибку, это означает, что IP-адрес сервера виртуального хостинга находится в спам-листе. Пожалуйста, сообщите об этом в нашу техническую поддержку — мы примем необходимые меры, чтобы вывести адрес из черного списка.