본문으로 바로가기

Postgresql 패스워드 정책 관련 설정

category [ IT ]/보안 2019. 12. 26. 14:33

Postgresql 패스워드 정책 관련 설정은 postgresql.conf 파일 내  shared_preload libraries 설정 값으로 '$libdri/passwordcheck'를 지정하고, 서버를 재실행 하면 된다.

</var/lib/pgsql/data/postgresql.conf>

- http://postgresql.kr/docs/current/passwordcheck.html

 

F.23. passwordcheck

passwordcheck 모듈은 CREATE ROLE 또는 ALTER ROLE 명령을 통해서 입력하는 사용자 비밀번호를 검사한다. 비밀번호가 너무 단순하면, 그 비밀번호로 변경 할 수 없게 한다. 이 모듈을 활성화 하려면 postgresql.conf 파일에서 shared_preload_libraries 설정 값으로 '$libdir/passwordcheck' 지정하고, 서버를 재실행 한다. 이 모듈은 CrackLib 라이브러리의 사용권 문제 때문에, 해당

postgresql.kr

이 때, passwordcheck.so 파일을 검색해본 결과, 
1. /usr/lib64/pgsql/postgresql-9.2/lib/passwordcheck.so
2. /usr/lib64/pgsql/passwordcheck.so
두가지 경로가 나왔고, 이름을 바꿔가며 테스트 해본 결과 실제로 사용되는 파일은 /usr/lib64/pgsql/passwordcheck.so 였다. (현재 10.6 설치되어있음)


Passwordcheck 사용시 적용되는 패스워드 정책은 다음과 같다.

- 8자리 이상 사용
- 숫자, 문자 혼용 사용
- 유저명과 같거나 유저명을 포함하는 패스워드 사용 불가

<Passwordcheck 적용 후 패스워드 변경 에러 발생>


해당 규칙은
https://sourceforge.net/projects/cracklib/
https://github.com/postgres/postgres/blob/master/contrib/passwordcheck/passwordcheck.c

 

CrackLib

Download CrackLib for free. *NOTE* Migrated to http://github.com/cracklib/cracklib Next generation version of libCrack password checking library. As of Oct 2008 (reflected in 2.8.15 code release), licensed under LGPL.

sourceforge.net

 

postgres/postgres

Mirror of the official PostgreSQL GIT repository. Note that this is just a *mirror* - we don't work with pull requests on github. To contribute, please see https://wiki.postgresql.org/wiki/Subm...

github.com

등에 올라와 있는 소스파일을 수정해서 컴파일하여 사용해도 된다고 하나, 실제 수정하여 사용하기에는 어려움이 따를 것으로 판단된다.

<passwordcheck.c 샘플 파일>