본문 바로가기

NCS/시스템 보안 구축

리눅스 sudo

sudo

 

  1.        Sudo 는 다른사용자로써 명령을 실행하게 한다.

  2.        Sudo는 보안 정책에 지정함으로써 superuser 또는 다른 사용자로써 명령을 실행 할 수 있도록 허용 할 수 있다.

  3.       기본 보안 정책은 sudoers 이며, /etcusudoers 파일을 사용하여 구성 되어 있다.

  4.       udo 명령은 다른 방식으로 사용자에게 관리 액세스를 줍니다. 신뢰할 수 있는 사용자가 sudo와 함께 관리 작업 명령을 입력한 경우 그 사용자의 암호를 입력하도록 요청됩니다. 그 후 인증이 성공적이고 명령이 허가된다면, 관리 작업 명령은 루트 사용자가 실행한 것처럼 실행됩니다.

  5.        sudo 명령을 사용하신 사용자는 컴퓨터를 켜놓은 채 다른 곳에 가시기 전에 반드시 로그아웃하셔야 합니다. 그대로 두시면 누구든 5분 동안 암호를 다시 입력할 필요가 없이 sudo 명령을 사용하여 루트로 명령을 실행할 수 있게 됩니다. 이러한 설정은 /etc/sudoers 설정 파일에서 변경하실 수 있습니다.  sudo 명령은 매우 설정이 유연합니다. 예를 들면 /etc/sudoers 설정 파일에 포함된 사용자만 sudo 명령을 사용할 수 있으며 이 명령은 루트 쉘이 아닌 그 사용자의 쉘에서 실행됩니다.  sudo 명령은 또한 광범위한 감시 추적 기능을 제공합니다. 성공적으로 로그인한 인증 정보는 모두 /var/log/messages 파일에 기록되며 명령을 실행한 사용자의 이름은 /var/log/secure 파일에 기록됩니다. sudo 명령을 사용하는 또 다른 이점은 관리자가 사용자마다 각자의 필요에 맞는 특정 명령을 사용할 수 있게 별개의 설정이 가능하다는 것입니다. sudo 설정 파일인 /etc/sudoers 파일을 수정하시려면 visudo 명령을 사용하셔야 합니다.

  6.          특정 사용자에게 전체 관리 허가를 주시려면 visudo를 입력하신 후 사용자 허가 지정 부분에서 다음과 유사한 줄을 추가하십시오:  juan ALL=(ALL) ALL 이 예시에서는 juan이라는 사용자가 어느 호스트에서나 sudo를 사용하여 모든 명령    을 실행 가능하도록 설정되었습니다.

  7.          사용방안은 root 쉘에서 visudo 명령으로 편집 할 수 있다.

##User-Defined User Aliases

User_Alias PWDMGR = user1, user2

User_Alias USERMGR = user3, user4

 

##User-Definded Command Aliases

Cmnd_Alias USERMGMT=/usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/usermod, /user/sbin/groupadd,/usr/sbin/groupdel,/usr/sbin/groupmod,/usr/bin/gpasswd,/usr/bin/passwd

 

Cmnd_Alias RSTPWD = /usr/bin/passwd

 

## user MACHINE=COMMANDS

#PWDMGR이라는 사용자 별칭에 RSTPWD별칭에 정의된 명령을 실행 할 수 있도록 정의함.

PWDMGR ALL = RSTPWD

 

#USERMGR이라는 사용자 별칭에 USERMGMT별칭에 정의된 명령을 실행 할 수 있도록 정의함.

USERMGR ALL = USERMGMT

 

# Sudo 실행할때 암호를 묻지 않고 실행하게 하고자 할 경우

PWDMGR ALL = NOPASSWD: RSTPWD

USERMGR ALL = NOPASSWD: USERMGMT

 

8.   다음 예시는 sudo에서 설정시 발생 가능한 문제점을 보여줍니다:

       %users  localhost=/sbin/shutdown -h now

예시에서는 사용자가 콘솔에서 /sbin/shutdown -h now 명령을 실행할 있다는       사실을 보여줍니다.