Несмотря на появление многочисленных мессенджеров, именно рассылка по email на сегодняшний день является наиболее недорогим способом отправки информации, а учитывая то, что электронные письма поддерживают вложения в виде файлов и встраивание HTML-скриптов, именно email крайне часто используется для рассылки спама. Помимо очевидных рисков для информационной безопасности предприятия, спам также создает значительную нагрузку на почтовый сервер, а в случае попадания его в почтовый ящик пользователя, он начинает занимать место в хранилище данных почтового сервера, а деловое письмо может попросту затеряться в бесполезном спаме. Для фильтрации спама в Carbonio используется SpamAssassin - одно из наиболее продвинутых решений для фильтрации почты, однако при неправильной настройке SpamAssassin может принести вред - заблокировать важное письмо или пропустить потенциально опасный email. В данной статье мы расскажем о том, как администратор может настроить SpamAssassin. Данная инструкция может быть применена как к коммерческой версии Carbonio, так и к бесплатной Carbonio Community Edition. SpamAssassin устанавливается вместе с Carbonio и включен по умолчанию. Он начинает фильтровать входящую почту сразу же на основании встроенных в него словарей. Принцип работы SpamAssassin прост - каждое входящее почтовое сообщение подвергается целой серии проверок и при прохождении каждой из них письму присваиваются спам-баллы. К примеру, если письмо начинается со слова Dear, SpamAssassin автоматически добавляет ему один спам-балл. То же самое происходит в случаях, когда письмо содержит и другие характерные для спам-рассылок признаки. Существуют и проверки, при прохождении которых спам-баллы вычитаются. Однако изначально SpamAssassin нацелен на распознавание англоязычного спама и для того, чтобы он работал с русскоязычными сообщениями необходимо “обучить” его, а также добавить русскоязычные словари. На данный момент русскоязычные словари для SpamAssassin разрабатываются и поддерживаются компанией Wentor. Скачать их можно по данной ссылке. Установка данных словарей производится следующим образом. Необходимо скопировать скачанный файл в папку /opt/zextras/data/spamassassin/rules. Цифра 99 в начале файла означает приоритет использования данного словаря. Благодаря этой цифре проверки из русскоязычного словаря будут использоваться в первую очередь. После этого добавьте в файл /opt/zextras/conf/salocal.cf.in строчку с упоминанием данного словаря. include /opt/zextras/data/spamassassin/rules/99_wentor.cf Перезапустите сервер, чтобы внесенные изменения вступили в силу. Правила можно писать и самому. Для их добавления отредактируйте файл nano /opt/zextras/data/spamassassin/localrules/local.cf и добавьте в них подобные регулярные выражения. header HEADER_SUSPICIOUS Subject =~ /распродажа, ограниченное/i score HEADER_SUSPICIOUS 1.5 describe HEADER_SUSPICIOUS Bad Word in the Subject Здесь мы создаем правило HEADER_SUSPICIOUS, которое проверяет наличие в теме письма слов “распродажа” и “ограниченное”, характерных для спам-рассылок. Также мы указываем, сколько спам-баллов получит письмо с такими словами, а также описание правила body BODY_SUSPICIOUS /, скидка/i score BODY_SUSPICIOUS 1.5 describe BODY_SUSPICIOUS Bad Word in the Body Здесь мы создаем правило BODY_SUSPICIOUS, которое проверяет наличие в теле письма слова скидка, характерное для спам-рассылок. Также мы указываем, сколько спам-баллов получит письмо, провалившее данную проверку. Однако русскоязычные словари и составленные самостоятельно проверки для SpamAssassin хоть и являются действенным способом для фильтрации спама, они не могут гарантировать полное отсутствие нежелательных писем. Именно поэтому требуется также провести тренировку в SpamAssassin. SpamAssassin поддерживает Байесовское машинное обучение, то есть ему можно вручную указывать на те письма, которые он ошибочно принял за спам, а также те письма, которые он ошибочно не распознал как спам. На основе этих писем он автоматически формирует алгоритмы, которые будут использоваться впоследствии для фильтрации спама. Контролировать данный процесс можно при помощи служебных почтовых ящиков spam и ham. Они создаются при установке Carbonio, а их имена намерено обфусцируются случайным набором букв и цифр. Письма, попавшие в спам и перемещенные пользователем в другую почтовую папку, автоматически перенаправляются в почтовый ящик ham, а письма, которые попали в почтовую папку и затем были перемещены пользователем в спам, перенаправляются на почтовый ящик spam. Процесс обучения заключается в том, чтобы поместить в соответствующие почтовые ящики письма, которые заведомо являются спамом и которые заведомо им не являются. Нормальным количеством считается загрузка 200 писем в каждый из служебных почтовых ящиков. Для импорта писем вы можете воспользоваться нашей инструкцией по загрузке данных из Outlook в Carbonio. Отметим, что в служебные почтовые ящики попадают также и те письма, которые пользователь пометил как спам или удалил из папки со спамом, в почтовом клиенте, подключенном по IMAP. Правила, которые формируются в результате обучения SpamAssassin можно резервировать. Делается это при помощи команды вида /opt/zextras/common/bin/sa-learn --dbpath /opt/zextras/data/amavisd/.spamassassin --backup >> /tmp/sa.db. После выполнения данной операции все правила будут сохранены в файл /tmp/sa.db. Восстанавливается резервная копия с помощью той же утилиты /opt/zimbra/common/bin/sa-learn --dbpath /opt/zimbra/data/amavisd/.spamassassin --restore /tmp/sa.db. После восстановления резервной копии необходимо перезапустить Carbonio. Прохождение проверок SpamAssassin фиксируется в логах Carbonio, а также в полях электронного письма. Для того, чтобы просмотреть информацию о прохождении проверки на спам в полях письма, выберите его в веб-клиенте Carbonio и просмотрите содержимое его полей при помощи опции “Показать оригинал”. В открывшемся окне поля с наименованиями X-Spam-Flag, X-Spam-Score, X-Spam-Level и X-Spam-Status будет указана подробная информация о результатах проверки SpamAssassin. Основным объектом настройки в SpamAssassin является порог баллов, при которых SpamAssassin признает письмо спамом. Данных порогов два. При достижении первого, который обычно ниже, письмо помечается как спам и отправляется в папку “Спам” адресата. При достижении второго, который обычно значительно выше, письмо помечается как спам и попросту удаляется. Регулировать данные пороги можно из командной строки. Для изменения верхнего порога используется команда carbonio prov mcf zimbraSpamKillPercent 75. Для изменения нижнего порога carbonio prov mcf zimbraSpamTagPercent 20. Также имеется возможность изменить подпись, которая добавляется в тему письма, распознанного как спам, например carbonio prov mcf zimbraSpamSubjectTag "!!!SPAM!!!". Обратите внимание на то, что пороги регулируются в процентах, а спам-баллы начисляются в абсолютных цифрах. Для того, чтобы перевести проценты в спам-баллы просто умножьте их на 0,2. В нашем случае пороги задаются в размере 4 и 15 спам-баллов. Carbonio также поддерживает черные и белые списки, причем как на уровне пользователя, так и на уровне домена. Пополнить их можно при помощи следующих команд: Для пополнения белого списка пользователя zextras@domain.ru пользователем ham@domain2.ru carbonio prov ma zextras@domain.ru +amavisWhitelistSender ham@domain2.ru Для исключения из белого списка пользователя zextras@domain.ru пользователя ham@domain2.ru carbonio prov ma zextras@domain.ru  -amavisWhitelistSender ham@domain2.ru Для пополнения черного списка пользователя zextras@domain.ru пользователем spam@domain2.ru carbonio prov ma zextras@carbonio.local +amavisBlacklistSender spam@domain2.ru Для исключения из черного списка пользователя zextras@domain.ru пользователя spam@domain2.ru carbonio prov ma zextras@carbonio.local -amavisBlacklistSender spam@domain2.ru Для пополнения белого списка домена domain.ru пользователем ham@domain2.ru carbonio prov md domain.ru +amavisWhitelistSender ham@domain2.ru Для исключения из белого списка домена domain.ru пользователя ham@domain2.ru carbonio prov md domain.ru  -amavisWhitelistSender ham@domain2.ru Для пополнения черного списка домена domain.ru пользователем spam@domain2.ru carbonio prov md carbonio.local +amavisBlacklistSender spam@domain2.ru Для исключения из черного списка домена domain.ru пользователя spam@domain2.ru carbonio prov md domain.ru -amavisBlacklistSender spam@domain2.ru Отметим, что антиспам, наравне с антивирусом является одним из основных потребителей системных ресурсов. Поэтому, если вы используете внешний сервер для фильтрации спама, вы можете отключить его при помощи команды carbonio prov ms mail.domain.ru -zimbraServiceEnabled antispam. Включить антиспам вновь можно при помощи команды carbonio prov ms mail.domain.ru +zimbraServiceEnabled antispam. По вопросам тестирования, приобретения, предоставления лицензии и консультаций обращаться на почту sales@svzcloud.ru к эксклюзивному партнеру Zextras.    Глава представительства Zextras в России и СНГ