Увидел свет релиз почтового сервера OpenSMTPD 5.3, развиваемого под эгидой проекта OpenBSD и нацеленного на создание простой и безопасной замены Sendmail. По заявлению разработчиков, проект уже можно рассматривать как стабильный. OpenSMTPD 5.3 является первым выпуском, официально рекомендованным для повсеместного внедрения и готовым для использования в промышленной эксплуатации. За последние несколько месяцев OpenSMTPD был значительно переработан и обрёл большую порцию новых возможностей.
Сервер поддерживает большую часть требований RFC 5321 и реализует ряд используемых повсеместно расширений протокола. Особенностью OpenSMTPD является поддержка из коробки "серых списков", аутентификацию пользователей (SMTP AUTH), SSL/TLS шифрование трафика, оформление файла конфигурации в стиле, напоминающем правила пакетного фильтра PF. Несмотря на то, что проект рассчитан на интеграцию с компонентами OpenBSD, по аналогии с OpenSSH развивается и переносимая версия OpenSMTPD, которая может быть использована во FreeBSD, Linux, NetBSD, DragonFlyBSD, Mac OS X и других ОС.
Ключевые особенности выпуска:
- Читаемый и легко воспринимаемый администратором формат файла конфигурации. Удобные правила фильтрации и управления доступом, похожие на конфигурацию PF. Например, для разрешения приёма почты для домена с доставкой в почтовые ящики можно использовать правило "accept for domain "*.example.com" deliver to mbox".
- Поддержка IPv4 и IPv6;
- Поддержка STARTTLS и SMTPS как для входящих, так и для исходящих сессий;
- Поддержка команды AUTH с аутентификацией через bsd_auth(3) и crypt(3);
- Поддержка команды SIZE для задания ограничений на размер передаваемых клиентом сообщений;
- Возможность определения отдельных приветственных приглашений (баннер с названием хоста) для разных принимающих соединения IP-адресов;
- Поддержка пометки сеанса в зависимости от обращения клиента к определённому принимающему соединения IP-адресу с возможностью в дальнейшем привязки к таким сеансам специфичных правил;
- Поддержка задания как глобальных, так и привязываемых к доменам параметров времени жизни сообщений;
- Возможность настройки дополнительных задержек, применяемых в процессе соединения при отклонении запросов;
- Поддержка виртуальных доменов. Возможность привязки баз пользователей одного виртуального домена к другому, в том числе с выделением групп пользователей с использованием масок и созданием достаточно сложных правил сопоставления адресов с почтовым ящиком;
- Поддержка подключения альтернативных баз пользователей, не пересекающихся с системными аккаунтами. Параметры пользователей могут быть определены через базу в формате db(3), текстовый файл со списком или внутри конфигурации smtpd.conf;
- Поддержка маппинга адресов для алиасов и файлов ~/.forward;
- Возможность сохранения доставляемых сообщений в форматах mbox и maildir, или передача для дальнейшей доставки стороннему MDA;
- Поддержка LMTP-релееинга;
- Поддержка smarthost для отправки третьему лицу копий сообщений на заданный адрес;
- Поддержка отправки сертификатов при соединении с удалённым хостом;
- Возможность работы в роли запасного MX-сервера (backup MX);
- Поддержка переопределения параметров отправителя для обрабатываемых сообщений. Возможность вывода разных ответов HELO и исходного адреса релея для разных принимающих соединения IP-адресов;
- Поддержка повторного использования уже установленных соединений и иные оптимизации уровня соединений;
- Поддержка двух бэкендов для управления очередями: хранение очередей в ОЗУ и файловой системе;
- Два бэкенда для таблиц: хэшированные базы в формате db(3) и статические списки. В качестве экспериментальных функций поддерживается хранения баз в SQLite и LDAP;
- Возможность вывода текущей статистики через команду "smtpctl show stats";
- Поддержка трассировки работы компонентов сервера через интерфейс "smtpctl trace component";
- Средства для горячего мониторинга работы MTA через команду "smtpctl monitor";
- Переносимая версия OpenSMTPD поддерживает аутентификацию через PAM;
- Из ограничений, которые планируется устранить в будущем, упоминается отсутствие фильтров и правил переписывания адресов (masquerading). В общем виде поддерживается создание фильтров для различных частей SMTP-сессии и email отправителя, но их планируется значительно расширить.