Hmailserver spamassassin настройка windows

Установка и настройка SpamAssassin

Статью про СпамАссассин решил восстановить. В несколько сокращенном варианте (сейчас уже только ленивый не знает что это такое и зачем он нужен) и с поправками на мои нынешние настройки.

Вначале общие вещи тезисно:

  • Спам надо фильтровать. Для этого следует использовать сочетание всех возможных (доступных) методик. Использование только одной (двух, трех) недостаточно: только анализ содержимого, или только RBL
    дают достаточно низкое срабатывание с большим количеством false-positive. Результаты анализа с использованием разных методик должны суммироваться и решение должно приниматься с учетом всех факторов (например письмо с подозрительным содержимым от постоянного корреспондента с положительной историей должны быть пропущены фильтром).
  • Фильтровать можно в трех точках: SMTP-сессия, сервер-сайд при доставке (но после SMTP) и клиент-сайд.
  • SMTP-сессия – наилучшая точка фильтрации, неугодным можно послать аутлуп прямо в сессии, но есть существенная проблема: не всегда можно фильтровать сообщения прямо во-время приема – например, может не хватать ресурсов для такой on-line фильтрации, или ресурсов будет хватать, но слишком много времени занимает фильтрация и отправляющая сторона отваливается по таймауту. Хотя с другой стороны на этом этапе вполне можно применять быстрые 100%ные методы (например достаточно надежные RBLи, проверки на соответствие RFC и еще некоторые простые эвристики)
  • При доставке можно устраивать полноценную фильтрацию. Но и тут существуют два “но”. Во-первых, нельзя посылать аутлупы, потому что в 99% случаев они уйдут на фальшивый From. Во-вторых (в принципе это следует из “во-первых”), раз мы никак не сообщаем отправителю об ошибке, то вероятность false-positive должна быть максимально низка (у меня это единица на десятки тысяч пришедших не спам писем и то это не очень хорошо (на самом деле может быть даже и более хороший показатель, потому что с причинами false-positive я боролся и в последнее время ничего такого нет:) )).
  • Client-side фильтрация тоже возможна, то ИМХО только в том случае, если серверная фильтрация невозможна в принципе.
  • SpamAssassin один из наиболее удачных инструментов, сочетающий большое количество методов анализа. Плюс ко всему он достаточно гибко настраивается и хорошо суппортится и развивается.

    О моих настройках:

    • В SMTP-сессии проверяются только несколько вменяемых RBL и некоторые встроенные в postfix проверки (существование домена для адреса в поле From и пр.).
    • In-queue фильтрация при помощи SpamAssassin
    • По результатам проверки СпамАссассином почта размечается заголовками и всё. Остальное на совести пользователя.
    • По-ночам происходит автообучение+репорт в сетевые службы (Razor, Pyzor и т.д.) писем из определенной IMAP-папки.

    Настройки SpamAssassin.

    SpamAssassin установлен из официального репозитория Debian (из Etch).

    # aptitude install spamassassin spamc

    Те, у кого не Debian – ССЗБ.

    Что здесь указано: во-первых включен spamd (ENABLED=1), во-вторых заданы его опции:

    • –max-children 5 — запускаем 5 дочерних процессов
    • –allow-tell — разрешаем использование обучения из-вне (обязательно читайте spamd(8) про риски)
    • –nouser-config –sql-config — работаем с конфигами из MySQL, не смотрим в домашние каталоги пользователей
    • –username=mailfilter –groupname=mailfilter — работаем из-под пользователя/группы mailfilter (создавать отдельно)

    Далее, включаем отдельные плагины:
    # cat /etc/spamassassin/init.pre

    Тут комментировать нечего.

    Теперь непосредственно настройки:

    Создаем каталоги /var/lib/spamassassin/razor и /var/lib/spamassassin/pyzor, с правами 700 и владельцем mailfilter. Они будут использоваться соответственно службами razor и pyzor.

    Настраиваем MySQL хранилище:

    Не забываем поставить на этот файлик права 640 (группу задавать не имеет смысла, spamassassin читает этот файл еще до того, как делает chuid).

    Создаем БД в MySQL

    Создаем необходимые таблицы:

    У меня это создало вот такие таблицы:

    Ну и последнее, что осталось настроить: это мой обещанный хак против спама картинками:

    С ним стоит быть осторожнее – возможно он будет срабатывать на письмах из аутглюка-экспресс с html с картинками. У меня по крайней мере таких не бывает среди не спама.

    Ура, спамассассин настроен и им можно пользоваться.

    Читайте также:  Отключить запуск firefox при запуске windows

    Например так:
    Настройки Postfix
    В /etc/postfix/main.cf

    maildrop стоит из пакета courier-maildrop.

    Теперь все письма получают заголовок от SpamAssassin’а.

    Дальше (в общесистемном фильтре или в

    /.mailfilter) можно сделать что-нибудь вроде

    Помимо этого у меня на имап сервер есть папки RealJunk и NotJunk. В первую я вручную перекладываю спам (прорвавшийся в Inbox + весь из папки Junk (вручную проверяю хотя бы Subject и From)), а во вторую false-positive, а точнее те письма, которые не попали в спам, но все же получили высокую оценку от байеса (false-positive у меня вообще не бывает).

    Письма из этих папок обрабатываются следующим скриптом:

    Там присутствует некоторая хитрость в получении Maildir’ов, для этого берутся homeDir из LDAP, но в остальном вроде все достаточно просто.

    Hmailserver spamassassin настройка windows

    HOW TO: Install Spamassassin For Windows and SPAMD service

    Post by jimimaseye » 2015-04-27 11:13

    This tutorial is a re-publish of a tutorial already on this forum, but simplified for clarity). It’s aim is to install Spamassassin and its service for running in connection with the default integration with Hmailserver.

    It is a simple procedure that should only take 5 minutes.

    1, Download SpamassassinForWindows from Jam Software here: http://www.jam-software.com/spamassassin/index.shtml

    2, Run the install of this software: I will assume defaults for all installation locations for this tutorial.
    NOTE: You may need to switch off your firewall during this install so that it can auto update to latest spam rules during install. It will then create some firewall rules for you. Then switch firewall back on. If it has not added such exceptions itself as necessary, add the following programs (from the Spamassassin program directory) to the Firewall Exceptions (for PRIVATE network only). Failure to allow this program exception will result in failed updates (a) and service connection by Hmailserver (b):-

    • a) SA-UPDATE.EXE
      b) SPAMD.EXE

    3, Download ‘ NSSM Service Manager‘ (service installer) from: http://nssm.cc/download/?page=download
    and save the unzipped folder to a disk location where you will run it from permanently (perhaps within program files directory if you wish).

    ! DO NOT MOVE THE NSSM PROGRAM FROM THIS LOCATION ONCE INSTALLED AS ITS AVAILABILITY IS REQUIRED FOR THE RESULTANT SERVICE TO RUN !

    4, Within CMD prompt, CD to the «win64» directory of NSSM location (although they do claim that running win32 version on 64bit OS should still be ok):

    5, Install the spamassassin service with this command:
    nssm install

    and using the onscreen prompts enter (copy) the following:

    Version 2.15 (without GUI):

    (You may choose to write something meaningful in the ‘Description’ on the DETAILS tab for displaying in the Windows Services control panel.)

    Hint: I chose the Hmailserver Log directory (» %ProgramFiles(x86)%\hMailServer\Logs«) as a consolidated logs directory so I specified it as the store for my Spamd.log file ( c:\path to\ spamd.log above).

    6, You may wish to modify the ‘spamassassin’ service via services.msc and set the Recovery options to “Restart the service” for the 1st 2 recovery
    failures — although I have not yet found it ever fails (not that I would know — I have it to restart if it does. )

    7, HMS should now be enabled to use Spamassassin: hmailserver / settings / Anti Spam / SpamAssassin Tab — and tick/enable. The default port should be left at 783.

    Spamassassin requires definition updates (almost daily) just like an AV software. This is achieved by running the following command:

    You should include this command daily either by your regular housekeeping backup script or by Task Scheduler not forgetting to refer to the correct path.

    ** UPDATE: It has also been claimed that the » —round-robin» parameter is no longer needed and actually best to be left out to ensure trouble free and optimal operation in 3.4 onwards. However, with its inclusion I see no error or obvious drawback.

    Читайте также:  Параметры быстродействия windows 10 какие галочки ставить

    You may now choose how to use the Spamassassin scores. In Hmailserver you have the option to ‘Use score from Spamassassin’ (in the Spamassassin tab) or to simply assign a positive SA result a particular score of your own. There is no right or wrong, just personal preference. (My personal setup follows this post. )

    Re: HOW TO: Install Spamassassin For Windows and SPAMD service

    Post by jimimaseye » 2015-04-27 11:35

    My recommendation of implementing and handling scores

    Here I detail MY implemented scoring method. I find it is very effective as I rarely receive genuine spam emails that has not been removed or identified as [spam] and moved to trash. It is a slightly ‘alternative’ method but for me it works.

    1, I use the default Spamassassin update definitions. In addition, add/ensure this is in your LOCAL.CF (found in %ProgramFiles(x86)%\JAM Software\SpamAssassin for Windows\etc\spamassassin):

    2, Set a GLOBAL RULE:

    Name: «ExternalScore7»
    if:
    X-Spam-Level (custom header) . contains. ******* action:
    Move to IMAP Folder. Trash (or whatever your normal trash folder is on your accounts (you may choose a dedicated ‘Spam’ folder instead). Alternatively you can simply ‘DELETE EMAIL’ but that never gives you chance to review.)

    Note: I also have an additional IF clause as
    OR
    Subject REGULAR EXPRESSION (?i:^Virus found:.*$)

    this works to also remove any emails being found to contain malware by the inbound Antivirus check.

    3, Anti Spam settings in HMS :

    Generated by HMSSettingsDiagnostics v1.48, Hmailserver Forum.

    IN ADDITION TO using Spamassassin and the above scoring system, I also operate a DISPOSABLE ADDRESS system to minimise the risk of ‘ real‘ account addresses getting in the hands of unwanted spamming lists; should an address given ends up being abused it is simply blacklisted and emails will never be received to that address again (and no setting up of the email addresses is required). This keeps the real account Inboxes clean and the reliance on Spamassassin at a minimum. You can implement it using this script: viewtopic.php?f=20&t=29306

    For explanation (of this alternative method):

    It works like this: if spamassassin scores over 3 it will consider it spam and apply the score in the subject eg » [3.4]..«. HMS will also see SA has called it spam and therefore will mark it spam (scoring it internally as ‘5’) with an additional «[SPAM]» eg so subject now reads » [SPAM] [3.4]. » This helps you see the score and how definitive it is. See the attached screenshot:

    HMS will then apply its own further checks. If it finds any itself another (minimum of) 2 will be added internally (making 7). If it hits 8 with its tests it will simply be deleted without a trace.

    If, however, HMS doesnt score it any more, and it’s only SA that marked it and if SA scored it 7 or more it will simply be deleted/moved to Trash/Spam folder to give you chance to see it. (The above included screenshot is from the Trash folder and shows such cases).

    If it was marked as Spam by SA but did not reach either SA 7 or HMS 8 it will remain in your mail just marked as spam (» [SPAM] [4.5] Subject. «) and requiring review. I RARELY get this situation.

    In essence I get a clean sheet or mostly positive spams being deleted and the inbox remains clean.

    If you have or are regularly receiving Apple, Paypal, iTunes or Amazon Account «reset your account» phishing emails, or regular «Buy your Louis Vuitton handbags» or «Rayban Sunglasses», I also have a an effective custom rule that eliminates them too — just let me know.

    This completes my total Spamassassin/Spam scoring setup. It works for me! Feel free to use it as suggestion, hint or ‘what not to do’ (if thats the way you feel.)

    Читайте также:  Mac os нет управления питанием

    Обучение SpamAssassin

    Ни для кого не секрет, что почтовая служба Gmail является лучшей в своем роде сервисом. Фильтрация писем происходит очень точно. Пользователи этого сервиса давно забыли о таком страшном слове как «Спам».

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

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

    Итак, предполагается, что у вас есть почтовый сервер. Настроенный и полностью функционирующий. Прописана PTR и DMARC. Настроен SPF, DKIM и работающий, но не обученный SpamAssassin. Отчасти — этих действий достаточно для того, чтобы в разы уменьшить количество нежелательной корреспонденции, но все же, мы не остановимся на этом.

    Для реализации необходимо установить fetchmail:

    #apt-get install fetchmail

    Эта утилита и будет служить посредником между Gmail и нашим почтовым сервером.

    Для начала, нам необходимо создать конфигурационный файл:

    Со следующим содержимым:

    poll imap.gmail.com protocol imap port 993 and options no dns,
    user «[vashadres@gmail.com](mailto:vashadres@gmail.com)» options ssl,
    password «vashparol»,
    fetchall,
    pass8bits,
    nokeep,
    folder «[Gmail]/Spam»,
    mda «/usr/bin/sa-learn —spam»

    poll imap.gmail.com protocol imap port 993 and options no dns,
    user «[vashadres@gmail.com](mailto:vashadres@gmail.com)» options ssl,
    password «vashparol»,
    fetchall,
    pass8bits,
    nokeep,
    folder «[Gmail]/Important»,
    mda «/usr/bin/sa-learn —ham»

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

    С папкой “спам” все ясно, а вот с папкой “INBOX” не все так однозначно. У Gmail ее попросту нет, а при подключении по IMAP мы имеем дело с так называемыми “ярлыками”. Поэтому мы указываем папку “Important”.

    Далее, переходим в файл с альясами (у меня установлен Postfix, поэтому я буду приводить пример на его настройке) и указываем форвардинг писем на новосозданный или уже имеющийся адрес Gmail. Рекомендую создать новый, т.к. старый адрес может содержать какие-либо правила из “прошлого”, которые могут неправильно скорректировать SpamAssassin при обучении.

    почтовый ящик: почтовый ящик, root

    vasya: vasya, root

    Когда были прописаны все пользователи и пересылкой на пользователя root, то вся эта корреспонденция должна пройти до нашего почтового ящика в Google:

    В конце файла альясов мы должны написать:

    Важно! Так необходимо прописать каждый ящик имеющийся в системе. Можно и не пересылать все сообщения на пользователя root, но это в дальнейшем облегчит Вам жизнь.

    Сохраняем файл. Готово. Отныне все письма приходящие к пользователям, будут дублироваться на vashadres@gmail.com, который в свою очередь будет грамотно рассортировывать все письма.

    Теперь получив достаточное кол-во писем на почтовый ящик от Google, необходимо их промаркировать, чтобы благодаря ярлыкам, письма из папки INBOX, продублировались в папку Important нажав на стрелку рядом с заголовком письма. Она должна окраситься в желтый. Это разовое действие, которое в дальнейшем понадобиться очень редко. Все новые письма, будут помечены как “Важные” и продублированы в необходимую нам папку.

    Нам же осталось сказать fetchmail собрать все письма из Google и показать SpamAssassin.

    #/usr/bin/fetchmail -f /root/.fetchmailrc -v

    Все готово. Пройдя обучение в несколько тысяч писем — будьте уверены, ваша почта будет вести себя так же, как качественный почтовый сервис от Google.

    Update: Чтобы избежать утечки важной информации, можно заведомо настроить сервер. Создать пользователя spam и разместить в подпись на форумах. Через какое-то время, спам-боты сделают свою работу по сканированию и на этот почтовый ящик начнет идти спам. С каждым днем все больше и больше. Обучить SpamAssassin подобным образом и затем пустить боевой и обученный сервер в работу.

  • Оцените статью