このページではLinux構築した自宅サーバーで使用するMTAであるPostfixセキュリティに関する設定について初心者向けに解説します。

HPの格安エントリーサーバー機"HP ProLiant ML115"でのLinuxサーバー構築記を掲載しました。サーバー機の選定にお悩みの方は是非お越しください...。お便利サーバー.com管理人。
サーバーのセットアップ
Postfixの設定

Postfixについて

Postfixのファイル構成

設定ファイルmain.cfについて

ホスト名とドメイン名の設定

受信するホスト名の設定

ホスト名毎のメールの振分け

メール転送設定の使い分け

受信/転送に関する設定

セキュリティ関連の設定

"main.cf"の書式チェック

Postfixのコントロール

連携するアプリケーション

サイト内検索

Postfixのセキュリティ関連の設定

以下は、 Postfix の主設定ファイル "/etc/postfix/main.cf" の設定項目です。

これらは "/etc/postfix/main.cf" の中には デフォルト の記述例がありませんから、 "/etc/postfix/main.cf" の中の任意の場所に追加記述する必要があります。

もちろん既存の設定と混同しないように、ファイルの末尾に記述しておくのがベターです。

"smtpd_client_restrictions"〜要求の可否の設定(追記)

Postfix がメールの受信や中継を行う際に、特定の条件を加えたい場合に設定する ディレクティブ です。

このディレクティブは通常、複数のパラメータをスペースまたはタブで区切って記述します。

そしてメールの受信や中継の要求が発生するとそのメールに対して左側のパラメータから順に条件比較され、最初に一致した条件によって受信の可否が決定されます。

ここに設定できるパラメータは非常に種類が多いのですが、最低限設定しておくのが望ましい設定例を以下に示します。

smtpd_client_restrictions =
 permit_mynetworks,
 reject_unknown_client,
 permit
つまりこの設定を有効にするには、前述のように "mynetworks_style" ではなく、 "mynetworks" ディレクティブが有効になっていなければなりません。

一つ目の "permit_mynetworks" "$mynetworks" つまり前述の "mynetworks" の値を参照して要求を許可します。

このパラメータを最初に記述することで、信頼できるネットワークに対して優先的にメールの中継許可を与えることになります。

次の "reject_unknown_client" は、逆引きの 名前解決 のできない ノード からのメールの受信を拒否する設定です。

名前解決とメールのリレー でも説明したとおり、逆引きの 名前解決 のできないメールサーバーからメールのリレーを受け入れることは、 構築中のLinuxサーバー にとって セキュリティ 上の問題があるだけでなく、スパムメールの横行に手を貸すことにもなりますからできるだけ避けなくてはなりません。

この設定を行うだけで、かなりの割合のスパムメールの受信を拒否することができるようになります。

もちろん、この設定によって名前解決による FQDN を持たないMTAからのメールはすべて受信拒否しますから、不正なものではないけれども、 設定が不完全なMTA からのメールも一部巻き添えになるかもしれません。

とはいえ、スパムメールの脅威に比べれば、それは「些細な不都合」に過ぎないと思われます。

最後の "permit" はすべての要求を許可するパラメータです。

つまり前の二つのパラメータに当てはまらないメールに普遍的な「OK」を出すためのパラメータとして記述するわけですが、実際には "permit" デフォルト のパラメータなので設定は不要です。

しかし普通はデフォルトの値を解りやすくするために明示的に設定しておく習慣になっています。

"mailbox_size_limit"〜メールボックスの容量(追記)

ユーザーアカウント が受信したメールは、削除されなければ "/var/spool/mail/" 以下に、それぞれのユーザーアカウント名の一つのファイルに追加書き込みという形で保存されていきます 受信メールの保存様式について

"mailbox_size_limit" は、その一つのユーザーアカウントあたりの保存容量の上限を設定する ディレクティブ です。

単位は バイト です。

例えばこれを大体1GBくらいに設定したいときは、

mailbox_size_limit = 1000000000

と設定してください。

デフォルト では、このディレクティブの記述はありませんが、記述がない場合は自動的に、

mailbox_size_limit = 51200000

、つまり約 50MB が設定されます。

設定がないから無制限、というわけではありませんから気をつけてください。

"message_size_limit"〜扱い可能な一通のメールの容量(追記)

通信速度の飛躍的な向上と、 ハードディスク 容量の増加に伴い、現在ではかなり大きなサイズのデータもメールでやりとりされるようになっています。

とはいえ、一般に ISP から提供されるメールアドレスでは、メールボックスのサイズはせいぜい50 MB 〜100MB程度です。

例えばあなたがそのメールアドレス宛てに、500MBの巨大なメールを送ったとしたらどうなるでしょう。

当然相手の MTA は容量オーバーで受信拒否しますから、そのメールは「受信不可」のメッセージとともに 構築中のLinuxサーバー 上のあなたのメールボックスに格納されます。

そしてあなたは自分の MUA で、その巨大な「送れなかったメール」を延々と受信しなければならなくなります。

送らなければならない容量が大きいときは、例えば FTPサーバー webサーバー 、あるいは徒歩や自転車などを利用するべきでしょう。

このように、メールシステムはその仕組み上、大きなデータを送るための手段としては不適当です。どんなに大きくても50MB、通常は10〜20MB程度とし、それ以上の容量のデータを送る場合は別の手段を考えるべきでしょう。

ただ、いくら気をつけていても、ファイルの容量を見間違えてうっかり大きなデータを送ってしまうことはあり得ますから、ここはMTAに取り扱い容量の制限を設けてミスに対処するべきでしょう。

例えばこれを大体20MBくらいに制限したいときは、この、 "message_size_limit" ディレクティブ で、

message_size_limit = 20000000

と設定してください。

設定値は、メールの送受信のためのヘッダなどが付いたときの容量になりますから、実際に送ることができる容量は、設定値よりも少し小さめになります。

デフォルト では、このディレクティブの記述はありませんが、記述がない場合は自動的に、

mailbox_size_limit = 10240000

、つまり約 10MB が設定されます。

設定がないから無制限、というわけではありませんから気をつけてください。

郵便受けよりも大きな郵便物は受けられない、というわけですね。

また説明するまでもないかもしれませんが、このディレクティブは、必ず、 "mailbox_size_limit" ディレクティブの設定値よりも小さくなければなりません。

"smtpd_recipient_limit"〜扱い可能な一通のメールのコピー数(追記)

MUA は普通、大勢の相手に同じ内容のメールを一度に送信する機能を持っています。

これはメールシステムの持つ大きなメリットの一つですが、逆に スパムメール の大量発信に悪用される恐れもあるといえます。

サーバーサイドアプリケーション を利用して、多くの読者にメールマガジンなどを発信するような場合は別ですが。

一般的なメールの利用方法であれば、メールのコピーを配信するにしてもせいぜい30〜50通くらいが常識的なところではないでしょうか。

"smtpd_recipient_limit" は、この一度に送信するメールのコピーを上限を決める ディレクティブ です。

たとえば50通に制限したい場合は、

smtpd_recipient_limit = 50

と設定してください。

デフォルト では、このディレクティブの記述はありませんが、記述がない場合は自動的に、

smtpd_recipient_limit = 1000

、つまり 1000通 に設定されます。

このディレクティブは、万が一 構築中のLinuxサーバー がメールの不正中継に使われたり、あるいは サブネット 内の他の ホスト機 コンピュータウイルス に感染して、大量のウイルス付きメールを発信しようとする場合に、最低限の防御手段となります。

必ず自分の利用方法に見合ったパラメータを設定するようにしてください。

サブミッションポートの有効化

Outbound Port25 Blocking に対応する サブミッションポート の設定については、その意味をきちんと理解していただく意味で別途こちら サブミッションポートの設定について に詳しく解説しています。

設定は "/etc/postfix/main.cf" ではなく、 "/etc/postfix/master.cf" に対して行いますので、必要に応じて参照してください。

関連セクションへ 関連セクション・ メールサーバーの構築

このサイトに対するご意見、ご要望、苦情、泣き言、献上品、資金援助などがございましたら こちら からお寄せください(お返事できなかったらごめんなさい)。もちろん リンクフリー です。趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
Powered by White Box Enterprise Linux