JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 11.1 での sendmail サービスの管理     Oracle Solaris 11.1 Information Library (日本語)
このドキュメントの評価
search filter icon
search icon

ドキュメントの情報

はじめに

1.  メールサービス (概要)

2.  メールサービス (タスク)

メールサービス (タスクマップ)

メールシステムの計画

ローカルメール専用

ローカルメールとリモート接続

メールサービスの設定 (タスクマップ)

メールサービスを設定する

メールサーバーを設定する方法

メールクライアントを設定する方法

メールホストを設定する方法

メールゲートウェイを設定する方法

sendmail で DNS を使用する方法

sendmail 構成の変更 (タスクマップ)

sendmail 構成を変更する

新しい sendmail.cf ファイルを構築する方法

仮想ホストを設定する

構成ファイルを自動的に再構築する方法

オープンモードで sendmail を使用する方法

TLS を使用するよう SMTP を構成する

sendmail.cf の代替構成を使ってメール配信を管理する方法

メール別名ファイルの管理 (タスクマップ)

メール別名ファイルを管理する

NIS mail.aliases マップを設定する方法

ローカルメール別名ファイルを設定する方法

キー付きマップファイルの作成方法

postmaster 別名の管理

ローカルの各 /etc/mail/aliases ファイルに postmaster 別名を作成する方法

postmaster 用に別のメールボックスを作成する方法

postmaster メールボックスを /etc/mail/aliases ファイルの別名に追加する方法

キューディレクトリの管理 (タスクマップ)

キューディレクトリの管理

メールキュー /var/spool/mqueue の内容を表示する方法

メールキュー /var/spool/mqueue でメールキューを強制処理する方法

メールキュー /var/spool/mqueue のサブセットを実行する方法

メールキュー /var/spool/mqueue を移動する方法

古いメールキュー /var/spool/omqueue を実行する方法

.forward ファイルの管理 (タスクマップ)

.forward ファイルを管理する

.forward ファイルを無効にする方法

.forward ファイルの検索パスを変更する方法

/etc/shells の作成および生成方法

メールサービスのトラブルシューティングとヒント (タスクマップ)

メールサービスのトラブルシューティング手順とヒント

メール構成をテストする方法

メール別名を確認する方法

sendmail ルールセットをテストする方法

ほかのシステムへの接続を調べる方法

エラーメッセージの記録

メール診断情報のその他の情報源

エラーメッセージの解釈

3.  メールサービス (リファレンス)

索引

ドキュメントの品質向上のためのご意見をください
簡潔すぎた
読みづらかった、または難し過ぎた
重要な情報が欠けていた
内容が間違っていた
翻訳版が必要
その他
Your rating has been updated
貴重なご意見を有り難うございました!

あなたの貴重なご意見はより良いドキュメント作成の手助けとなります 内容の品質向上と追加コメントのためのアンケートに参加されますか?

sendmail 構成を変更する

「新しい sendmail.cf ファイルを構築する方法」で、構成ファイルの構築方法について説明します。sendmail.cf ファイルの以前のバージョンも引き続き使用できますが、新しい形式を使用することをお薦めします。

詳細は、次を参照してください。

新しい sendmail.cf ファイルを構築する方法

次に、新しい構成ファイルを構築する手順を示します。


注 - /usr/lib/mail/cf/main-v7sun.mc は、/etc/mail/cf/cf/sendmail.mc になりました。


  1. 管理者になります。

    詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. sendmail を停止します。
    # svcadm disable -t network/smtp:sendmail
  3. 変更しようとする構成ファイルのコピーを作成します。
    # cd /etc/mail/cf/cf
    # cp sendmail.mc myhost.mc
    myhost

    .mc ファイルの新しい名前を指定します。

  4. 必要に応じて、新しい構成ファイル (たとえば、myhost.mc) を編集します。

    たとえば、ドメインマスカレードを有効にするには、次のコマンド行を追加します。

    # cat myhost.mc
    ..
    MASQUERADE_AS(`host.domain')
    host.domain

    目的のホスト名とドメイン名を指定します。

    この例では、MASQUERADE_AS は、送信されたメールに、$j ではなく host.domain から送信されたものとしてラベルを付けます。

  5. m4 を使って構成ファイルを構築します。
    # make myhost.cf
  6. -C オプションを使用して、新しい構成ファイルをテストし、新しいファイルを指定します。
    # /usr/lib/sendmail -C myhost.cf -v testaddr </dev/null

    このコマンドはメッセージを表示するとともに、メッセージを testaddr に送信します。システム上で sendmail サービスを再起動せずに、送信メールだけがテストできます。まだメールを処理していないシステムでは、「メール構成をテストする方法」で説明する完全なテスト手順を使用してください。

  7. オリジナルのコピーを作成したあと、新しい構成ファイルをインストールします。
    # cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.save
    # cp myhost.cf /etc/mail/sendmail.cf
  8. sendmail サービスを再起動します。
    # svcadm enable network/smtp:sendmail

仮想ホストを設定する

ホストに複数の IP アドレスを割り当てる必要がある場合は、http://www.sendmail.org/tips/virtualHosting の Web サイトを参照してください。このサイトでは、sendmail を使って仮想ホストを設定する方法を詳しく説明しています。ただし、「Sendmail Configuration」セクションでは、次に示す手順 3b は実行しないでください。

# cd sendmail-VERSION/cf/cf
# ./Build mailserver.cf
# cp mailserver.cf /etc/mail/sendmail.cf

代わりに、Oracle Solaris オペレーティングシステムでは、次の手順を実行してください。

# cd /etc/mail/cf/cf
# make mailserver.cf
# cp mailserver.cf /etc/mail/sendmail.cf
mailserver

.cf ファイルの名前を指定します。

sendmail 構成を変更する」では、構築手順の一部として、これと同じ 3 つの手順を説明しています。

/etc/mail/sendmail.cf ファイルを生成したら、次の手順に進み、仮想ユーザーテーブルを作成できます。

構成ファイルを自動的に再構築する方法

sendmail.cf または submit.cf のコピーを独自に構築済みであれば、アップグレード時に構成ファイルが置き換えられることはありません。次の手順は、sendmail.cf ファイルが自動的に再構築されるように sendmail サービスのプロパティーを構成する方法を示します。submit.cf 構成ファイルを自動的に構築する方法については、例 2-1 を参照してください。両方のファイルの構築が必要な場合には、これらの手順を組み合わることもできます。

  1. 管理者になります。

    詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. sendmail プロパティーを設定します。
    # svccfg -s sendmail
    svc:/network/smtp:sendmail> setprop config/path_to_sendmail_mc=/etc/mail/cf/cf/myhost.mc 
    svc:/network/smtp:sendmail> quit
  3. sendmail サービスのリフレッシュと再起動を行います。

    最初のコマンドは、変更を実行中のスナップショット内に転送します。2 番目のコマンドは、新しいオプションを使って sendmail サービスを再起動します。

    # svcadm refresh svc:/network/smtp:sendmail 
    # svcadm restart svc:/network/smtp:sendmail

例 2-1 submit.cf の自動再構築を設定する

この手順では、submit.mc 構成ファイルが自動的に再構築されるように sendmail サービスを構成します。

# svccfg -s sendmail-client:default
svc:/network/smtp:sendmail> setprop config/path_to_submit_mc=/etc/mail/cf/cf/submit-myhost.mc 
svc:/network/smtp:sendmail> exit
# svcadm refresh svc:/network/sendmail-client 
# svcadm restart svc:/network/sendmail-client

オープンモードで sendmail を使用する方法

sendmail サービスはデフォルトでローカル専用モードで実行するように変更されました。ローカル専用モードとは、ローカルホストからのメールだけが受け入れられることを意味します。その他のシステムからのメッセージはすべて拒否されます。以前のリリースは、すべてのリモートシステムからのメールを受け入れるように構成されていました。これはオープンモードとして知られています。オープンモードを使用するには、次の手順に従います。


注意

注意 - ローカル専用モードでの sendmail の実行は、オープンモードでの実行よりもはるかに安全です。潜在的なセキュリティーの問題を確実に認識した上で、この手順を実行してください。


  1. 管理者になります。

    詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. sendmail プロパティーを設定します。
    # svccfg -s sendmail
    svc:/network/smtp:sendmail> setprop config/local_only = false 
    svc:/network/smtp:sendmail> quit
  3. sendmail サービスのリフレッシュと再起動を行います。
    # svcadm refresh svc:/network/smtp:sendmail 
    # svcadm restart svc:/network/smtp:sendmail

TLS を使用するよう SMTP を構成する

SMTP は sendmail の version 8.13 で Transport Layer Security (TLS) を使用できます。SMTP サーバーおよびクライアントに対するこのサービスは、インターネット上での機密性の高い認証された通信だけでなく、盗聴や攻撃からの保護も実現します。このサービスは、デフォルトでは有効になっていないことに注意してください。

次の手順では、サンプルデータを使用して、sendmail が TLS を使用できるようにする証明書を設定する方法を示します。詳細については、sendmail の version 8.13 で TLS を使用して SMTP を実行するためのサポート」を参照してください。

  1. 管理者になります。

    詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. sendmail を停止します。
    # svcadm disable -t network/smtp:sendmail
  3. sendmail が TLS を使用できるようにする証明書を設定します。
    1. 次の手順を行います。
      # cd /etc/mail
      # mkdir -p certs/CA
      # cd certs/CA
      # mkdir certs crl newcerts private
      # echo "01" > serial
      # cp /dev/null index.txt
      # cp /etc/openssl/openssl.cnf .
    2. 任意のテキストエディタを使用して openssl.cnf ファイルの dir の値を/etc/openssl から /etc/mail/certs/CA に変更します。
    3. openssl コマンド行ツールを使用して TLS を実装します。

      次のコマンド行は対話型テキストを生成することに注意してください。

      # openssl req -new -x509 -keyout private/cakey.pem -out cacert.pem -days 365 \
      -config openssl.cnf
      Generating a 1024 bit RSA private key
      .....................................++++++
      .....................................++++++
      writing new private key to 'private/cakey.pem'
      Enter PEM pass phrase:
      Verifying - Enter PEM pass phrase:
      -----
      You are about to be asked to enter information that will be incorporated
      into your certificate request.
      What you are about to enter is what is called a Distinguished Name or a DN.
      There are quite a few fields but you can leave some blank
      For some fields there will be a default value,
      If you enter '.', the field will be left blank.
      -----
      Country Name (2 letter code) []:US
      State or Province Name (full name) []:California
      Locality Name (eg, city) []:Menlo Park
      Organization Name (eg, company) [Unconfigured OpenSSL Installation]:Oracle
      Organizational Unit Name (eg, section) []:Solaris
      Common Name (eg, YOUR name) []:somehost.somedomain.example.com
      Email Address []:someuser@example.com
      req

      このコマンドは証明書要求を作成し、処理します。

      -new

      この req オプションを選択すると、新しい証明書要求が作成されます。

      -x509

      この req オプションを選択すると、自己署名付き証明書が作成されます。

      -keyout private/cakey.pem

      この req オプションを選択すると、新しく作成された秘密鍵のファイル名として private/cakey.pem を割り当てることができます。

      -out cacert.pem

      この req オプションを選択すると、出力ファイルとして cacert.pem を割り当てることができます。

      -days 365

      この req オプションを選択すると、証明書を 365 日間証明することができます。デフォルト値は 30 です。

      -config openssl.cnf

      この req オプションを選択すると、構成ファイルとして openssl.cnf を指定することができます。

      このコマンドは、次の内容を指定する必要があります。

      • Country Name (US など)。

      • State or Province Name (California など)。

      • Locality Name (Menlo Park など)。

      • Organization Name (Oracle など)。

      • Organizational Unit Name (Solaris など)。

      • Common Name (マシンの完全指定のホスト名)。詳細は、check-hostname(1M) のマニュアルページを参照してください。

      • Email Address (someuser@example.com など)。

  4. (省略可能) セキュアな新しい接続が必要である場合、新しい証明書を作成し、認証局を使用して新しい証明書に署名します。
    1. 新しい証明書を作成します。
      # cd /etc/mail/certs/CA
      # openssl req -nodes -new -x509 -keyout newreq.pem -out newreq.pem -days 365 \
      -config openssl.cnf
      Generating a 1024 bit RSA private key
      ..............++++++
      ..............++++++
      writing new private key to 'newreq.pem'
      -----
      You are about to be asked to enter information that will be incorporated
      into your certificate request.
      What you are about to enter is what is called a Distinguished Name or a DN.
      There are quite a few fields but you can leave some blank
      For some fields there will be a default value,
      If you enter '.', the field will be left blank.
      -----
      Country Name (2 letter code) []:US
      State or Province Name (full name) []:California
      Locality Name (eg, city) []:Menlo Park
      Organization Name (eg, company) [Unconfigured OpenSSL Installation]:Oracle
      Organizational Unit Name (eg, section) []:Solaris
      Common Name (eg, YOUR name) []:somehost.somedomain.example.com
      Email Address []:someuser@example.com

      このコマンドでは、手順 3c で指定した情報と同じ情報を指定する必要があります。

      この例では、証明書と秘密鍵はファイル newreq.pem 内にあることに注意してください。

    2. 認証局を使用して新しい証明書に署名します。
      # cd /etc/mail/certs/CA
      # openssl x509 -x509toreq -in newreq.pem -signkey newreq.pem -out tmp.pem
      Getting request Private Key
      Generating certificate request
      # openssl ca -config openssl.cnf -policy policy_anything -out newcert.pem -infiles tmp.pem
      Using configuration from openssl.cnf
      Enter pass phrase for /etc/mail/certs/CA/private/cakey.pem:
      Check that the request matches the signature
      Signature ok
      Certificate Details:
              Serial Number: 1 (0x1)
              Validity
                  Not Before: Jun 23 18:44:38 2005 GMT
                  Not After : Jun 23 18:44:38 2006 GMT
              Subject:
                  countryName               = US
                  stateOrProvinceName       = California
                  localityName              = Menlo Park
                  organizationName          = Oracle
                  organizationalUnitName    = Solaris
                  commonName                = somehost.somedomain.example.com
                  emailAddress              = someuser@example.com
              X509v3 extensions:
                  X509v3 Basic Constraints: 
                      CA:FALSE
                  Netscape Comment: 
                      OpenSSL Generated Certificate
                  X509v3 Subject Key Identifier: 
                      93:D4:1F:C3:36:50:C5:97:D7:5E:01:E4:E3:4B:5D:0B:1F:96:9C:E2
                  X509v3 Authority Key Identifier: 
                      keyid:99:47:F7:17:CF:52:2A:74:A2:C0:13:38:20:6B:F1:B3:89:84:CC:68
                      DirName:/C=US/ST=California/L=Menlo Park/O=Oracle/OU=Solaris/\
                      CN=someuser@example.com/emailAddress=someuser@example.com
                      serial:00
      
      Certificate is to be certified until Jun 23 18:44:38 2006 GMT (365 days)
      Sign the certificate? [y/n]:y
      
      
      1 out of 1 certificate requests certified, commit? [y/n]y
      Write out database with 1 new entries
      Data Base Updated
      # rm -f tmp.pem

      この例では、ファイル newreq.pem には未署名の証明書と秘密鍵が含まれています。ファイル newcert.pem には署名済みの証明書が含まれています。

      x509 ユーティリティー

      証明書の情報を表示し、証明書をさまざまな形式に変換し、証明書要求に署名します。

      ca アプリケーション

      さまざまな形式の証明書要求の署名と、CRL (Certificate Revocation List) の生成に使用されます。

  5. .mc ファイルに次の行を追加することにより、sendmail が証明書を使用できるようにします。
    define(`confCACERT_PATH', `/etc/mail/certs')dnl
    define(`confCACERT', `/etc/mail/certs/CAcert.pem')dnl
    define(`confSERVER_CERT', `/etc/mail/certs/MYcert.pem')dnl
    define(`confSERVER_KEY', `/etc/mail/certs/MYkey.pem')dnl
    define(`confCLIENT_CERT', `/etc/mail/certs/MYcert.pem')dnl
    define(`confCLIENT_KEY', `/etc/mail/certs/MYkey.pem')dnl

    詳細は、「TLS を使用して SMTP を実行するための構成ファイルのオプション」を参照してください。

  6. /etc/mail ディレクトリで sendmail.cf ファイルを再構築し、インストールします。

    手順の詳細は、sendmail 構成を変更する」を参照してください。

  7. openssl を使用して作成したファイルから、.mc ファイルで定義したファイルへの、シンボリックリンクを作成します。
    # cd /etc/mail/certs
    # ln -s CA/cacert.pem CAcert.pem
    # ln -s CA/newcert.pem MYcert.pem
    # ln -s CA/newreq.pem MYkey.pem
  8. セキュリティーを高めるには、MYkey.pem に関して、グループなどに対して読み取り権を許可しないでください。
    # chmod go-r MYkey.pem
  9. シンボリックリンクを使用して、confCACERT_PATH に割り当てられているディレクトリで CA 証明書をインストールします。
    # C=CAcert.pem
    # ln -s $C `openssl x509 -noout -hash < $C`.0
  10. そのほかのホストとのメールのセキュリティーを保護するには、ホストの証明書をインストールします。
    1. ほかのホストの confCACERT オプションにより定義されたファイルを、/etc/mail/certs/host.domain.cert.pem にコピーします。

      host.domain を、ほかのホストの完全指定のホスト名に置き換えます。

    2. シンボリックリンクを使用して、confCACERT_PATH に割り当てられているディレクトリで CA 証明書をインストールします。
      # C=host.domain.cert.pem
      # ln -s $C `openssl x509 -noout -hash < $C`.0

      host.domain を、ほかのホストの完全指定のホスト名に置き換えます。

  11. sendmail を再起動します。
    # svcadm enable network/smtp:sendmail

例 2-2 Received: メールヘッダー

次に、TLS を使用したセキュアなメールの Received: ヘッダーの例を示します。

Received: from his.example.com ([IPv6:2001:db8:3c4d:15::1a2f:1a2b])
        by her.example.com (8.13.4+Sun/8.13.4) with ESMTP id j2TNUB8i242496
        (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
        for <janepc@her.example.com>; Tue, 29 Mar 2005 15:30:11 -0800 (PST)
Received: from her.example.com (her.city.example.com [192.168.0.0])
        by his.example.com (8.13.4+Sun/8.13.4) with ESMTP id j2TNU7cl571102
        version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
        for <janepc@her.example.com>; Tue, 29 Mar 2005 15:30:07 -0800 (PST)

verify の値が OK である、つまり認証が成功したことに注意してください。詳細は、「TLS を使用して SMTP を実行するためのマクロ」を参照してください。

参照

次の OpenSSL のマニュアルページも参照してください。

sendmail.cf の代替構成を使ってメール配信を管理する方法

送受信されるメールの転送を容易にするため、sendmail の新しいデフォルトの構成は、デーモンとクライアントキューランナーを使用します。クライアントキューランナーは、ローカルの SMTP ポートのデーモンにメールを送信できなければなりません。デーモンが SMTP ポート上で待機していない場合、メールはキューに留まります。この問題を避けるには、次のタスクを行います。デーモンとクライアントキューランナーについての詳細、およびこの代替構成を使用する必要性を理解するには、sendmail の version 8.12 からの submit.cf 構成ファイル」を参照してください。

この手順を実行すると、デーモンは、ローカルホストからの接続を受け付けるためだけに動作するようになります。

  1. 管理者になります。

    詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. sendmail クライアントサービスを停止します。
    # svcadm disable -t sendmail-client
  3. 変更しようとする構成ファイルのコピーを作成します。
    # cd /etc/mail/cf/cf
    # cp submit.mc submit-myhost.mc
    myhost

    .mc ファイルの新しい名前を指定します。

  4. 新しい構成ファイル (たとえば、submit- myhost.mc) を編集します。

    待機中のホスト IP アドレスを msp 定義に変更します。

    # grep msp submit-myhost.mc
    FEATURE(`msp', `[#.#.#.#]')dnl
  5. m4 を使って構成ファイルを構築します。
    # make submit-myhost.cf
  6. オリジナルのコピーを作成したあと、新しい構成ファイルをインストールします。
    # cp /etc/mail/submit.cf /etc/mail/submit.cf.save
    # cp submit-myhost.cf /etc/mail/submit.cf
  7. sendmail クライアントサービスを再起動します。
    # svcadm enable sendmail-client