[Linux보안설정] 파일 및 디렉터리 관리 ①
OS : Rocky Linux 9
U-16. root 홈, 패스 디렉터리 권한 및 패스 설정
root 계정의 PATH 환경변수에 `.` 이 있는지 점검
# echo $PATH
다음과 같이 결과가 나왔다.
/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
`.` 이 있으니 찾아서 수정하자.
grep 으로 어디에 설정되어있는지 찾는다.
# grep -RIn --color=auto \
-e '/root/\.local/bin' -e '/root/bin' -e 'HOME/\.local/bin' -e 'PATH=' \
/root/.bash_profile /root/.bashrc /root/.profile \
/etc/profile /etc/bashrc /etc/profile.d /etc/environment 2>/dev/null
결과를 보니 /root/.bashrc 에 설정 된 것으로 보인다.
# vi /root/.bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific environment
if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
then
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
fi
export PATH
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
/.local 이 가장 앞에 붙는게 아니라 $HOME 뒤에 붙어있어서 해당 취약점과는 무관하다.
이런 식으로 설정된 부분을 찾아서 수정하면 된다.
U-17. 파일 및 디렉터리 소유자 설정
소유자가 존재하지 않는 파일 및 디렉터리 점검
# find / -xdev \( -nouser -o -nogroup \) -ls
소유자가 존재하지 않는 파일 및 디렉터리를 삭제하거나 소유자를 지정해준다.
만약 소유자 또는 소유 그룹이 없는 파일 및 디렉터리를 root 로 소유자나 소유그룹을 지정해주려면
소유자만 없는 경우, 소유자를 root로
# find / -nouser ! -nogroup ! -type l -exec chown root {} +
# find / -nouser ! -nogroup -type l -exec chown -h root {} +
소유그룹만 없는 경우, 소유그룹을 root로
# find / ! -nouser -nogroup ! -type l -exec chgrp root {} +
# find / ! -nouser -nogroup -type l -exec chgrp -h root {} +
소유자와 소유그룹 둘 다 없는 경우, 둘 다 root로
# find / -nouser -nogroup ! -type l -exec chown root:root {} +
# find / -nouser -nogroup -type l -exec chown -h root:root {} +
U-18. /etc/passwd 파일 소유자 및 권한 설정
/etc/passwd 파일의 소유자와 권한 점검
권한을 444 로 설정한다.
# chown root:root /etc/passwd
# chmod 444 /etc/passwd
other 에 r 권한이 없으면 로그인이 안된다.
U-19. /etc/shadow 파일 소유자 및 권한 설정
/etc/shadow 파일 소유자 및 권한 점검
권한을 400 이하로 설정한다.
보통 000 으로 설정되어있다.
# chown root:root /etc/shadow
# chmod 000 /etc/shadow
U-20. /etc/hosts 파일 소유자 및 권한 설정
/etc/hosts 파일 소유자 및 권한 점검
권한을 600 이하로 설정한다.
# chown root:root /etc/hosts
# chmod 600 /etc/hosts
다만, 서비스 상 /etc/hosts 파일을 읽어야 되는 경우가 있다.
이 때는 특정 계정에만 4 권한을 준다.
# setfacl -m u:username:r /etc/hosts
U-21. /etc/inetd.conf 파일 소유자 및 권한 설정
Rocky 9 에는 해당 파일이 기본적으로 없다.
U-22./etc/rsyslog.conf 파일 소유자 및 권한 설정
/etc/rsyslog.conf 파일 소유자 및 권한 점검
권한을 644 이하로 설정한다.
# chown root:root /etc/rsyslog.conf
# chmod 644 /etc/rsyslog.conf
U-23. /etc/services 파일 소유자 및 권한 설정
/etc/services 파일 소유자 및 권한 점검
권한을 644 이하로 설정한다.
# chown root:root /etc/services
# chmod 644 /etc/services
U-24. SUID, SGID, Stick bit 설정 파일 점검
SUID, SGID 가 설정된 파일은 특정 계정에서 root 권한의 명령어를 실행할 수 있어 점검
find 를 이용해서 설정된 파일을 찾는다.
# find / -user root -type f \( -perm -04000 -o -perm -02000 \) -xdev -exec ls -al {} \;
다만, SUID, SGID, Stick bit 가 설정된 파일을 무조건 적으로 변경하면 안된다.
서비스 상 해당 권한이 필요한 경우가 있기 때문에 상황에 맞게 설정한다.
'Linux' 카테고리의 다른 글
| [Linux보안설정] 파일 및 디렉터리 관리 ② (0) | 2026.01.10 |
|---|---|
| [Linux보안설정] 계정관리 ② (0) | 2026.01.07 |
| [Linux보안설정] 계정관리 ① (0) | 2026.01.07 |