第20章 RHEL システムロールを使用した Postfix MTA の設定


postfix RHEL システムロールを使用すると、Postfix メール転送エージェント (MTA) の設定を一貫して自動化された方法で管理できます。このような設定をデプロイすることは、たとえば以下のものが必要な場合に役立ちます。

  • 安定したメールサーバー: システム管理者が高速でスケーラブルなメール送受信用サーバーを設定できるようになります。
  • セキュアな通信: TLS 暗号化、認証、ドメインのブックリスト登録などの機能をサポートし、安全なメール送信を実現します。
  • メールの管理とルーティングの改善: メールトラフィックを制御できるようにフィルターとルールを実装します。
重要

postfix_conf ディクショナリーには、サポートされている Postfix 設定パラメーターのキーと値のペアが保持されます。Postfix がサポート対象として認識しないキーは無視されます。postfix RHEL システムロールは、構文を検証したり制限したりせずに、提供されたキーと値のペアを postfix_conf ディクショナリーに直接渡します。したがって、このロールは、Postfix を熟知していて、その設定方法を知っているユーザーに特に役立ちます。

20.1. 送信メールのみを送信する null クライアントとして Postfix を設定する

null クライアントは特別な設定です。この設定では、Postfix サーバーは送信メールの送信のみを行い、受信メールは受信しないように設定されます。このような設定は、通知、アラート、またはログを送信する必要はあるが、メールの受信や管理をする必要はない場合に広く使用されています。Ansible と postfix RHEL システムロールを使用すると、このプロセスを自動化し、Postfix サーバーを送信メールの送信のみを行う null クライアントとしてリモートで設定できます。

前提条件

手順

  1. 次の内容を含む Playbook ファイル (例: ~/playbook.yml) を作成します。

    Copy to Clipboard Toggle word wrap
    ---
    - name: Manage Postfix
      hosts: managed-node-01.example.com
      tasks:
        - name: Install postfix
          ansible.builtin.package:
            name: postfix
            state: present
    
        - name: Configure null client for only sending outgoing emails
          ansible.builtin.include_role:
            name: redhat.rhel_system_roles.postfix
          vars:
            postfix_conf:
              myhostname: server.example.com
              myorigin: "$mydomain"
              relayhost: smtp.example.com
              inet_interfaces: loopback-only
              mydestination: ""
              relay_domains: "{{ lookup('ansible.builtin.pipe', 'postconf -h default_database_type') }}:/etc/postfix/relay_domains"
            postfix_files:
              - name: relay_domains
                postmap: true
                content: |
                  example.com OK
                  example.net OK

    サンプル Playbook で指定されている設定は次のとおりです。

    myhostname: <server.example.com>
    このメールシステムのインターネットホスト名。デフォルトは完全修飾ドメイン名 (FQDN) です。
    myorigin: $mydomain
    ローカルに投稿されたメールの送信元と配信先として表示されるドメイン名。デフォルトは $myhostname です。
    relayhost: <smtp.example.com>
    非ローカルメールの次のホップの宛先。受信者アドレスの非ローカルドメインをオーバーライドします。デフォルトでは空のフィールドになります。
    inet_interfaces: loopback-only
    Postfix サーバーが受信メール接続をリッスンするネットワークインターフェイスを定義します。Postfix サーバーがネットワークからメールを受け入れるかどうか、またどのように受け入れるかを制御します。
    mydestination
    どのドメインとホスト名をローカルとみなすかを定義します。
    relay_domains: "hash:/etc/postfix/relay_domains"
    Postfix がリレーサーバー (SMTP リレー) として動作しているときに Postfix がメールを転送できるドメインを指定します。この場合、ドメインは postfix_files 変数によって生成されます。RHEL 10 では、relay_domains: "lmdb:/etc/postfix/relay_domains" を使用する必要があります。
    postfix_files
    /etc/postfix/ ディレクトリーに配置されるファイルのリストを定義します。必要に応じて、これらのファイルを Postfix 検索テーブルに変換できます。この場合、postfix_files は SMTP リレーのドメイン名を生成します。

    Playbook で使用されるロール変数と Postfix 設定パラメーターの詳細は、/usr/share/ansible/roles/rhel-system-roles.postfix/README.md ファイルと、コントロールノード上の postconf(5) man ページを参照してください。

  2. Playbook の構文を検証します。

    Copy to Clipboard Toggle word wrap
    $ ansible-playbook --syntax-check ~/playbook.yml

    このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。

  3. Playbook を実行します。

    Copy to Clipboard Toggle word wrap
    $ ansible-playbook ~/playbook.yml

関連情報

  • /usr/share/ansible/roles/rhel-system-roles.postfix/README.md ファイル
  • /usr/share/doc/rhel-system-roles/postfix/ ディレクトリー
  • システム上の postconf(5) man ページ
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat, Inc.