주요정보통신시설기반 리눅스 기술적 보안조치 2021 3월자 최신 기준입니다.
-2021-10-26 수정
항목 부분 색깔 보시며 구분할 수 있게 하였습니다.
빨간색 글씨의 경우 default가 취약이므로 변경하셔야 되는 부분입니다.
검정색 글씨의 경우 default가 양호입니다.
바쁘시면 빨간 글씨만 보세요
1. root 홈, 패스 디렉토리 권한 및 패스 설정
- echo $PATH
:부분으로 구분되는데 ::가 연속 두번 나오거나 :부분이 맨앞에 오는경우 취약
양호한 예시
/usr/share/Modules/bin:/sbin:/bin:/usr/sbin:/usr/bin
cat /etc/profile 양호한 경우 예시
pathmunge () {
case ":${PATH}:" in
*:"$1":*)
;;
*)
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
esac
}
2. 파일 및 디렉토리 소유자 설정
- find / -nouser
- find / -nogroup
출력되는 path 목록 확인
일반적인 경우에는 출력되지 않지만, 만약 퇴사자가 서버를 구성했고 그계정이 삭제되었다면 나올 수 있습니다.
그럴경우 새로 nologin계정만들어서 chown 명령어 활용하여 매핑시켜주시면 됩니다.
3. /etc/passwd 파일 소유자 및 권한 설정
- ls -l /etc/passwd
아래와같이 출력되면 양호
-rw-r--r--. 1 root root /etc/passwd
644이하이며 root 소유자이면 양호
취약시 조치방법
#chown root /etc/passwd
#chmod 644 /etc/passwd
4. /etc/shadow 파일 소유자 및 권한 설정
- ls -l /etc/shadow
아래와 같이 출력되면 양호
-r--------. 1 root root /etc/shadow
400이하이며 root소유자
취약시 조치방법
#chown root /etc/shadow
#chmod 400 /etc/shadow
5. vi /etc/hosts 파일 소유자 및 권한 설정
- ls -l /etc/hosts
아래와 같이 출력되면 양호
-rw-------. 1 root root /etc/hosts
취약시 조치방법
#chown root /etc/hosts
#chmod 600 /etc/hosts
* (주의사항)
해당 파일에 사용자가 넣은 값이 있다면... 해당 파일을 user권한으로 읽는 부분이 있는지 확인후 적절히 조치 필요.
6. /etc/(x)inetd.conf 파일 소유자 및 권한 설정
- ls -l /etc/xinetd.conf
- ls -al /etc/xinetd.d/*
RHEL계열 7/8 에는 해당 파일 기본적으로 없음.
소유자 / 권한 600 권장이므로 chown과 chmod로 변경.
7. /etc/syslog.conf 파일 소유자 및 권한 설정
- ls -al /etc/rsyslog.conf (rhel 7/8 계열 기준)
아래와 같이 출력되면 양호
-rw-r-----. 1 root root /etc/rsyslog.conf
취약시 조치방법
#chown root /etc/rsyslog.conf
#chmod 640 /etc/rsyslog.conf
8. /etc/services 파일 소유자 및 권한 설정
- ls -l /etc/services
아래와 같이 출력되면 양호
-rw-r--r--. 1 root root /etc/services
취약시 조치방법
#chown root /etc/services
#chmod 644 /etc/services
9. SUID, SGID, 설정 파일점검
- find / -user root -type f \( -perm -04000 -o -perm -02000 \) -xdev -exec ls -al {} \;
꽤 많은 파일이 나올 수 있습니다.
너무 귀찮아서 그냥 다 조치하고 감수할께 싶으면 아래 명령어 입니다.
- find / -user root -type f \( -perm -04000 -o -perm -02000 \) -xdev -exec chmod -s {} \;
조치하시고
다시 점검 명령어 쳐서 없어졌는지 확인하세요.
위 조치는 서비스와 민감하여 상의하시고 조치하시길바래요...
10. 사용자, 시스템 시작파일 및 환경파일 소유자 및 권한 설정
- ls -l /home/사용자/bash*
소유자가 root또는 해당 사용자계정으로만 설정되어 있어야함.
* 소유자 변경 chown 활용
* 일반 사용자 쓰기 권한 제거 chmod o-w 파일이름
11. world writable 파일 점검
world writable 파일을 이용한 시스템 접근 및 악의적인 코드 실행을 방지하기 위함
KISA가이드에는 아래 명령어로 나와 있습니다.
# find / -type f -perm -2 -exec ls -l {} \;
그러나 /sys와 /proc 해당안되는 부분이 너무 많이 나와서 제외하고 검색하였습니다.
# find / . ! \( \( -path '/proc' -o -path '/sys' \) -prune \) -type f -perm -2 -exec ls -l {} \;
12. /dev에 존재하지 않는 device 파일 점검
# find /dev -type f -exec ls -l {} \;
major, minor number를 가지지 않는 device 파일 제거
13. $HOME/.rhosts, hosts.equiv 사용 금지
/etc/hosts.equiv 파일 및 .rhosts 파일 사용자를 root 또는, 해당 계정으로 설정한 뒤 권한을 600으로 설정하고 해당파일 설정에 ‘+’ 설정(모든 호스트 허용)이 포함되지 않도록 설정되어 있는지 점검
# ls -al /etc/hosts.equiv
(존재하지 않을시 해당 사항없음)
# find /home -name .rhosts
(존재하지 않을시 해당 사항없음)
조치 방법
해당파일 소유자를 해당 계정이나 root로 하며 권한을 600이하로 설정
14. 접속 IP 및 포트 제한
리눅스 경우 리눅스 자체 방화벽에 참조.
그렇지 않은경우 /etc/hosts.deny 또는 /etc/hosts.allow 로 접속제한 필요.
RHEL계열 7 이상에서는 firewalld 사용하고 있고 접속ACL를 운용하고 있으면 무관
15. hosts.lpd 파일 소유자 및 권한 설정
RHEL 7/8 계열 hosts.lpd 파일 없음
16. UMASK 설정 관리
/etc/profile 파일에 UMASK=022로 설정되어있는지 여부
#vi /etc/profile
들아가서 UMASK부분 확인
17. 홈디렉토리 소유자 및 권한 설정
ls -ald 사용자별 홈디렉토리
홈 디렉터리 소유자가 해당 계정이고, 타 사용자 쓰기 권한이 제거된 경우 양호
18. 홈디렉토리로 지정한 디렉토리의 존재 관리
# vi /etc/passwd 에서 사용자 계정이 home 디렉토리로 설정되어 있어야함
예를 들면
#test:x:501:501::/:/bin/bash (보안에 취약한 예시)
#test:x:501:501::/home/test:/bin/bash 로 변경되어야함.
19. 숨겨진 파일 및 디렉토리 검색 및 제거
#find / -type d -name ".*"
#find / -type f -name ".*"
검색 후 필요하지 않은 파일 삭제
(- 부분 붙여넣기할때 이상한 마이너스로 붙여지는 경우가 있어서...직접치시면 에러안납니다.)
'ISMS-P > linux' 카테고리의 다른 글
리눅스서버 보안조치 2021 주통기반 (Ubuntu계열) 파일 및 디렉토리 (0) | 2022.02.08 |
---|---|
리눅스서버 보안조치 2021 주통기반 (ubuntu계열) 계정부분 (0) | 2022.02.07 |
리눅스서버 보안조치 2021 주통기반 (RHEL/Ubuntu) 서비스 관리 부분 (0) | 2021.11.22 |
리눅스서버 보안조치 2021 주통기반 (RHEL계열 7/8/9) 계정부분 (0) | 2021.05.12 |
댓글