ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
Oracle Solaris 11.1 での sendmail サービスの管理 Oracle Solaris 11.1 Information Library (日本語) |
ローカルの各 /etc/mail/aliases ファイルに postmaster 別名を作成する方法
postmaster メールボックスを /etc/mail/aliases ファイルの別名に追加する方法
メールキュー /var/spool/mqueue の内容を表示する方法
メールキュー /var/spool/mqueue でメールキューを強制処理する方法
メールキュー /var/spool/mqueue のサブセットを実行する方法
メールキュー /var/spool/mqueue を移動する方法
古いメールキュー /var/spool/omqueue を実行する方法
「新しい sendmail.cf ファイルを構築する方法」で、構成ファイルの構築方法について説明します。sendmail.cf ファイルの以前のバージョンも引き続き使用できますが、新しい形式を使用することをお薦めします。
/etc/mail/cf/README。構成手順の詳細な説明です。
http://www.sendmail.org。sendmail 構成に関するオンライン情報です。
「構成ファイルのバージョン」の 「sendmail 構成ファイル」 と 第 3 章メールサービス (リファレンス)。いくつかのガイダンスを示します。
次に、新しい構成ファイルを構築する手順を示します。
注 - /usr/lib/mail/cf/main-v7sun.mc は、/etc/mail/cf/cf/sendmail.mc になりました。
詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
# svcadm disable -t network/smtp:sendmail
# cd /etc/mail/cf/cf # cp sendmail.mc myhost.mc
.mc ファイルの新しい名前を指定します。
たとえば、ドメインマスカレードを有効にするには、次のコマンド行を追加します。
# cat myhost.mc .. MASQUERADE_AS(`host.domain')
目的のホスト名とドメイン名を指定します。
この例では、MASQUERADE_AS は、送信されたメールに、$j ではなく host.domain から送信されたものとしてラベルを付けます。
# make myhost.cf
# /usr/lib/sendmail -C myhost.cf -v testaddr </dev/null
このコマンドはメッセージを表示するとともに、メッセージを testaddr に送信します。システム上で sendmail サービスを再起動せずに、送信メールだけがテストできます。まだメールを処理していないシステムでは、「メール構成をテストする方法」で説明する完全なテスト手順を使用してください。
# cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.save # cp myhost.cf /etc/mail/sendmail.cf
# 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
.cf ファイルの名前を指定します。
「sendmail 構成を変更する」では、構築手順の一部として、これと同じ 3 つの手順を説明しています。
/etc/mail/sendmail.cf ファイルを生成したら、次の手順に進み、仮想ユーザーテーブルを作成できます。
sendmail.cf または submit.cf のコピーを独自に構築済みであれば、アップグレード時に構成ファイルが置き換えられることはありません。次の手順は、sendmail.cf ファイルが自動的に再構築されるように sendmail サービスのプロパティーを構成する方法を示します。submit.cf 構成ファイルを自動的に構築する方法については、例 2-1 を参照してください。両方のファイルの構築が必要な場合には、これらの手順を組み合わることもできます。
詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
# svccfg -s sendmail svc:/network/smtp:sendmail> setprop config/path_to_sendmail_mc=/etc/mail/cf/cf/myhost.mc svc:/network/smtp:sendmail> quit
最初のコマンドは、変更を実行中のスナップショット内に転送します。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 の実行は、オープンモードでの実行よりもはるかに安全です。潜在的なセキュリティーの問題を確実に認識した上で、この手順を実行してください。 |
詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
# svccfg -s sendmail svc:/network/smtp:sendmail> setprop config/local_only = false svc:/network/smtp:sendmail> quit
# svcadm refresh svc:/network/smtp:sendmail # svcadm restart svc:/network/smtp:sendmail
SMTP は sendmail の version 8.13 で Transport Layer Security (TLS) を使用できます。SMTP サーバーおよびクライアントに対するこのサービスは、インターネット上での機密性の高い認証された通信だけでなく、盗聴や攻撃からの保護も実現します。このサービスは、デフォルトでは有効になっていないことに注意してください。
次の手順では、サンプルデータを使用して、sendmail が TLS を使用できるようにする証明書を設定する方法を示します。詳細については、「sendmail の version 8.13 で TLS を使用して SMTP を実行するためのサポート」を参照してください。
詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
# svcadm disable -t network/smtp:sendmail
# 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 .
次のコマンド行は対話型テキストを生成することに注意してください。
# 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 オプションを選択すると、新しい証明書要求が作成されます。
この req オプションを選択すると、自己署名付き証明書が作成されます。
この req オプションを選択すると、新しく作成された秘密鍵のファイル名として private/cakey.pem を割り当てることができます。
この req オプションを選択すると、出力ファイルとして cacert.pem を割り当てることができます。
この req オプションを選択すると、証明書を 365 日間証明することができます。デフォルト値は 30 です。
この 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 など)。
# 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 内にあることに注意してください。
# 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 には署名済みの証明書が含まれています。
証明書の情報を表示し、証明書をさまざまな形式に変換し、証明書要求に署名します。
さまざまな形式の証明書要求の署名と、CRL (Certificate Revocation List) の生成に使用されます。
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 を実行するための構成ファイルのオプション」を参照してください。
手順の詳細は、「sendmail 構成を変更する」を参照してください。
# 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
# chmod go-r MYkey.pem
# C=CAcert.pem # ln -s $C `openssl x509 -noout -hash < $C`.0
host.domain を、ほかのホストの完全指定のホスト名に置き換えます。
# C=host.domain.cert.pem # ln -s $C `openssl x509 -noout -hash < $C`.0
host.domain を、ほかのホストの完全指定のホスト名に置き換えます。
# 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 の新しいデフォルトの構成は、デーモンとクライアントキューランナーを使用します。クライアントキューランナーは、ローカルの SMTP ポートのデーモンにメールを送信できなければなりません。デーモンが SMTP ポート上で待機していない場合、メールはキューに留まります。この問題を避けるには、次のタスクを行います。デーモンとクライアントキューランナーについての詳細、およびこの代替構成を使用する必要性を理解するには、「sendmail の version 8.12 からの submit.cf 構成ファイル」を参照してください。
この手順を実行すると、デーモンは、ローカルホストからの接続を受け付けるためだけに動作するようになります。
詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
# svcadm disable -t sendmail-client
# cd /etc/mail/cf/cf # cp submit.mc submit-myhost.mc
.mc ファイルの新しい名前を指定します。
待機中のホスト IP アドレスを msp 定義に変更します。
# grep msp submit-myhost.mc FEATURE(`msp', `[#.#.#.#]')dnl
# make submit-myhost.cf
# cp /etc/mail/submit.cf /etc/mail/submit.cf.save # cp submit-myhost.cf /etc/mail/submit.cf
# svcadm enable sendmail-client