Linux 시스템에서는 사용자 계정과 관련된 패스워드 정보를 저장하는 여러 파일이 있습니다. 이러한 파일들은 /etc 디렉토리와 /etc/security 디렉토리에 위치할 수 있습니다. 사용자와 그룹 관리를 위한 리눅스 명령어 및 관련 파일들 총정리 글 참고.
- /etc/passwd:
사용자 계정 정보가 저장된 파일입니다. 각 사용자에 대한 정보, 홈 디렉토리, 쉘 등이 기록되어 있습니다. 하지만 실제 패스워드는 이 파일에 저장되어 있지 않습니다. - /etc/shadow:
이 파일에는 사용자 계정의 패스워드 해시, 패스워드 만료일, 계정 잠금 여부 등의 정보가 저장됩니다. 이 파일은 root 계정만 읽을 수 있는 권한이 있습니다.
점검 내용
- 시스템의 사용자 계정(root, 일반계정) 정보가 저장된 파일(예 /etc/passwd, /etc/shadow)에 사용자 계정 패스워드가 암호화되어 저장되어 있는지 점검
- /etc/passwd와 /etc/shadow 파일의 소유자 및 권한 적절성 점검
점검 목적
- 일부 오래된 시스템의 경우 /etc/passwd 파일에 패스워드가 평문으로 저장되므로 사용자 계정 패스워드가 암호화되어 저장되어 있는지 점검하여 비인가자의 패스워드 파일 접근 시에도 사용자 계정 패스워드가 안전하게 관리되고 있는지 확인하기 위함
- /etc/passwd 파일의 임의적인 변경을 차단하기 위함을 통해 비인가자가 권한 상승하는 것을 막기 위함
- /etc/shadow 파일을 관리자만 제어할 수 있게 하여 비인가자들의 접근을 차단하도록 shadow 파일 소유자 및 권한을 관리해야함
보안 위협
- 사용자 계정 패스워드가 저장된 파일이 유출 또는 탈취 시 평문으로 저장된 패스워드 정보가 노출될 수 있음
- 관리자(root) 외 사용자가 “/etc/passwd” 파일의 사용자 정보를 변조하여 shell 변경, 사용자 추가/삭제 등 root를 포함한 사용자 권한 획득 가능
- “/etc/shadow” 파일은 패스워드를 암호화하여 저장하는 파일이며 해당 파일의 암호화된 해쉬값을 복호화하여(크래킹) 비밀번호를 탈취할 수 있음
점검 대상
- Linux : Rocky 9
판단 기준
- 양호 :
– 쉐도우 패스워드를 사용하거나, 패스워드를 암호화하여 저장하는 경우
– /etc/passwd 파일의 소유자가 root이고, 권한이 644(rw_r__r__) 이하인 경우
– /etc/shadow 파일의 소유자가 root이고, 권한이 400(r________) 이하인 경우 - 취약 :
– 쉐도우 패스워드를 사용하지 않고, 패스워드를 암호화하여 저장하지 않는 경우
– /etc/passwd 파일의 소유자가 root가 아니거나, 권한이 644 이하가 아닌 경우
– /etc/shadow 파일의 소유자가 root가 아니거나, 권한이 400 이하가 아닌 경우
조치 방법
- /etc/passwd 파일의 두 번째 필드에 비밀번호가 평문으로 저장되어 있는 사용자 계정 확인합니다. 출력 결과가 없으면 모든 사용자의 비밀번호는 암호화되어 /etc/shadow 파일에 저장되어 있습니다.
awk -F: '$2 != "x" {print $1}' /etc/passwd
- /etc/passwd와 /etc/shadow 파일의 소유자 및 권한을 확인합니다.
[root@rocky9u2 ~]# getfacl -a /etc/passwdgetfacl: Removing leading '/' from absolute path names # file: etc/passwd # owner: root # group: root user::rw- group::r-- other::r--[root@rocky9u2 ~]# getfacl -a /etc/shadowgetfacl: Removing leading '/' from absolute path names # file: etc/shadow # owner: root # group: root user::--- group::--- other::---
- 만일 파일 소유자 및 권한이 위 결과와 같지 않을 경우에는 아래와 같은 명령어로 변경해 줍니다.
chown root /etc/passwd chmod 644 /etc/passwd chown root /etc/shadow chmod 400 /etc/shadow
◁ 파일 및 디렉터리 소유자 점검 | | | 핵심 파일들 소유자 및 권한 설정 ▷ |
---|