ノート:

Oracle LinuxでSTARTTLSを使用してPostfixをインストールして構成する方法を学習します

イントロダクション

このチュートリアルでは、STARTTLS暗号化および検証を使用してネットワーク内でメッセージを送信できるように、Postfix電子メール・サーバー・ソフトウェアをOracle Linuxシステムにインストールおよび設定する方法を示します。このチュートリアルは、Oracle Linux 8以降のユーザーを対象としています。

Postfixは、sendmailの置換として開発されたメール転送エージェント(MTA)サーバーであり、これは多くの古いLinuxシステム上のデフォルトのMTAサーバーです。モジュラー・パイプライン・ベースのアーキテクチャにより、Postfixは汎用性があり、スパムやアンチウイルス処理など、多くの他のサービスや、Dovecot IMAPやPOPサーバーなどのメッセージ・ストア・ソフトウェアと簡単に統合できます。

サービスを保護する最低限の場合は、SMTP接続を介してTLS/SSL検証および暗号化を実行するためにSTARTTLSをサポートするようにPostfixを構成する必要があります。STARTTLSを使用すると、通信の整合性を保護できます。

このチュートリアルでは、主にSimple Mail Transfer Protocol (SMTP)サーバーとして機能するPostfixを設定および構成する方法について説明します。

目的

このラボを修了すると、次のことができるようになります。

前提条件

Postfixのインストール

ノート:無料の演習環境を使用する場合は、接続やその他の使用方法の手順について、Oracle Linuxの演習の基本を参照してください。

  1. 次のように、パッケージ・マネージャを使用して、インスタンスにpostfixパッケージをインストールします。

    sudo dnf install -y postfix
    
  2. サーバー・ファイアウォールを介したSMTPトラフィックを許可:

    sudo firewall-cmd --zone=public --add-service=smtp --permanent
    
    sudo firewall-cmd --reload
    
  3. sendmailパッケージが存在する場合は削除します。

    sudo dnf remove -y sendmail
    
  4. Postfixをデフォルトのメール転送エージェントとして設定します。

    sudo alternatives --set mta /usr/sbin/sendmail.postfix
    
  5. Postfixサービスを有効にして起動します。

    sudo systemctl enable --now postfix
    

TLS証明書の生成

この演習では、自己署名付きTLS証明書を生成して使用します。本番環境では、Oracleは、外部認証局(CA)によって署名されたTLS/SSL証明書の使用を強くお薦めします。詳細は、https://docs.oracle.com/en/operating-systems/oracle-linux/certmanage/を参照してください。

  1. 次のように、パッケージ・マネージャを使用して、インスタンスにopensslパッケージをインストールします。

    sudo dnf install -y openssl
    
  2. RSA秘密キーと自己署名X.509テスト証明書を作成します:

    hostname=$(hostname -f)
    
    sudo openssl req -new -x509 -days 1 -nodes -newkey rsa:2048 -keyout private.key \
    -out public.cert -subj "/C=US/ST=Ca/L=Sunnydale/CN=$hostname"
    
  3. RSA秘密キーを/etc/pki/tls/privateディレクトリにコピーします。

    sudo cp private.key /etc/pki/tls/private/
    
  4. 自己署名付きX.509テスト証明書を/etc/pki/tls/certsディレクトリにコピーします。

    sudo cp public.cert /etc/pki/tls/certs/
    

STARTTLSを使用した Postfixの構成

  1. デフォルトのPostfix構成のバックアップを作成します。

    sudo mv /etc/postfix/main.cf /etc/postfix/main.cf.bak
    
  2. 構成ファイル/etc/postfix/main.cfを編集して、次のような行を含めます。

    sudo tee -a /etc/postfix/main.cf > /dev/null <<EOF
    myhostname = $(hostname -f)
    myorigin = \$myhostname
    inet_interfaces = all
    inet_protocols = all
    mydestination = \$myhostname, localhost
    mynetworks = 192.168.1.0/24, 127.0.0.0/8, 10.0.0.0/24
    home_mailbox = mail/
    # Additional STARTTLS configuration settings
    tls_random_source=dev:/dev/urandom
    # SMTPD TLS configuration for incoming connections
    smtpd_use_tls = yes
    smtpd_tls_cert_file = /etc/pki/tls/certs/public.cert
    smtpd_tls_key_file = /etc/pki/tls/private/private.key
    smtpd_tls_security_level = may
    # SMTP TLS configuration for outgoing connections
    smtp_use_tls = yes
    smtp_tls_cert_file = /etc/pki/tls/certs/public.cert
    smtp_tls_key_file = /etc/pki/tls/private/private.key
    smtp_tls_security_level = may
    EOF
    

    ノート: 1つのホストから電子メールを送信すると、この演習の目的で十分です。本番環境では、電子メールの送信元の登録済ドメイン名としてmydomainを設定する必要があります。詳細は、Postfixのマニュアルページを参照してください。

  3. Postfixサービスを再起動します。

    sudo systemctl restart postfix
    

テスト電子メールを送信

  1. mailx電子メール・クライアントをインストールします:

    sudo dnf install -y mailx
    
  2. 自分の外部電子メール・アドレスにテスト電子メールを送信します。mailxコマンドのホスト名を、電子メールの送信元のインスタンスと一致するように更新します:

    hostname=$(hostname -f)
    
    echo "External email" | mailx -r root@$hostname -s "Test email subject" admin@example.com
    

    ノート: mailxを使用して単一ホストからテストEメールを送信すると、この演習の目的で十分です。本番環境では、かわりに、送信者の電子メール・アドレス内で/etc/postfix/main.cfで構成した登録済ドメイン(root@example.comなど)を使用する必要があります。

  3. 新しいメッセージの電子メール・アカウントを確認してください。スパムフォルダのチェックが必要な場合があります。

  4. 電子メールが表示されない場合は、Postfixメール・キューを確認できます。

    sudo mailq
    
  5. Postfixログを確認することもできます。[Ctrl] + [C]を押して終了します。

    sudo tail -f /var/log/maillog
    

その他の学習リソース

docs.oracle.com/learnの他のラボを調べるか、Oracle Learning YouTubeチャネルでさらに無料の学習コンテンツにアクセスします。さらに、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerにします。

製品ドキュメントは、Oracleヘルプ・センターを参照してください。