기존 비밀번호 정책 분석
이 단계에서는 Linux 시스템에서 기존 비밀번호 정책을 분석하는 방법을 이해하는 것부터 시작합니다. 이 실습에서는 시스템 전체 정책을 직접 수정하지는 않겠지만, 이러한 정책이 어디에 구성되는지 이해하는 것은 감사에 매우 중요합니다. 비밀번호 복잡성, 만료 기간 및 잠금 설정을 결정하는 일반적인 구성 파일을 검토하는 데 중점을 둘 것입니다.
먼저 shadow 비밀번호 스위트 (shadow password suite) 에 대한 전역 구성 설정을 포함하는 /etc/login.defs 파일을 살펴보겠습니다. 이 파일은 비밀번호 만료 기간, 최소 비밀번호 길이 및 최대 비밀번호 만료 기간과 같은 매개변수를 정의합니다.
grep 명령을 사용하여 /etc/login.defs에서 비밀번호 관련 설정을 검색합니다.
grep -E "PASS_MAX_DAYS|PASS_MIN_DAYS|PASS_WARN_AGE|ENCRYPT_METHOD" /etc/login.defs
값은 다를 수 있지만 다음과 유사한 출력을 볼 수 있습니다.
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_WARN_AGE 7
ENCRYPT_METHOD SHA512
다음으로, 비밀번호 복잡성 규칙을 제어하는 PAM(Pluggable Authentication Modules) 구성 파일인 /etc/pam.d/common-password를 살펴보겠습니다. 이 파일에는 대소문자 혼합, 숫자 및 특수 문자 사용을 강제하는 pam_cracklib.so 또는 pam_pwquality.so와 같은 모듈이 포함되는 경우가 많습니다.
cat을 사용하여 /etc/pam.d/common-password 파일의 내용을 확인합니다.
cat /etc/pam.d/common-password
많은 줄이 표시되지만 pam_pwquality.so 또는 pam_cracklib.so와 해당 매개변수 (예: minlen, difok, ucredit, lcredit, dcredit, ocredit) 를 포함하는 줄에 주의를 기울이십시오.
password [success=1 default=ignore] pam_unix.so obscure sha512 shadow
password requisite pam_pwquality.so retry=3 minlen=8 difok=3 reject_username enforce_for_root
password optional pam_gnome_keyring.so
password optional pam_kwallet.so
password optional pam_systemd.so
마지막으로 pam_pwquality.so가 사용될 때 비밀번호 품질 설정에 대한 더 세분화된 제어를 제공하는 /etc/security/pwquality.conf 파일을 확인합니다.
cat /etc/security/pwquality.conf
minlen, dcredit, ucredit, lcredit, ocredit, maxrepeat 등의 설정을 볼 수 있습니다.
## Configuration for the pam_pwquality module
#
## The setting of the PAM module is usually in /etc/pam.d/common-password
#
## minlen = 8
## difok = 3
## dcredit = -1
## ucredit = -1
## lcredit = -1
## ocredit = -1
## minclass = 0
## maxrepeat = 0
## maxsequence = 0
## gecoscheck = 0
## dictcheck = 1
## usercheck = 1
## enforce_for_root
이러한 파일을 검토함으로써 시스템의 현재 비밀번호 정책 설정에 대한 좋은 이해를 얻을 수 있습니다.