요구 사항
- 암호 입력 최대 횟수 설정, 기본값 = 3
- 잘못된 암호 입력 시 나오는 메시지 설정
- 권한 획득 실패 시 나오는 메세지 설정
- sudo를 사용하는 모든 동작(input output 모두)의 로그가 기록되어야 하며, 로그가 기록되는 위치를 사용자 정의 디렉토리로 지정
( 기본 I/O 로그 디렉토리는/var/log/sudo-io ) - 보안 상의 이유로 tty 모드 활성화
- 보안 경로 설정
How to configure
su - # root 계정으로 로그인
apt update # 패키지 목록 업데이트
apt install sudo # sudo 설치
visudo # /etc/sudoers 설정
# set up strong configuration for your sudo group
# /etc/sudoers
Defaults secure_path="설정하고자 하는 경로" # 보안경로 설정
Defaults authfail_message="Authentcation failed" # 권한 획득 실패 시 나오는 메세지 설정
Defaults badpass_message="Wrong password" # 비밀번호 틀렸을 시 나오는 메세지 설정
Defaults passwd_tries=3 # 비밀번호 입력 횟수 제한
Defaults log_input # input 로그 기록
Defaults log_output # output 로그 기록
Defaults iolog_dir="/var/log/sudo/" # 로그 기록 저장 위치 설정
Defaults requiretty # tty 모드 활성화
(+) visudo를 이용해 편집하는 이유
- visudo: /etc/sudoers 파일을 관리를 하기 위한 application
- /etc/sudoers 의 기본 파일은 쓰기 권한이 없음 → visudo를 이용해 편집
( vi 로 편집을 하려면 퍼미션을 변경해 주거나 저장할 때 강제 옵션(!)을 사용 ) - 저장 시에 설정의 정합성 및 syntax 체크 → 직접 /etc/sudoers 파일을 편집하다가 실수를 해서, sudo 사용 에러를 방지
(+) tty mode 란?
- tty: 리눅스의 터미널, 콘솔
- sudo 명령을 실행 시 가상의 쉘을 생성하고 그 안에서 명령을 실행하는데 이때 tty가 그 가상의 쉘.
만약 tty mode가 아닐 경우 sudo 명령어를 사용하기 위해서 따로 "tty"로 터미널을 할당해줘야 함 - tty 모드가 보안에 도움이 되는 이유: 사람이 어떠한 목적을 가지고 sudo를 사용한 경우에만 동작을 실시하기 위함
cron 같이 기계적으로 작동되는 명령이 sudo를 사용할 경우에 대해 막아주기 위함
(+) 보안 경로를 사용하는 이유
- Secure Path는 sudo 명령을 실행할 때 사용하는 가상 쉘의 PATH 정보를 설정한다.
이를 풀어서 설명하자면 sudo 명령 실행 시 현재 계정의 쉘이 아닌 새로운 쉘을 생성하고 그 안에서 명령을 실행하는데, 이 명령을 찾을 경로를 나열한 환경 변수 PATH 값이 secure_path이다.
sudo 명령을 실행하는 명령은 현재 계정의 쉘 환경도, 대신 실행하는 계정의 쉘 환경도 아닌 특별히 정의된 제 3의 쉘 환경으로 이는 샌드박스 형태로 실행된다. - secure path 기능이 트로이목마 해킹 공격에 대한 1차적인 방어 기능을 한다.
사용자의 부주의로 인해 현재 계정의 PATH에 악의적 경로가 포함된 경우, sudo를 통해 전체 시스템이 해킹될 수 있는데 이를 방지 할 수 있다.
https://www.tuwlab.com/ece/24044
[Linux] Sudo 명령의 Secure Path - ECE - TUWLAB
sudo 명령은 해당 명령을 잠시 다른 계정(주로 root)의 권한으로 실행하고자 할 때, 계정 전환 등의 절차 없이 유용하게 사용할 수 있는 명령입니다. 다른 계정의 권한을 빌릴 수 있다는 말은 그 계
www.tuwlab.com
'42' 카테고리의 다른 글
[born2beroot] LVM (0) | 2023.01.16 |
---|---|
[born2beroot] 비밀번호 정책 설정 (0) | 2023.01.16 |
[born2beroot] APPArmor (0) | 2023.01.16 |
[born2beroot] 패키지 관리 apt, aptitude (0) | 2023.01.16 |
[born2beroot] 가상머신 운영체제 - Debian, Rocky (0) | 2023.01.16 |