SUN2013. 4. 29. 08:46

]# vi etc/default/passwd

#ident  "@(#)passwd.dfl 1.7     04/04/22 SMI"
#
# Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
MAXWEEKS=4        /* 모든 사용자는 반드시 28일에 한번씩 암호를 변경하여 사용해야 한다.
MINWEEKS=
PASSLENGTH=7     /* 사용자 암호의 최소글자는 7글자이어야 한다.
WARNWEEKS=1      /* 28일이 지나기 전에 1주일 전부터는 사용자 로그인시 경고를 해야 한다.

# NAMECHECK enables/disables login name checking.
# The default is to do login name checking.
# Specifying a value of "NO" will disable login name checking.
#
#NAMECHECK=NO

# HISTORY sets the number of prior password changes to keep and
# check for a user when changing passwords.  Setting the HISTORY
# value to zero (0), or removing/commenting out the flag will
# cause all users' prior password history to be discarded at the
# next password change by any user.  No password history will
# be checked if the flag is not present or has zero value.
# The maximum value of HISTORY is 26.
#
# This flag is only enforced for user accounts defined in the
# local passwd(4)/shadow(4) files.
#
HISTORY=3       /* 사용자는 새로운 암호를 입력할때 최근 암호 3개(이전에 저장된 암호)와 비교해야 한다.
#
# Password complexity tunables.  The values listed are the defaults
# which are compatible with previous releases of passwd.
# See passwd(1) and pam_authtok_check(5) for use warnings and
# discussion of the use of these options.
#
MINDIFF=4       /* 사용자가 암호를 변경할때 이전 암호와 새로운 암호는 4글자이상 틀려야 한다.
#MINALPHA=2
#MINNONALPHA=1
#MINUPPER=0
#MINLOWER=0
#MAXREPEATS=0
#MINSPECIAL=0
#MINDIGIT=0
#WHITESPACE=YES
#
#
# passwd performs dictionary lookups if DICTIONLIST or DICTIONDBDIR
# is defined. If the password database does not yet exist, it is
# created by passwd. See passwd(1), pam_authtok_check(5) and
# mkdict(1) for more information.
#
#DICTIONLIST=
#DICTIONDBDIR=/var/passwd

 

 

 

 

]# vi etc/security/policy.conf

# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# /etc/security/policy.conf
#
# security policy configuration for user attributes. see policy.conf(4)
#
#ident  "@(#)policy.conf        1.12    08/05/14 SMI"
#
AUTHS_GRANTED=solaris.device.cdrw
PROFS_GRANTED=Basic Solaris User

# crypt(3c) Algorithms Configuration
#
# CRYPT_ALGORITHMS_ALLOW specifies the algorithms that are allowed to
# be used for new passwords.  This is enforced only in crypt_gensalt(3c).
#
CRYPT_ALGORITHMS_ALLOW=1,2a,md5,5,6

# To deprecate use of the traditional unix algorithm, uncomment below
# and change CRYPT_DEFAULT= to another algorithm.  For example,
# CRYPT_DEFAULT=1 for BSD/Linux MD5.
#
#CRYPT_ALGORITHMS_DEPRECATE=__unix__

# The Solaris default is the traditional UNIX algorithm.  This is not
# listed in crypt.conf(4) since it is internal to libc.  The reserved
# name __unix__ is used to refer to it.
#
CRYPT_DEFAULT=1   /* 모든 사용자의 암호는 256글자까지 입력이 가능해야 한다.

#                                  /* 1의 의미는 /etc/security/crypt.conf에 내용이 설정되어 있다
# These settings determine the default privileges users have.  If not set,
# the default privileges are taken from the inherited set.
# There are two different settings; PRIV_DEFAULT determines the default
# set on login; PRIV_LIMIT defines the Limit set on login.
# Individual users can have privileges assigned or taken away through
# user_attr.  Privileges can also be assigned to profiles in which case
# the users with those profiles can use those privileges through pfexec(1m).
# For maximum future compatibility, the specifications should
# always include "basic" or "all"; privileges should then be removed using
# the negation.  E.g., PRIV_LIMIT=all,!sys_linkdir takes away only the
# sys_linkdir privilege, regardless of future additional privileges.
# Similarly, PRIV_DEFAULT=basic,!file_link_any takes away only the
# file_link_any privilege from the basic privilege set; only that notation
# is immune from a future addition of currently unprivileged operations to
# the basic privilege set.
# NOTE: removing privileges from the the Limit set requires EXTREME care
# as any set-uid root program may suddenly fail because it lacks certain
# privilege(s).
#
#PRIV_DEFAULT=basic
#PRIV_LIMIT=all
#
# LOCK_AFTER_RETRIES specifies the default account locking policy for local
# user accounts (passwd(4)/shadow(4)).  The default may be overridden by
# a user's user_attr(4) "lock_after_retries" value.
# YES enables local account locking, NO disables local account locking.
# The default value is NO.
#
#LOCK_AFTER_RETRIES=NO

 

 

 

 

(실습)

 ※ 패스워드를 7글자 미만으로 한경우 에러메세지.

$ passwd
passwd: Changing password for user01
Enter existing login password:
New Password:
passwd: Password too short - must be at least 7 characters. 

 

 ※ 이전 패스워드와 동일한 패스워드 사용시 에러메세지.

$ passwd
passwd: Changing password for user01
Enter existing login password:
New Password:
passwd: Password in history list. 

 

 ※ 이전 패스워드와 4글자 이상 동일한 패스워드 사용시 에러메세지.

$ passwd
Please try again
New Password:
passwd: The first 256 characters of the old and new passwords must differ by at least 4 positions.

 

 ※ 암호 최대 사용기간 1주일 전부터 전송되는 경고베세지

[solaris243@/]# telnet localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
login: user01
Password:
Your password will expire in 7 days.
Last login: Sun Apr  4 22:47:03 from localhost
Sun Microsystems Inc.   SunOS 5.10      Generic January 2005

 

 ※ 암호 최대 사용기간 이후에도 패스워드를 변경하지 않은경우 에러메세지.

[solaris243@/]# telnet localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
login: user01
Password:
Choose a new password.
New Password:
Re-enter new Password:
telnet: password successfully changed for user01
Last login: Mon Apr 26 11:00:10 from localhost
Sun Microsystems Inc.   SunOS 5.10      Generic January 2005

 
 
 
 
 
 
 

패스워드 알고리즘을 변경하는 이유는 전통적으로 UNIX PASSWD CRYPT는 8자리까지만 인식을 한다.

8자리 이상은 인식을 하지 못하기 때문에 8자리 이상의 PASSWD를 사용하기 위하여 사용된다.

가장 중요한 것은 보안 때문이다. 

솔라리스 9 update2 부터 전통적인 password hashing 알고리즘외에 다음과
같은 password hashing 알고리즘이 추가 되었다.
추가된 알고리즘을 보기 위해서는 /etc/security/crypt.conf 파일을 참조하면 된다.

추가된 Password Hashing 알고리즘(Solaris 9 U2 이상 ~ Solaris 10 U5)
-------------------------------------------------------------
1 crypt_bsdmd5.so.1
2a crypt_bsdbf.so.1
md5 crypt_sunmd5.so.1
-------------------------------------------------------------
Solaris10(U6이상)
-------------------------------------------------------------
1       crypt_bsdmd5.so.1
2a      crypt_bsdbf.so.1
md5     crypt_sunmd5.so.1
5       crypt_sha256.so.1
6       crypt_sha512.so.1
-------------------------------------------------------------

위 알고리즘에 대한 정보를 보기 위해서는 man을 이용하여 얻을수있다.
ex) man crypt_bsdmd5, crypt_bsdbf or crypt_sunmd5

위 3개 혹은 5개 중에 하나를 사용하기 위해서는 /etc/sucurity/policy.conf를 수정해야 한다.
Password Hashing Algorithms은 /etc/sucurity/crypt.conf에 정의되어 있으며 여기에 있는
부분을 policy.conf에서 사용하면 된다.

vi 를 이용하여 /etc/security/policy.conf를 열고 CRYPT_DEFAULT=__unix__ 부분을 찾는다.
__unix__을 md5로 바꾼다.
-------------------------------------------------------------
CRYPT_DEFAULT=md5
-------------------------------------------------------------

md5는 crypt.conf에서 정의한 crypt_sunmd5 이며 이 알고르즘은
크랙킹하기 힘든 암호화 방식이라고 man page를 보게되면 설명 되어 있다

'SUN' 카테고리의 다른 글

계정 설정 [lock/unlock]  (0) 2013.04.29
ssh root login  (0) 2013.04.29
Posted by 신재중