본문 바로가기
인프라/linux

linux 보안 취약점 정리

by nix-be 2024. 1. 7.
728x90

##############################################################################

U_01. root 계정 원격 접속 제한 ##############################################################################

vi /etc/pam.d/login

auth required /usr/lib64/security/pam_securetty.so

vi /etc/ssh/sshd_config PermitRootLogin yes

##############################################################################

U_02. 패스워드 복잡성 설정 ##############################################################################

▶ 점검기준 : 영문·숫자·특수문자가 혼합된 9자리 이상의 패스워드가 설정된 경우 양호 ▶ 시스템 현황

패스워드 복잡성

##############################################################################

U_03. 계정 잠금 임계값 설정 ##############################################################################

▶ 점검기준 : 계정 잠금 임계값이 5이하의 값으로 설정되어 있는 경우 양호

vi /etc/pam.d/system-auth // 콘솔을 통해서 로그인하는 계정에 대한 확인

 

auth required pam_env.so

auth required pam_tally2.so deny=5 unlock_time=120 no_magic_root

account required pam_unix.so

account required pam_tally2.so no_magic_root reset

  1. "/etc/pam.d/password-auth" 파일 // ssh 접속 로그인 계정
    auth required pam_tally2.so deny=5 unlock_time=60 no_magic_root
    account required pam_tally2.so no_magic_root reset

##############################################################################

U_04 패스워드 파일 보호 ##############################################################################

▶ 점검기준 : 쉐도우 패스워드를 사용하거나, 패스워드를 암호화하여 저장하는 경우 양호

★ U_04. 결과 : 양호

##############################################################################

U_05. root 이외의 UID '0' 금지 ##############################################################################

▶ 점검기준 : root 계정과 동일한 UID를 갖는 계정이 존재하지 않는 경우 양호

★ U_05. 결과 : 양호

##############################################################################

U_06. root계정 su 제한 ##############################################################################

▶ 점검기준 : su 명령어를 특정 그룹에 속한 사용자만 사용하도록 제한되어 있는 경우 양호 pam 설정 없더라도 su파일 퍼미션(4750)과 별도 사용그룹이 설정 되어있는경우 양호

  1. "wheel" 그룹 및 구성원 존재 여부 확인
    #cat /etc/group wheel:x:10:
  2. su 명령어 사용권한 변경
    #chgrp wheel /usr/bin/su
  3. su 명령어 사용권한 변경
    #chmod 4750 /usr/bin/su
  4. wheel 그룹에 su 명령 허용 계정 등록
    #usermod -G wheel [root, ngs] usermod -G wheel ngs

##############################################################################

U_07. 패스워드 최소 길이 설정 ##############################################################################

▶ 점검기준 : 패스워드 최소 길이가 9자 이상으로 설정되어 있는 경우 양호(국정원 기준 9자리)

  1. vi 편집기를 이용하여 “/etc/login.defs” 파일을 연 후
  2. 아래와 같이 수정 또는, 신규 삽입
    (수정 전) PASS_MIN_LEN 6
    (수정 후) PASS_MIN_LEN 9

##############################################################################

U_08. 패스워드 최대 사용기간 설정 ##############################################################################

▶ 점검기준 : 패스워드 최대 사용기간이 90일(12주) 이하로 설정되어 있을 경우 양호

  1. vi 편집기를 이용하여 “/etc/login.defs” 파일을 연 후
  2. 아래와 같이 수정 또는, 신규 삽입
    (수정 전) PASS_MAX_DAYS 99999
    (수정 후) PASS_MAX_DAYS 90 (단위: 일)

##############################################################################

U_09. 패스워드 최소 사용기간 설정 ##############################################################################

▶ 점검기준 : 패스워드 최소 사용기간이 1일(1주)로 설정되어 있는 경우 양호

  1. vi 편집기를 이용하여 “/etc/login.defs” 파일을 연 후
  2. 아래와 같이 수정 또는, 신규 삽입
    (수정 전) PASS_MIN_DAYS
    (수정 후) PASS_MIN_DAYS 1 (단위: 일)

##############################################################################

U_10. 불필요한 계정 제거 ##############################################################################

▶ 점검기준 : 불필요한 계정이 존재하지 않는 경우 양호 기본 설치되는 시스템 계정 중 불필요한 계정 확인 오랫동안 로그인 기록이 없는 사용자 계정 확인

userdel -r adm
userdel -r lp
userdel -r sync
userdel -r shutdown
userdel -r halt
userdel -r news
userdel -r uucp
userdel -r operator
userdel -r games
userdel -r gopher
userdel -r nfsnobody
userdel -r squid

##############################################################################
U_11. 관리자 그룹에 최소한의 계정 포함
##############################################################################
▶ 점검기준 : 관리자 그룹에 불필요한 계정이 등록되어 있지 않은 경우 양호(계정이 여러개 있을경우 담당자 확인 필요)

★ U_11. 결과 : 양호

##############################################################################
U_12. 계정이 존재하지 않는 GID 금지
##############################################################################
▶ 점검기준 : 존재하지 않는 계정에 GID 설정을 금지한 경우 양호(기본 시스템 계정 외 신규 생성된 계정만 확인)

1. 그룹 확인
#cat /etc/gshadow
2. 그룹 삭제
#groupdel [group_name]

groupdel sys
groupdel tty
groupdel disk
groupdel mem
groupdel kmem
groupdel cdrom
groupdel games
groupdel video
groupdel audio
groupdel floppy
groupdel tape
groupdel man
groupdel dialout
groupdel floppy
groupdel games
groupdel tape
groupdel video
groupdel lock
groupdel audio
groupdel utempter
groupdel input
groupdel systemd-journal
groupdel ssh_keys
groupdel postdrop

 

##############################################################################
U_13. 동일한 UID 금지
##############################################################################
▶ 점검기준 : 동일한 UID로 설정된 사용자 계정이 존재하지 않는 경우 양호

★ U_13. 결과 : 양호

##############################################################################
U_14. 사용자 shell 점검
##############################################################################
▶ 점검기준 : 로그인이 필요하지 않은 계정에 /bin/false(nologin) 쉘이 부여되어 있는 경우 양호

★ U_14. 결과 : 양호

##############################################################################
U_15. Session Timeout 설정
##############################################################################
▶ 점검기준 : Session Timeout이 600초(10분) 이하로 설정되어 있는 경우 양호

1. vi 편집기를 이용하여 “/etc/profile(.profile)” 파일을 연 후
2. 아래와 같이 수정 또는, 추가
TMOUT=600 (단위: 초)
export TMOUT
source /etc/profile
3. vi 편집기를 이용하여 “/etc/csh.login” 또는, “/etc/csh.cshrc” 파일을 연 후
4. 아래와 같이 수정 또는, 추가
#set history=1000 아래 추가
set autologout=10 (단위: 분)

##############################################################################
U_16. root 홈, 패스 디렉터리 권한 및 패스 설정
##############################################################################
▶ 점검기준 : PATH 환경변수에 '.' 이 맨 앞이나 중간에 포함되지 않은 경우 양호

★ U_16. 결과 : 양호

##############################################################################
U_17. 파일 및 디렉터리 소유자 설정
##############################################################################
▶ 점검기준 : 소유자가 존재하지 않은 파일 및 디렉터리가 존재하지 않은 경우 양호

★ U_17. 결과 : 양호

##############################################################################
U_18. /etc/passwd 파일 소유자 및 권한 설정
##############################################################################
▶ 점검기준 : /etc/passwd 파일의 소유자가 root이고, 권한이 644 이하인 경우 양호

★ U_18. 결과 : 양호

##############################################################################
U_19. /etc/shadow 파일 소유자 및 권한 설정
##############################################################################
▶ 점검기준 : /etc/shadow 파일의 소유자가 root이고, 권한이 400 이하인 경우 양호

★ U_19. 결과 : 양호

##############################################################################
U_20. /etc/hosts 파일 소유자 및 권한 설정
##############################################################################
▶ 점검기준 : /etc/hosts 파일의 소유자가 root이고, 권한이 600 이하인 경우 양호

1. “/etc/hosts" 파일의 소유자 및 권한 변경 (소유자 root, 권한 600)
#chown root /etc/hosts
#chmod 600 /etc/hosts

##############################################################################
U_21. /etc/(x)inetd.conf 파일 소유자 및 권한 설정
##############################################################################
▶ 점검기준 : /etc/(X)inetd.conf파일의 소유자가 root이고, 권한이 600 이하인 경우 양호

1. “/etc/xinetd.d” 파일의 소유자 및 권한 변경 (소유자 root, 권한 600)
#chown root /etc/xinetd.d
#chmod 600 /etc/xinetd.d

★ U_21. 결과 : PASS (ngs_telnet 때문)

##############################################################################
U_22. /etc/syslog.conf 파일 소유자 및 권한 설정
##############################################################################
▶ 점검기준 : /etc/syslog.conf 파일의 소유자가 root이고, 권한이 644 이하인 경우 양호

★ U_22. 결과 : 양호

##############################################################################
U_23. /etc/service 파일 소유자 및 권한 설정
##############################################################################
▶ 점검기준 : /etc/service 파일의 소유자가 root이고, 권한이 644 이하인 경우 양호

★ U_23. 결과 : 양호

##############################################################################
U_24. SUID, SGID, Sticky bit 설정파일 점검
##############################################################################
▶ 점검기준 : SUID, SGID, Sticky bit 권한이 부여된 파일을 점검하여 불필요하게 부여된 파일이 없을경우 양호

1. 제거 방법
#chmod -s <file_name>
#chmod -s /usr/bin/newgrp
#chmod -s /sbin/unix_chkpwd
2. 주기적인 감사 방법
#find / -user root -type f \( -perm -04000 -o -perm -02000 \) -xdev -exec ls -al {} \;

# chmod -s /sbin/unix_chkpwd

# chmod -s /usr/bin/at

# chmod -s /usr/bin/newgrp

# ls -al | grep unix_chkpwd //at, newgrp도 별도 확인

- rwxr-xr-x 1 root root 34840 2016-05-11 08:18 unix_chkpwd

##############################################################################
U_25. 사용자, 시스템 시작파일 및 환경파일 소유자 및 권한 설정
##############################################################################
▶ 점검기준 : 홈 디렉터리 환경변수 파일 소유자가 해당 계정으로 지정되어 있고,
홈 디렉터리 환경변수 파일에 소유자만 쓰기 권한이 부여되어 있는 경우 양호

★ U_25. 결과 : 양호

##############################################################################
U_26. world writable 파일 점검
##############################################################################
▶ 점검기준 : world writable 파일 존재 여부를 확인하고, 존재 시 설정이유를 확인하고 있는 경우 양호

chmod o-w /tmp/.ICE-unix
chmod o-w /tmp/.Test-unix
chmod o-w /tmp/.X11-unix
chmod o-w /tmp/.XIM-unix
chmod o-w /tmp/.font-unix
chmod o-w /var/tmp
chmod o-w /var/lib/gssproxy/default.sock
rm -rf /var/spool/postfix

★ U_26. 결과 : 양호

##############################################################################
U_27. /dev에 존재하지 않는 device 파일 점검
##############################################################################
▶ 점검기준 : dev에 대한 파일 점검 후 존재하지 않은 device 파일을 제거한 경우 양호

★ U_27. 결과 : 양호

##############################################################################
U_28. /root/.rhosts, hosts.equiv 사용금지
##############################################################################
▶ 점검기준 : exec(512/tcp), login(513/tcp), shell(514/tcp)서비스를 사용하지 않거나, 사용 시 아래와 같은 설정이 적용된 경우 양호
1. /etc/hosts.equiv 및 /root/.rhosts 파일 소유자가 root 또는, 해당 계정인 경우
2. /etc/hosts.equiv 및 /root/.rhosts 파일 권한이 600 이하인 경우
3. /etc/hosts.equiv 및 /root/.rhosts 파일 설정에 '+' 설정이 없는 경우

★ U_28. 결과 : 양호

##############################################################################
U_29. 접속 IP 및 포트 제한
##############################################################################
▶ 점검기준 : /etc/hosts.deny 파일에 ALL Deny 설정 후
/etc/hosts.allow 파일에 접근을 허용할 특정 호스트를 등록한 경우

★ U_29. 결과 : 현장에서 가능

##############################################################################
U_30. hosts.lpd 파일 소유자 및 권한 설정
##############################################################################
▶ 점검기준 : 파일의 소유자가 root이고 Other에 쓰기 권한이 부여되어 있지 않는 경우 양호

★ U_30. 결과 : 양호

##############################################################################
U_31. NIS 서비스 비활성화
##############################################################################
▶ 점검기준 : 불필요한 NIS 서비스가 비활성화 되어 있는 경우 양호

★ U_31. 결과 : 양호

##############################################################################
U_32. UMASK 설정 관리
##############################################################################
▶ 점검기준 : UMASK 값이 022 이상으로 설정된 경우 양호
▶ 시스템 현황

☞ UMASK 명령어(root계정 umask)

0022

☞ /etc/profile 파일

umask 022
umask 022

```
umask 0022
export umask

source /etc/profile

```

☞ /etc/bashrc

umask 022
umask 022

```
source /etc/bashrc

```

설정 후 pass

##############################################################################
U_33. 홈 디렉터리 소유자 및 권한 설정
##############################################################################
▶ 점검기준 : 홈 디렉터리 소유자가 해당 계정이고, 일반 사용자 쓰기 권한이 제거된 경우 양호

chown -R ntp.ntp ntp
userdel -r games

★ U_33. 결과 : 취약 (pass)

##############################################################################
U_34. 홈 디렉터리로 지정한 디렉터리의 존재 관리
##############################################################################
▶ 점검기준 : 홈 디렉터리가 존재하지 않는 계정이 발견되지 않은 경우 양호
▶            root 계정을 제외한 일반 계정의 홈 디렉터리가 '/'가 아닌 경우 양호

★ U_34. 결과 : 양호

##############################################################################
U_35. 숨겨진 파일 및 디렉터리 검색 및 제거
##############################################################################

★ U_35. 결과 : 수동점검
해결: 확인 후 삭제

##############################################################################
U_36. Finger 서비스 비활성화
##############################################################################

★ U_36. 결과 : 양호

##############################################################################
U_37. Anonymous FTP 비활성화
##############################################################################

userdel -r ftp

##############################################################################
U_38. r 계열 서비스 비활성화
##############################################################################

★ U_28. 결과 : 양호

##############################################################################
U_39. cron 파일 소유자 및 권한 설정
##############################################################################

systemctl stop crond.service

##############################################################################
U_40. DoS 공격에 취약한 서비스 비활성화
##############################################################################

★ U_40. 결과 : 양호

##############################################################################
U_41. NFS 서비스 비활성화
##############################################################################

★ U_41. 결과 : 양호 (rpc.lockd) 말하는것 임으로 kblockd 상관없음으로 해결

##############################################################################
U_42. NFS 접근통제
##############################################################################

★ U_42. 결과 : 양호

##############################################################################
U_43. automountd 제거
##############################################################################

★ U_43. 결과 : 양호

##############################################################################
U_44. RPC 서비스 확인
##############################################################################

★ U_44. 결과 : 양호

##############################################################################
U_45. NIS, NIS+ 점검
##############################################################################

★ U_45. 결과 : 양호

##############################################################################
U_46. tftp, talk 서비스 비활성화
##############################################################################

★ U_46. 결과 : 양호

##############################################################################
U_47. Sendmail 버전 점검
##############################################################################

★ U_47. 결과 : 양호

##############################################################################
U_48. 스팸 메일 릴레이 제한
##############################################################################

★ U_48. 결과 : 양호

##############################################################################
U_49. 일반사용자의 Sendmail 실행 방지
##############################################################################

★ U_49. 결과 : 양호

##############################################################################
U_50. DNS 보안 버전 패치
##############################################################################

★ U_50. 결과 : 양호

##############################################################################
U_51. DNS Zone Transfer 설정
##############################################################################

★ U_51. 결과 : 양호

##############################################################################
U_52. Apache 디렉터리 리스팅 제거
##############################################################################

★ U_52. 결과 :  양호

##############################################################################
U_53. Apache 웹 프로세스 권한 제한
##############################################################################
▶ 점검기준 : Apache 데몬이 root 권한으로 구동되지 않는 경우 양호

★ U_52. 결과 :  양호

##############################################################################
U_54. Apache 상위 디렉터리 접근 금지
##############################################################################
▶ 점검기준 : 상위 디렉터리에 이동 제한을 설정한 경우 양호

★ U_52. 결과 :  양호

##############################################################################
U_55. Apache 불필요한 파일 제거
##############################################################################
▶ 점검기준 : 메뉴얼 파일 및 디렉터리가 제거되어 있는 경우 양호

★ U_52. 결과 :  양호

##############################################################################
U_56. Apache 링크 사용금지
##############################################################################
▶ 점검기준 : 심볼릭 링크, aliases 사용을 제한한 경우 양호

★ U_52. 결과 :  양호

##############################################################################
U_57. Apache 파일 업로드 및 다운로드 제한
##############################################################################
▶ 점검기준 : 파일 업로드 및 다운로드를 제한한 경우 양호

★ U_52. 결과 :  양호

##############################################################################
U_58. Apache 웹 서비스 영역의 분리
##############################################################################
▶ 점검기준 : DocumentRoot를 별도의 디렉터리로 지정한 경우 양호

★ U_52. 결과 :  양호

##############################################################################
U_59. ssh 원격접속 허용
##############################################################################
▶ 점검기준 : 원격 접속 시 SSH 프로토콜을 사용하는 경우 양호

★ U_59. 결과 : 양호

##############################################################################
U_60. ftp 서비스 확인
##############################################################################
▶ 점검기준 : FTP 서비스가 비활성화 되어 있는 경우 양호

★ U_60. 결과 : 양호

##############################################################################
U_61. ftp 계정 shell 제한
##############################################################################
▶ 점검기준 : ftp 계정에 /bin/fasle 쉘이 부여되어 있는 경우 양호

★ U_61. 결과 : 양호

##############################################################################
U_62. Ftpusers 파일 소유자 및 권한 설정
##############################################################################
▶ 점검기준 : ftpusers 파일의 소유자가 root이고, 권한이 640 이하인 경우 양호

★ U_62. 결과 : 양호

##############################################################################
U_63. Ftpusers 파일 설정
##############################################################################
▶ 점검기준 : FTP 서비스가 비활성화 되어 있거나, 활성화 시 root 계정 접속을 차단한 경우 양호

★ U_63. 결과 : 양호

##############################################################################
U_64. at 파일 소유자 및 권한 설정
##############################################################################
▶ 점검기준 : at 접근제어 파일의 소유자가 root이고, 권한이 640 이하인 경우 양호(권한 640이지만 파일에 내용 없을 시 취약)
at.deny, at.allow파일 모두 없을 시 관리자 계정 이외는 사용하지 못하므로 양호

★ U_64. 결과 : 양호

##############################################################################
U_65. SNMP 서비스 구동 점검
##############################################################################
▶ 점검기준 : SNMP 서비스를 사용하지 않는 경우 양호

★ U_65. 결과 : 양호

##############################################################################
U_66. SNMP 서비스 Community string의 복잡성 설정
##############################################################################
▶ 점검기준 : SNMP Community 이름이 public, private 가 아닌 경우 양호

★ U_66. 결과 : 양호

##############################################################################
U_67. 로그온 시 경고 메시지 제공
##############################################################################
▶ 점검기준 : 서버 및 Telnet 서비스에 로그온 메시지가 설정되어 있는 경우 양호

vi /etc/ssh/sshd_config

#Banner none -> Banner /etc/issue.net

vi /etc/issue.net

# ===========================================================================
This is a private computer facility.
Access for any reason must be specifically authorized by the manager.
Unless you are so authorized, your continued access and any other use may
expose you to criminaland or civil proceedings

## ① 서버 로그온 시 출력 배너(/etc/motd) 확인

#####################################################

### HUNESION NGS V7.0

### 

### DATE: 2019/09/19

### COPYRIGHT 2019 HUNESION ALL RIGHTS RESERVED.

#####################################################

##############################################################################
U_68. NFS 설정파일 접근권한
##############################################################################

★ U_68. 결과 : 양호

##############################################################################
U_69. expn, vrfy 명령어 제한
##############################################################################

★ U_69. 결과 : 양호

##############################################################################
U_70. Apache 웹서비스 정보 숨김
##############################################################################

★ U_52. 결과 :  양호

##############################################################################
U_71. 최신 보안패치 및 벤더 권고사항 적용
##############################################################################

★ U_71. 결과 : 수동점검

##############################################################################
U_72. 로그의 정기적 검토 및 보고
##############################################################################

★ U_72. 결과 : 수동점검

##############################################################################
U_73. 정책에 따른 시스템 로깅 설정
##############################################################################

vi /etc/rsyslog.conf

- .alert /dev/console
추가

vi /etc/pam.d/system-auth   LTE-M 예시

#%PAM-1.0

# This file is auto-generated.

# User changes will be destroyed the next time authconfig is run.

auth        required      pam_env.so
auth        required      pam_tally2.so deny=5 unlock_time=120 no_magic_root
auth        required      pam_faildelay.so delay=2000000
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.so

account     required      pam_unix.so
account     required      pam_tally2.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     required      pam_permit.so

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so

 

728x90

'인프라 > linux' 카테고리의 다른 글

openstack 이란  (0) 2024.03.06
ssl key - pfx 파일 jks(JavakeyStore) 변환  (0) 2024.01.10

댓글