マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Postfix

【OSS情報アーカイブ】Postfix

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「Postfix」とは

「Postfix」基本情報

■概要

Postfix(ポストフィックス)とは、オープンソースのメールサーバソフトウェアです。

■基本説明

Postfixは、電子メールを配送し配信するオープンソースのメール転送エージェント(MTA:Mail Transport Agent)です。

「高速動作」「安定性」「安全性」「管理容易性」を目指して開発されています。

■経緯

・1998年 初版リリース

Postfixは、非常に長い歴史と多くの導入実績を持つ実質的標準MTAである「sendmail」の後継を目指して、Wietse Venema氏によって始められたプロジェクトです。

旧名称として「VMailer」や「IBM Secure Mailer」の名を持ちます。

誕生してから長い時間をかけて「セキュリティ」と「使いやすさ」を重視して改良が続けられています。

■オフィシャルサイト情報

オフィシャルサイト

→Postfix

ライセンス情報

Postfixのライセンスは「IBM Public License 1.0」または「Eclipse Public License 2.0」です。

詳細について、こちらを参照ください。
→Postfix →Postfix stable release 3.3.0

ダウンロード

Postfixは「AIX」「BSD」「HP-UX」「Linux」「MacOS X」「Solaris」などを含むUNIX系システム(標準的POSIX開発環境を提供するすべてのUNIXライクOS)で動作します。

→Postfix →Download (source)

■同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「sendmail」など。

「Postfix」の主な特徴①

■Sendmailライク

「Sendmail」とは

Sendmail(センドメール)とは、UNIXで古くから使われてきたオープンソースのメール送受信用サーバソフトウェアです。

UNIX系OSにおいて事実上の標準として広く普及した電子メールサーバソフトウェアで、長い歴史と多くの導入実績があり、世界中の多くのメールサーバで使用されています。

→OSSxCloudNews →sendmail

PostfixはSendmailライク

Postfixは「高速性」「管理性」「セキュア」を目指して開発されていますが、「ユーザーを混乱させない程度のSendmailとの操作上の互換性」を保持しようとしています。

PostfixはSendmailライクに利用できますが、内部のアーキテクチャは全く異なります。

Postfixは、Sendmailと比較して「設定ファイル記述が簡潔」「使いやすい」「運用管理がしやすい」「高いセキュリティ」「処理能力が高い」などの点で優れていると評価されています。

互換性

PostfixはSendmailからの移行を容易にするために「見かけ上のSendmail互換」であるように設計されています。

PostfixはSendmailにおける以下のファイルをサポートしています。
・/var[/spool]/mail
・/etc/aliases
・~/.forward など

■SMTPサーバ

Postfixは、電子メールを送信/転送するために用いられる「SMTPサーバ」としての機能しか持っていません。

そのため、メールサーバとして稼働するには「POPサーバ」や「IMAPサーバ」が別途必要になります。

■大きなグローバルシェア

Postfixは、一部のLinuxディストリビューション(NetBSDやUbuntu)で標準MTAとして採用されています。

2017年12月、E-Soft社によって実施された調査によると「インターネット上で公に到達可能なメールサーバの約34%はPostfix」という結果が出ています。

■セキュリティ

PostfixはSMTPサーバとして、侵入者からローカルシステムを保護するために、スパムロボットとマルウェアに対する防御層などの複数の防御レイヤーを実装しています。

管理者はPostfixを他のソフトウェアと組み合わせることでセキュリティを向上できます。
・スパム/ウィルスのフィルタリング—Amavisd-new
・メッセージストアへのアクセスコントロール—Dovecot
・SMTPレベルのアクセスポリシー—postfwd、policyd-weight、greylisting など

バッファオーバーフロー攻撃対策

バッファオーバーフロー(バッファオーバーラン)とは、プログラムで用意されたバッファよりも大きなサイズのデータをバッファに書き込むことで、データがバッファ境界からあふれ、バッファの外側のメモリを上書きしてしまうことにより、元々そのメモリにあったデータを破壊してしまう状態を指します。サイバーセキュリティ分野では、バッファオーバーフローはメモリ破壊系の脆弱性の一つとして知られ、攻撃者がプログラムに意図的に悪意のあるデータを与えることにより、コンピュータ動作が乗っ取られてしまう危険性があります。

Postfixは、バッファオーバーフロー攻撃を防ぐために、文字列やバッファ用のメモリは動的に割り当てます。メッセージ入力中の長い行は適切なサイズのブロックに分割され、配送の際に再構築されます。

「Postfix」の主な特徴②

「Postfix」の主な特徴②

■アーキテクチャ

Postfixシステムは1つのプログラムではなく複数のコアプログラムから成り立っており、「バックグラウンドで動作するサーバプログラム」と「ユーザプログラムまたはシステム管理者によって呼び出されるクライアントプログラム」の組み合わせで構成されています。

サーバプログラム

Postfixは、1ダース以上の小さなプログラム(デーモンプロセス)で構成されており、それぞれがある特定の仕事のみを実行します。
・SMTPを通してのメッセージ受信
・SMTPを通してのメッセージ配送
・ローカルへのメッセージ配送
・アドレスの書き換え など

特定の要求があるサイトでは、複数のデーモンプロセスを別のものに置き換えることや、機能として使用不可にすることも簡単に設定できます。

これらのプロセスは設定された数まで生成され、設定された回数だけ再利用され、設定されたアイドル時間を経過すると消滅します。このアプローチは別々のプロセスの良い絶縁状態を提供しながらも、プロセス生成オーバーヘッドを徹底的に削減します。

クライアントプログラム

クライアントプログラムはPostfixコアの外部で動作します。

それらはユーザーの「〜/ .forward」ファイルの中のメール配送指示を通して、メール送信やキューステータス情報を要求するための小さなgateプログラムを通してPostfixサーバプログラムと対話します。

実装

Postfixの実装はC言語とPOSIXシステムAPIの安全なサブセットを使用します。

これらのサブセットは、すべてのPostfixソースコードの約50%を含む抽象化層の下に埋め込まれており、それがすべてのPostfixプログラムが構築される基盤を提供します。
・vstringプリミティブ—バッファオーバーフロー攻撃耐性
・safe openプリミティブ—POSIXファイルシステムAPIを実装するシステムに対する競合状態攻撃耐性 など

これらの抽象化層は、システムライブラリやサードパーティのライブラリのコードのように、Postfix以外のコードの攻撃に対する耐性には影響を与えません。

■安定性

Postfixは安全性と堅牢性について重要視して開発されており、小さな単位に機能分割され連動して動作するため、高負荷状況であっても安定して動作するように設計されています。

Postfixのプログラムは、メッセージ数などが増加しても大きくなり続けることはなく、制御下にとどまるよう設計されています。ローカルシステムがディスクスペースやメモリを使い果たしても、問題が悪化しないように速度を低下させることで対応します。

Postfixデーモン

各Postfixデーモンには1つの仕事しかなく必要最小限の権限でそれを行います。このようにすることで、1つのデーモンに問題が発生したとしても、影響はそのデーモンだけに留まり、システム全体に影響が及ぶことはありません。

Postfixデーモンに何らかの問題が発生した場合、次のサービス要求が到着したときに自動的に再起動されます。そのため、オペレーティングシステムやハードウェアが壊滅的状況に陥らない限り、Postfixは安定的に動作できます。

パイプラインプロセス

概念的に、Postfixは、異なったデーモンが協調動作するネットワークで構成されるパイプラインを管理します。あるプロセスから次のプロセスに対して、メッセージ配信やエラー通知の責任を引き継ぐことで、連携して動作します。

すべてのメッセージと通知の状態情報はファイルシステムに保存されます。パイプライン内のプロセスは、ほとんど集中管理なしで動作することが可能で、この相対的な自律性はエラー回復処理に関するシンプル性をもたらせます。

ファイルトランザクションまたはプロトコルトランザクションの一部を完了する前にプロセスが失敗すると、パイプラインの前のプロセスは要求を取り消して後で再試行し、パイプラインの後継プロセスは未完成の作業を破棄します。

■ハイパフォーマンス

Postfixは信頼性で妥協することなく、Webサーバの要領でプロセス生成とファイルシステムのオーバーヘッドを削減しています。Postfixのメールシステムは、並列セッションでメールを配送することによって高性能を達成します。ハードウェアまたはオペレーティングシステムの性能限界に達すると、異なるMTAインスタンスへの並列送信を必要とします。

Postfixの処理能力は、最も近い競争相手の最大3倍高速とされています。Postfixを動作させているコンピュータは1日に異なる100万のメッセージの送受信ができます。

■Postfixアドオンソフトウェア

Postfixはアドオンによる機能拡張が可能です。アドオンカテゴリとして以下のものがあります。
・認証
・Webメール
・PGP/SMIMEゲートウェイ
・ポリシーサーバ/ライブラリ
・オープンリレー/プロキシ検出
・実行/設定/キュー/ユーザー管理
・コンテンツ管理
・ウイルス/ SPAMコンテンツフィルタ
・ログファイル解析
・POP / IMAPサーバー など

→Postfix →Postfix Add-on Software

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

AIツール関連 記事リストポータル

AIツール

2023.10.05

AIツール関連 記事リストポータル

AI 関連の記事をまとめたポータルページです。

【IT用語解説】「 デジタルヒューマン 」とは😊

IT用語解説

2024.01.26

【IT用語解説】「 デジタルヒューマン 」とは😊

【IT用語解説】「 デジタルヒューマン 」として、「デジタルヒューマンとは何か?」「どのようにして作成できるのか?」「私たちの世界にどのような影響を与えているのか?」などについて、まとめています。

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

AIツール実験室

2023.12.27

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

各チャットAIの「添削能力」について比較確認をしています。 「ChatGPT4と同等の添削能力を発揮した無料チャットAI」にご注目ください。 また、 ChatGPTカスタマイズ機能「GPTs」を利用して作成した GPTs文章添削機能「添削師匠さん✍️」を紹介しています。 課金勢は試しに使ってみてください。