2. 패스워드 복잡도
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
'Security' 카테고리의 다른 글
Enterprise Linux 8에서의 PAM Module (0) | 2021.05.10 |
---|---|
PAM 모듈 정리 (0) | 2021.01.12 |
Linux 로그인 시 Login Incorrect가 반복되는 현상 (0) | 2020.12.29 |
pam.d 모듈 설명 (0) | 2020.12.17 |
OpenSSH 8.1 패치 (0) | 2020.11.22 |