2021. 6. 9. 23:06ㆍLinux \ UNIX
Linux 및 기타 Unix 유사 운영 체제에서는 root 계정만이 모든 명령을 실행하고
패키지 설치 및 제거, 계정 및 그룹, 시스템 구성 파일 수정 등과 같은
특정 중요한 작업을 수행 할 수 있다.
sudo 명령어를 통하여 다른 일반 사용자가 일부 명령을 실행하고
시스템 작업을 수행하도록 허용 할 수 있는데,
먼저, 최소 사양으로 설치하였을 시 sudo 패키지를 따로 설치해주어야 한다.
apt install sudo
중요한 작업을 수행하는 권한에 관련한 문제이니
모든 계정에게 sudo 권한을 부여한다면, 보안상 큰 문제가 있을 것이다.
따라서 /etc/sudoers 라는 sudo 명령어의 config file을 통해
sudo 를 사용 가능한 계정을 제한하고
몇 가지 설정으로 보안을 강화한다.
기본적인 구성은 다음과 같이 확인한다.
/etc/sudoers 파일에 sudo의 설정이 있는데, 일반 편집기로 접근하면 안된다!
주석의 안내와 같이, visudo 명령을 통하여 sudoers 파일을 편집한다.
Defaults 뒤의 각 옵션이 의미하는 바는 다음과 같다.
env_reset : HOME, LOGNAME, PATH, SHELL, TERM, USER을 제외한 모든 환경 변수를 reset시킨다.
mail_badpass : 잘못된 패스워드로 sudo를 실행했을 시, 지정된 메일로 보고한다.
secure_path : sudo 명령은 현재 계정의 쉘이 아닌 가상 쉘을 생성하고 그 안에서 실행된다.
이때 이 가상 쉘의 환경변수 PATH의 값을 secure_path 옵션을 통해 지정하는 것이다.
shell 명령어들은 PATH 환경변수에 지정된 경로에서 바이너리 파일을 찾는다.
sudo 권한이 있는 사용자의 PATH 환경변수에
악성코드로 인한 경로가 포함되어 있어 특정 명령 실행시 해당 경로에서 악성 파일이 실행될 경우를 가정하자.
이러한 상황에서 유저가 sudo를 통해 시스템 전반에 대한 권한을 부여받은 채 해당 명령을 실행한다면...
시스템에 큰 문제가 생길 것이다.
이러한 상황을 방지하기 위해 sudo 가 실행되는 가상 쉘에서 명령어의 바이너리 파일 경로를
secure_path 로 제한하는 것이다.
기본 옵션 이외에 추가적으로 설정해 준 옵션.
passwd_tries : sudo 명령을 실행할 때, 패스워드 오류 가능 횟수를 지정한다.
badpass_message : 잘못된 패스워드가 입력되었을 시, custom message를 출력한다.
log_input, log_output, iolog_dir : sudo 를 통해 실행된 명령들, Input과 output에 대한 log 파일을 iolog_dir에 저장한다.
requiretty : tty환경에서만 sudo 명령이 실행될 수 있도록 한다.
이 옵션을 설정하면, cron 명령어에서 실행되는 경우 등에서는 sudo 명령을 사용할 수 없게 된다.
다음 링크를 참고.
https://nostressdev.tistory.com/8
다른 유용한 sudoers의 옵션들에 관한 링크.
https://www.tecmint.com/sudoers-configurations-for-setting-sudo-in-linux/
'Linux \ UNIX' 카테고리의 다른 글
sudoers - requiretty 옵션 (0) | 2021.06.09 |
---|---|
cron의 터미널 환경? (0) | 2021.06.09 |
VirtualBox Debian - AppArmor 프로필 생성 (1) | 2021.06.09 |
VirtualBox Debian - 로컬 환경과 SSH 연결 (1) | 2021.06.03 |
VirtualBox Debian - dhclient 없애기, 고정 IP 설정 (0) | 2021.06.02 |