VSMTP – почтовый сервер со встроенным языком для фильтрации трафика

Проект vSMTP развивает новый почтовый сервер (MTA), нацеленный на обеспечение высокой производительности и предоставление гибких возможностей по фильтрации и управления трафиком. Код проекта написан на языке Rust и распространяется под лицензией GPLv3.

В соответствии с опубликованными разработчиками результатами тестирования, vSMTP в десять раз быстрее, чем конкурирующие MTA. Например, vSMTP показал в 4-13 раз более высокую чем в Postfix 3.6.4 пропускную способность, при передаче сообщений размером 100 КБ в 4-16 сеансов. Высокая производительность достигается благодаря применению многопоточной архитектуры, в которой для взаимодействия потоков используются асинхронные каналы.


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

Особенностью проекта также является предоставление встроенного языка vSL для написания сценариев фильтрации писем, позволяющего создавать очень гибкие правила отсеивания нежелательного содержимого и управления трафиком. Язык основан на встраиваемом языке Rhai, использующем динамическую типизацию и синтаксис напоминающий смесь JavaScript и Rust. Через сценарии можно инспектировать и модифицировать входящие сообщения, перенаправлять сообщения и управлять их доставкой на локальные и удалённые хосты. В сценариях поддерживается соединение к СУБД, запуска произвольных команд и помещение писем в карантин. Помимо vSL для борьбы с нежелательными сообщениями в vSMTP также поддерживаются
SPF и фильтры на основе списков открытых релеев.

Из планов на будущий выпуск отмечается возможность интеграции с СУБД на базе SQL (сейчас данные об адресах и хостах задаются в формате CSV) и поддержка механизмов аутентификации DANE (DNS-Based Authentication of Named Entities) и DMARC (Domain-based Message Authentication). В более отделённых версиях планируется реализовать механизмы BIMI (Brand Indicators for Message Identification) и ARC (Authenticated Received Chain), возможность интеграции с Redis, Memcached и LDAP, средства для защиты от DDoS и SPAM-ботов, добавить плагины для организации проверок в антивирусных пакетах (ClamAV, Sophos и т.п.).

Release. Ссылка here.