CuckooMX (Postfix и Cuckoo Sandbox)
CuckooMX — это контент-фильтр для Postfix: входящее SMTP-сообщение обрабатывается внешним скриптом, из письма извлекаются вложения (и при необходимости другие объекты), после чего почта снова передаётся в очередь Postfix для доставки. Параллельно подозрительные файлы отправляются в Cuckoo Sandbox на анализ.
Происхождение идеи и upstream
Первоначальная реализация — проект CuckooMX автора Xavier Mertens (Perl, интеграция с Postfix и Cuckoo), опубликованный на GitHub: xme/cuckoomx. Там же описана классическая схема: content_filter в master.cf, отдельный сервис pipe и скрипт cuckoomx.pl.
В решении Arachnid.UTM используется модифицированная версия скрипта и конфигурации из каталога cuckooMX modified (репозиторий решения); рядом в поставке — обновлённый README с перечнем модулей Perl, эндпоинтами API и порядком запуска компонентов Cuckoo. Главное отличие от upstream — отправка задач методами POST /tasks/create/file и при необходимости POST /tasks/create/url на базовый URL из api-url, с опциональным заголовком Authorization: Bearer из api-token, вместо прямой записи в SQLite и доступа к cuckoo.db с узла Postfix. Подробнее см. архитектура и справочник.
Где применяется
Типичный сценарий — выделенный узел или виртуальная машина с Postfix в зоне DMZ: с интернета на TCP-порт 25 поступает почта, шлюз (например, OPNsense) выполняет переадресацию порта на этот хост, Postfix принимает сообщение, CuckooMX извлекает вложения и ставит их в очередь анализа Cuckoo, после чего письмо возвращается в очередь Postfix для дальнейшей доставки согласно вашим правилам. В конфигурации приведена пошаговая установка с иллюстрациями; остальные страницы раздела описывают архитектуру, производительность, справочные данные и устранение неисправностей.
Следующая страница: Детальная архитектура CuckooMX.