ISMS 등 보안 인증 심사를 진행하다보면 서버의 계정 정책에 대한 설정을 수행할 때가 있다. 리눅스 기반 서버의 계정 정책 설정은 CentOS 6/7 이후로는 대부분 PAM 으로 설정한다. 비밀번호 복잡도 설정, 계정 잠금 설정, 로그인 재시도 설정 등 계정에 관련된 대부분의 설정을 수행할 수 있다.
pam_pwhistory 모듈을 활용하여 지난 비밀번호를 기억할지 여부를 설정할 수 있다.
<aside> 💡 pam_pwhistory: PAM module to remember last passwords
</aside>
/etc/pam.d/system-auth, /etc/pam.d/password-auth 에 아래와 같이 설정할 수 있다.
해당 모듈이 설정되면 /etc/security/opasswd 내 비밀번호가 기억된다.
password requisite pam_pwhistory.so debug use_authtok remember=2
Scripts
Amazon Linux 2 OS 를 기준으로 해당 설정을 적용하는 자동화 스크립트 단, 스크립트의 멱등성은 보장되지 않는다.
originName=system-auth
backupName=system-auth_20200101-01
mv /etc/pam.d/${originName} /etc/pam.d/${backupName}
# pam_pwquality.so 문자열을 찾은 후 그 다음행에 내용 추가
sed -e 's,\\(\\.*pam_pwquality.so.*\\),\\1\\npassword requisite pam_pwhistory.so debug use_authtok remember=2,g' /etc/pam.d/${backupName} > /etc/pam.d/${originName}
originName=password-auth
backupName=password-auth_20200101-01
mv /etc/pam.d/${originName} /etc/pam.d/${backupName}
sed -e 's,\\(\\.*pam_pwquality.so.*\\),\\1\\npassword requisite pam_pwhistory.so debug use_authtok remember=2,g' /etc/pam.d/${backupName} > /etc/pam.d/${originName}
# system-auth 와 password-auth 정책은 동일하게 유지한다.
diff system-auth password-auth
Test