'login.defs'에 해당되는 글 2건

  1. 2014.07.30 패스워드 사용규칙 복잡성 설정 (2)
  2. 2009.12.03 SHA-256/SHA-512를 사용한 암호 해싱
2014. 7. 30. 16:25

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

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


Trackback 0 Comment 2
  1. 2014.07.30 16:26 address edit & del reply

    비밀댓글입니다

  2. PAM 2014.07.30 16:27 address edit & del reply

    Enforce strong passwords
    password requisite pam_passwdqc.so min=12,10,10,8,6 retry=3

2009. 12. 3. 19:20

SHA-256/SHA-512를 사용한 암호 해싱

현재 SHA-256 및 SHA-512 해시 기능을 사용한 암호 해싱이 지원됩니다.

설치된 시스템에서 SHA-256 또는 SHA-512로 전환하려면 authconfig --passalgo=sha256 --kickstart 또는 authconfig --passalgo=sha512 --kickstart 명령을 실행합니다. 기존의 사용자 계정은 암호를 변경하기 전 까지 영향을 받지 않게 됩니다.

새로 설치된 시스템의 경우, SHA-256 또는 SHA-512 사용은 킥스타트 설치에서만 설정될 수 있습니다. 이를 위해, 킥스타트 명령 auth--passalgo=sha256 또는 --passalgo=sha512 옵션을 사용합니다; 또한, --enablemd5 옵션이 있을 경우 이를 삭제합니다.

설치 프로그램이 킥스타트를 사용하지 않을 경우, 위의 설명 대로 authconfig를 사용한 후, 설치 후 생성된 모든 암호 (root 포함)를 변경합니다.

이러한 암호 해싱 알고리즘을 지원하기 위해 알맞은 옵션이 libuser, pam, shadow-utils에 추가되었습니다. authconfig 명령은 필요한 옵션을 자동으로 생성하므로, 이를 수동으로 수정할 필요가 없습니다:

  • 현재 crypt_style 옵션의 새로운 값과 hash_rounds_minhash_rounds_max 명령의 새로운 옵션은 /etc/libuser.conf[defaults] 부분에서 지원됩니다. 보다 자세한 내용은 /usr/share/doc/libuser-[libuser version]/README.sha에서 참조하시기 바랍니다.

  • 현재 새로운 옵션 sha256, sha512, roundspam_unix PAM 모듈에 의해 지원됩니다. 보다 자세한 내용은 /usr/share/doc/pam-[pam version]/txts/README.pam_unix에서 참조하시기 바랍니다.

  • 현재 다음과 같은 /etc/login.defs에서의 새 옵션은 shadow-utils에 의해 지원됩니다:

    • ENCRYPT_METHOD — 사용할 암호화 방식을 지정합니다. 사용 가능한 값은 DES, MD5, SHA256, SHA512 입니다. 이러한 옵션이 지정될 경우, MD5_CRYPT_ENAB 명령은 무시됩니다.

    • SHA_CRYPT_MIN_ROUNDSSHA_CRYPT_MAX_ROUNDSENCRYPT_METHODSHA256 또는 SHA512로 설정되어 있을 경우 사용할 해싱 라운드 수를 지정합니다. 아무 옵션도 설정되어 있지 않을 경우, glibc에 의해 기본값이 지정됩니다. 하나의 옵션만이 설정되어 있을 경우 암호화 방식이 라운드 수를 지정하게 됩니다.

      두 옵션 모두가 사용될 경우, 임의로 선택된 라운드 수에서 포괄적인 간격을 지정합니다. 선택된 라운드 수는 포괄적인 간격 [1000, 999999999]으로 제한되어 있습니다.


출처 : http://us.aminet.net/pub/centos4.64/NOTES/RELEASE-NOTES-U7-ko.html

Trackback 1 Comment 0