qmail

Поделись знанием:
Перейти к: навигация, поиск

qmail
Тип

Почтовый сервер

Разработчик

Дэниел Джулиус Бернштейн

Написана на

C

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

Unix

Последняя версия

1.03 (15 июня, 1998)

Тестовая версия

netqmail 1.06 (11 ноября, 2007)

Лицензия

Общественное достояние

Сайт

[cr.yp.to/qmail.html o/qmail.html]

К:Википедия:Статьи без изображений (тип: не указан)

qmail — MTA (агент доставки почты), который работает под 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. Бернштейн, автор qmail, не особо сдерживался в описании недостатков в дизайне Sendmail и превосходящих характеристик qmail, и при этом он не старался изо всех сил копировать поведение Sendmail, которое в то время было стандартом de facto в области доставки Интернет-почты. Как результат, qmail подвергался необычно тщательному исследованию.

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

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

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

1 ноября 2007 года Бернштейн увеличил размер вознаграждения до US$1000.[3] В слайд-презентации на следующий день Бернштейн сообщил, что после десяти лет существования 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] Новые возможности обеспечиваются сторонними патчами, такими как [www.qmail.org/netqmail/ netqmail]. Это выгодно для некоторых пользователей из-за того, что не нужно постоянно устанавливать обновления, и является проблемой для других пользователей, в частности для тех, кто хочет использовать механизмы аутентификации, которые появились после последнего выпуска qmail.

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

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

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

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

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

Напишите отзыв о статье "Qmail"

Примечания

  1. [cr.yp.to/qmail/guarantee.html The qmail security guarantee]. Проверено 5 октября 2007. [www.webcitation.org/65pFWgiGa Архивировано из первоисточника 1 марта 2012].
  2. Georgi Guninski. [www.guninski.com/where_do_you_want_billg_to_go_today_4.html Georgi Guninski security advisory #74, 2005]. Проверено 5 октября 2007. [www.webcitation.org/65pFX8JVP Архивировано из первоисточника 1 марта 2012].
  3. [cr.yp.to/qmail/qmailsec-20071101.pdf Some thoughts on security after ten years of qmail 1.0]. Проверено 1 декабря 2007. [www.webcitation.org/65pFXentI Архивировано из первоисточника 1 марта 2012].
  4. [cr.yp.to/talks/2007.11.02/slides.pdf Some thoughts on security after ten years of qmail 1.0 [Slide presentation]]. Проверено 17 января 2008. [www.webcitation.org/65pFYBzxO Архивировано из первоисточника 1 марта 2012].
  5. [www.lifewithqmail.org/lwq.html#history Life with qmail; History]. Проверено 1 декабря 2007. [www.webcitation.org/65pFYerSL Архивировано из первоисточника 1 марта 2012].
  6. [cr.yp.to/qmail/dist.html Information for distributors]. Проверено 30 ноября 2007. [www.webcitation.org/65pFZGKy1 Архивировано из первоисточника 1 марта 2012].
  7. [video.google.com/videoplay?docid=-3147768955127254412&q=%22Bernstein+releases+code+to+public+domain%22&total=1&start=0&num=10&so=0&type=search&plindex=0 Bernstein releases code into the public domain]. Проверено 30 ноября 2007. [www.webcitation.org/65pFZgSQk Архивировано из первоисточника 1 марта 2012].

См. также

Ссылки

  • [cr.yp.to/qmail.html Официальный сайт qmail], поддерживается автором
  • [www.qmail.org Неофициальный сайт qmail], поддерживается Russ Nelson
  • [www.lifewithqmail.org «Жизнь с qmail» («Life with qmail» aka LWQ)] — популярное руководство по qmail. Имеется [ru.qmail.org/docs/lwq/lwq.html перевод] на русский язык.
  • [www.ru.qmail.org Русскоязычный сайт о qmail]
  • [www.qmail.org/netqmail/ netqmail] — это qmail-1.03 с минимальным набором патчей, рекомендованный в [www.lifewithqmail.org LWQ]. netqmail 1.06 выпущен в ноябре 2007 года.
  • [www.qmail-ldap.org/ qmail-ldap patch] позволяет создавать большие почтовые сервера, хранит данные о пользователях в LDAP, заменяет большинство патчей
  • [qmail-ldap-ui.sourceforge.net Qmail-LDAP-UI] — web-интерфейс для управления пользовательскими учетными записями
  • [www.mail-toaster.org Mail Toaster] — полноценный почтовый сервер на основе qmail
  • [www.qmailtoaster.com/ QmailToaster] — популярное решение, основанное на qmail
  • [www.qmailrocks.org/ qmail rocks], популярное руководство по qmail
  • [toaster.godshell.com/ Godshell qMail Toaster Wiki] — полноценный почтовый сервер, основанный на qmail с поддержкой плагинов
  • pkgsrc qmail и qmail-run — пара легких для установки кроссплатформенных пакетов с исходным кодом qmail, включенных в [www.pkgsrc.org/ pkgsrc]
  • [qmail.faqts.com/ qmail-секция FAQTS], обширная база знаний, созданная пользователями qmail
  • [www.qmailwiki.org/ QmailWiki] — относительно новая wiki о qmail, поддерживаемая Inter7
  • [www.inter7.com/index.php?page=vpopmail vpopmail] — GPL-программа, которая позволяет легко управлять виртуальными доменами и пользователями
  • [home.pages.de/~mandree/qmail-bugs.html Unofficial Qmail Bug and Wishlist]
  • Jonathan de Boyne Pollard. [homepages.tesco.net./~J.deBoynePollard/FGA/qmail-myths-dispelled.html Some of what is said about qmail is wrong.]. Frequently Given Answers. [www.webcitation.org/65pFa6dX9 Архивировано из первоисточника 1 марта 2012]. — Jonathan de Boyne Pollard’s debunking of several myths relating to qmail
  • Jonathan de Boyne Pollard. [homepages.tesco.net./~J.deBoynePollard/FGA/qmail-problems.html The known problems with Dan Bernstein's qmail]. Frequently Given Answers. [www.webcitation.org/65pFaeuPh Архивировано из первоисточника 1 марта 2012]. — Jonathan de Boyne Pollard’s list of the several known problems in qmail

Отрывок, характеризующий Qmail



В четвертом часу пополудни войска Мюрата вступали в Москву. Впереди ехал отряд виртембергских гусар, позади верхом, с большой свитой, ехал сам неаполитанский король.
Около середины Арбата, близ Николы Явленного, Мюрат остановился, ожидая известия от передового отряда о том, в каком положении находилась городская крепость «le Kremlin».
Вокруг Мюрата собралась небольшая кучка людей из остававшихся в Москве жителей. Все с робким недоумением смотрели на странного, изукрашенного перьями и золотом длинноволосого начальника.
– Что ж, это сам, что ли, царь ихний? Ничево! – слышались тихие голоса.
Переводчик подъехал к кучке народа.
– Шапку то сними… шапку то, – заговорили в толпе, обращаясь друг к другу. Переводчик обратился к одному старому дворнику и спросил, далеко ли до Кремля? Дворник, прислушиваясь с недоумением к чуждому ему польскому акценту и не признавая звуков говора переводчика за русскую речь, не понимал, что ему говорили, и прятался за других.
Мюрат подвинулся к переводчику в велел спросить, где русские войска. Один из русских людей понял, чего у него спрашивали, и несколько голосов вдруг стали отвечать переводчику. Французский офицер из передового отряда подъехал к Мюрату и доложил, что ворота в крепость заделаны и что, вероятно, там засада.
– Хорошо, – сказал Мюрат и, обратившись к одному из господ своей свиты, приказал выдвинуть четыре легких орудия и обстрелять ворота.
Артиллерия на рысях выехала из за колонны, шедшей за Мюратом, и поехала по Арбату. Спустившись до конца Вздвиженки, артиллерия остановилась и выстроилась на площади. Несколько французских офицеров распоряжались пушками, расстанавливая их, и смотрели в Кремль в зрительную трубу.
В Кремле раздавался благовест к вечерне, и этот звон смущал французов. Они предполагали, что это был призыв к оружию. Несколько человек пехотных солдат побежали к Кутафьевским воротам. В воротах лежали бревна и тесовые щиты. Два ружейные выстрела раздались из под ворот, как только офицер с командой стал подбегать к ним. Генерал, стоявший у пушек, крикнул офицеру командные слова, и офицер с солдатами побежал назад.
Послышалось еще три выстрела из ворот.
Один выстрел задел в ногу французского солдата, и странный крик немногих голосов послышался из за щитов. На лицах французского генерала, офицеров и солдат одновременно, как по команде, прежнее выражение веселости и спокойствия заменилось упорным, сосредоточенным выражением готовности на борьбу и страдания. Для них всех, начиная от маршала и до последнего солдата, это место не было Вздвиженка, Моховая, Кутафья и Троицкие ворота, а это была новая местность нового поля, вероятно, кровопролитного сражения. И все приготовились к этому сражению. Крики из ворот затихли. Орудия были выдвинуты. Артиллеристы сдули нагоревшие пальники. Офицер скомандовал «feu!» [пали!], и два свистящие звука жестянок раздались один за другим. Картечные пули затрещали по камню ворот, бревнам и щитам; и два облака дыма заколебались на площади.
Несколько мгновений после того, как затихли перекаты выстрелов по каменному Кремлю, странный звук послышался над головами французов. Огромная стая галок поднялась над стенами и, каркая и шумя тысячами крыл, закружилась в воздухе. Вместе с этим звуком раздался человеческий одинокий крик в воротах, и из за дыма появилась фигура человека без шапки, в кафтане. Держа ружье, он целился во французов. Feu! – повторил артиллерийский офицер, и в одно и то же время раздались один ружейный и два орудийных выстрела. Дым опять закрыл ворота.
За щитами больше ничего не шевелилось, и пехотные французские солдаты с офицерами пошли к воротам. В воротах лежало три раненых и четыре убитых человека. Два человека в кафтанах убегали низом, вдоль стен, к Знаменке.
– Enlevez moi ca, [Уберите это,] – сказал офицер, указывая на бревна и трупы; и французы, добив раненых, перебросили трупы вниз за ограду. Кто были эти люди, никто не знал. «Enlevez moi ca», – сказано только про них, и их выбросили и прибрали потом, чтобы они не воняли. Один Тьер посвятил их памяти несколько красноречивых строк: «Ces miserables avaient envahi la citadelle sacree, s'etaient empares des fusils de l'arsenal, et tiraient (ces miserables) sur les Francais. On en sabra quelques'uns et on purgea le Kremlin de leur presence. [Эти несчастные наполнили священную крепость, овладели ружьями арсенала и стреляли во французов. Некоторых из них порубили саблями, и очистили Кремль от их присутствия.]
Мюрату было доложено, что путь расчищен. Французы вошли в ворота и стали размещаться лагерем на Сенатской площади. Солдаты выкидывали стулья из окон сената на площадь и раскладывали огни.
Другие отряды проходили через Кремль и размещались по Маросейке, Лубянке, Покровке. Третьи размещались по Вздвиженке, Знаменке, Никольской, Тверской. Везде, не находя хозяев, французы размещались не как в городе на квартирах, а как в лагере, который расположен в городе.
Хотя и оборванные, голодные, измученные и уменьшенные до 1/3 части своей прежней численности, французские солдаты вступили в Москву еще в стройном порядке. Это было измученное, истощенное, но еще боевое и грозное войско. Но это было войско только до той минуты, пока солдаты этого войска не разошлись по квартирам. Как только люди полков стали расходиться по пустым и богатым домам, так навсегда уничтожалось войско и образовались не жители и не солдаты, а что то среднее, называемое мародерами. Когда, через пять недель, те же самые люди вышли из Москвы, они уже не составляли более войска. Это была толпа мародеров, из которых каждый вез или нес с собой кучу вещей, которые ему казались ценны и нужны. Цель каждого из этих людей при выходе из Москвы не состояла, как прежде, в том, чтобы завоевать, а только в том, чтобы удержать приобретенное. Подобно той обезьяне, которая, запустив руку в узкое горло кувшина и захватив горсть орехов, не разжимает кулака, чтобы не потерять схваченного, и этим губит себя, французы, при выходе из Москвы, очевидно, должны были погибнуть вследствие того, что они тащили с собой награбленное, но бросить это награбленное им было так же невозможно, как невозможно обезьяне разжать горсть с орехами. Через десять минут после вступления каждого французского полка в какой нибудь квартал Москвы, не оставалось ни одного солдата и офицера. В окнах домов видны были люди в шинелях и штиблетах, смеясь прохаживающиеся по комнатам; в погребах, в подвалах такие же люди хозяйничали с провизией; на дворах такие же люди отпирали или отбивали ворота сараев и конюшен; в кухнях раскладывали огни, с засученными руками пекли, месили и варили, пугали, смешили и ласкали женщин и детей. И этих людей везде, и по лавкам и по домам, было много; но войска уже не было.
В тот же день приказ за приказом отдавались французскими начальниками о том, чтобы запретить войскам расходиться по городу, строго запретить насилия жителей и мародерство, о том, чтобы нынче же вечером сделать общую перекличку; но, несмотря ни на какие меры. люди, прежде составлявшие войско, расплывались по богатому, обильному удобствами и запасами, пустому городу. Как голодное стадо идет в куче по голому полю, но тотчас же неудержимо разбредается, как только нападает на богатые пастбища, так же неудержимо разбредалось и войско по богатому городу.
Жителей в Москве не было, и солдаты, как вода в песок, всачивались в нее и неудержимой звездой расплывались во все стороны от Кремля, в который они вошли прежде всего. Солдаты кавалеристы, входя в оставленный со всем добром купеческий дом и находя стойла не только для своих лошадей, но и лишние, все таки шли рядом занимать другой дом, который им казался лучше. Многие занимали несколько домов, надписывая мелом, кем он занят, и спорили и даже дрались с другими командами. Не успев поместиться еще, солдаты бежали на улицу осматривать город и, по слуху о том, что все брошено, стремились туда, где можно было забрать даром ценные вещи. Начальники ходили останавливать солдат и сами вовлекались невольно в те же действия. В Каретном ряду оставались лавки с экипажами, и генералы толпились там, выбирая себе коляски и кареты. Остававшиеся жители приглашали к себе начальников, надеясь тем обеспечиться от грабежа. Богатств было пропасть, и конца им не видно было; везде, кругом того места, которое заняли французы, были еще неизведанные, незанятые места, в которых, как казалось французам, было еще больше богатств. И Москва все дальше и дальше всасывала их в себя. Точно, как вследствие того, что нальется вода на сухую землю, исчезает вода и сухая земля; точно так же вследствие того, что голодное войско вошло в обильный, пустой город, уничтожилось войско, и уничтожился обильный город; и сделалась грязь, сделались пожары и мародерство.

Французы приписывали пожар Москвы au patriotisme feroce de Rastopchine [дикому патриотизму Растопчина]; русские – изуверству французов. В сущности же, причин пожара Москвы в том смысле, чтобы отнести пожар этот на ответственность одного или несколько лиц, таких причин не было и не могло быть. Москва сгорела вследствие того, что она была поставлена в такие условия, при которых всякий деревянный город должен сгореть, независимо от того, имеются ли или не имеются в городе сто тридцать плохих пожарных труб. Москва должна была сгореть вследствие того, что из нее выехали жители, и так же неизбежно, как должна загореться куча стружек, на которую в продолжение нескольких дней будут сыпаться искры огня. Деревянный город, в котором при жителях владельцах домов и при полиции бывают летом почти каждый день пожары, не может не сгореть, когда в нем нет жителей, а живут войска, курящие трубки, раскладывающие костры на Сенатской площади из сенатских стульев и варящие себе есть два раза в день. Стоит в мирное время войскам расположиться на квартирах по деревням в известной местности, и количество пожаров в этой местности тотчас увеличивается. В какой же степени должна увеличиться вероятность пожаров в пустом деревянном городе, в котором расположится чужое войско? Le patriotisme feroce de Rastopchine и изуверство французов тут ни в чем не виноваты. Москва загорелась от трубок, от кухонь, от костров, от неряшливости неприятельских солдат, жителей – не хозяев домов. Ежели и были поджоги (что весьма сомнительно, потому что поджигать никому не было никакой причины, а, во всяком случае, хлопотливо и опасно), то поджоги нельзя принять за причину, так как без поджогов было бы то же самое.