2.2.7. Postfix のセキュリティー保護
Postfix は、SMTP(Simple Mail Transfer Protocol)を使用して他の MTA と電子メールクライアントまたは配信エージェントとの間で電子メッセージを送信するメール転送エージェント(MTA)です。多くの MTA は相互にトラフィックを暗号化できますが、ほとんどはないため、パブリックネットワークを介して電子メールを送信することは本質的に安全でない通信とみなされます。
Postfix サーバーの実装を計画しているお客様は、以下の問題に対応することが推奨されます。
2.2.7.1. サービス拒否攻撃の制限
電子メールの性質上、決定された攻撃者はメールでサーバーをあふれることができ、サービス拒否を引き起こす可能性があります。このような攻撃の効果は、
/etc/postfix/main.cf
ファイルでディレクティブの制限を設定することで制限できます。すでに存在するディレクティブの値を変更したり、必要な値を以下の形式で追加したりできます。
<directive> = <value>
サービス拒否攻撃を制限するために使用できるディレクティブの一覧を以下に示します。
- smtpd_client_connection_rate_limit : クライアントが時間単位ごとにこのサービスに送信できる最大接続試行回数(以下で説明します)。デフォルト値は 0 で、Postfix が許可されるため、クライアントは時間単位ごとに接続を行うことができます。デフォルトでは、信頼されるネットワークのクライアントは除外されます。
- anvil_rate_time_unit : この時間単位は、レート制限の計算に使用されます。デフォルト値は 60 秒です。
- smtpd_client_event_limit_exceptions : 接続および流量制御コマンドから除外されるクライアント。デフォルトでは、信頼されるネットワークのクライアントは除外されます。
- smtpd_client_message_rate_limit : クライアントが時間単位あたりにリクエストできるメッセージの最大数(Postfix が実際にこれらのメッセージを受け入れるかどうかは注意してください)。
- default_process_limit : 指定のサービスを提供する Postfix 子プロセスの最大数。この制限は、
master.cf
ファイル内の特定のサービスに対して上書きすることが可能です。デフォルト値は 100 です。 - queue_minfree : メールを受信するのに必要なキューファイルシステムの最小空き領域(バイト単位)。これは現在 Postfix SMTP サーバーで、任意のメールを受け入れるかどうかを決めます。デフォルトでは、Postfix SMTP サーバーは、message_size_limit の空き領域が 1.5 未満になると MAIL FROM コマンドを拒否します。空き領域の上限をより高く指定するには、queue_minfree 値を指定します。最低でも 1.5 倍の message_size_limit を指定します。デフォルトでは queue_minfree の値は 0 です。
- header_size_limit : メッセージヘッダーを保存するメモリーの最大量(バイト単位)。ヘッダーが大きい場合、余分は破棄されます。デフォルト値は 102400 です。
- message_size_limit : 重要情報を含む、メッセージの最大サイズ(バイト単位)。デフォルト値は 10240000 です。