Solaris のシステム管理 (ネットワークサービス)

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

サイトが企業外の電子メールサービスに接続していないか、あるいは企業が 1 つのドメイン内にある場合は、メールサービスを比較的容易に設定できます。

ローカルメール用に 2 つのタイプの構成が必要です。これらの構成については、図 13–1「ローカルメール専用」 を参照してください。ドメイン外のネットワークと通信するためには、さらに 2 つのタイプの構成が必要です。これらの構成については、図 12–1「ハードウェアコンポーネントの概要」 または 図 13–2「ローカルメールとリモート接続」 を参照してください。これらの構成は、同じシステムで組み合わせるか、または別のシステムで提供できます。たとえば、同じシステムにメールホストとメールサーバーの機能を持たせる場合は、この節の説明に従って、まずそのシステムをメールホストとして設定します。次に、この節の説明に従って、同じシステムをメールサーバーとして設定します。


注 –

次のメールサーバーとメールクライアントの設定の手順は、メールボックスが NFS でマウントされているときに適用されます。ただし、メールボックスは通常、ローカルにマウントされた /var/mail ディレクトリで維持されるので、次の手順は必要ありません。


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

メールサーバーはローカルユーザーにメールサービスを提供するだけなので、設定には特別な手順は必要ありません。ユーザーはパスワードファイルまたは名前空間にエントリが必要です。さらに、メールが配信されるためには、ユーザーはローカルのホームディレクトリを用意して、~/.forward ファイルを確認する必要があります。このため、ホームディレクトリサーバーがしばしばメールサーバーとして設定されます。メールサーバーについては、「ハードウェアコンポーネント」第 14 章メールサービス (リファレンス)でさらに詳しく説明します。

メールサーバーは、メールクライアント宛てにメールを経路指定します。このタイプのメールサーバーは、クライアントのメールボックス用に十分なスプール空間が必要です。


注 –

mail.local プログラムは、メッセージがはじめて配信された時に /var/mail ディレクトリでメールボックスを自動的に作成します。メールクライアントの個々のメールボックスを作成する必要はありません。

クライアントが自分のメールボックスにアクセスするには、/var/mail ディレクトリをリモートマウントに利用できなければなりません。または、POP (Post Office Protocol)、IMAP (Internet Message Access Protocol) などのサービスをサーバーから利用できなければなりません。次では、/var/mail ディレクトリを使ってメールサーバーを設定する方法を示します。このマニュアルでは、POP または IMAP の構成方法については説明しません。


次の作業のために、/var/mail ディレクトリがエクスポートされていることを /etc/dfs/dfstab ファイルで確認します。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. sendmail を停止します。


    # svcadm disable -t network/smtp:sendmail
    
  3. /var/mail ディレクトリをリモートアクセスに使用できるかどうかを確認します。


    # share
    

    /var/mail ディレクトリが表示された場合は、手順 5 に進みます。

    /var/mail ディレクトリが表示されない場合、あるいはリストが表示されない場合は、該当する手順に進みます。

    1. (省略可能) リストが表示されない場合は、NFS サービスを起動します。

      「ファイルシステム自動共有を設定する方法」の手順に従って、/var/mail ディレクトリを使用して NFS サービスを起動します。

    2. (省略可能) /var/mail ディレクトリがリストに含まれていない場合は、/var/mail ディレクトリを /etc/dfs/dfstab に追加します。

      /etc/dfs/dfstab ファイルに次のコマンド行を追加します。


      share -F nfs -o rw /var/mail
      
  4. ファイルシステムをマウントできるようにします。


    # shareall
    
  5. ネームサービスが起動されていることを確認します。

    1. (省略可能) NIS を実行している場合は、次のコマンドを使用します。


      # ypwhich
      

      詳細は、ypwhich(1) のマニュアルページを参照してください。

    2. (省略可能) NIS+ を実行している場合は、次のコマンドを使用します。


      # nisls
      

      詳細は、nisls(1) のマニュアルページを参照してください。

    3. (省略可能) DNS を実行している場合は、次のコマンドを使用します。


      # nslookup hostname
      
      hostname

      ホスト名を指定します。

      詳細は、nslookup(1M) のマニュアルページを参照してください。

    4. (省略可能) LDAP を実行している場合は、次のコマンドを使用します。


      # ldaplist
      

      詳細は、ldaplist(1) のマニュアルページを参照してください。

  6. sendmail を再起動します。


    # svcadm enable network/smtp:sendmail
    

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

メールクライアントは、メールサーバー上にメールボックスを持っている、メールサービスのユーザーです。メールクライアントにはさらに、/etc/mail/aliases ファイルで、メールボックスの位置を示すメール別名が設定されています。


注 –

POP (Post Office Protocol) または IMAP (Internet Message Access Protocol) のようなサービスを使ってメールクライアントを設定することもできます。ただし、POP または IMAP の構成方法については、このマニュアルでは説明していません。


  1. メールクライアントシステム上でスーパーユーザーになるか、同等の役割になります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. sendmail を停止します。


    # svcadm disable -t network/smtp:sendmail
    
  3. メールクライアントのシステムで /var/mail マウントポイントがあることを確認します。

    マウントポイントは、インストール過程で作成されています。ls を使用すると、ファイルシステムが存在するかどうかを確認できます。次の例はファイルシステムが作成されていない場合に受け取る応答を示しています。


    # ls -l /var/mail
    /var/mail not found
  4. /var/mail ディレクトリにファイルが何もないことを確認します。

    メールファイルがこのディレクトリにある場合は、それらのファイルを移動させ、サーバーから /var/mail ディレクトリがマウントされるときにその対象とならないようにします。

  5. メールサーバーから /var/mail ディレクトリをマウントします。

    メールディレクトリは自動的にマウントすることも、ブート時にマウントすることもできます。

    1. (省略可能) /var/mail を自動的にマウントします。

      次のようなエントリを /etc/auto_direct ファイルに追加します。


      /var/mail -rw,hard,actimeo=0 server:/var/mail
      server

      割り当てられているサーバー名を指定します。

    2. (省略可能) ブート時に /var/mail をマウントします。

      /etc/vfstab ファイルに次のエントリを追加します。このエントリにより、指定されたメールサーバー上の /var/mail ディレクトリがローカルの /var/mail ディレクトリをマウントできます。


      server:/var/mail - /var/mail nfs - no rw,hard,actimeo=0

      システムをリブートするたびに、クライアントのメールボックスが自動的にマウントされます。システムをリブートしない場合は、次のコマンドを入力すれば、クライアントのメールボックスをマウントできます。


      # mountall
      

      注意 – 注意 –

      メールボックスのロックとメールボックスへのアクセスが適切に動作するには、NFS サーバーからメールをマウントするときに actimeo=0 オプションを入れる必要があります。


  6. /etc/hosts を更新します。

    /etc/hosts ファイルを編集し、メールサーバーのエントリを追加します。ネームサービスを使用する場合、この手順は必要ありません。


    # cat /etc/hosts
    #
    # Internet host table
    #
    ..
    IP-address     mailhost  mailhost  mailhost.example.com
    
    IP-address

    割り当てられている IP アドレスを指定します。

    example.com

    割り当てられているドメインを指定します。

    mailhost

    割り当てられているメールホストを指定します。

    詳細は、hosts(4) のマニュアルページを参照してください。

  7. 別名ファイルの 1 つにクライアントのエントリを追加します。

    メール別名ファイルの管理に関する作業マップについては、「メール別名ファイルの管理 (作業マップ)」を参照してください。mail.local プログラムは、メッセージがはじめて配信された時に /var/mail ディレクトリでメールボックスを自動的に作成します。メールクライアントの個々のメールボックスを作成する必要はありません。

  8. sendmail を再起動します。


    # svcadm enable network/smtp:sendmail
    

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

メールホストは、電子メールアドレスを解決し、ドメイン内でメールを再度ルーティングします。メールホストに適しているのは、ネットワークにリモート接続を提供するシステム、または親ドメインにネットワークを接続するシステムです。次に、メールホストを設定する手順を示します。

  1. メールホストシステム上でスーパーユーザーになるか、同等の役割になります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. sendmail を停止します。


    # svcadm disable -t network/smtp:sendmail
    
  3. ホスト名の構成を確認します。

    次のように check-hostname スクリプトを実行し、sendmail が、このサーバーの完全指定のホスト名を識別できるかどうかを確認します。


    % /usr/sbin/check-hostname
    hostname phoenix OK: fully qualified as phoenix.example.com

    このスクリプトで完全指定ホスト名が識別できなかった場合は、完全指定ホスト名をホストの最初の別名として /etc/hosts 内に追加する必要があります。

  4. /etc/hosts ファイルを更新します。

    次から、適切な手順を選択します。

    1. (省略可能) NIS または NIS+ を使用している場合は、新しいメールホストとなるシステムの /etc/hosts ファイルを編集します。

      メールホストシステムの IP アドレスとシステム名のあとに mailhostmailhost.domain を追加します。


      IP-address mailhost mailhost mailhost.domain loghost
      IP-address

      割り当てられている IP アドレスを指定します。

      mailhost

      メールホストシステムのシステム名を指定します。

      domain

      拡張ドメイン名を指定します。

      これで、このシステムはメールホストとして指定されます。domain は、次のコマンドの出力にサブドメイン名として指定されている文字列と同じにする必要があります。


      % /usr/lib/sendmail -bt -d0 </dev/null
      Version 8.13.1+Sun
       Compiled with: LDAPMAP MAP_REGEX LOG MATCHGECOS MIME7TO8 MIME8TO7
                      NAMED_BIND NDBM NETINET NETINET6 NETUNIX NEWDB NIS
                      NISPLUS QUEUE SCANF SMTP USERDB XDEBUG
      
      ============ SYSTEM IDENTITY (after readcf) ============
            (short domain name) $w = phoenix
        (canonical domain name) $j = phoenix.example.com
               (subdomain name) $m = example.com
                    (node name) $k = phoenix
      ========================================================

      以上の変更を行なったあとの hosts ファイルの例を次に示します。


      # cat /etc/hosts
      #
      # Internet host table
      #
      172.31.255.255   localhost        
      192.168.255.255  phoenix mailhost mailhost.example.com loghost
    2. (省略可能) NIS または NIS+ を使用しない場合は、ネットワーク内の各システムにある /etc/hosts ファイルを編集します。

      次のようなエントリを作成します。


      IP-address mailhost mailhost mailhost.domain loghost
  5. sendmail を再起動します。


    # svcadm enable network/smtp:sendmail
    
  6. メール構成をテストします。

    手順については、「メール構成をテストする方法」を参照してください。


    注 –

    メールホストの詳細は、「ハードウェアコンポーネント」第 14 章メールサービス (リファレンス)を参照してください。


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

メールゲートウェイは、ドメイン外のネットワークとの通信を管理します。送信側メールゲートウェイ上のメールプログラムは、受信側システムのメールプログラムと同じでなければなりません。

メールゲートウェイに適しているのは、Ethernet および電話回線に接続されているシステムです。インターネットへのルーターとして設定されているシステムも適しています。メールホストをメールゲートウェイとして設定するか、あるいは別のシステムをメールゲートウェイとして設定できます。複数のメールゲートウェイを自分のドメイン用として設定できます。UUCP (UNIX-to-UNIX Copy Program) 接続がある場合は、メールゲートウェイとして UUCP 接続を使ってシステムを構成します。

  1. メールゲートウェイ上でスーパーユーザーになるか、同等の役割になります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. sendmail を停止します。


    # svcadm disable -t network/smtp:sendmail
    
  3. ホスト名の構成を確認します。

    次のように check-hostname スクリプトを実行し、sendmail が、このサーバーの完全指定のホスト名を識別できるかどうかを確認します。


    # /usr/sbin/check-hostname
    hostname phoenix OK: fully qualified as phoenix.example.com

    このスクリプトで完全指定ホスト名が識別できなかった場合は、完全指定ホスト名をホストの最初の別名として /etc/hosts 内に追加する必要があります。この手順の詳細は、手順 4「メールホストを設定する方法」 を参照してください。

  4. ネームサービスが起動されていることを確認します。

    1. (省略可能) NIS を実行している場合は、次のコマンドを使用します。


      # ypwhich
      

      詳細は、ypwhich(1) のマニュアルページを参照してください。

    2. (省略可能) NIS+ を実行している場合は、次のコマンドを使用します。


      # nisls
      

      詳細は、nisls(1) のマニュアルページを参照してください。

    3. (省略可能) DNS を実行している場合は、次のコマンドを使用します。


      # nslookup hostname
      
      hostname

      ホスト名を指定します。

      詳細は、nslookup(1M) のマニュアルページを参照してください。

    4. (省略可能) LDAP を実行している場合は、次のコマンドを使用します。


      # ldaplist
      

      詳細は、ldaplist(1) のマニュアルページを参照してください。

  5. sendmail を再起動します。


    # svcadm enable network/smtp:sendmail
    
  6. メール構成をテストします。

    手順については、「メール構成をテストする方法」を参照してください。


    注 –

    メールゲートウェイの詳細は、「ハードウェアコンポーネント」第 14 章メールサービス (リファレンス)を参照してください。


Proceduresendmail で DNS を使用する方法

DNS ネームサービスは、個別の別名をサポートしません。このネームサービスは、MX (メール交換局) レコードおよび CNAME レコードを使用するホストまたはドメインの別名をサポートします。ホスト名とドメイン名は両方またはいずれか一方を DNS データベースで指定できます。sendmail と DNS の詳細は、sendmail とネームサービスの相互作用」第 14 章メールサービス (リファレンス)、または『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. DNS ホストルックアップ機能を有効にします (NIS+ のみ)。

    /etc/nsswitch.conf ファイルを編集し、dns フラグを含む hosts の定義から # を削除します。 DNS ホスト別名を使用するには、次の例に示すように、ホストエントリに dns フラグが含まれている必要があります。


    # grep hosts /etc/nsswitch.conf
    #hosts:     nisplus [NOTFOUND=return] files
    hosts:      dns nisplus [NOTFOUND=return] files
  3. mailhostmailhost.domain エントリを確認します。

    nslookup を使用して、mailhostmailhost. domain のエントリが DNS データベースに存在することを確認します。詳細は、nslookup(1M) のマニュアルページを参照してください。