第10章 Postfix サービスを保護する
Postfix は、SMTP (Simple Mail Transfer Protocol) を使用して他の MTA 間で電子メッセージを配信したり、クライアントや配信エージェントに電子メールを送信したりするメール転送エージェント (MTA) です。MTA は相互間のトラフィックを暗号化できますが、デフォルトではそうしない場合があります。設定をより安全な値に変更することで、さまざまな攻撃に対するリスクを軽減することもできます。
10.1. Postfix ネットワーク関連のセキュリティーリスクの軽減
攻撃者がネットワーク経由でシステムに侵入するリスクを軽減するには、次のタスクをできるだけ多く実行してください。
ネットワークファイルシステム (NFS) 共有ボリュームで
/var/spool/postfix/
メールスプールディレクトリーを共有しないでください。NFSv2 と NFSv3 は、ユーザー ID とグループ ID に対する制御を維持しません。したがって、2 人以上のユーザーが同じ UID を持っていると、互いのメールを受信して読むことができ、セキュリティー上のリスクが生じます。注記SECRPC_GSS
カーネルモジュールは UID ベースの認証を使用しないため、この規則は Kerberos を使用する NFSv4 には適用されません。ただし、セキュリティーリスクを軽減するために、メールスプールディレクトリーを NFS 共有ボリュームに配置しないでください。-
Postfix サーバーの悪用の可能性を減らすために、メールユーザーは電子メールプログラムを使用して Postfix サーバーにアクセスする必要があります。メールサーバーでシェルアカウントを許可せず、
/etc/passwd
ファイル内のすべてのユーザーシェルを/sbin/nologin
に設定します (root
ユーザーは例外の可能性があります)。 -
Postfix をネットワーク攻撃から保護するために、デフォルトではローカルループバックアドレスのみをリッスンするように設定されています。これは、
/etc/postfix/main.cf
ファイルのinet_interfaces = localhost
行を表示することで確認できます。これにより、Postfix はネットワークからではなく、ローカルシステムからのメールメッセージ (cron
ジョブのレポートなど) のみを受け入れるようになります。これはデフォルトの設定で、Postfix をネットワーク攻撃から保護します。localhost の制限を取り除き、Postfix がすべてのインターフェイスでリッスンできるようにするには、/etc/postfix/main.cf
でinet_interfaces
パラメーターをall
に設定します。