[ 패스워드 보안설정] pam_cracklib.so
q> 로그인시 최소 패스워드를 12자 이상 설정
1) /etc/pam.d/system-auth-ac
password requisite pam_cracklib.so try_first_pass retry=3 minlen=12
패스워드에서 사용가능한 문자 : 숫자, 영어대/소, 특수
크레디트값 숫자 1 영어 1 특수기호 1
2) pam_cracklib.so 인수값
- debug : syslog 파일에 로그기록
- type=LINUX
useradd 홍길동
passwd 홍길동
NEW UNIX password : -> NEW LINUX password :
- retry=N : 패스워드 입력 실패 시 재시도횟수
- difok=N : 기존 패스워드와 비교. 기본값10 (50%)
- minlen=N : 크레디트를 더한 패스워드최소길이
- dcredit=N : 숫자에 주어지는 크레디트값. 기본 1
- udredit=N : 영어대문자에 주어지는 크레디트값
- lcredit=N : 영어 소문자에 주어지는 크레디트값
- ocredit=N : 숫자, 영어대/소문자를 제외한 기타문자
- use_authok : 기존 패스워드를 다시 사용
- MD5 값을 적용
password required pam_cracklib.so difok=3 minlen=15 dcredit=2 ocredit=2
password required pam_pwdb.so use_authok nullok md5
o 증상
host login: root
configuration error - unknown item 'PASS_MIN_LEN' (notify administrator)
Password:
o 참고 URL
http://kldp.org/files/______________________________520.dochttp://www.puschitz.com/SecuringLinux.shtml#EnablingPasswordAging
http://www.puschitz.com/SecuringLinux.shtml#EnforcingStrongerPasswords
o 사용예 설명
다음 예제는 어떻게 다음의 패스워드 규칙을 적용시키는가를 보여준다.
- 패스워드의 최소길이 8자
pam_cracklib.so minlen=8
- 소문자 최소 1자
pam_cracklib.so lcredit=-1
- 대문자 최소 1자
pam_cracklib.so ucredit=-1
- 숫자 최소 1자
pam_cracklib.so dcredit=-1
- 문자와 숫자이외의 문자 최소 1자(특수문자를 말하는 듯..)
pam_cracklib.so ocredit=-1
이 패스워드 제한을 설정하려면 /etc/pam.d/system-auth 파일을 열어 파란색으로 된 부분을 추가하거나
변경을 하라
auth required /lib/security/$ISA/pam_env.so
auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok
auth required /lib/security/$ISA/pam_deny.so
account required /lib/security/$ISA/pam_unix.so
account sufficient /lib/security/$ISA/pam_succeed_if.so uid < 100 quiet
account required /lib/security/$ISA/pam_permit.so
password requisite /lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1
password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow
password required /lib/security/$ISA/pam_deny.so
session required /lib/security/$ISA/pam_limits.so
session required /lib/security/$ISA/pam_unix.so
* pam(pluggable authentication module)을 사용하면 적용할 수 있을 것이라고 본다.
1. 패스워드 사용 기간 제한
$> vi /etc/login.defs
PASS_MAX_DAYS 90
PASS_MIN_DAYS 0
PASS_MIN_LEN 8
PASS_WARN_AGE 7
2. 계정 잠금 허용
$> vi /etc/default/useradd
INACTIVE=0
3. 기타 비밀번호 설정
$>vi /etc/pam.d/system-auth
auth required pam_env.so
auth required pam_tally.so per_user
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_succeed_if.so uid < 500 quiet
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3 minlen=8 ucredit=-1 dcredit=-1 ocredit=-1 lcredit=-1
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
(설명)
auth required pam_tally.so per_user
--> faillog 설정에 따름.
password requisite pam_cracklib.so try_first_pass retry=3 minlen=8 ucredit=-1 dcredit=-1 ocredit=-1 lcredit=-1
-->
retry=N : 패스워드 입력 실패 시 재시도횟수
difok=N : 기존 패스워드와 비교. 기본값10 (50%)
minlen=N : 크레디트를 더한 패스워드최소길이
dcredit=N : 숫자에 주어지는 크레디트값. 기본 1
udredit=N : 영어대문자에 주어지는 크레디트값
lcredit=N : 영어 소문자에 주어지는 크레디트값
ocredit=N : 숫자, 영어대/소문자를 제외한 기타문자
(각 항목에서 -1 값을 주면 반드시 해당하는 문자를 포함시켜야 함. 즉 dcredit=-1 이라면 패스워드에 숫자가 반드시 포함되어야 함.)
4. 계정 접속 제한 설정
*** faillog -m 3 시 /var/log/faillog 파일이 128G 로 되는 버그 fix 방법 ***
$> patch < shadow-4.0.17-setmax.path
파일위치: /usr/bin/faillog
$> faillog -u userid -m 3 #계정을 3번까지 잘못입력하는 것 허용
$> faillog -u root -m 0 #root 계정은 max 값 0로 주어 제한 없이 사용가능
5. 잠긴 계정 활성화
$> faillog -u [userId] -r
6. root의 경우 해당 경우에서 제외
$> faillog -u root -m 0
출처 : http://cafe.daum.net/ccna-ccnp / pgclks.tistory.com / oktopbang.tistory.com
댓글