Solaris のシステム管理 (セキュリティサービス)

パスワード暗号化のデフォルトアルゴリズムを変更する

デフォルトでは、ユーザーパスワードは crypt_unix アルゴリズムで暗号化されます。デフォルトのパスワード暗号化アルゴリズムを変更することによって、MD5Blowfish など、より強力な暗号化アルゴリズムを使用できます。

Procedureパスワード暗号化のアルゴリズムを指定する方法

この手順では、ユーザーがパスワードを変更するときのデフォルト暗号化アルゴリズムとして BSD-Linux バージョンの MD5 アルゴリズムが使用されます。このアルゴリズムは、Solaris、BSD、Linux バージョンの UNIX が混在するマシンネットワークに適しています。パスワード暗号化アルゴリズムとアルゴリズム識別子の一覧は、表 2–1 を参照してください。

  1. Primary Administrator 役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 選択した暗号化アルゴリズムの識別子を指定します。

    暗号化アルゴリズムの識別子を、/etc/security/policy.conf ファイルの CRYPT_DEFAULT 変数の値として入力します。

    選択についての説明をコメントとして入力できます。


    # cat  /etc/security/policy.conf
    …
    CRYPT_ALGORITHMS_ALLOW=1,2a,md5,5,6
    #
    # Use the version of MD5 that works with Linux and BSD systems.
    # Passwords previously encrypted with __unix__ will be encrypted with MD5
    # when users change their passwords.
    #
    #
    CRYPT_DEFAULT=__unix__
    CRYPT_DEFAULT=1
    

    この例では、アルゴリズム構成を指定することによって、もっとも弱いアルゴリズムである crypt_unix がパスワードの暗号化に使用されることがないようにします。crypt_unix モジュールで暗号化されているパスワードは、次回のパスワード変更から crypt_bsdmd5 で暗号化されます。

    選択したアルゴリズムの構成の詳細については、policy.conf(4) のマニュアルページを参照してください。


例 3–6 パスワードの暗号化に Blowfish アルゴリズムを使用する

この例では、policy.conf ファイルの CRYPT_DEFAULT 変数の値として、Blowfish アルゴリズムの識別子 2a が指定されています。


CRYPT_ALGORITHMS_ALLOW=1,2a,md5,5,6
#CRYPT_ALGORITHMS_DEPRECATE=__unix__
CRYPT_DEFAULT=2a

この構成は、Blowfish アルゴリズムを使用する BSD システムに対応しています。


ProcedureNIS ドメイン用の新しいパスワードアルゴリズムを指定する方法

NIS ドメインのユーザーがパスワードを変更すると、NIS クライアントは、/etc/security/policy.conf ファイルにある自身のローカルアルゴリズム構成を調べ、パスワードを暗号化します。

  1. パスワード暗号化アルゴリズムを NIS クライアント上の /etc/security/policy.conf ファイルに指定します。

  2. 変更された /etc/security/policy.conf ファイルを NIS ドメインのすべてのクライアントマシンにコピーします。

  3. 混乱をできるだけ少なくするために、変更された /etc/security/policy.conf ファイルを NIS ルートサーバーとスレーブサーバーにコピーします。

ProcedureNIS+ ドメイン用の新しいパスワードアルゴリズムを指定する方法

NIS+ ドメインのユーザーがパスワードを変更すると、NIS+ ネームサービスは、NIS+ マスターにある/etc/security/policy.conf ファイルのアルゴリズム構成を調べます。rpc.nispasswd デーモンが動作するこの NIS+ マスターが、暗号化されたパスワードを作成します。

  1. パスワード暗号化アルゴリズムを NIS+ マスター上の /etc/security/policy.conf ファイルに指定します。

  2. 混乱をできるだけ少なくするために、NIS+ マスターの /etc/security/policy.conf ファイルを NIS+ ドメインのすべてのホストにコピーします。

ProcedureLDAP ドメイン用の新しいパスワードアルゴリズムを指定する方法

適切に構成された LDAP クライアントでは、新しいパスワードアルゴリズムを使用できます。LDAP クライアントは NIS クライアントと同じように動作します。

  1. パスワード暗号化アルゴリズムを LDAP クライアント上の /etc/security/policy.conf ファイルに指定します。

  2. 変更された policy.conf ファイルを LDAP ドメインのすべてのクライアントマシンにコピーします。

  3. クライアントの /etc/pam.conf ファイルが pam_ldap モジュールを使用していないことを確認します。

    pam_ldap.so.1 を含むエントリの前にコメント記号 (#) があることを確認します。pam_authtok_store.so.1 モジュールには新しい server_policy オプションを使用しないでください。

    ローカルアルゴリズム構成に基づくパスワードの暗号化は、クライアントの pam.conf ファイルの PAM エントリに従って行われます。また、パスワードの認証もこの PAM エントリによって行われます。

    LDAP ドメインのユーザーがパスワードを変更すると、LDAP クライアントは、/etc/security/policy.conf ファイルにある自身のローカルアルゴリズム構成を調べ、パスワードを暗号化します。続いてクライアントは、{crypt} タグ付きの暗号化パスワードをサーバーに送信します。このタグは、パスワードが暗号化済みであることをサーバーに知らせます。パスワードはそのままの形でサーバーに格納されます。認証時に、クライアントはこのパスワードをサーバーから取り出します。クライアントは、このパスワードと、入力されたユーザーのパスワードからクライアントが暗号化したばかりのパスワードとを比較します。


    注 –

    LDAP サーバーでパスワードポリシー制御を使用するには、pam.conf ファイルの pam_authtok_store エントリに server_policy オプションを指定します。これによって、パスワードは、Sun Java System Directory Server の暗号化メカニズムを使ってサーバー上で暗号化されます。この手順については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』の第 11 章「LDAP クライアントと Sun Java System Directory Server の設定 (手順)」を参照してください。


ProcedureSun 以外のパスワード暗号化モジュールをインストールする方法

Sun 以外のパスワード暗号化アルゴリズムは、通常、ソフトウェアパッケージのモジュールの 1 つとして配布されます。したがって、pkgadd コマンドを実行すると、/etc/security/crypt.conf ファイルはベンダーのスクリプトによって変更されるはずです。このあとで、/etc/security/policy.conf ファイルに新しいモジュールとその識別子を指定してください。

  1. pkgadd コマンドを実行してソフトウェアを追加します。

    ソフトウェアの追加方法については、『Solaris のシステム管理 (基本編)』「ソフトウェアパッケージの追加または削除 (pkgadd)」を参照してください。

  2. 新しいモジュールとモジュール識別子が追加されたことを確認します。

    /etc/security/crypt.conf ファイル内の暗号化アルゴリズムの一覧でチェックしてください。

    たとえば、次の行は、crypt_rot13 アルゴリズムを実装するモジュールが追加されていることを示します。


    # crypt.conf
    #
    md5 /usr/lib/security/$ISA/crypt_md5.so
    rot13 /usr/lib/security/$ISA/crypt_rot13.so
    
    # For *BSD - Linux compatibility
    # 1 is MD5,  2a is Blowfish
    1 /usr/lib/security/$ISA/crypt_bsdmd5.so
    2a /usr/lib/security/$ISA/crypt_bsdbf.so
  3. /etc/security/policy.conf ファイルに、新たにインストールされたアルゴリズムの識別子を追加します。

    次に、識別子 rot13 を追加する必要がある policy.conf ファイルの一部を示します。


    # Copyright 1999-2002 Sun Microsystems, Inc.  All rights reserved.
    # ...
    #ident  "@(#)policy.conf        1.12     08/05/14 SMI"
    # ...
    # crypt(3c) Algorithms Configuration
    CRYPT_ALGORITHMS_ALLOW=1,2a,md5,5,6,,rot13
    #CRYPT_ALGORITHMS_DEPRECATE=__unix__
    CRYPT_DEFAULT=md5

    この例では、現在のパスワードが crypt_rot13 アルゴリズムで暗号化されていれば、rot13 アルゴリズムが使用されます。新しいユーザーパスワードは crypt_sunmd5 アルゴリズムで暗号化されます。このアルゴリズム構成は Solaris だけからなるネットワークで有効です。