본문 바로가기
운영체제 (LNX,WIN)

패스워드 사용규칙 복잡성 설정

by 날으는물고기 2014. 7. 30.

패스워드 사용규칙 복잡성 설정

[ 패스워드 보안설정] 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

728x90

댓글