1 minute read

Linux 또는 Debian 비밀번호 정책 설정

1. 기본적인 정책

/etc/login.defs 경로에 들어가면 여러가지 설정들이 있는 데 비밀번호에 관련된 부분은 아래와 같습니다.

PASS_MAX_DAYS 99999 // 패스워드 최대 사용 기간
PASS_MIN_DAYS 0 // 패스워드 최소 사용 기간
PASS_WARN_AGE 7 // 패스워드 만료 N일 전부터 메시지 표시

새로 설정한 내용은 앞으로 만들어지는 user에게만 적용 됩니다.
기존에 있는 계정에 적용하기 위해서는 유저 한명 한명씩 다시 설정 해줘야합니다.

sudo chage -M 30 -m 0 -W 7 [username]

2. libpam-pwquality를 통한 고급 정책

libpam-pwquality 설치하여 비밀번호에 대해 좀 더 많은 옵션을 설정할 수 있습니다.
libpam-pwquality 메뉴얼

sudo apt install libpam-pwquality
  • apt install libpam-cracklib를 사용할 경우 /etc/sercurity/pwquality가 없습니다. 또한 pam_cracklib.so 적용됩니다.

설치 후 /etc/pam.d/common-password를 수정합니다.
/etc/sercurity/pwquality를 수정하여도 적용됩니다.

password	requisite			pam_pwquality.so retry=3

위와 같이 pam_pwquality.so 이후 인자를 선언해주면 적용됩니다.
minlen = N
password 최소 길이
minclass = N
사용해야하는 문자 타입의 최소 수(i.e., uppercase, lowercase, digits, other)
maxrepeat = N
단일문자가 반복될 수 있는 최대 문자 수
lcredit = N
password에 들어갈 최대 소문자 수
ucredit = N
password에 들어갈 최대 대문자 수
dcredit = N
password에 들어갈 최대 숫자문자 수
difok = N
이전 비밀번호와 달라야하는 최소 문자 수
usercheck = N
password에 user의 이름이 포함되어있는 지를 br,확인. 0이 아닐 시에 활성화되며, 기본값 = 1로 설정 되어있음.(user이름이 3글자 미만이면 활성화되지 않음)

참고

How to enforce password complexity on Linux