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

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

スーパーユーザーのアカウントを使用する代わりに、役割によるアクセス制御を設定できます。役割によるアクセス制御を 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 に変更します。