GAINING PRIVAILEGES


시스템 관리자는 관리자 권한으로 수행해야하는 작업들이 있다. root 사용자로 이 권한을 한번에 취득하는것은 위험한 일이다. 

setuid 프로그램 사용 관리 권한을 획득하는 방법를 다룬다. 


"su, sudo" 를 사용하면 일반 유저가 root 수준의 권한을 가질수 있다. 



THE SU COMMAND


"su" 명령어가 실행되면 root암호를 물어보며 암호인증이되면 root shell 프롬프트가 표시된다. 


"su" 명령은 사용자 root 의 권한을 같게된다. SELINUX 가 활성화 되어 있다면 SELinux로 제한된 권한을 적용 받는다. 다른 유저로 암호없이 su 명령을 이용해서 로그인이 가능해진다. 


"su"는 강력한 프로그램이기에 누가 명령을 사용할수 있는지 제한을 할수 있어야 한다. 가장 간단한 방법은 wheel 이라는 특수한 그룹에 사용자를 추가하는것이다. 


~]# usermod -a -G wheel username

사용자 설정 도구를 이용해서 이러한 작업을 할수도 있다. (GUI 환경)


    1. Press the Super key to enter the Activities Overview, type Users and then press Enter. The Users settings tool appears. The Super key appears in a variety of guises, depending on the keyboard and other hardware, but often as either the Windows or Command key, and typically to the left of the Spacebar.
    2. To enable making changes, click the Unlock button, and enter a valid administrator password.
    3. Click a user icon in the left column to display the user's properties in the right-hand pane.
    4. Change the Account Type from Standard to Administrator. This will add the user to the wheel group.
See Section 3.2, “Managing Users in a Graphical Environment” for more information about the Userstool.

WHEEL 그룹에 추가한 이후에 su 명령을 사용할수 있는 제한을 하는것이 중요하다. 

PAM 구성으로 가능하다. su, /etc/pam.d/su 파일을 열어서 아래의 주석을 제거해주자!


#auth           required        pam_wheel.so use_uid

root 사용자는 wheel 그룹이 Default로 등록되어 있음



THE SUDO COMMAND



sudo 명령어도 사용자에게 관리자 액세스 권한을 부여한다. 


sudo command


위의 명령은 root 사용자 용으로 인식된다. 


sudo 는 유연성이 좋다. /etc/sudoers 파일에 설정된 사용자만 sudo  명령을 사용할수 있으며, 명령은 사용자의 shell 에서 실행이됨 그 말은 root shell 에서 실행되는것이 아니다라는 이야기 이다. 


sudo의 이 성공적으로 실행되었을경우 /var/log/messages 파일에 기록된다. user 이름에 대한 기록은 /var/log/secure 에 기록됨

추가 로그 설정이 필요한경우 pam_tty_audit module 을 활성화하고나서 /etc/pam.d/system-auth 파일을 수정하면 된다. 


session required pam_tty_audit.so disable=pattern enable=pattern

아래의 설정은 root 를 제외한 다른 사용자는 TTY 에 대한 로그기록을 하지 않는 설정이다. 


pam_tty_audit PAM module 는 TTY에 대한것만 관장한다. 사용자가 로그인을 할때에 pam_tty_audit 의 /var/log/audit/audit.log 파일에 입력한 키값을 기록한다. 


sudo 의 또 다른 장점이라면, 관리자가 특정 명령에 대한 사용자에 대한 접속을 컨트롤 할수 있다는 부분이다. 


/etc/sudoers 를 설정하려면 visudo 명령을 통해 할수있다. 


juan 유저에게 sudo 로 관리자의 모든 권한을 주는 설정이다. 


juan ALL=(ALL) ALL


아래의 설정은 console 에서 생성한 유저가 서버를 끌수있는 권한을 주는 예제이다. 


%users localhost=/usr/sbin/shutdown -h now

visudo /etc/sudoers 을 Default 로 사용하게되면 wheel 그룹위 모든 사용자가 root 로 액세스가 가능하다. 


sudo 는 Default로 5분동안 sudoer 암호를 저장하며, 이 기간동안 명령을 실행하면 사용자에게 암호를 묻지 않는다. 사용자의 PC에 sudo로 시스템을 로그인한후 자리를 비우는동안 이러한 부분은 위험할수 있다. 


다음설정으로 /etc/sudoers 파일에 추가하여 이러한 위험을 회피할수 있다. 


Defaults    timestamp_timeout=value

value 의 기준은 분이다. 값을 0으로 설정하면 sudo 사용시 매번 인증이 필요하다. 


sudoer 의 계정이 해킹당하는경우 침입자는 sudo 명령으로 root shell 을 여는대 사용이 가능하다. 


sudo /bin/bash

이러한 방법으로 세로운 shell 을 열게되면 이론적으로 무제한의 시간동안 root 를 액세스할수있게되며, /etc/sudoers 파일에 대한 시간 제한을 무시하고 sudo를 통해 새로 열린 세션이 닫힐때까지 공격자가 암호를 다시 입력하지 않아도 된다. 



Red Hat Enterprise Linux 7 Security Guide — The Security Guide for Red Hat Enterprise Linux 7 provides a more in-depth look at potential security issues pertaining to setuid programs as well as techniques used to alleviate these risks.

















'Linux > Redhat 7 system administrator's guide' 카테고리의 다른 글

8. YUM  (0) 2017.08.01
4. ACCESS CONTROL LISTS  (0) 2017.07.11
3. MANAGING USERS AND GROUPS  (0) 2017.07.05
2. CONFIGURING THE DATE AND TIME  (0) 2017.03.16
1. system locale and keyboard configuration  (0) 2017.03.16

+ Recent posts