Postfixの基本的なことのまとめ

目的と経緯

Postfixによるメールサーバの構築をすることになったため、いろいろと調べてみました。備忘録を兼ねてここにまとめてみます。

Postfixを選択した理由

今までqmailしか使ったことがなかったのですが、以下の理由からPostfixを選択しました。

  1. Red Hat Enterprise Linuxにデフォルトでパッケージが用意されている。
  2. 開発が頻繁に行われている。

メールに関するRFC

Postfix関連フォルダ

  • 設定ファイル・ルックアップテーブル
    • /etc/postfix
    • /etc/postfix/main.cf … メインの設定ファイル
    • /etc/postfix/master.cf … 各種サービスとその動作方法が記述される設定ファイル
  • キューファイル
  • Postfixコマンド
    • /usr/sbin

コマンド一覧

コマンド 内容
postmap /etc/postfix/xxxxxx ルックアップテーブルの更新
postalias /etc/aliases エイリアスファイルの更新1
newaliases エイリアスファイルの更新2(main.cf の alias_database を参照し更新→通常は /etc/aliases のみ)
postqueue -p キューのリストアップ
postqueue -f キュー内のメッセージの即時配信(フラッシュ)
postsuper -d キューID キューのメッセージを削除
postsuper -d ALL キューのメッセージをすべて削除
postsuper -h キューID holdキューに入れる
postsuper -H キューID holdのキューを通常のキューに戻す
postsuper -r キューID(ALL) (設定ミス等により)設定変更後にキューに入れ直す
postcat -q キューID キューの中身を表示

設定パラメータ(main.cf)

パラメータ 内容
myhostname Postfixを実行するシステムの完全修飾ホスト名を設定する。
mydomain システムのドメイン名を設定する。
myorigin エンベロープアドレスやヘッダアドレスにドメイン名を指定していない場合、パラメータmyoriginはそのアドレスに追加するドメイン名を決める。(デフォルトはmyhostnameが使われる)
mydestination ローカルユーザの宛先とするメールの受け付けと、ローカルユーザへの配信の対象になるすべてのドメインを指定
mynetworks リレーアクセスの制限。メッセージ送信のためにメールサーバを利用できるシステムを指定
message_size_limit システムで受け付けるメッセージの合計サイズを制限。(デフォルト:10MB)
maximal_queue_lifetime 遅延の制限時間。この時間を超えると、メッセージが送信者にバウンスされる。(デフォルト:5日間)
queue_run_delay deferredキューのスキャン間隔(デフォルト:1000秒)
minimal_backoff_time 遅延メッセージが再配信されるまでの最小間隔(デフォルト:1000秒)
maximal_backoff_time 遅延メッセージが再配信されるまでの最大間隔(デフォルト:4000秒)

キューについて (/var/spool/postfix)

キューマネージャデーモンは【qmgr】。キューマネージャは以下の5つのキューを管理する。

フォルダ 用途
active incomingから最初にメッセージが格納される
bounce
corrupt 損傷を受けたメッセージや読めないメッセージを格納する。(OSやハードウェアに問題等)
deferred 一時的な問題で配信できないメッセージが格納される。(DNSの問題、配信先メールサーバの問題等)
hold メッセージをキューに無期限に入れておきたい時に使う。

DNSのMXレコードの注意点

  • MXレコードには有効なAレコードを持つホスト名を指定する。
  • MXレコードで指定するホスト名はCNAME(エイリアス)ではいけない。
  • MXレコードはIPアドレスではなく、ホスト名で指定する。
  • MXレコードにはプリファレンス値を必ず指定する。

セキュリティ対策

  • システムに不要なプロセスは無効にする。
    • Postfixの各プロセスはそれぞれ独立して機能し、プロセス同士の依存はほとんどない。
  • chrootが可能(queue_directoryパラメータで指定)

その他

参考文献