메뉴 건너뛰기

SayClub.org

리눅스(Linux)

원문출처 : https://prolinux.kr/52

 

Enterprise Linux 8 보안취약점 점검 변경 부분 정리

2. 패스워드 복잡도 OS 8부터는 pam_cracklib 대신에 pam_pwquality 모듈이 적용됩니다. 아래 정책을 꼭 따를 필요는 없으며 필요한 정책만 적용할 것 설정 파일[수정 후 저장] [root@localhost ~]# vi /etc/security/

prolinux.kr

 

OS 8부터는 pam_cracklib 대신에 pam_pwquality 모듈이 적용됩니다.
아래 정책을 꼭 따를 필요는 없으며 필요한 정책만 적용할 것

 

설정 파일[수정 후 저장]

[root@localhost ~]# vi /etc/security/pwquality.conf

minlen = 8 [주석(#) 제거] - 최소 패스워드 길이 설정 [6자 이하는 설정 안 됨, 최소 8 이상 권장]

dcredit = 1 [주석(#) 제거, 0 → 1] - 최소 필요한 숫자 수 [최소 1 이상 권장]

ucredit = 1 [주석(#) 제거, 0 → 1] - 최소 필요한 대문자 수 [최소 1 이상 권장]

lcredit = 1 [주석(#) 제거, 0 → 1] - 최소 필요한 소문자 수 [최소 1 이상 권장]

ocredit = 1 [주석(#) 제거, 0 → 1] - 최소 필요한 특수문자 수 [최소 1 이상 권장]

maxrepeat = 3  [주석(#) 제거, 0 → 3] - 최대 연속된 동일한 반복 수 [최소 3 이상 권장] (예 aaa,111 형태를 사용 못함)

maxclassrepeat = 3 [주석(#) 제거, 0 → 3] - 최대 연속 문자 반복 수 [최소 3 이상 권장] (예 abc,123 형태를 사용 못함)

usercheck = 1 [주석(#) 제거, 그대로] - 패스워드에 유저 ID가 포함되어 있는지 점검 [1 권장/0 체크 안 함]

(예 ID:LOVE PASS:LOVE123 형태를 사용 못함)

 

 

pwquality.conf 정보를 불러올 수 있게 PAM 모듈 추가 [이미 존재]

[ ROOT도 적용 시local_users_only → enforce_for_root 변경 ]

[root@localhost pam.d]# vi /etc/pam.d/system-auth

password requisite pam_pwquality.so try_first_pass local_users_only

 

 

 

[root@localhost pam.d]# vi /etc/pam.d/password-auth

password requisite pam_pwquality.so try_first_pass local_users_only

※ 이 설정은 ROOT 권한이 있는 사용자가 수정할 시에는 무시합니다.

일반계정 사용자가 패스워드가 만료 후 패스워드를 재설정했을 때 적용되는 정책입니다.

 


 

OS 8부터는 pam_tally2 더 이상 기본으로 사용되지 않으며 faillock으로 이용하게 됩니다.

동일하게 pam_faillock.so 모듈을 이용하며 일정 간격 동안 사용자별로 실패한 인증 시도 목록을 유지 관리하고 인증 실패가 연속적으로 거부될 경우 계정을 잠급니다.

 

 

설정 파일 [수정 후 저장](※ 이 줄의 순서는 매우 중요하므로 꼭 해당 라인 사이에 추가할 것)

[root@localhost pam.d]# vi /etc/pam.d/system-auth

# Generated by authselect on Mon Jun 15 04:15:03 2020
# Do not modify this file manually.

auth        required        pam_env.so

auth        required        pam_faillock.so preauth silent audit deny=5 unlock_time=600 [라인 추가]

auth        required        pam_faildelay.so delay=2000000

auth        sufficient        pam_fprintd.so

auth        [default=1 ignore=ignore success=ok]    pam_succeed_if.so uid >= 1000 quiet

auth        [default=1 ignore=ignore success=ok]    pam_localuser.so

auth        sufficient        pam_unix.so nullok try_first_pass

auth        [default=die]   pam_faillock.so authfail audit deny=5 unlock_time=600 [라인 추가]

auth        requisite         pam_succeed_if.so uid >= 1000 quiet_success

auth        sufficient        pam_sss.so forward_pass

auth        required         pam_deny.so

 

account     required        pam_unix.so

account     sufficient       pam_localuser.so

account     sufficient       pam_succeed_if.so uid < 1000 quiet

account     [default=bad success=ok user_unknown=ignore] pam_sss.so

account     required        pam_permit.so

account     required        pam_faillock.so [라인 추가]

..

 

※[옵션 설명]

audit - 사용자(일반계정) 감사를 활성화

deny - 실패 횟수를 의미하며 설정상 [=5]되어 있을 경우 5회 로그인 실패 시 계정 잠금

unlock_time - 계정이 잠길 시 유지되는 시간 [=600(10분)]초 단위이며 시간이 지나면 자동 해제됩니다. 설정하지 않으면 무조건 잠기게 되므로 [faillock] 명령어를 이용해 수동으로 해제

 

 

 

ROOT의 계정도 적용하고 싶을 경우는 아래의 옵션 추가

even_deny_root [예시]

auth        required        pam_faillock.so preauth silent audit deny=5 even_deny_root unlock_time=600

auth        [default=die]   pam_faillock.so authfail audit deny=5 even_deny_root unlock_time=600

설정 파일 [수정 후 저장](동일)

[root@localhost pam.d]# vi /etc/pam.d/password-auth

# Generated by authselect on Mon Jun 15 04:15:03 2020
# Do not modify this file manually.

auth        required        pam_env.so

auth        required        pam_faillock.so preauth silent audit deny=5 unlock_time=600 [라인 추가]

auth        required        pam_faildelay.so delay=2000000

auth        sufficient        pam_fprintd.so

auth        [default=1 ignore=ignore success=ok]    pam_succeed_if.so uid >= 1000 quiet

auth        [default=1 ignore=ignore success=ok]    pam_localuser.so

auth        sufficient        pam_unix.so nullok try_first_pass

auth        [default=die]   pam_faillock.so authfail audit deny=5 unlock_time=600 [라인 추가]

auth        requisite         pam_succeed_if.so uid >= 1000 quiet_success

auth        sufficient        pam_sss.so forward_pass

auth        required         pam_deny.so

 

account     required        pam_unix.so

account     sufficient       pam_localuser.so

account     sufficient       pam_succeed_if.so uid < 1000 quiet

account     [default=bad success=ok user_unknown=ignore] pam_sss.so

account     required        pam_permit.so

account     required        pam_faillock.so [라인 추가]

..

 

 

faillock 명령어를 통해 로그인 실패 확인 여부

전체 사용자 확인

[root@localhost faillock]# faillock
test:
When                Type  Source                                           Valid
2020-06-16 02:02:14 RHOST 192.168.232.1                                        V
2020-06-16 02:02:19 RHOST 192.168.232.1                                        V
2020-06-16 02:02:37 RHOST 192.168.232.1                                        V
2020-06-16 02:05:17 RHOST 192.168.232.1                                        V
2020-06-16 02:05:25 RHOST 192.168.232.1                                        V

test2:
When                Type  Source                                           Valid
2020-06-16 02:08:00 RHOST 192.168.232.1                                        V

 

 

특정 사용자만 확인

[root@localhost faillock]# faillock --user test

수동 차단 해제

[root@localhost faillock]# faillock --user test --reset

로그인 한 번이라도 실패한 계정은 아래의 경로에 관리됨
[root@localhost faillock]# ls /var/run/faillock/
test

번호 제목 글쓴이 날짜 조회 수
75 Rocky Linux 및 NetworkManager를 사용한 정적 경로 설정 미르다테 2025.04.03 15
74 Ubuntu 22.04 LTS 패키지 업데이트 시 오류 해결 방법 미르다테 2025.02.19 22
73 우분투 리눅스(Ubuntu Linux)에서 Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. 오류 해결 방법 미르다테 2025.02.09 27
72 연속적으로 명령 실행시키기 (;과 &와 &&의 차이) 미르다테 2025.02.03 37
71 내 공인IP 확인하기(스크립트) 미르다테 2025.02.02 21
70 리눅스 네트워크 설정(Debian 계열, Ubuntu) 미르다테 2025.01.16 25
69 우분투(Ubuntu) 리눅스 apt 패키지 설치 이력 확인 미르다테 2025.01.14 110
68 Rocky Linux 9 고정 라우팅 경로 설정 방법 미르다테 2025.01.10 115
67 Rocky Linux 9에 Webmin 설치하는 방법 미르다테 2025.01.07 107
66 라이믹스(Rhymix) 애드온 '링크 프리뷰' 설치정보 미르다테 2025.01.06 108
65 Rocky Linux 9에 FFmpeg를 설치하는 방법 미르다테 2025.01.06 100
64 Ubuntu 24.04에 Webmin을 설치하는 방법 미르다테 2024.12.31 96
63 Ubuntu 24.04 LTS에 Docker 설치하기 미르다테 2024.12.31 122
62 Rocky Linux Docker, Docker Compose 설치 방법 미르다테 2024.12.30 109
61 라이믹스(Rhymix) 백업 및 복원 방법 미르다테 2024.12.30 117
60 Rocky Linux - 라이믹스(Rhymix) 설치하기 미르다테 2024.12.30 89
59 Rocky Linux 비밀번호 입력 초과로 인한 계정잠김 확인 및 해제 방법 미르다테 2024.12.30 98
58 Arch Linux mirrorlist 갱신하기 미르다테 2024.12.30 112
57 [중요] RedHat 계열 리눅스 서버 취약점 조치 방법 정리 - MirDaTe 미르다테 2024.12.30 102
56 [Arch Linux] pacman을 사용하여 시스템 업그레이드 시 패키지 손상으로 인한 업그레이드 안되는 증상 해결방법 미르다테 2024.12.30 125
위로