スーパーユーザーのアカウントを使用する代わりに、役割によるアクセス制御を設定できます。役割によるアクセス制御を RBAC と呼びます。RBAC の概要は、「役割によるアクセス制御 (概要)」を参照してください。RBAC の設定方法については、第 9 章役割によるアクセス制御の使用 (手順)を参照してください。
sulog ファイルには、ユーザーからスーパーユーザーに切り替えたときの su コマンドの使用を含め、すべての su コマンドの使用歴が記録されます。
/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 |
ここには、次のような情報が表示されます。
このファイルへの 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 ロールに切り替えた可能性があります。
この方法では、ローカルシステムにアクセスしようとするスーパーユーザーをただちに検出できます。
/etc/default/login ファイルの CONSOLE エントリを確認します。
CONSOLE=/dev/console |
デフォルトのコンソールデバイスは /dev/console に設定されています。このように設定されていると、root はコンソールにログインできます。root は遠隔ログインを行うことはできません。
root が遠隔ログインできないことを検証します。
遠隔システムから、スーパーユーザーとしてログインを試みます。
mach2 % rlogin -l root mach1 Password: <Type root password of mach1> Not on system console Connection closed. |
スーパーユーザーになろうとする試みを監視します。
デフォルトでは、スーパーユーザーになろうとすると、その試行が SYSLOG ユーティリティーによってコンソールに表示されます。
この例では、スーパーユーザーになろうとする試みは 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 に変更します。