Postfix
の概要 - 目的と特徴
上のレベルへ | イントロダクション | 目的と特徴 | グローバルアーキテクチャ | キューマネージメント | セキュリティ
主な目的
Postfix プロジェクトの目的は、UNIX の Sendmail プログラムに対する、
発展しうる代替物を実装することです。具体的な目的、および
Postfix がそれを達成するための方法は次の通りです:
- 広い普及。Postfix はインターネット上のメールパフォーマンスと
セキュリティに重大なインパクトを与えるため、多くの人々に採用
されなければいけません。それゆえ、このソフトウェアは
フリーで配布され、交換条件はありません。
- パフォーマンス。Postfix は最も近い競争相手の最大3倍高速です。
Postfix を走らせているデスクトップ PC は1日に異なる100万の
メッセージの送受信ができます。Postfix は信頼性で妥協することなく、
web サーバの要領でプロセス生成のオーバーヘッドを減らし、
他の手法でファイルシステムのオーバーヘッドを減らしています。
- 互換性。Postfix は移行を容易にするために sendmail 互換で
あるように設計されています。Postfix は /var[/spool]/mail
や /etc/aliases, NIS, ~/.forward ファイルを
サポートします。しかし、Postfix は管理者にとっても容易であることも
目指しているため、sendmail.cf は 使いません。
- 安全性と堅牢性。Postfix は負荷がかかっても理静的に振舞うように
設計されています。ローカルシステムがディスクスペースやメモリを
使い果たしても、問題を悪化させるのではなく、速度を低下させます。
設計上、Postfix のプログラムはどれもメッセージ数などが増加しても
大きくなり続けることはありません。Postfix は制御下にとどまるよう
設計されています。
- 柔軟性。Postfix はそれぞれがある特定の仕事しかしない、
1ダース以上の小さなプログラムから構成されています:
SMTP を通してのメッセージ受信、SMTP を通してのメッセージの配送、
ローカルへのメッセージ配送、アドレスの書き換えなどです。
特定の要求があるサイトでは、一つかそれ以上の小さなプログラムを
代わりのバージョンで置き換えることが可能です。また、機能を
使用不可にすることも簡単です: ファイアウォールやクライアント
ワークステーションではローカル配送をする必要は全くありません。
- セキュリティ。Postfix は侵入者からローカルシステムを
保護するために、複数の防御レイヤーを使います。ほとんど全ての
Postfix デーモンは chroot 監獄で固定された低い権限で
動かすことができます。セキュリティに敏感な local 配送プログラムへの
ネットワークからの直接の経路はありません - 侵入者はまず他の
いくつかのプログラムを破らなければいけません。Postfix は
自身のキューファイルの中身や IPC メッセージの中身を信用しません。
Postfix は送信者によって付けられた情報を環境変数として渡す前に
フィルタします。大事なことを言い残しましたが、Postfix のプログラムは
どれも set-uid されていません。
その他の興味ある重要な特徴
- 複数の配送方法。
かつて作者はインターネットや DECnet、X.400、UUCP 間の
リレーができる Sendmail システムの設定をしていました。
Postfix はこのような環境をバーチャルドメインや複雑な
エイリアスの設定をしなくても操作できるように十分柔軟であるように
設計されました。しかし、最初のリリースは SMTP しか話さず、
UUCP サポートは限られたものでした。
- バーチャルドメイン。
最も一般的な場合であれば、バーチャルドメインサポートを追加するには、
たった一つの Postfix 検索テーブルを書き換える必要があるだけです。
他のメーラで同じ結果を得るには、たいてい複数のレベルのエイリアスや
リダイレクトが必要です。
- UCE コントロール。 Postfix は
そのシステムを通してメールをリレーさせることができるホストを
制限でき、また入って来ることが許されるメールの制限もサポートして
います。Postfix は常習容疑者(usual suspects)を実装しています:
ブラックリスト、RBL 検索、HELO/送信者 DNS 検索。
コンテンツフィルタはまだ実装されていません。
- テーブル検索。Postfix はまだ
アドレス書き換え言語を実装していません。代わりにテーブル検索を
広く使えるようにしています。テーブルには dbm や db
ファイル、ネットワークの NIS や NetInfo マップを
使うことができます。他の検索メカニズムのサポートを加えることも
比較的容易です。
上のレベルへ | イントロダクション | 目的と特徴 | グローバルアーキテクチャ | キューマネージメント | セキュリティ