322.2 メールサービス

2021-06-21

322.2 メールサービス

重要度 2
説明 Postfixメールサービスの使用方法と設定上のセキュリティ問題について経験と知識があること。Sendmailのセキュリティ問題の認識も必要だが、その設定については認識していなくてよい。
主要な知識範囲

  • Postfix の安全性を中心とした設定
  • 安全性のある Sendmail
  • chroot 環境

重要なファイル、用語、ユーティリティ

  • /etc/postfix/
  • TLS

メールサーバのセキュリティ対策

sendmail, postfixは、メールサーバーなどメールの送受信を司るMTAとして動作します。
メールシステムとしての主なセキュリティ対策は以下の対策などが挙げられる

メールサーバのバージョンを非表示する
メールサーバ(postfix, sendmail)のバージョンを非表示にすることで脆弱性があるバージョンを利用していないか分からないようにする。
設定ファイルを編集してバージョンを表示できないように設定できる

chroot jailを利用する
chroot jailを利用し、postfix,sendmailプロセスにとって任意のディレクトリをルートディレクトリと見せるように設定する。
この設定でおこなうことで、postfix, sendmailプロセスは設定したディレクトリ以外にはアクセス出来ない。
ただし、chroot環境で動作させると不都合が起きるので、必要なプロセスのみchrootさせるようにする必要があります。

TLS有効にする
TLSによる暗号化通信でSMTP通信の内容を保護する

namedの実行をroot以外の制限ユーザで実行する
BINDのnamedプロセスが第三者に乗っ取られた場合に被害を最小限に抑えるため、必要最小限の権限を与えたユーザーでnamedの実行する。

無制限にメール転送を許可しない
メールの踏み台にされないように、設定ファイルでリレーを制限する
sendmail では、/etc/mail/access ファイルで設定できます

「VRFY」と「EXPN」
「VRFY」と「EXPN」を利用することで、以下の情報の有無を確認できます。
このコマンドが第三者に実行されメールアドレスを収集する際にこのコマンド利用される場合あるので、制限をする必要があります
VRFY – 特定のユーザーのメールボックスの存在
EXPN – 特定のメーリングリストの存在

設定ファイル (postfix)

postfix には、/etc/postfix/main.cf, /etc/postfix/master.cf があります

/etc/postfix/main.cf postfixの主要な設定ファイル。メール配信に関する基本的な設定をおこなう
/etc/postfix/master.cf postfixのmasterプロセス設定用のファイル。デーモンの設定をおこなう

master.cf (postfix)

master.cfの中身(一部)。各項目がハイフン(-)で指定している箇所はデフォルト値

# service  type  private  unpriv  chroot  wakeup  maxproc  command + args
#                (yes)    (yes)   (yes)   (yes)   (100)
smtps    inet    n        -       y       -       -         smtpd
tlsmgr   unix    -        -       n       1000?   1         tlsmgr

mster.cf の設定項目

service Postfixのサービス名
type 各サービスの動作方法。inet, unix, fifo のいずれかを選択
  inet インターネットソケット
  unix UNIXドメインソケット
  fifo 名前付きのパイプ
private メールシステムのアクセス権
unpriv サービス所有者。root以外で動作させるか、所有者が動作させるかを指定
chroot サービスをchroot jail環境で動作させるかを指定
wakeup ここで指定した数秒後にサービスを起動
maxproc サービスのプロセスを起動できる最大数
command + args サービスの実体プログラムと、その引数

TLS関連の設定項目 (postfix)

smtpd_use_tls は、starttlsコマンドの利用可否を設定する項目です。main.cfでTLS関連の項目は以下となります

smtpd_tls_CAfile CA証明書の格納先を指定
smtpd_tls_cert_file RSA証明書ファイルの格納先を指定
smtpd_tls_key_file RSA秘密鍵の格納先を指定
smtpd_tls_dkey_file DSA秘密鍵の格納先を指定
smtpd_tls_dcert_file DSA証明書ファイルの格納先を指定
smtpd_enforce_tls TLSで暗号化されていないメールを受け付けないように指定
smtpd_use_tls または smtpd_tls_security_level starttlsコマンドの利用可否を指定

proxymap (postfix)

proxymapは、Postfixプロセスに読み込み専用のテーブル検索サービスします。
このサービスの目的は以下となります

chroot jail で制限したディレクトリ外にアクセスするため
(chrootで設定したルートディレクトリ以外になる /etc/passwd ファイルをさんしょうするため)

複数のプロセス間で一つのオープンテーブルを共有することで、多くのオープン検索テーブルを一元管理するため。
(一元管理しない場合、多数のpostfixプロセスからデータベースに接続しようとすると接続エラーが発生する)

LPIC 30xLPIC303

Posted by admin