qmail — это агент передачи почты (MTA), работающий в Unix . Он был написан в декабре 1995 года Дэниелом Дж. Бернштейном как более безопасная альтернатива популярной программе Sendmail . Исходный код qmail, изначально не требующий лицензии , позже был передан автором в общественное достояние . [3]
На момент своей первой публикации qmail был первым агентом транспорта почты, обеспечивающим безопасность; с тех пор были опубликованы другие MTA , обеспечивающие безопасность . Самый популярный предшественник qmail, Sendmail , не был разработан с целью обеспечения безопасности и в результате стал постоянной мишенью для злоумышленников. В отличие от sendmail, qmail имеет модульную архитектуру, состоящую из взаимно не доверяющих компонентов; например, компонент прослушивателя SMTP в qmail запускается с учетными данными , отличными от учетных данных администратора очередей или отправителя SMTP. qmail также был реализован с помощью безопасной замены стандартной библиотеки C и, как следствие, не был уязвим для переполнения стека и кучи , атак на строку формата или условий временной гонки файлов .
На момент своего выпуска qmail был значительно быстрее, чем Sendmail, особенно для задач массовой почты, таких как серверы списков рассылки. qmail изначально был разработан как способ управления большими списками рассылки.
На момент появления qmail конфигурация Sendmail была общеизвестно сложной, тогда как qmail был прост в настройке и развертывании.
qmail поощряет использование нескольких нововведений в почте (некоторые из них созданы Бернштейном, другие нет):
qmail также представляет протокол быстрой передачи почты (QMTP), протокол передачи электронной почты, который обеспечивает более высокую производительность, чем простой протокол передачи почты (SMTP), фактический стандарт; [4] и Quick Mail Queuing Protocol (QMQP), сетевой протокол, предназначенный для разделения очередей электронной почты между несколькими хостами. [5]
qmail — почти полностью модульная система, в которой каждая основная функция отделена от других основных функций. Любую часть системы qmail легко заменить другим модулем, если новый модуль сохраняет тот же интерфейс, что и исходный.
В 1997 году Бернштейн предложил вознаграждение в размере 500 долларов США тому, кто первым опубликует поддающуюся проверке дыру в безопасности в последней версии программного обеспечения. [6]
В 2005 году исследователь безопасности Георгий Гунински обнаружил в qmail целочисленное переполнение . На 64-битных платформах в конфигурациях по умолчанию с достаточным количеством виртуальной памяти доставка огромных объемов данных определенным компонентам qmail может позволить удаленное выполнение кода. Бернштейн не согласен с тем, что это практическая атака, утверждая, что никакое реальное развертывание qmail не будет уязвимо. Настройка ограничений ресурсов для компонентов qmail снижает уязвимость. [7]
1 ноября 2007 года Бернштейн увеличил награду до 1000 долларов США. [1] На слайд-презентации на следующий день Бернштейн заявил, что в qmail-1.03 десятилетней давности было 4 «известных ошибки», ни одна из которых не была «дырами в безопасности». Он охарактеризовал найденную Гунински ошибку как «потенциальное переполнение непроверяемого счетчика». «К счастью, рост счетчика был ограничен памятью и, следовательно, конфигурацией, но это была чистая удача». [8]
19 мая 2020 года Qualys опубликовал рабочий эксплойт для уязвимости Гунински [9] , но авторы эксплойта заявляют, что им было отказано в вознаграждении, поскольку он содержит дополнительные ограничения окружающей среды.
Базовый пакет qmail не обновлялся уже много лет. [10] Новые функции изначально предоставлялись сторонними патчами, из которых наиболее важные на тот момент были собраны в один мета-патч под названием netqmail . [11]
qmail не был разработан как замена Sendmail и не во всех ситуациях ведет себя точно так же, как Sendmail . В некоторых случаях эти различия в поведении стали поводом для критики. Например, подход qmail к возвращенным сообщениям (формат, называемый QSBMF) отличается от стандартного формата уведомлений о статусе доставки , указанного IETF в RFC 1894, [12], который тем временем был усовершенствован до черновика стандарта как RFC 3464, [13] и рекомендован в Спецификация SMTP .
Более того, некоторые функции qmail подверглись критике за усложнение пересылки почты; например, механизм доставки «подстановочных знаков» и конструкция безопасности qmail не позволяют ему отклонять сообщения от поддельных или несуществующих отправителей во время транзакций SMTP. [14] В прошлом эти различия могли привести к тому, что qmail вел себя по-другому, когда его использовали в качестве ретранслятора спама, хотя современные методы доставки спама меньше подвержены влиянию отказов.
qmail был выпущен в общественное достояние в ноябре 2007 года. [15] До ноября 2007 года qmail был безлицензионным программным обеспечением , с разрешением на распространение в исходной форме или в предварительно скомпилированной форме («пакет var-qmail») только в том случае, если были соблюдены определенные ограничения (в первую очередь связанные с совместимостью). Это необычное лицензионное соглашение сделало qmail несвободным в соответствии с некоторыми правилами (например, DFSG ) и вызвало споры.
qmail — единственный широко распространенный агент передачи сообщений общедоступного программного обеспечения ( MTA ).
Настоящим я помещаю пакет qmail (в частности, qmail-1.03.tar.gz с контрольной суммой
MD5
622f65f982e380dbe86e6574f3abcb7c) в общественное достояние. Вы можете изменять пакет, распространять модифицированные версии и т. д.