홈디렉터리는 사용자가 로그인한 후 작업을 수행하는 디렉터리fh 일반 사용자의 홈 디렉터리 위치는 /home/username입니다. 홈 디렉터리에는 사용자의 프로파일, 쉘 설정 및 다양한 환경 설정이 저장되므로 다른 사용자의 부정한 접근을 방지해야 합니다.
점검 내용
- 사용자 계정과 홈 디렉터리의 일치 여부를 점검
- 홈 디렉터리의 소유자 외 타사용자가 해당 홈 디렉터리를 수정할 수 없도록 제한하는지 점검
점검 목적
- /home 디렉터리 이외 사용자의 홈 디렉터리 존재 여부를 점검하여 비인가자가 시스템 명령어의 무단 사용을 방지하기 위함
- 사용자 홈 디렉터리 내 설정 파일이 비인가자에 의한 변조를 방지함
보안 위협
- /etc/passwd 파일에 설정된 홈디렉터리가 존재하지 않는 경우, 해당 계정으로 로그인 시 홈디렉터리가 루트 디렉터리(“/“)로 할당되어 접근이 가능함
- 홈 디렉터리 내 설정파일 변조 시 정상적인 서비스 이용이 제한될 우려가 존재함
점검 대상
- Linux : Rocky 9
판단 기준
- 양호 :
– 홈 디렉터리가 존재하지 않는 계정이 발견되지 않는 경우
– 홈 디렉터리 소유자가 해당 계정이고, 타 사용자 쓰기 권한이 제거된 경우 - 취약 :
– 홈 디렉터리가 존재하지 않는 계정이 발견된 경우
– 홈 디렉터리 소유자가 해당 계정이 아니고, 타 사용자 쓰기 권한이 부여된 경우
조치 방법
- 홈 디렉터리가 없거나 루트(/)인 계정 확인, 출력값이 없으면 양호
#!/bin/bash while IFS=: read -r username password uid gid info home shell; do if [ ! -d "$home" ]; then echo "Home directory for $username does not exist: $home" elif [ "$home" == "/" ]; then echo "Home directory for $username is root(/)." fi done <<< `awk -F: '$1!="nobody"&&$3>=1000 {print}' /etc/passwd
- 홈 디렉토리가 없거나 루트(/)인 계정은 홈디렉터리를 생성/변경
mkdir -m 700 /path/to chown <username>:<username> /path/to usermod -d /path/to <username>
- 홈 디렉터리들의 권한이 700인지 확인, 출력값이 없으면 양호
#!/bin/bash while IFS=: read -r username password uid gid info home shell; do perm=`ls -ld $home | awk '{print $1}'` if [ "$perm" != "drwx------." ]; then echo "Permission of home directory for $username is not 700." fi done <<< `awk -F: '$1!="nobody"&&$3>=1000 {print}' /etc/passwd
- 권한이 700이 아닌 홈 디렉터리의 권한을 700으로 변경
- 홈 디렉터리 생성 시 기본 권한(700) 확인
chmod 700 /path/to
[root@rocky9u2 ~]# vi /etc/login.defs
HOME_MODE 0700
◁ UMASK 설정 관리 | | | 서비스 관리 홈 ▷ |
---|