Вернуться к теме обучения антиспам-фильтров в Dovecot, которая ранее уже затрагивалась в одной из статей на этом сайте, меня заставило недавнее сообщение от всё помнящего "Charlie Root" прекращении поддержки широко используемого для этих нужд расширения Antispam plugin.

To: root@my.server
Subject: my.server weekly security run output
Message-Id: <E1dObLP-000MHX-25@my.server>
From: Charlie Root <root@my.server>
Date: Sat, 24 Jun 2017 05:02:43 +0200

Checking for packages with security vulnerabilities:
dovecot2-antispam-plugin-20130429_29: Tag: expiration_date Value: 2017-07-31
dovecot2-antispam-plugin-20130429_29: Tag: deprecated Value: Use pigeonhole instead. See https://wiki2.dovecot.org/HowTo/AntispamWithSieve

-- End of security output --

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

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

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

Два эти подхода могут быть удобны в различных ситуациях. Однако, наиболее гибким вариантом представляется реализация обоих одновременно, когда ограничение ресурсов может регулироваться как персонально, для конкретного почтового ящика, так и для их совокупности в рамках домена.

Рассмотрим механизм реализации такого двухуровневого квотирования используя возможности POP3 / IMAP4 сервера Dovecot 2.

Вопрос защиты информации в сети Интернет с каждым годом не только не теряет, но и приобретает всё большую актуальность.

Одним из проявлений этого процесса является массовое внедрение использования шифрования передваемых данных посредством технологии SSL / TLS сертификатов (далее для краткости - просто SSL).

Помимо проблем безопасности, к началу повсеместного применения данной технологии стимулируют и новые системы ранжирования поисковой выдачи, которые учитывают наличие шифрованного соединения для сайтов, а также возможность получения бесплатных SSL сертификатов, которую предоставляет ряд ведущих провайдеров данных услуг, в частности Let's Encrypt.

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

Возможно, да и наверняка, кому-то будет полезный мой опыт настройки защиты против всевозможных bruteforce'ров и spam'еров посредством использования популярного fail2ban отличным от использования firewall путём - через TCP wrappers.

Подробнее о TCP wrappers я писать не буду, ибо желающие могут прочитать о них, например, в FreeBSD handbook. Хочу лишь сказать о причинах, побудивших меня использовать именно этот механизм ограничения доступа к интернет-сервисам.

Dovecot является одним из самых популярных серверов IMAP4/POP3 в силу своей надёжности, безопасности, производительности и богатому функционалу.

Разнообразие предоставляемых им средств ещё более раширяется при помощи набора подключаемых дополнений (plugins), к числу которых относится и Dovecot antispam plugin. Он позволяет автоматизировать процесс контентного обучения антиспам-систем встраивая его в простую операцию перемещения письма в или из папки СПАМ. Это решение позволяет сделать обучение прозрачным для всех почтовых клиентов поддреживающих протокол IMAP4 и не требует на их стороне никаких дополнительных настроек.

Традиционный метод работы Dovecot antispam plugin предполагает выполнение специального shell-скрипта вызывающего программный модуль обучения антиспам-системы непосредственно при действии пользователя связанного с помещением письма (или их набора) из или в папку СПАМ. Такой метод, помимо положительной строны в виде немедленной подстройки антиспам-системы, имеет и большой недостаток - в ряде клиентов, в частности в популярном веб-клиенте Roundcube, это приводит к заметным задержкам в работе системы, а иногда и невозможности завершения процесса обучения и, вследствие этого, даже и самого перемещения сообщений между папками при выборе некоторого количества писем за один приём.

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