この方法では、ローカルシステムにアクセスしようとする root をただちに検出できます。
始める前に
root 役割になる必要があります。詳細は、Oracle Solaris 11.2 でのユーザーとプロセスのセキュリティー保護 の割り当てられている管理権利の使用を参照してください。
CONSOLE=/dev/console
デフォルトのコンソールデバイスは /dev/console に設定されています。このように設定されていると、root はコンソールにログインできます。root はリモートログインを行うことはできません。
リモートシステムから、root としてログインを試みます。
mach2 % ssh -l root mach1 Password: <Type root password of mach1> Password: Password: Permission denied (gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive).
デフォルト構成では、root は役割であり、役割はログインできません。また、デフォルトの構成では、ssh プロトコルによって root ユーザーのログインが阻止されます。
デフォルトでは、root になろうとする試みが SYSLOG ユーティリティーによってコンソールに表示されます。
% su - Password: <Type root password> #
端末コンソールにメッセージが表示されます。
Sep 7 13:22:57 mach1 su: 'su root' succeeded for jdoe on /dev/pts/6
この例では、root の試行は 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
ユーザーが root になろうとすると、この試行が端末コンソールに出力されます。
SU 09/07 16:38 + pts/8 jdoe-root
トラブルシューティング
/etc/default/login ファイルにデフォルトの CONSOLE エントリが含まれている場合にリモートシステムから root になるには、ユーザーはまず、自分のユーザー名を使用してログインする必要があります。自分のユーザー名を使用してログインしたあと、ユーザーは su コマンドを使用して root になることができます。
コンソールに Last login: Wed Sep 7 15:13:11 2011 from mach2 のようなエントリが表示された場合、システムは、リモート root ログインを許可するように構成されています。リモート root アクセスを防止するには、/etc/default/login ファイル内の #CONSOLE=/dev/console エントリを CONSOLE=/dev/console に変更します。ssh プロトコルをデフォルトに戻す方法については、sshd_config(4) のマニュアルページを参照してください。