322.2 メールサービス
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プロセスからデータベースに接続しようとすると接続エラーが発生する)
ディスカッション
コメント一覧
まだ、コメントがありません