qmailはUnix上で動作するメール転送エージェント(MTA)です。1995年12月から、ダニエル・J・バーンスタインによって、人気のSendmailプログラムよりも安全な代替手段として開発されました。[ 3 ]当初はライセンスフリーのソフトウェアでしたが、後に作者によってソースコードがパブリックドメインに公開されました。 [ 4 ]
qmailは、最初に公開された当時、セキュリティを意識した最初のメール転送エージェントでした。その後、他のセキュリティを意識したMTAも公開されています。qmailの最も人気のある前身であるSendmailは、セキュリティを目標として設計されていなかったため、攻撃者の標的となってきました。Sendmailとは対照的に、qmailは相互に信頼できないコンポーネントで構成されたモジュール型アーキテクチャを採用しています。例えば、 qmailのSMTPリスナーコンポーネントは、キューマネージャやSMTP送信者とは異なる認証情報で実行されます。また、qmailはC標準ライブラリのセキュリティを意識した代替ライブラリを使用して実装されているため、スタックオーバーフローやヒープオーバーフロー、フォーマット文字列攻撃、一時ファイルの競合状態などの脆弱性はありません。
qmailはリリース当時、Sendmailよりも大幅に高速で、特にメーリングリストサーバーなどの大量メール送信タスクにおいてその性能が際立っていました。qmailは元々、大規模なメーリングリストを管理するためのツールとして設計されました。
qmailが導入された当時、Sendmailの設定は非常に複雑だったのに対し、qmailは設定と導入が簡単だった。
qmailは、メールにおけるいくつかの革新的な機能(バーンスタインが考案したものもあれば、そうでないものもある)の利用を推奨している。
qmailには、事実上の標準であるSimple Mail Transfer Protocol (SMTP)よりも優れたパフォーマンスを実現するように設計された電子メール送信プロトコルであるQuick Mail Transport Protocol (QMTP) [ 5 ]と、複数のホスト間で電子メールキューを共有するように設計されたネットワークプロトコルであるQuick Mail Queuing Protocol (QMQP) [ 6 ]も導入されています。
qmailはほぼ完全にモジュール化されたシステムであり、各主要機能は他の主要機能から分離されています。新しいモジュールが元のモジュールと同じインターフェースを維持する限り、qmailシステムのどの部分でも簡単に別のモジュールに置き換えることができます。
1997年、バーンスタインは最新ソフトウェアバージョンの検証可能なセキュリティホールを最初に発表した人に500米ドルの報酬を提供すると発表した。 [ 7 ]
2005年、セキュリティ研究者のGeorgi Guninskiはqmailに整数オーバーフローの脆弱性を発見した。64ビットプラットフォームにおいて、十分な仮想メモリを備えたデフォルト構成では、特定のqmailコンポーネントに大量のデータを配信すると、リモートコード実行が可能になる可能性がある。Bernsteinはこの脆弱性を実際の攻撃には適用できないと反論し、実際のqmailの展開環境ではこの脆弱性の影響を受けることはないと主張している。qmailコンポーネントのリソース制限を設定することで、この脆弱性を軽減できる。[ 8 ]
2007年11月1日、バーンスタインは報奨金を1000米ドルに引き上げた。[ 1 ]翌日のスライドプレゼンテーションで、バーンスタインは10年前のqmail-1.03には4つの「既知のバグ」があり、そのどれもが「セキュリティホール」ではないと述べた。彼はグニンスキーが発見したバグを「チェックされていないカウンターの潜在的なオーバーフロー」と表現した。「幸いにも、カウンターの増加はメモリによって、つまり設定によって制限されていたが、これは全くの幸運だった。」[ 9 ]
2020年5月19日、 Qualys [ 10 ]によってGuninskiの脆弱性に対する動作するエクスプロイトが公開されたが、エクスプロイトの作者は、追加の環境制限が含まれているため報酬を拒否されたと述べている。
コアとなる qmail パッケージは長年更新されていません。[ 11 ]新機能は当初サードパーティのパッチによって提供され、当時最も重要なものがnetqmailと呼ばれる単一のメタパッチにまとめられました。[ 12 ]
qmail はSendmailの代替として設計されたものではなく、すべての状況でSendmail とまったく同じように動作するわけではありません。場合によっては、これらの動作の違いが批判の的となっています。たとえば、qmail のバウンス メッセージの処理方法 (QSBMF と呼ばれる形式) は、IETFがRFC 1894 [ 13 ]で規定し、その後RFC 3464 [ 14 ]としてドラフト標準に進み、 SMTP仕様で推奨されている配信ステータス通知の標準形式とは異なります。
qmail の一部の機能は、メール転送の複雑さを引き起こすとして批判されてきました。たとえば、qmail の「ワイルドカード」配信メカニズムとセキュリティ設計により、SMTP トランザクション中に偽造または存在しない送信者からのメッセージを拒否することができません。[ 15 ]過去には、これらの違いにより、qmail がスパムリレーとして悪用された場合に異なる動作をしていた可能性がありますが、現代のスパム配信技術はバウンス動作の影響を受けにくくなっています。
qmail は2007 年 11 月にパブリック ドメインに公開されました。 [ 16 ] 2007 年 11 月までは、qmail はライセンスフリー ソフトウェアであり、特定の制限 (主に互換性に関するもの) を満たした場合にのみ、ソース形式またはプリコンパイル形式 (「var-qmail パッケージ」) での配布が許可されていました。この異例のライセンス契約により、qmail は ( DFSGなどの) ガイドラインに従って非フリーとなり、論争の原因となりました。
qmailは、広く普及している唯一のパブリックドメインソフトウェアのメッセージ転送エージェント(MTA)です。
ここにqmailパッケージ(特にqmail-1.03.tar.gz、
MD5
チェックサム622f65f982e380dbe86e6574f3abcb7c)をパブリックドメインに公開します。パッケージの変更、変更版の配布などは自由に行ってください。