이 방법은 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) 매뉴얼 페이지를 참조하십시오.