나는 사용자가 자신의 비밀번호를 변경할 때 더 엄격한 비밀번호를 도입하도록 강제하는 보안 정책을 구현하고 있습니다.
구성 /etc/pam.d/passwd
파일은 다음과 같습니다.
#%PAM-1.0
auth include common-auth
account include common-account
password include common-password
session include common-session
그래서 이 파일을 변경했습니다 /etc/pam.d/common-password
.
기본 common-password
파일에는 다음 두 줄이 포함되어 있습니다.
password requisite pam_pwcheck.so nullok cracklib
password required pam_unix2.so use_authtok nullok
암호를 더 강력하게 만들려면 pam_pwcheck(문제 없음)와 다른 PAM 모듈(pam_cracklib)에 몇 가지 옵션을 추가해야 합니다. 다음은 다음 /etc/pam.d/common-password
으로 구성된 최종 파일입니다 passwd
.
password requisite pam_cracklib.so minclass=3 retry=3
password requisite pam_pwcheck.so nullok cracklib minlen=10 remember=5
password required pam_unix2.so use_authtok nullok
두 개의 PAM 모듈을 구성할 때 문제가 발생합니다. 올바른 비밀번호를 입력하면 제대로 작동합니다. 거부해야 하는 잘못된 비밀번호 pam_cracklib
(예: 소문자만 포함하는 비밀번호)를 입력하면 문제 없이 비밀번호가 거부됩니다.
cracklib
그러나 유효 하지만 유효하지 않은 비밀번호 pwcheck
(대문자, 소문자 및 7자 길이의 숫자가 포함된 비밀번호)를 입력하면 다음 오류와 함께 비밀번호가 거부됩니다.
Bad password: too short
passwd: Authentication token manipulation error
따라서 pam_pwcheck
오류 메시지가 인쇄되지만( Bad password: too short
) PAM 체인에서 일부 오류가 발생했습니다.
내 구성에 어떤 문제가 있는지 아시나요?
PS "보안" 요구 사항은 전혀 내 것이 아니므로 이에 대해 언급하지 마십시오 ;-).
답변1
PAM 체인을 다음과 같은 파일로 리팩토링해 보세요 /etc/pam.d/common-password
.
password required pam_pwcheck.so
password required pam_cracklib.so use_authtok minlen=10 retry=3 minclass=3
password required pam_pwcheck.so remember=5 use_authtok use_first_pass
password required pam_unix2.so nullok use_authtok use_first_pass
나는 위의 내용을 찾아서 다음과 같은 제목의 Novell 문서에서 약간 수정했습니다.pam_pwcheck와 pam_cracklib를 함께 사용하기.
또한 다음을 리소스로 사용합니다.
답변2
마침내 처음 두 모듈의 순서를 바꿔서 작동하게 되었습니다.
password requisite pam_pwcheck.so nullok cracklib minlen=10 remember=5
password requisite pam_cracklib.so minclass=3 retry=3
password required pam_unix2.so use_authtok nullok
이제 또 다른 오류가 발생했는데 다른 질문으로 질문하겠습니다.
답변3
저는 Fedora 25 systemd-nspawn
컨테이너를 passwd
사용 하고 있었고 sudo dnf reinstall passwd
.