stringtranslate.com

Постфикс (программное обеспечение)

Postfix — это бесплатный агент передачи почты (MTA) с открытым исходным кодом, который маршрутизирует и доставляет электронную почту .

Он выпущен под лицензией IBM Public License 1.0, которая является лицензией свободного программного обеспечения . Альтернативно, начиная с версии 3.2.5, он доступен по лицензии Eclipse Public License 2.0 по выбору пользователя. [2]

Первоначально написанный в 1997 году Витсе Венемой в Исследовательском центре IBM Томаса Дж. Уотсона в Нью-Йорке и впервые выпущенный в декабре 1998 года, [3] Postfix с 2023 года продолжает активно разрабатываться его создателем и другими участниками. Программное обеспечение также известно под прежними названиями VMailer и IBM Secure Mailer . Название Postfix представляет собой соединение слов «post» (что является другим словом для «почты») и «fix» [ требуется цитирование ] (что означает другое программное обеспечение, вдохновившее разработку Postfix).

Типичное развертывание

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

В качестве SMTP- клиента Postfix реализует высокопроизводительный параллельный механизм доставки почты. Postfix часто комбинируется с программным обеспечением для создания списков рассылки (например, Mailman ).

Операционные системы

Postfix работает (или работал) на AIX , BSD , HP-UX , Linux , macOS , Solaris и, вообще говоря, на каждой Unix-подобной операционной системе, которая поставляется с компилятором C и предоставляет стандартную среду разработки POSIX . Это MTA по умолчанию для операционных систем macOS , NetBSD , [4] RedHat / CentOS [5] и Ubuntu . [6]

Архитектура

Postfix состоит из комбинации серверных программ, работающих в фоновом режиме, и клиентских программ, вызываемых пользовательскими программами или системными администраторами.

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

Клиентские программы работают вне ядра Postfix. Они взаимодействуют с серверными программами Postfix через инструкции по доставке почты в файле пользователя ~/.forward и через небольшие программы-шлюзы для отправки почты или запроса информации о состоянии очереди.

Другие программы предоставляют административную поддержку для запуска или остановки Postfix, запроса информации о состоянии, управления очередью или проверки или обновления файлов конфигурации.

Желтые эллипсы
Один из многих демонов Postfix, служащий одной цели. Такое разделение на множество более мелких частей программного обеспечения считается одной из причин, почему Postfix безопасен и стабилен.
Синие коробки
Синие прямоугольники представляют собой так называемые таблицы поиска . Таблица поиска состоит из двух столбцов (ключ и значение), содержащих информацию, используемую для управления доступом, маршрутизации электронной почты и т. д.
Оранжевые коробки
Оранжевые поля — это либо почтовые очереди, либо файлы. В любом случае электронные письма хранятся на постоянном носителе (например, на жестком диске).
белые облака
Облака обозначают точки, в которых электронные письма попадают в Postfix или покидают его. Например, smtpd получает почту от других почтовых серверов или пользователей, тогда как smtp ретранслирует почту другим MTA.

Выполнение

Реализация Postfix использует безопасные подмножества языка C и системного API POSIX . Эти подмножества скрыты под уровнем абстракции, который содержит около 50% всего исходного кода Postfix и обеспечивает основу, на которой строятся все программы Postfix. Например, примитив «vstring» делает код Postfix устойчивым к атакам переполнения буфера [7] , а примитив «safe open» делает код Postfix устойчивым к атакам состояния гонки в системах, реализующих API файловой системы POSIX . Этот уровень абстракции не влияет на устойчивость к атакам кода, отличного от Postfix, например кода в системных или сторонних библиотеках.

Надежность

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

Производительность

Один единственный экземпляр Postfix работал со скоростью ~300 доставок сообщений в секунду [8] через Интернет и работал на стандартном оборудовании (система Dell 1850 2003 года выпуска с контроллером MegaRAID с батарейным питанием и двумя SCSI- дисками). Такая скорость доставки на порядок ниже «внутреннего» предела в 2500 доставок сообщений в секунду [8] , который был достигнут при использовании почтовой очереди на RAM-диске при доставке на «отбрасывающий» транспорт (с помощью двухъядерной системы Opteron ). в 2007).

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

Приведенные выше темпы доставки являются в основном теоретическими. При массовой доставке почты истинная скорость доставки в первую очередь определяется политикой получения почты получателя и репутацией отправителя.

Базовая конфигурация

В файле main.cf хранятся параметры конфигурации Postfix, специфичные для сайта, а файл master.cf определяет процессы демона. [9] В руководстве по базовой настройке Postfix описаны основные настройки, которые необходимо учитывать на каждом сайте, а в документе «Примеры стандартной конфигурации Postfix» обсуждаются параметры конфигурации для нескольких распространенных сред. Документ Postfix Address Rewriting описывает перезапись адресов и маршрутизацию почты. Полная коллекция документации находится в документации Postfix.

Более сложные реализации Postfix могут включать: интеграцию с другими приложениями, такими как SpamAssassin ; поддержка нескольких виртуальных доменных имен и использование баз данных, таких как MySQL , для управления сложными конфигурациями.

Опросы

В исследовании, опубликованном 1 июня 2022 года компанией E-Soft, Inc., [10] примерно 34% из 800 тысяч доступных почтовых серверов использовали Postfix, что делает его вторым по популярности почтовым сервером после Exim .

Однако этот опрос представляет собой гораздо меньшую выборку, чем 4 миллиона доменов, принявших участие в опросе, объявленном Lightmeter, Inc. в декабре 2021 года. [11] Там сканирование адресного пространства IPv4 (исключая определенные военные диапазоны) показало, что из 4 миллионов ответивших доменов 55% использовали Postfix, 17% — Exim .

В более позднем опросе Shodan , включавшем 5 миллионов сервисов на порту 25, [12] Postfix был обнаружен 1,4 миллиона раз, Exim — 0,4 миллиона раз (при этом Exim был обнаружен 1,1 миллиона раз на портах 465 и 587).

Примечание: эти опросы, по-видимому, охватывают разные группы населения, и сканирование Shodan часто блокируется.

Смотрите также

Рекомендации

  1. ^ Лекстрайт, Винсент (июль 2010 г.). «Маяк языков программирования, v10.3». Архивировано из оригинала 30 мая 2012 года . Проверено 5 сентября 2010 г.
  2. ^ «Стабильная версия Postfix 3.2.5 и устаревшие версии 3.1.8, 3.0.12 и 2.11.11» . Январь 2018 года . Проверено 30 января 2018 г.
  3. ^ Маркофф, Джон (декабрь 1998 г.). «Общее программное обеспечение, IBM выпустит проект почтовой программы». Нью-Йорк Таймс . Проверено 17 сентября 2017 г.
  4. ^ «Руководство по NetBSD. Глава 27. Почта и новости» . Проверено 10 мая 2010 г.
  5. ^ «ГЛАВА 24. ПОСТФИКС».
  6. ^ «Постфикс». Документация сообщества, Ubuntu Wiki . Проверено 9 марта 2012 г.
  7. ^ Онтаньон, Рамон Дж (10 июля 2001 г.). Безопасность Linux. Сан-Франциско: Сайбекс . п. 166. ИСБН 978-0-7821-2741-6. Проверено 21 сентября 2011 г.
  8. ^ ab «Эффективность массовой рассылки» . Проверено 9 сентября 2012 г.
  9. ^ Postfix-Tutorial.com: Postfix, Courier/POP, SASL и Spamassassin – с администратором MySQL
  10. ^ «Опрос почтового (MX) сервера» . Securityspace.com . E-Soft, Inc., 1 июня 2022 г. Проверено 17 июня 2022 г.
  11. ^ «Глобальное сканирование Mailmap: предварительные результаты» . Lightmeter, Inc., 2 декабря 2021 г. Проверено 11 ноября 2023 г.
  12. ^ «Анализ граней». Поисковая система Shodan . Проверено 12 января 2024 г.

дальнейшее чтение

Внешние ссылки