Фильтрация спама в Claws Mail

logo

spam-shtorm Думаю лишним будет много говорить о том, каким великим Злом является спам и как люто он бесит в последнее время. Фильтровать спам в Claws Mail можно с помощью SpamAssassin и Bogofilter.

Речь здесь пойдёт про борьбу со спамом в почтовом клиенте Claws Mail для ОС Debian Linux, но сама конфигурация Claws Mail в ОС Debian Linux практически ничем не отличается от конфигурации для ОС Windows, а на .exe инсталлятор нажимать, думаю, слишком много ума не нужно.

Значит первым делом нам нужно установить сервер spamassassin, настроить конфиги и запустить демон/сервис spamd. С установкой в Windows, у неопытных пользователей, могут возникнуть некоторые сложности - например (https://wiki.apache.org/spamassassin/InstallingOnWindows), сборка для Windows есть, но она кажись (http://www.jam-software.com/spamassassin/) триальная/демо.

Spam Assassin под Windows можно собрать в Cygwin среде, но это отдельная песня. Поэтому, некоторым Windows-юзерам, возможно, стоит обратить внимание в сторону почтового клиента ThunderBird, где для фильтрации спама spamassassin сервер не требуется.

Начнёмс...


chu-kill-spammer

Установка и конфигурация Spam Assassin

Устанавливаем spamassassin, включаем его в конфиге (ENABLED=1), а также указываем запуск от имени debian-spamd (ака "... --username=debian-spamd --groupname=debian-spamd"):

$ apt-get install spamassassin
 
$ vi /etc/default/spamassassin
 
# Change to one to enable spamd
ENABLED=1
 
# Options
# See man spamd for possible options. The -d option is automatically added.
 
# SpamAssassin uses a preforking model, so be careful! You need to
# make sure --max-children is not set to anything higher than 5,
# unless you know what you're doing.
 
OPTIONS="--create-prefs --max-children 5 --helper-home-dir \
    --username=debian-spamd --groupname=debian-spamd"

В некоторых случаях пользователь debian-spamd может именоваться просто spamd, проверить просто:

$ less /etc/passwd|grep spam && less /etc/group|grep spam
debian-spamd:x:118:128::/var/lib/spamassassin:/bin/false
debian-spamd:x:128:

Правим основной конфиг демона spamd (local.cf):

$ vi /etc/mail/spamassassin/local.cf
 
#   Add *****SPAM***** to the Subject header of spam e-mails
#
rewrite_header Subject *****SPAM*****
 
...
 
#   Set the threshold at which a message is considered spam (default: 5.0)
#
required_score 1.0
 
...
 
#   Set headers which may provide inappropriate cues to the Bayesian
#   classifier
#
bayes_ignore_header X-Bogosity
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Status
bayes_ignore_header X-Yandex-Spam
bayes_ignore_header X-Spam
 
 
$ service spamassassin restart

required_score = 1 если сервер spamassassin работает в однопользовательской среде (домашний ПК), а не на публичном сервере с множеством юзеров. bayes_ignore_header - игнорируем оценки в заголовках письма устанавливаемые почтовым провайдером.

Запускаем spamassassin и проверяем есть ли spamd в процессах:

$ /etc/init.d/spamassassin start
Starting SpamAssassin Mail Filter Daemon: spamd.
 
$ ps aux | grep spam
root     18721  1.0  3.5  43472 35972 ?        Ss   04:48   0:04 \
    /usr/sbin/spamd --create-prefs --max-children 5 --helper-home-dir \
    --username=debian-spamd --groupname=debian-spamd -d \
    --pidfile=/var/run/spamd.pid
118      18723  0.0  3.3  43472 34628 ?        S    04:48   0:00 spamd child
118      18724  0.0  3.3  43472 34640 ?        S    04:48   0:00 spamd child

Проверяем включен ли spamassassin в автозагрузку, и если нет, то включаем:

$ service --status-all
 
$ update-rc.d spamassassin enable

Если меняем /etc/mail/spamassassin/local.cf, то делаем service spamassassin <stop|start|restart>. Полный список переменных конфигурации смотрим здесьhttps://spamassassin.apache.org/full/3.4.x/doc/Mail_SpamAssassin_Conf.html

SpamAssassin работает на стандартном порту 783:

$ netstat -lnp | grep 783
tcp        0      0 127.0.0.1:783           0.0.0.0:*               LISTEN    \
    18721/spamd.pid

Проверить работает ли spamassassin можно файломhttps://spamassassin.apache.org/gtube/gtube.txt (Test spam mail (GTUBE)), загрузив его на рабочий стол и выполнив команду:

$ spamassassin -D < ~/"Рабочий стол"/gtube.txt
...
Received: from localhost by local.localhost
    with SpamAssassin (version 3.3.2);
    Wed, 11 Mar 2015 12:23:28 +0200
From: Sender <sender@example.net>
To: Recipient <recipient@example.net>
Subject: *****SPAM***** Test spam mail (GTUBE)
Date: Wed, 23 Jul 2003 23:30:00 +0200
Message-Id: <GTUBE1.1010101@example.net>
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on local.localhost
X-Spam-Flag: YES
X-Spam-Level: **************************************************
X-Spam-Status: Yes, score=1000.0 required=5.0 tests=GTUBE,NO_RECEIVED,
    NO_RELAYS autolearn=no version=3.3.2
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----------=_550017A0.E3535748"
 
This is a multi-part message in MIME format.
 
------------=_550017A0.E3535748
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
 
Spam detection software, running on the system "local.localhost", has
identified this incoming email as possible spam.  The original message
has been attached to this so you can view it (if it isnt spam) or label
similar future email.  If you have any questions, see
@@CONTACT_ADDRESS@@ for details.
 
Content preview:  This is the GTUBE, the Generic Test for Unsolicited Bulk Email
   If your spam filter supports it, the GTUBE provides a test by which you can
   verify that the filter is installed correctly and is detecting incoming spam.
   You can send yourself a test mail containing the following string of characters
   (in upper case and with no white spaces and line breaks): [...]
 
Content analysis details:   (1000.0 points, 5.0 required)
 
 pts rule name              description
---- ---------------------- --------------------------------------------------
-0.0 NO_RELAYS              Informational: message was not relayed via SMTP
1000 GTUBE                  BODY: Generic Test for Unsolicited Bulk Email
-0.0 NO_RECEIVED            Informational: message has no Received headers
 
 
 
------------=_550017A0.E3535748
Content-Type: message/rfc822; x-spam-type=original
Content-Description: original message before SpamAssassin
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
 
Subject: Test spam mail (GTUBE)
Message-ID: <GTUBE1.1010101@example.net>
Date: Wed, 23 Jul 2003 23:30:00 +0200
From: Sender <sender@example.net>
To: Recipient <recipient@example.net>
Precedence: junk
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
 
This is the GTUBE, the
    Generic
    Test for
    Unsolicited
    Bulk
    Email
 
If your spam filter supports it, the GTUBE provides a test by which you
can verify that the filter is installed correctly and is detecting incoming
spam. You can send yourself a test mail containing the following string of
characters (in upper case and with no white spaces and line breaks):
 
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
 
You should send this test mail from an account outside of your network.
 
 
------------=_550017A0.E3535748--
 
Мар 11 12:23:28.560 [4326] dbg: plugin: Mail::SpamAssassin::Plugin::MIMEHeader=HASH(0xa6d2a24) implements \
    'finish_tests', priority 0
Мар 11 12:23:28.561 [4326] dbg: plugin: Mail::SpamAssassin::Plugin::Check=HASH(0xa75a11c) implements 'finish_tests', \
    priority 0
$

Теперь самое время перейти к установке плагинов фильтрации спама для Claws Mail...

SpamAssassin и Bogofilter

Поставить всё разом можно командой:

$ apt-get install claws-mail claws-mail-plugins claws-mail-extra-plugins

Расширения spamassassin.so и bogofilter.so, как и многие другие, расположены в каталоге /usr/lib/claws-mail/plugins

spamassassin.so

Данный плагин позволяет выделять спам из сообщений, полученных с IMAP, LOCAL или POP учетной записи, используя сервер SpamAssassin. Для нормальной работы требуется доступный сервер SpamAssassin (spamd).

Плагин добавляет возможность помечать сообщения как спам и не спам.

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

Настройки найдете в /Настройки/Параметры/Модули/Убийца спама

Версия: 3.8.1

----------------------

bogofilter.so

Данный модуль позволяет выделять спам из сообщений, получения с учётных записей типа IMAP, LOCAL или POP, используя сервер SpamAssassin. Для нормальной работы требуется доступный сервер SpamAssassin (spamd).

Модуль добавляет возможность помечать сообщения как спам и не спам.

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

Настройки находятся в /Настройки/Параметры/Модули/Bogofilter

Версия: 3.8.1

spamassassin.so активно подглюкивал в самом начале, выдавая время от времени мессагу:

Модуль SpamAssassin не смог отфильтровать сообщение. Вероятная причина этого - недоступный демон spamd. Пожалуйста, убедитесь, что spamd запущен и доступен.

---

The Spamassassin plugin couldn't filter a message. The probable cause of the error is an unreachable spamd daemon. Please make sure spamd is running and accessible.

Расписывать настройки модулей, наверное, нет особого смысла - вкл/выкл и т.д..

Некоторые глюки, вероятно, могут быть связаны с устаревшей версией 3.8.1 (последняя 3.11.х), которую в репозиториях Debian не особо торопятся обновлять, как всегда.

SpamReport (spamreport.so)

uvidel-spamera-ubey Ещё одно очень важное вспомогательное средство борьбы со спамом - плагин SpamReport. ...Для "стукачей" и "кляузников" :)

Этот модуль позволяет отправлять отчёты о спаме.
Поддерживаются следующие сайты и методы:
 
 * spam-signal.fr
 * spamcop.net
 * lists.debian.org
 
Версия: 0.3.16

spamcop.net довольно авторитетный сервис, который поддерживается компанией "Cisco Systems" и используется на многих маршрутизаторах большинства крупных почтовых провайдеров, но заодно также можно включить Debian Lists и spam-signal.fr.

Для того, чтобы использовать возможность "стучать" на спамеров в spamcop.net нам сначала нужно завести учётную запись по адресуhttps://www.spamcop.net/anonsignup.shtml и после авторизации получить адрес своего уникального почтового ящика на который будут направляться наши "кляузы" - адрес ящика выглядит примерно так: submit.xxxxxxxxxxxxxxxx@spam.spamcop.net

Открываем "Настройки/Параметры/Модули/SpamReport" и делаем:

  • Spam-Signal.fr
    • Включен: Да
    • Имя пользователя: хххххх
    • Пароль: хххххх
  • spamcop.net
    • Включен: Да
    • Перенаправлять на: submit.xxxxxxxxxxxxxxxx@spam.spamcop.net
  • Debian Lists
    • Включен: Да
      https://wiki.debian.org/Teams/ListMaster/ListArchiveSpam

С регистрацией на Spam-Signal.fr, при незнании французского, могут возникнуть некоторые сложности ибо из английской версии у них там только контактная форма, но предварительно страницу регистрации можно пропустить через https://translate.google.ru/, а страница регистрации вот она: https://www.signal-spam.fr/espace-membre/inscription

Теперь когда придёт чиргавая очередная мессага от какого-то спамера, то на ней кликаем правой кнопкой крысы мыши и в самом конце контекстного меню выбираем пункт "Report spam online..." - письмо спамера будет переслано для анализа в spamcop.net.

В ответ должно будет прийти ответное сообщение с уникальной ссылкой для подтверждения отчёта о спаме:

Subject: [SpamCop] has accepted 1 email for processing
 
SpamCop is now ready to process your spam.
 
Use links to finish spam reporting (members use cookie-login please!):
http://www.spamcop.net/sc?id=хххххххххххххххххххххххххххххххххххххххх
 
The email which triggered this auto-response had the following headers:
 Return-Path: <ххххх@gmail.com>
Received: from vmx.spamcop.net (prod-sc-smtp4.sv4.ironport.com [10.8.129.214])
    by prod-sc-app5.sv4.ironport.com (Postfix) with ESMTP id B44F71EE869
    for <submit.NH6oIZnLcfhT6LDP@spam.spamcop.net>;
...

Переходим по ссыле и видим детали:

SpamCop v 4.8.2.018 © 2015 Cisco Systems, Inc. All rights reserved.
Here is your TRACKING URL - it may be saved for future reference:
https://www.spamcop.net/sc?id=хххххххххххххххххххххххххххххххххххххххх
Skip to Reports
 
Received:
...
host 62.109.4.253 (getting name) = gifts-pandora.ru.
Possible spammer: 62.109.4.253
Received line accepted
Tracking message source: 62.109.4.253:
Routing details for 62.109.4.253
[refresh/show] Cached whois for 62.109.4.253 : abuse@abusehost.ru
Using abuse net on abuse@abusehost.ru
No abuse net record for abusehost.ru
Using best contacts abuse@abusehost.ru
Yum, this spam is fresh!
Message is 2 hours old
62.109.4.253 not listed in cbl.abuseat.org
62.109.4.253 not listed in dnsbl.sorbs.net
62.109.4.253 not listed in accredit.habeas.com
62.109.4.253 not listed in plus.bondedsender.org
62.109.4.253 not listed in iadb.isipp.com
Finding links in message body
Recurse multipart:
   Parsing text part
   Parsing HTML part
Resolving link obfuscation
   http://www.jukasa.ru
   http://www.jukasa.ru/
Tracking link: http://www.jukasa.ru/
[report history]
Host www.jukasa.ru (checking ip) = 185.72.246.220
Resolves to 185.72.246.220
Display data:
"whois 185.72.246.220@whois.arin.net" (Getting contact from whois.arin.net )
   Redirect to ripe
   Display data:
   "whois 185.72.246.220@whois.ripe.net" (Getting contact from whois.ripe.net)
   Lookup yl781-ripe@whois.ripe.net
      Display data:
      "whois yl781-ripe@whois.ripe.net" (Getting contact from whois.ripe.net)
      yl781-ripe =
   whois.ripe.net 185.72.246.220 (nothing found)
No reporting addresses found for 185.72.246.220, using devnull for tracking.
 
Please make sure this email IS spam:
From: =?windows-1251?B?0e3l5uDt4A==?= <my@post.ru> (=?windows-1251?B?x+Tw4OLx8uLz6fLlIQ==?=)
 This is a multi-part message in MIME format.
 ------=_NextPart_000_0595_01D05C6A.2372CFC0
View full message
 
Report Spam to:
 
Re: 62.109.4.253 (Administrator of network where email originates)
To: abuse@abusehost.ru (Notes)
 
Re: http://www.jukasa.ru/ (Administrator of network hosting website referenced in spam)
To: nomaster@devnull.spamcop.net (Notes)
 
Additional notes (optional - max 2000 characters):
...
 
ATTENTION: Report only those e-mail addresses and web sites that you think your spammer has used. Avoid 
checking any boxes left empty unless you know that your spammer has used the addresses or sites thus 
identified. Each false report that you submit means wasted time for a network administrator, so take care. The 
last thing SpamCop wants are network administrators so accustomed to false claims that they no longer take 
these spam reports seriously.

"Сантехники рассказали, как почти НЕ ПЛАТИТЬ за воду!", "Возбуждающая жвачка, моментальный эффект" (www.jukasa.ru, sexgum.org) - и так с.ки плодятся как кроли, спамеры проклятые, так им ещё жвачки возбуждающей не хватало?!:)

Кстати... "ATTENTION" нам глаголет, что мол "Отправляйте кляузы только на те почтовые адреса и сайты, которые вы считаете используются для рассылки спама. Избегайте выбора тех, которые могут быть использованы для идентификации ложно. Каждый ложный отчёт отнимает время администратора и может повлиять на его отношение к дальнейшим жалобам.", - а как нам знать, кто там из них "паршивая овца"? Ведь для того, чтобы они там разобрались, мы и отправляем отчёт?! Поэтому не парьтесь и шлите всем привет ;)

Подтверждаем нашу кляузу, "Send spam report now":

Spam report id 6276938618 sent to: abuse@abusehost.ru
/dev/null'ing report for ххх@devnull.spamcop.net

В примере выше гневная мессага дополнительно пошла на внутренний адрес ххх@devnull.spamcop.net - это происходит, когда почтовый адрес ответственного по сетевой зоне не принимает/отвергает почту. Внутренний почтовый ящик spamcop.net может отличаться раз за разом.

  • SpamCop.net - SpamCop FAQ: Reports sent to SpamCop addresses - https://www.spamcop.net/fom-serve/cache/253.html

После этого, у спамера появится шанс (он не получка, не аванс) попасть в списки DNSBL (DNS blocklist или DNS blacklist - https://ru.wikipedia.org/wiki/DNSBL). Спамеры сейчас модерновые и для рассылки спама часто юзают выделенные сервера (11p.canadatrast.com (cadedic.ru), 11.vdsmartns2.com (p3.ru) и т.д. и т.п.), а попав в списки DNSBL (включая www.senderbase.org), такого спамера, переход на другой поддомен, например hub435.spamhost.com или hub751.spamhost.com, уже не спасёт.

Как ранее упоминалось, для борьбы со спамом, многие компании используют различное оборудование, например Cisco IronPort (https://ru.wikipedia.org/wiki/IronPort), которое активно использует списки DNSBL и сервис SenderBase. Сервис SenderBase, который по всему миру (включая Россию) отслеживает источники распространения спама, также опирается на списки DNSBL, а значит кляузы на spamcop.net должны быть довольно эффективными в борьбе со спамерами.

Если спамер исправится, или если легальному пользователю достался "грязный" ИП-адрес после спамера, то ИП-адрес можно попробовать отмыть путём переговоров с тех. поддержкой SenderBase (https://www.senderbase.org/support/)

Не факт, что спамера сразу же внесут в DNSBL, ведь как и у SpamAssassin у них там видимо тоже есть свой required_score, но так или иначе с каждой новой кляузой шансы попадания спамера в DNSBL возрастают, и чем больше пользователей будут сыпать "кляузами", тем больше шансов перекрыть спамеру кислород.

Кроме того, система обработки отчётов на www.spamcop.net подглюкивает, и в некоторых случаях завершить отправку отчёта не удаётся из-за ошибки "Can't parse date of spam for age detection":

...
Tracking message source: 188.68.7.71:
Routing details for 188.68.7.71
[refresh/show] Cached whois for 188.68.7.71 : abuse@p3.ru
Using abuse net on abuse@p3.ru
abuse net p3.ru = abuse@p3.ru, postmaster@p3.ru
Using best contacts abuse@p3.ru postmaster@p3.ru
Can't parse date of spam for age detection: 1392121321:775:1) Thu, 12 Mar 2015 05:33:08

Но думаю всё же статистика по отправленным "кляузам", даже когда жалоба не завершена (т.е. не разослана всем ответственным) по ошибке, принимается к сведению.

Report Spam for IceDove (aka Mozilla Thunderbird)

pingvin-spamish Ну, и раз мы уж так затронули тему фильтрации спама, то вскользь перечислим несколько полезных плагинов для отправки отчётов о спаме для почтового клиента Thunderbird (ака IceDove в Linux):

Для фильтрации спама IceDove (aka Mozilla Thunderbird) не требует локального сервера Spam Assassin (aka spamd).

Итог

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

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

IP_vychislen

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

Так или иначе, борьбу с перенаселением можно начинать с борьбы со спамерами, в которой конечным результатом должен быть кирдык спамеру!

spammer_die

Рекомендуемый контент

Об авторе
АдМинь БагоИскатель
АдМинь БагоИскатель ярый борец за безглючную работу любых механизмов и организмов во всей вселенной и потому пребывает в вечном поиске всяческих багов, а тот кто ищет как известно всегда находит. Когда что-то или кого-то вылечить не в состоянии, то со словами "Я в аду, а вы все черти" уходит в запой выйдя из которого снова берётся лечить неизлечимое.
Ещё статьи автора

Добавить комментарий

АХТУНГ! Все комменты модерасятся модерастом. Мессаги исключительно рекламного или оскорбительного содержания не публикуются, а поэтому злостным спамерам, пранкерам и прочей сетевой нечисти рекомендуем напрасно не тратить своего времени и удовлетворять свои больные фантазии на специализированных Интернет ресурсах! Разумная же критика, замечания, дополнения и хвалебные оды приветствуются, также допускается легкий флуд или троллинг :)


Защитный код
Обновить

Новое на форуме