Qmail | это... Что такое Qmail? (original) (raw)

qmail

qmail
Тип Почтовый сервер
Разработчик Дэниел Джулиус Бернштейн
Написана на C
ОС Unix
Версия 1.03 (15 июня, 1998)
Тестовая версия netqmail 1.06 (11 ноября, 2007)
Лицензия Общественное достояние
Сайт http://cr.yp.to/qmail.html

qmailMTA (агент доставки почты), который работает под Unix. Он был написан Дэниелом Бернштейном как более безопасная замена для популярного MTA Sendmail.

Содержание

Особенности

Безопасность

На момент выпуска первой версии, qmail был первым MTA, созданным с учетом требований безопасности; с тех пор были созданы другие безопасные MTA. Два наиболее популярных предшественника qmail — Sendmail и Smail — не были созданы с оглядкой на безопасность и в результате являлись постоянным целями для атак. В отличие от этих пакетов qmail имеет модульную архитектуру, состоящую из не доверяющих друг другу компонентов; например компонент qmail, принимающий SMTP-соединения, запускается с UID, отличным от UID'ов для менеджера очереди или модуля, отсылающего почту. Также, в qmail стандартная библиотека Си была заменена на безопасный аналог, и как результат, qmail не подвержен переполнениям стека и кучи, атакам на формат строки или состоянию гонок (англ. race conditions) с временными файлами.

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

Во время первого выпуска qmail был значительно быстрее sendmail, особенно в случаях обработки больших объемов почты, таких как сервера списков рассылки.

Простота

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

Нововведения

qmail поддерживает некоторые нововведения в сфере электронной почты (автором некоторых является Bernstein, некоторых — нет):

Maildir

Bernstein придумал для qmail формат Maildir, в котором каждое почтовое сообщение хранится в отдельном файле. В отличие формата Mbox — стандарта de facto, который хранит все сообщения в одном файле, Maildir позволяет избежать множества проблем с блокировками и параллелизмом, также, он безопасно может работать поверх NFS. qmail может также доставлять почту и в Mbox-ящики.

Имена ящиков с использованием шаблонов

В qmail была представлена концепция контролируемых пользователем шаблонов (wildcards). Почта, приходящая на адреса вида "пользователь-wildcard" доставляется в отдельные ящики, позволяя пользователю публиковать несколько почтовых адресов, например, один для списка рассылки, другой — для деловой переписки и третий — для публикации в общедоступных местах. Эта функция не требует настройки на стороне сервера, что позволяет пользователю самому управлять своим адресным пространством. Кроме того, эта функция используется некоторыми менеджерами списков рассылки, для управления виртуальными доменами и пр.

Также, в qmail реализованны QMTP- и QMQP-протоколы.

Разногласия

qmail был разработан в качестве критического ответа Sendmail, крайне популярной и до некоторой степени любимой части программного обеспечения Unix. Bernstein, автор qmail, не особо сдерживался в описании недостатков в дизайне Sendmail и превосходящих характеристик qmail, и при этом он не старался изо всех сил копировать поведение Sendmail, которое в то время было стандартом de facto в области доставки Интернет-почты. Как результат, qmail подвергался необычно тщательному исследованию.

Награда за нахождение уязвимости Георгием Гунински

Bernstein предложил награду в US$500 первому, кто опубликует поддающуюся проверке уязвимость в последней версии программы.[1]

В 2005 году специалист в области безопасности Георгий Гунински обнаружил целочисленное переполнение в qmail. На 64-разрядных платформах в определенных конфигурациях с сомнительной вероятностью существования на реальной системе (включая деактивированные ограничения ресурсов и необычайно большие размеры доступной виртуальной памяти), доставка огромных количеств данных к некоторым компонентам qmail может привести к удаленному выполнению произвольного кода. Bernstein оспаривает осуществимость этого метода, используя в качестве аргумента отсутствие в реальности инсталляций qmail, восприимчивых к данной атаке. Настройка ограничений ресурсов для компонентов qmail уменьшает степень подверженности этой атаке.[2]

1 ноября 2007 года Bernstein увеличил размер вознаграждения до US$1000.[3] В слайд-презентации на следующий день Bernstein сообщил, что после десяти лет существования qmail-1.03 имеется 4 известных ошибки ("known bugs"), ни одна из которых не является дырой в безопасности ("security hole"). Он охарактеризовал ошибку, найденную Гунински, как потенциальное переполнение непроверенного счетчика ("potential overflow of an unchecked counter"). "К счастью, рост счетчика был ограничен памятью и следовательно конфигурацией, но это было чистой удачей." ("Fortunately, counter growth was limited by memory and thus by configuration, but this was pure luck.")[4]

Частота обновлений

В отличие от конкурентов, Postfix и Sendmail, основной пакет qmail не обновлялся много лет.[5] Новые возможности обеспечиваются сторонними патчами, такими как netqmail. Это выгодно для некоторых пользователей из-за того что не нужно постоянно устанавливать обновления, и является проблемой для других пользователей, в частности для тех, кто хочет использовать механизмы аутентификации, которые появились после последнего выпуска qmail.

Соответствие стандартам

qmail был разработан как замена для Sendmail, но не ведет себя точно так же как Sendmail во всех ситуациях. В некоторых случаях эти различия в поведении являются основанием для критики. Например, подход qmail к обработке сообщений о недоставке (формат под названием QSBMF) отличается от рекомендованного IETF в RFC 1894. Кроме того, некоторые функции qmail подвергались критике за введение сложностей в доставку почты; например, механизм шаблонов в адресах и безопасный дизайн не позволяют ему отвергать сообщения для несуществующих пользователей во время SMTP-сессии. В прошлом эта особенность могла использоваться для компрометации qmail-узла как источника спама, тем не менее, сегодня такие техники рассылки спама уже не применяются.

Несмотря на эти обстоятельства, qmail находится в пятерке самых популярных Unix-MTA, пересылая значительную часть всех почтовых сообщений в Интернете.

Ситуация с лицензией

Daniel J. Bernstein сделал qmail общественным достоянием (public domain) в ноябре 2007 года.[6][7] До этого момента qmail был программой без лицензии, что гарантировало право на распространение в виде исходного кода или прекомпилированной форме ("var-qmail package") при условии соблюдения некоторых условий, главным образом относящихся к совместимости.

qmail является единственным широко распространенным MTA находящемся в общественном достоянии.

Примечания

  1. The qmail security guarantee. Проверено 5 октября 2007.
  2. Georgi Guninski Georgi Guninski security advisory #74, 2005. Проверено 5 октября 2007.
  3. Some thoughts on security after ten years of qmail 1.0. Проверено 1 декабря 2007.
  4. Some thoughts on security after ten years of qmail 1.0 [Slide presentation]. Проверено 17 января 2008.
  5. Life with qmail; History. Проверено 1 декабря 2007.
  6. Information for distributors. Проверено 30 ноября 2007.
  7. Bernstein releases code into the public domain. Проверено 30 ноября 2007.

См. также

Ссылки

cdb | daemontools | djbdns | qmail | ucspi-tcp

Wikimedia Foundation.2010.