Edited at

Postfixのセキュリティ設定について


Postfixのセキュリティ強化


はじめに

Redhat Enterprise LinuxやCentOSのデフォルトSMTPサーバであるPostfixのセキュリティ設定を調べたのでメモ


想定するPostfixの役割


  • 外部からのSMTPを受け取りローカル保存

  • 内部からのSMTPを受け取ってインターネット上に配送


設定


MTA情報の隠蔽


/etc/postfix/main.cf

# デフォルト値

smtpd_banner = $myhostname ESMTP $mail_name

# 特定のミドルウェアバージョンや種類を狙った攻撃を防ぐため、特定できない固定値を入れる
smtpd_banner = ESMTP MTA



内部ユーザの隠蔽


/etc/postfix/main.cf

# デフォルト値

disable_vrfy_command = no

# SMTPのEXPN,VRFYコマンド(ユーザの存在確認)コマンドを無効にし、内部ユーザの情報を隠蔽する
disable_vrfy_command = yes



HELO コマンドを必須にする


/etc/postfix/main.cf

# デフォルト値

smtpd_helo_required = no

# スクリプト化された迷惑メール等はSMTPのHELOコマンドを使用しないケースがあるため、それらのメールを拒否するために設定
smtpd_helo_required = yes



HELOコマンド受信時のホスト名による受信制限


/etc/postfix/main.cf

# デフォルト値

smtpd_helo_restrictions =

# 相手のホスト名が DNS に登録されていない、FQDNが解決できない、ホスト名の文法が不正の場合に拒否
smtpd_helo_restrictions = permit_mynetworks, reject_unknown_hostname, reject_non_fqdn_hostname, reject_invalid_hostname, permit



送信者ドメインによる受信制限


/etc/postfix/main.cf

# デフォルト値

smtpd_sender_restrictions =

# ドメインが解決できない、FQDNが解決できない場合に拒否
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain, reject_non_fqdn_sender



おわりに

Postfixのセキュリティ設定をまとめました。

まとめてみると、情報が外部に見えないようにするとか、必要最低限の操作しか許さないとか、どんなミドルウェアでもやるべきことは一緒なんだなーと思いました。