Настройка фильтров на почтовом сервере Факультета

Причины для фильтрации

Обычно пользователям требуется обработка почты на стороне сервера по следующим причинам:
  • хочется пересылать почту на другой адрес/адреса
  • хочется фильтровать почту именно на сервере, чтобы фильтрация не зависела от почтовых клиентов:
    • раскладывать по отправителям/тематике
    • фильтровать по признаку спам/не спам
Рассмотрим решение этих задач

Разница между пересылкой и забиранием почты

Для начала Вы должны решить, требуется ли пересылать или забирать почту

Электронная почта создавалась по образу и подобию бумажной:
  • Вы пишите в письме кому и от кого (и вообще говоря в поле "от кого" можно написать что угодно
  • Посылаете письмо через почтовый сервер - отдаете письмо в почтовом отделении (у вас могут и не принять письмо)
  • Письмо приходит в нужное почтовое отделение, где его пытаются доставить в почтовый ящик, что может и не получиться, если:
    • такого ящика нет - в этом случае письмо уходит по адресу отправителя с пометкой о недоставке
    • ящик переполнен (письмо не лезет) - это не столь фатально, посылается письмо о временной недоставке (в отличие от бумажной почты скопировать письмо - легко и дешево)
    • почтовое отделение было недоступно - аналогично предыдущему пункту, только ситуацию обрабатывает Ваш почтовый сервер
    • и т.д.
  • У почтового ящика может быть пометка о пересылке (в самом отделении (на сервере) или на самом ящике), в этом случае вместо доставки почты письмо пересылается по новому адресу (а там может быть тоже пересылка и т.д.)
  • пересылка электронной почты может сочетаться с сохранением почты в локальный ящик (чего нет у бумажной, т.к. физические объекты клонировать сложнее).
  • Каждый пользователь, чтобы забрать почту из ящика, должен иметь ключ (пароль) от ящика. Для доставки письма в ящик ничего иметь не нужно.
Исходя из механизма работы почты, можно сказать, что забирание почты выглядит так:
  • Вы нанимаете курьера, которому даете адрес почтового отделения и ключ от ящика
  • Время от времени курьер посещает почтовое отделение, открыв ящик - забирает всю почту (т.к. письма электронные, то может "клонировать" письма, а не забирать)
  • Если Вы меняете замок (пароль от ящика), то должны выдать курьеру новый ключ (внести в настройки новый пароль)
  • Курьер может доставлять Вам почту как домой (локальная почтовая программа, Thunderbird, например), так и на другой почтовый сервер (если это курьер этого почтового сервера)
  • Письмо из ящика попадает к Вам не сразу (у курьера есть периодичность посещения почтового отделения)
В отличие от забирания, пересылка почты:
  • не требует курьера, поэтому смена замка не влияет на пересылку почты (вы можете даже потерять ключ/заблокировать замок)
  • влияет только на новую почту (уже доставленная почта останется в ящике, в то время как курьер забирает всю почту)

Настройка фильтрации на основе Sieve

Настраиваются через новый web-интерфейс.

Все настройки сохраняются на почтовом сервере в виде файла, который можно настраивать и через файловый доступ на сервер, но так делать не рекомендуется.

В любом случае фильтрация будет на стороне сервера. Т.е. после настройки фильтра каким-бы клиентом Вы не читали почту, ко всей новой почте будут применяться правила фильтра! Т.е. можно настроить sieve-фильтры через новый web-интерфейс, а читать, скажем, через старый.

Рассмотрим создание правил через web-интейфейс.

Справа вверху есть меню/область с кнопкой выхода. Выберите Настройки:

Menu.png

Далее выберите Фильтры, managesieve и нажмите на знак + для добавления фильтра:

Create.png

В данном примере видно уже созданный фильтр antispam, создание которого рассмотрено ниже.

Подключение антиспама

Простой вариант фильтрации на основе оценки факультетского антиспам-сервера

Если факультетский антиспам считает спамом, то он пишет об этом в служебных полях и выставляет флаг X-Spam-Flag в значение YES. Поэтому выбираем условие, что письма с этим флагом надо помещать в корзину.

ALERT! Не забудьте сохранить фильтр!

webmail-antismap-small.png

В этом примере фильтр уже был ранее сохранен, поэтому есть в списке.

Сложный вариант фильтрации с учетом оценки факультетского антиспам-сервера

Использовался тот же пользователь, но с включением английского языка в интерфейсе, поэтому картинки немного отличаются.
Многие спам-рассылки делаются с использованием скрытой копии. В этом случае в поле Кому (To) или Копия (CC) нет самого адреса получателя.
Такой же метод используют и нормальные списки рассылки (например, от факультета), но в этом случае в письме добавляются служебные поля о том, что это за список, как от него отписаться и т.д.
Обычный спам

Небольшое изменение для антиспам-фильтра: включение остановки («Закончить выполнение» или «Stop evaluating rules»)
В предыдущем примере правило было ровно одно, поэтому останавливаться не требовалось (либо подходит под правило, либо нет), здесь у нас их несколько и если не останавливать обработку, то письмо будет помещено/скопировано в несколько мест.

antispam-eng.png

Или на русском:
antispam-rus.png

Trash/Корзина — это внутреннее название одной и той же папки для писем.
Списки рассылки

То, что прошло антиспам-фильтр, и содержит признак стандартной рассылки (в List-Id сообщается имя рассылки, в обычных письмах его нет):
Lists.png
Название можно давать любое. В примере, хоть интерфейс на английском, с русским названием проблем нет.

Для выделенных списков можно создавать дополнительные правила (их надо будет поместить до этого общего), например стандартная рассылка для пользователей Факультета идет с
List-Id, содержащим слово users.lists (users.lists.cs.msu.ru).

Если вы администратор какого-либо фильтра рассылки, то рекомендуется для него создать отдельное правило, что если есть поле X-List-Administrivia , то помещать в отдельную папку.
Это служебные письма вида: письмо в рассылку от неизвестного отправителя, запрос подписчика на подписку к списку и т.д.
Странные списки рассылки

Письма не содержат пользователя (в данном случае — testuser) в поле Кому/Копия и не является обычным списком рассылки.
Если у вас пересылки с каких-то адресов вам, то тоже внесите их в список исключений.

NotUser.png
Порядок правил

Так как внутри каждого правила мы останавливаем обработку, то важно задать нужный порядок:
FilterOrders.png

Фильтры можно перетаскивать мышкой/манипулятором, формируя нужный порядок.

Пересылка почты

В данном примере настроена пересылка всей почты с адреса roman@stud... на roman@cs... Forward.png

Здесь показан момент создания фильтра, он еще не сохранен и в списке фильтров его нет.

Настройка пересылки или фильтрации через файлы на сервере

Как следует из названия, требуется файловый доступ на сервер. ALERT! Редактирование файлов требует большей ответственности, т.к. неправильные настройки могут привести к потере почты, поэтому лучше используйте настройку через Webmail Sieve, рассмотренную выше.

Настройка пересылки через файл

Надо создать файл .forward со своим существующим адресом и вся почта (новая) начнет пересылаться по этому адресу.

Пример:
  • Пусть у вас есть почтовый адрес test@test.ru
  • Пусть ваш логин от почты на факультете testuser
  • Создаете файл (пусть будет forward.txt) с текстом test@test.ru
  • Копируете этот файл на почтовый сервер по ssh-протоколу под именем .forward
    • unix-подобные системы: scp forward.txt testuser@mail.cs.msu.ru:.forward
    • windows системы: копируете с помощью winscp, переименовываете
  • Вот и всё!

Для более сложной логики (пересылать не все, пересылать на разные адреса в зависимости от условий) лучше использовать .procmailrc или рассмотренную выше sieve-фильтрацию.

Настройка фильтрации на основе procmail

Procmail — это программа с богатыми возможностями по обработке почты.

Для сортировки письма на основе оценки (спам/не спам), которую выставляет факультетский почтовый сервер достаточно создать файл .procmail со следующим содержанием:
DEFAULT=$HOME/Maildir/
ORGMAIL=$DEFAULT
DELIVER="/usr/local/libexec/dovecot/deliver"

:0:
* ^X-Spam-Flag: YES
| $DELIVER -m Trash

:0 w
| $DELIVER

Как видно из настройки, если письмо признано спамом (выставлен флаг X-Spam-Flag), то оно будет помещено в Корзину (которая расположена в Trash), остальные письма будут доставлены во Входящие

This topic: Main > WebHome > MailConfig > MailFilters
Topic revision: 14 Jan 2019, RomanKondakov
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding WikiCMC? Send feedback