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

第 3 章 システムアクセスの制御 (作業)

この章では、Solaris システムにアクセスできるユーザーを制御する方法について説明します。この章の内容は次のとおりです。

システムセキュリティーの概要については、第 2 章マシンセキュリティーの管理 (概要)を参照してください。

システムアクセスの制御 (作業マップ)

コンピュータのセキュリティーレベルは、コンピュータのもっとも弱い点によって決まります。次の作業マップは、どのような分野を監視してそのセキュリティーを確保すべきかを示しています。

作業 

説明 

参照先 

ユーザーログインを監視、許可、および拒否します 

一般的でないログインアクティビティーを監視します。ログインを一時的に禁止します。ダイヤルアップログインを管理します。 

「ログインとパスワードの保護 (作業マップ)」

パスワードの強力な暗号化を可能にします 

ユーザーパスワードを暗号化するアルゴリズムを指定します。ほかのアルゴリズムをインストールします。 

「パスワードアルゴリズムの変更 (作業マップ)」

スーパーユーザーによる処理の監視と制限を行います 

スーパーユーザーによる処理を定期的に監視します。root ユーザーによる遠隔ログインを禁止します。

「スーパーユーザーの監視と制限 (作業マップ)」

ハードウェア設定へのアクセスを禁止します 

通常のユーザーを PROM にアクセスさせません。 

「SPARC: システムハードウェアに対するアクセスの制御 (作業マップ)」

ログインとパスワードの保護 (作業マップ)

次の作業マップは、ユーザーログインを監視する手順と、ユーザーログインを無効にする手順を示しています。

作業 

説明 

参照先 

ユーザーのログイン状態を表示します 

ユーザーのログインアカウントについての広範な情報 (フルネーム、パスワードの有効期限など) を表示します。 

「ユーザーのログイン状態を表示する方法」

パスワードを所有していないユーザーを発見します 

パスワードを必要としないアカウントを持つユーザーだけを検出します。 

「パスワードを持たないユーザーを表示する方法」

ログインを一時的に無効にします 

システムシャットダウンや定常的な保守の中でマシンへのユーザーログインを拒否します。  

「ユーザーのログインを一時的に無効にする方法」

ログイン失敗操作を保存します 

正しいパスワードの入力に 5 回失敗したユーザーのログを作成します。 

「ログイン失敗操作を監視する方法」

失敗したすべてのログイン操作を保存します 

失敗したログイン操作のログを作成します。 

「すべてのログイン失敗操作を監視する方法」

ダイヤルアップパスワードを作成します 

モデムやダイヤルアップポートを通して遠隔ログインするユーザーに追加パスワードを要求します。 

「ダイヤルアップパスワードを作成する方法」

ダイヤルアップログインを一時的に無効にします 

ユーザーがモデムやポートを通して遠隔からダイヤルできないようにします。 

「ダイヤルアップログインを一時的に無効にする方法」

ログインとパスワードのセキュリティー

遠隔ログインを制限し、ユーザーにパスワードを要求するようにできます。失敗したアクセス操作を監視し、ログインを一時的に無効にすることもできます。

Procedureユーザーのログイン状態を表示する方法

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

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

  2. logins コマンドを使用してユーザーのログイン状態を表示します。


    # logins -x -l username
    
    -x

    ログイン状態情報の拡張セットを表示します。

    -l username

    指定するユーザーのログイン状態を表示します。変数 username はユーザーのログイン名です。複数のログイン名は、コンマで区切って指定します。

    logins コマンドは、適切なパスワードデータベースを使ってユーザーのログイン状態を表示します。このデータベースは、ローカルの /etc/passwd ファイルか、ネームサービスのパスワードデータベースです。詳細は、logins(1M) のマニュアルページを参照してください。


例 3–1 ユーザーのログイン状態を表示する

次の例では、ユーザー rimmer のログイン状態が表示されます。


# logins -x -l rimmer
rimmer       500     staff           10   Annalee J. Rimmer
                     /export/home/rimmer
                     /bin/sh
                     PS 010103 10 7 -1
rimmer

ユーザーのログイン名を示します。

500

ユーザー ID (UID) を示します。

staff

ユーザーの一次グループを示します。

10

グループ ID (GID) を示します。

Annalee J. Rimmer

コメントを示します。

/export/home/rimmer

ユーザーのホームディレクトリを示します。

/bin/sh

ログインシェルを示します。

PS 010170 10 7 -1

次のパスワード有効期限情報を示します。

  • パスワードの最終変更日

  • 次に変更するまでに必要な日数

  • 変更しないで使用できる日数

  • 警告期間


Procedureパスワードを持たないユーザーを表示する方法

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

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

  2. loginsコマンドを使用して、パスワードを持っていないユーザーをすべて表示します。


    # logins -p

    -p オプションを指定すると、パスワードを持たないユーザーが一覧表示されます。logins コマンドは、ネームサービスが有効になっていない限り、ローカルシステムのパスワードデータベースを使用します。


例 3–2 パスワードを持たないユーザーを表示する

次の例では、ユーザー pmorph はパスワードを持っていません。


# logins -p
pmorph          501     other           1       Polly Morph
# 

Procedureユーザーのログインを一時的に無効にする方法

システムシャットダウンや定常的な保守の際にユーザーのログインを一時的に無効にします。スーパーユーザーのログインは影響を受けません。詳細は、nologin(4) のマニュアルページを参照してください。

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

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

  2. テキストエディタで、/etc/nologin ファイルを作成します。


    # vi /etc/nologin
    
  3. システムの利用に関するメッセージを入力します。

  4. ファイルを閉じて、保存します。


例 3–3 ユーザーログインを無効にする

この例では、システムを使用できないことがユーザーに通知されます。


# vi /etc/nologin
(Add system message here)
 
# cat /etc/nologin 
***No logins permitted.***

***The system will be unavailable until 12 noon.***

システムを実行レベル 0、つまりシングルユーザーモードにしてログインを無効にすることもできます。システムをシングルユーザーモードにする方法については、『Solaris のシステム管理 (基本編)』の第 10 章「システムのシャットダウン (手順)」を参照してください。


Procedureログイン失敗操作を監視する方法

この作業は、端末ウィンドウで行われたログイン操作の失敗を記録します。CDE ログインと GNOME ログインの操作失敗は記録しません。

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

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

  2. /var/adm ディレクトリに loginlog ファイルを作成します。


    # touch /var/adm/loginlog
    
  3. loginlog ファイルに root ユーザーの読み取り権と書き込み権を設定します。


    # chmod 600 /var/adm/loginlog
    
  4. loginlog ファイルのグループのメンバーシップを sys に変更します。


    # chgrp sys /var/adm/loginlog
    
  5. ログが正常に記録されるか検証します。

    たとえば、間違ったパスワードを使用してシステムに 5 回ログインします。次に、/var/adm/loginlog ファイルを表示します。


    # more /var/adm/loginlog
    jdoe:/dev/pts/2:Tue Nov  4 10:21:10 2003
    jdoe:/dev/pts/2:Tue Nov  4 10:21:21 2003
    jdoe:/dev/pts/2:Tue Nov  4 10:21:30 2003
    jdoe:/dev/pts/2:Tue Nov  4 10:21:40 2003
    jdoe:/dev/pts/2:Tue Nov  4 10:21:49 2003
    #

    loginlog ファイルには、失敗操作ごとに 1 つずつエントリが入っています。各エントリには、ユーザーのログイン名、tty デバイス、操作の失敗回数が入っています。4 回以下の失敗であれば、ログに記録されません。

    loginlog ファイルのサイズが大きくなる場合は、コンピュータシステムへの侵入が試みられている可能性があります。このため、このファイルの内容を定期的にチェックして空にしてください。詳細は、loginlog(4) のマニュアルページを参照してください。

Procedureすべてのログイン失敗操作を監視する方法

この作業は、失敗したログイン操作をすべて syslog ファイルに記録します。

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

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

  2. SYSLOGSYSLOG_FAILED_LOGINS に希望する値を指定して、/etc/default/login ファイルを設定します。

    /etc/default/login ファイルを編集して、エントリを変更します。SYSLOG=YES のコメントを解除していることを確認してください。


    # grep SYSLOG /etc/default/login
    # SYSLOG determines whether the syslog(3) LOG_AUTH facility 
    # should be used
    SYSLOG=YESSYSLOG_FAILED_LOGINS=0
    #
  3. ログ操作の情報を記録できる適切なアクセス権でファイルを作成します。

    1. /var/adm ディレクトリに authlog ファイルを作成します。


      # touch /var/adm/authlog
      
    2. authlog ファイルに、root ユーザーの読み取り権と書き込み権を設定します。


      # chmod 600 /var/adm/authlog
      
    3. authlog ファイルのグループのメンバーシップを sys に変更します。


      # chgrp sys /var/adm/authlog
      
  4. 失敗したパスワード操作を記録するように、syslog.conf ファイルを編集します。

    失敗は、authlog ファイルに送る必要があります。

    1. syslog.conf ファイルに次のエントリを入力します。

      syslog.conf 内の同じ行にあるフィールドは、タブで区切ります。


      auth.notice <Press Tab>  /var/adm/authlog
    2. syslog デーモンの構成情報を再表示します。


      # svcadm refresh system/system-log
      
  5. ログが正常に記録されるか検証します。

    たとえば、間違ったパスワードを使用し、通常のユーザーとしてシステムにログインします。続いて、Primary Administrator 役割かスーパーユーザーとして、/var/adm/authlog ファイルを表示します。


    # more /var/adm/authlog
    Nov  4 14:46:11 example1 login: [ID 143248 auth.notice] 
     Login failure on /dev/pts/8 from example2, stacey
    #
  6. 定期的に /var/adm/authlog ファイルを監視します。


例 3–4 ログインが 3 回失敗したあとのアクセス操作を記録する

/etc/default/login ファイルの SYSLOG_FAILED_LOGINS の値を 3 に設定する点以外は、前述の作業と同じです。



例 3–5 ログイン操作が 3 回失敗したあとで接続を遮断する

/etc/default/login ファイルの RETRIES エントリのコメントを解除し、RETRIES の値を 3 に設定します。この編集結果はただちに適用されます。1 つのセッションでログインが 3 回試されたあと、システムは接続を遮断します。


Procedureダイヤルアップパスワードを作成する方法


注意 – 注意 –

最初にダイヤルアップパスワードを設定するときには、少なくとも 1 つのポートにログインしたまま別のポートでパスワードをテストしてください。ログアウトして新しいパスワードをテストすると、元どおりログインできなくなることがあります。まだ別のポートにログインしていれば、元に戻ってミスを訂正できます。


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

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

  2. シリアルデバイスの一覧が入った /etc/dialups ファイルを作成します。

    このファイルには、ダイヤルアップパスワードで保護されているすべてのポートを含めてください。/etc/dialups ファイルは次のようになります。


    /dev/term/a
    /dev/term/b
    /dev/term/c
  3. ダイヤルアップパスワードを要求するログインプログラムが入った /etc/d_passwd ファイルを作成します。

    uucicoshkshcsh など、ユーザーがログイン時に実行できるシェルプログラムを含めます。/etc/d_passwd ファイルは次のようになります。


    /usr/lib/uucp/uucico:encrypted-password:
    /usr/bin/csh:encrypted-password:
    /usr/bin/ksh:encrypted-password:
    /usr/bin/sh:encrypted-password:

    この手順の後半で、各ログインプログラムに暗号化されたパスワードを追加することになります。

  4. 2 つのファイルの所有権を root に設定します。


    # chown root /etc/dialups /etc/d_passwd
  5. 2 つのファイルのグループの所有権を root に設定します。


    # chgrp root /etc/dialups /etc/d_passwd
  6. 2 つのファイルに root の読み取り権と書き込み権を設定します。


    # chmod 600 /etc/dialups /etc/d_passwd
  7. 暗号化パスワードを作成します。

    1. 一時的なユーザーを作成します。


      # useradd username
      
    2. 一時的なユーザーのパスワードを作成します。


      # passwd username
      New Password:  <Type password>
      Re-enter new Password:   <Retype password>
      passwd: password successfully changed for username
      
    3. 暗号化パスワードを取り出します。


      # grep username /etc/shadow > username.temp
    4. username.temp ファイルを編集します。

      暗号化パスワードを除くすべてのフィールドを削除します。2 つ目のフィールドに、暗号化パスワードが入っています。

      たとえば、次の行では、暗号化パスワードは U9gp9SyA/JlSk です。


      temp:U9gp9SyA/JlSk:7967:::::7988:
    5. 一時的なユーザーを削除します。


      # userdel username
      
  8. username.temp ファイルから /etc/d_passwd ファイルに暗号化パスワードをコピーします。

    ログインシェルごとに別のパスワードを作成することも、共通のパスワードを使用することもできます。

  9. パスワードをダイヤルアップユーザーに知らせます。

    盗聴のおそれがない方法でパスワードを知らせる必要があります。

Procedureダイヤルアップログインを一時的に無効にする方法

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

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

  2. /etc/d_passwd ファイルのエントリを次の 1 行だけにします。


    /usr/bin/sh:*:

パスワードアルゴリズムの変更 (作業マップ)

次の作業マップは、パスワードアルゴリズムを管理する手順を示しています。

作業 

参照先 

パスワードの強力な暗号化を可能にします 

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

ネームサービスでパスワードの強力な暗号化を提供します 

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

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

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

新しいパスワード暗号化モジュールを追加します 

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

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

デフォルトでは、ユーザーパスワードは 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 だけからなるネットワークで有効です。

スーパーユーザーの監視と制限 (作業マップ)

次の作業マップは、root ユーザーログインの監視と制限の方法を示しています。

作業 

説明 

参照先 

su コマンドを使用しているユーザーを監視します

sulog ファイルを定期的に走査します。

su コマンドを使用するユーザーを監視する方法」

スーパーユーザーの活動をコンソールに表示します 

スーパーユーザーによるアクセス操作が行われたときそのアクセス操作を監視します。 

「スーパーユーザーのログインを制限し監視する方法」

スーパーユーザーの監視と制限

スーパーユーザーのアカウントを使用する代わりに、役割によるアクセス制御を設定できます。役割によるアクセス制御を RBAC と呼びます。RBAC の概要は、「役割によるアクセス制御 (概要)」を参照してください。RBAC の設定方法については、第 9 章役割によるアクセス制御の使用 (手順)を参照してください。

Proceduresu コマンドを使用するユーザーを監視する方法

sulog ファイルには、ユーザーからスーパーユーザーに切り替えたときの su コマンドの使用を含め、すべての su コマンドの使用歴が記録されます。

  1. /var/adm/sulog ファイルの内容を定期的に監視します。


    # more /var/adm/sulog
    SU 12/20 16:26 + pts/0 stacey-root
    SU 12/21 10:59 + pts/0 stacey-root
    SU 01/12 11:11 + pts/0 root-rimmer
    SU 01/12 14:56 + pts/0 pmorph-root
    SU 01/12 14:57 + pts/0 pmorph-root

    ここには、次のような情報が表示されます。

    • コマンドが入力された日時。

    • コマンド試行の成否。プラス記号 (+) は成功を示し、マイナス記号 (-) は失敗を示します。

    • コマンドが実行されたポート。

    • ユーザー名と切り替えたユーザー ID。

    このファイルへの su ログの記録は、デフォルトで、 /etc/default/su ファイルの次のエントリで有効になっています。


    SULOG=/var/adm/sulog
注意事項

??? を含むエントリは、su コマンドの制御端末を識別できないことを示しています。通常、デスクトップが表示される前の su コマンドのシステム呼び出しには、??? が含まれます。たとえば、SU 10/10 08:08 + ??? root-root です。ユーザーがデスクトップセッションを開始すると、ttynam コマンドは、次のように制御端末の値を sulog に返します。 SU 10/10 10:10 + pts/3 jdoe-root

次のようなエントリは、su コマンドがコマンド行で呼び出されなかったことを示している場合があります。SU 10/10 10:20 + ??? root-oracle。ユーザーが GUI を使用して oracle ロールに切り替えた可能性があります。

Procedureスーパーユーザーのログインを制限し監視する方法

この方法では、ローカルシステムにアクセスしようとするスーパーユーザーをただちに検出できます。

  1. /etc/default/login ファイルの CONSOLE エントリを確認します。


    CONSOLE=/dev/console

    デフォルトのコンソールデバイスは /dev/console に設定されています。このように設定されていると、root はコンソールにログインできます。root は遠隔ログインを行うことはできません。

  2. root が遠隔ログインできないことを検証します。

    遠隔システムから、スーパーユーザーとしてログインを試みます。


    mach2 % rlogin -l root mach1
    Password: <Type root password of mach1>
    Not on system console
    Connection closed.
  3. スーパーユーザーになろうとする試みを監視します。

    デフォルトでは、スーパーユーザーになろうとすると、その試行が SYSLOG ユーティリティーによってコンソールに表示されます。

    1. デスクトップに端末コンソールを開きます。

    2. 別のウインドウで、su コマンドを使ってスーパーユーザーになります。


      % su -
      Password: <Type root password>
      #

      端末コンソールにメッセージが表示されます。


      Sep 7 13:22:57 mach1 su: 'su root' succeeded for jdoe on /dev/pts/6

例 3–7 スーパーユーザーのアクセス試行のログを作成する

この例では、スーパーユーザーになろうとする試みは SYSLOG によってログされていません。そのため、管理者は、/etc/default/su ファイルの #CONSOLE=/dev/console エントリのコメントを解除して、試行のログを作成します。


# CONSOLE determines whether attempts to su to root should be logged
# to the named device
#
CONSOLE=/dev/console

ユーザーがスーパーユーザーになろうとすると、その試行が端末コンソールに表示されます。


SU 09/07 16:38 + pts/8 jdoe-root

注意事項

/etc/default/login ファイルにデフォルトの CONSOLE エントリが含まれている場合、遠隔システムからスーパーユーザーになるには、ユーザーはまず自分のユーザー名でログインする必要があります。自分のユーザー名でログインしたあとに、su コマンドを使ってスーパーユーザーになることができます。

コンソールに Mar 16 16:20:36 mach1 login: ROOT LOGIN /dev/pts/14 FROM mach2.Example.COM のようなエントリが表示されたら、システムは遠隔 root ログインを認めていることになります。遠隔システムからのスーパーユーザーアクセスを禁止するには、/etc/default/login ファイルの #CONSOLE=/dev/console エントリを CONSOLE=/dev/console に変更します。

SPARC: システムハードウェアに対するアクセスの制御 (作業マップ)

次の作業マップは、PROM を不当なアクセスから守る方法を示しています。

作業 

説明 

参照先 

ユーザーにシステムのハードウェア設定を変更させません 

PROM 設定の変更にパスワードを求めます。 

「ハードウェアアクセスのパスワードを必須にする方法」

アボートシーケンスを無効にします 

ユーザーが PROM にアクセスできないようにします。 

「システムのアボートシーケンスを無効にする方法」

システムハードウェアアクセスの制御

物理的なマシンは、ハードウェア設定にアクセスする際にパスワードを入力させることで保護できます。さらに、ユーザーがアボートシーケンスを使ってウィンドウシステムを離れるのを防ぐことによってマシンを保護する方法もあります。

Procedureハードウェアアクセスのパスワードを必須にする方法

x86 システムでは、BIOS の保護が PROM の保護に相当します。BIOS を保護する方法については、使用しているマシンのマニュアルを参照してください。

  1. スーパーユーザーになるか、あるいは Device Security プロファイル、Maintenance and Repair プロファイル、または System Administrator プロファイルを含んだ役割を引き受けます。

    System Administrator プロファイルには、Maintenance and Repair プロファイルが含まれます。System Administrator プロファイルを含む役割の作成や、役割をユーザーに割り当てる方法については、「RBAC の構成 (作業マップ)」を参照してください。

  2. 端末ウィンドウで、次のように入力して PROM セキュリティーモードに入ります。


    # eeprom security-mode=command
    
    Changing PROM password:
    New password: <Type password>
    Retype new password: <Retype password>	
    

    値として commandfull を選択します。詳細は、eeprom(1M) のマニュアルページを参照してください。

    前述のコマンドを入力する際に PROM パスワードを要求されない場合は、システムがすでに PROM パスワードを持っています。

  3. (省略可能) PROM パスワードを変更する場合は、次のコマンドを入力します。


    # eeprom security-password= Press Return
    Changing PROM password:
    New password: <Type password>
    Retype new password: <Retype password>
    

    新しい PROM セキュリティーモードとパスワードはただちに有効になりますが、それが認識できるのは、ほとんどの場合、次回の起動時です。


    注意 – 注意 –

    PROM パスワードを忘れないでください。このパスワードがないと、ハードウェアは使用できません。


Procedureシステムのアボートシーケンスを無効にする方法

一部のサーバーシステムにはキースイッチがあります。このキースイッチを安全な位置に設定すると、ソフトウェアキーボードのアボート設定が無効になります。そのため、次の手順で行った変更が実装されないことがあります。

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

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

  2. KEYBOARD_ABORT の値を disable に変更します。

    /etc/default/kbd ファイルの enable 行をコメントにします。次に disable 行を追加します。


    # cat /etc/default/kbd
    …
    # KEYBOARD_ABORT affects the default behavior of the keyboard abort
    # sequence, see kbd(1) for details.  The default value is "enable".
    # The optional value is "disable".  Any other value is ignored.
    …
    #KEYBOARD_ABORT=enable
    KEYBOARD_ABORT=disable
    
  3. キーボードのデフォルトを更新します。


    # kbd -i