Введение

Агент передачи почты (Mail Transfer Agent) – Postfix – это бесплатный и открытый почтовый агент (MTA), осуществляющий маршрутизацию и доставку электронной почты. Он распространяется под лицензией IBM Public License 1.0, являющейся лицензией свободного программного обеспечения. Альтернативно, начиная с версии 3.2.5, он доступен под лицензией Eclipse Public License 2.0 по выбору пользователя. Изначально разработанный в 1997 году Витсе Венемой в Исследовательском центре IBM имени Томаса Дж. Уотсона в Нью-Йорке и впервые выпущенный в декабре 1998 года, Postfix по состоянию на 2023 год продолжает активно разрабатываться его создателем и другими участниками. Программное обеспечение также известно под прежними названиями VMailer и IBM Secure Mailer. Название Postfix является составным, образованным от слов "post" (что является синонимом слова "почта") и "bugfix" (отражающим влияние другого программного обеспечения, вдохновившего разработку Postfix).

Типичное использование

Как SMTP-сервер, Postfix обеспечивает первый уровень защиты от спам-ботов и вредоносного ПО. Администраторы могут комбинировать Postfix с другим программным обеспечением для фильтрации спама и вирусов (например, Amavisd new), доступа к хранилищу сообщений (например, Dovecot) или реализации сложных политик доступа на уровне SMTP (например, postfwd, milter regex, policyd weight). В качестве SMTP-клиента Postfix реализует высокопроизводительный параллельный механизм доставки почты. Postfix часто используется совместно с программным обеспечением для управления рассылками (например, Mailman).

Архитектура

Postfix состоит из комбинации серверных программ, работающих в фоновом режиме, и клиентских программ, вызываемых пользовательскими программами или системными администраторами. Ядро Postfix состоит из нескольких десятков серверных программ, работающих в фоновом режиме, каждая из которых обрабатывает конкретный аспект доставки электронной почты. Примерами служат SMTP-сервер, планировщик, переписыватель адресов и локальный сервер доставки. В целях минимизации последствий сбоев большинство серверных программ запускаются с фиксированными, ограниченными привилегиями и добровольно завершают работу после обработки определенного количества запросов. Для экономии системных ресурсов большинство серверных программ завершают работу, когда становятся неактивными. Клиентские программы работают вне ядра Postfix и взаимодействуют с серверными программами Postfix через инструкции по доставке почты в файле ~/.forward пользователя, а также через небольшие программы-«шлюзы» для отправки почты или запроса информации о состоянии очереди. Другие программы обеспечивают административную поддержку для запуска или остановки Postfix, запроса информации о статусе, управления очередью, а также для просмотра или обновления файлов конфигурации. Желтые эллипсы – один из множества демонов Postfix, выполняющий строго определенную функцию. Такое разделение на множество небольших программных компонентов считается одной из причин безопасности и стабильности Postfix. Синие прямоугольники – это так называемые таблицы поиска. Таблица поиска состоит из двух столбцов (ключ и значение), содержащих информацию, используемую для контроля доступа, маршрутизации электронной почты и т. д. Оранжевые прямоугольники – это либо очереди сообщений, либо файлы. В любом случае, электронные письма хранятся на постоянных носителях (например, на жестком диске). Белые облака обозначают точки входа и выхода электронной почты из Postfix. Например, smtpd принимает почту от других почтовых серверов или пользователей, а smtp пересылает почту другим MTA.

Прочность

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

Опросы

В результатах сканирования Shodan за март 2024 года Postfix был обнаружен 2,7 миллиона раз, Exim — 3,0 миллиона раз. Некоторые сайты блокируют запросы Shodan, но неясно, существенно ли это повлияет на соотношение между Postfix и Exim. В исследовании, опубликованном 1 марта 2024 года компанией E Soft, Inc., которое в 10 раз меньше по объему, было выявлено 148 тысяч почтовых серверов, использующих Postfix, что делает его значительно отстающим от Exim с 227 тысячами. Этот опрос часто упоминается, однако он специально ориентирован на домены, предоставляющие веб-услуги.