Я заметил поток спама, связанный с тем же диапазоном IP-адресов.
Все спам-сообщения имеют разный текст HTML (английский, но бессмысленный) и несколько встроенных изображений (которые я блокирую), но на самом деле явно генерируются машиной, и внутреннее форматирование очень похоже. Кстати, все ссылки и внешние картинки заблокированы моей почтовой программой.
Что я заметил, так это то, что все MX для адресного домена «от» находятся в небольшом диапазоне IP-адресов, все они находятся на одной и той же службе VPS «Node Outlet India LLP». Итак, кто-то использует эту службу для размещения фермы спам-ботов.
Я хотел бы создать правило spamassassin, которое говорит что-то вроде:
Я использую прокси spampd и spamassassin, работающие в Linux.
Чтобы уточнить, вот пример: спам-письмо от buymystuff@stufftobuy.com
Исходное электронное письмо проходит SPF, DMARC и подписано DKIM - все законно, но это спам. Только по этим проверкам он набирает очки.
Единственное, что рассылает спам - это контент. В основном это HTML и ссылки вне домена, встроенные изображения и небольшой текст, только благодаря этим функциям он вообще имеет рейтинг спама, но не большой. Эти электронные письма явно предназначены для того, чтобы избежать мер по борьбе со спамом.
Я выполняю поиск MX RR DNS на сайте stufftobuy.com, и вы получаете mail.stufftobuy.com, выполняю поиск A RR DNS на mail.stufftobuy.com, и он возвращает IPV4 с одного из нескольких адресов, которые бушуют, что все из домена MX записи указывают на.
Мне нужно провести дополнительный анализ, но похоже, что это всего лишь две серверные фермы, одна в Индии, а другая в Турции.
Из 1000 писем один IPV4 может появиться только дважды.
Я не могу просто подсчитать или заблокировать stufftobuy.com, так как это фактическое доменное имя можно использовать только один раз. Следующее сообщение может быть от makecatvids.com или другого.
Точно так же я не могу просто слепо заблокировать тысячи IPV4 в postfix, так как это сделало бы предположение, что провайдер плохой, а не один из их клиентов.
ОБНОВЛЕНИЕ: я вижу плагин askdns существует, но я не вижу, как одно правило может влиять на другое. Одного поиска в DNS недостаточно.
Намного важнее: Убедитесь, что вы используете репутацию IP-адреса отправителя, например через Спамхаус Дзен и Список блокировки SpamCop. По умолчанию они уже включены в SpamAssassin (см. RCVD_IN_PBL
и RCVD_IN_BL_SPAMCOP_NET
), просто убедитесь, что у вас есть Mail :: SpamAssassin :: Плагин :: DNSEval правильно загружен и вы работаете с включенными сетевыми тестами (что также требуется для AskDNS).
Mail :: SpamAssassin :: Плагин :: AskDNS не может этого сделать. Вам нужно будет написать свой собственный плагин, чтобы делать именно то, что вы ищете.
Однако, возможно, использование AskDNS поможет вам приблизиться:
ifplugin Mail::SpamAssassin::Plugin::AskDNS
askdns JM_SPF_HAS_36_255 _AUTHORDOMAIN_ TXT /\sip4:36\.255\.(?:2[0-4]|3[01])\./
describe JM_SPF_HAS_36_255 From header's SPF record blesses an IP in 36.255.24.0/21
score JM_SPF_HAS_36_255 2.0
endif
Это проверяет Структура политики отправителя (SPF) запись для заголовка From домена. Предостережения:
HELO
& mail from
команды, не заголовкиv=spf1 ip4:198.51.100.21 mx a include:example.com ~all
есть проблемы: mx
и мы не можем разрешить это на IPa
или другой include:…
который может перечислить этот IPЧто касается первого пункта: запись MX относится к получение mail, поэтому я считаю список разрешенных SPF отправка хосты, чтобы быть более актуальными в общем случае, хотя я не могу говорить о вашем точном намерении.
Обновить: Вы упомянули, что этот спам DKIM-подписано. Предполагая, что все они используют один и тот же домен подписи, просто заблокируйте на основе этого (поиск в сети не требуется!):
header JM_DKIM_EVIL_EXAMPLE_COM DKIM-Signature =~ /\sd=evil\.example\.com;/
describe JM_DKIM_EVIL_EXAMPLE_COM Message has DKIM signed by evil.example.com
score JM_DKIM_EVIL_EXAMPLE_COM 2.0
Вам понадобится одно из этих правил для домена подписи (d=…
) вы найдете, а я ожидаю, что это небольшое число.
В качестве альтернативы вы можете использовать чередование регулярных выражений. Например:/\sd=(?:(?:evil|spammer)\.example\.com|bad\.example\.info);/
заблокирует d=evil.example.com;
, d=spammer.example.com;
, и d=bad.example.info;
.