[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