48.2.7. Sendmail のセキュア化
Sendmail は、Simple Mail Transport Protocol (SMTP)を使用して他の MTA 間で電子メッセージを配信し、クライアントまたは配信エージェントに電子メッセージを配信する Mail Transport Agent (MTA)です。多くの MTA は相互にトラフィックを暗号化することが可能ですが、ほとんどの場合は暗号化しません。そのため、パブリックネットワークを介して電子メールを送信することは、本質的に安全でない通信形式と見なされます。
メールの仕組みおよび一般的な設定の概要については、27章メール を参照してください。本セクションでは、
/etc/mail/sendmail.mc
を編集し、m4 コマンドを使用して、有効な /etc/mail/sendmail.cf
を生成する基本的な知識を想定しています。
Sendmail サーバーの実装を計画しているユーザーは、以下の問題に対処することが推奨されます。
48.2.7.1. サービス拒否攻撃を制限する
電子メールの性質上、断固とした攻撃者は、サーバーを非常に簡単にメールで溢れさせ、サービス拒否を引き起こすことができます。
/etc/mail/sendmail.mc
で以下のディレクティブに制限を設定することで、このような攻撃の効果は制限されます。
- confCONNECTION_RATE_THROTTLE: サーバーが 1 秒あたり受信できる接続の数。デフォルトでは、Sendmail は接続の数を制限しません。制限が設定され、到達すると、追加の接続が遅延します。
- confMAX_DAEMON_CHILDREN: サーバーが生成できる子プロセスの最大数。デフォルトでは、Sendmail は子プロセスの数に制限を割り当てません。制限が設定され、到達すると、追加の接続が遅延します。
- confMIN_FREE_BLOCKS: サーバーがメールを受け入れるために使用できる空きブロックの最小数。デフォルトは 100 ブロックです。
- confMAX_HEADERS_LENGTH: メッセージヘッダーの最大許容サイズ(バイト単位)。
- confMAX_MESSAGE_SIZE: 1 つのメッセージの最大許容サイズ(バイト単位)。