With Solaris 9 12/02 and later, user passwords may be stored in a format other than ''crypt_unix'' by modifying ''/etc/security/policy.conf''. Changing the default encryption algorithm allows passwords to have more than 8 significant characters; with ''crypt_unix'', ''password'' and ''password1'' are the same password.

+

+

To begin storing user passwords in ''crypt_bsdmd5'', make the following change in ''/etc/security/policy.conf''.

+

#CRYPT_DEFAULT=__unix__

+

'''CRYPT_DEFAULT=1'''

== Links ==

== Links ==

Revision as of 15:09, 7 December 2007

The following steps are for Solaris 9, although are probably also applicable for Solaris 2.6, 7, and 8. Solaris 10 has much better password controls built-in.

Password Aging

New Accounts

/etc/default/passwd is the file related to password aging on new accounts.

MAXWEEKS= is the maximum number of weeks a password may be used.

MINWEEKS= is the minimum number of weeks allowed between password changes.

WARNWEEKS= (not present by default) is the number of weeks' warning given before a password expires.

Existing Accounts

/usr/bin/passwd is used to modify password aging on existing accounts. passwd does not update the last password change field (field 3) in /etc/shadow, so passwords could expire immediately after running it.

Example

User hutchib was already created with no password aging (MAXWEEKS= in /etc/default/passwd). To configure the following:

A minimum of 7 days between password changes.

Password expiration after 90 days.

Begin warning about password expiration 14 days in advance.

# /usr/bin/passwd -n 7 -w 14 -x 90 hutchib

What happens when your password expires?

When your password expires, you are allowed a "grace login" where your old password is accepted, but you must immediately change your password. After changing your password, the connection is closed and you must login again.

Password Length and Complexity

Minimum password length is configured using the PASSLENGTH= value in /etc/default/passwd.

The default Solaris install does not provide pam_cracklib or pam_passwdqc. If the default password complexity rules are insufficient, these PAM modules (preferably pam_passwdqc) should be used.

Default password complexity rules from passwd(1):

Passwords must be constructed to meet the following require-
ments:
o Each password must have PASSLENGTH characters, where
PASSLENGTH is defined in /etc/default/passwd and is
set to 6. Only the first eight characters are signifi-
cant.
o Each password must contain at least two alphabetic
characters and at least one numeric or special charac-
ter. In this case, "alphabetic" refers to all upper or
lower case letters.
o Each password must differ from the user's login name
and any reverse or circular shift of that login name.
For comparison purposes, an upper case letter and its
corresponding lower case letter are equivalent.
o New passwords must differ from the old by at least
three characters. For comparison purposes, an upper
case letter and its corresponding lower case letter
are equivalent.

Password History

Password history--i.e., preventing re-use of old passwords--may be enabled using the third-party PAM module pam_history[1]

Example: Prevent re-use of each user's last 24 passwords.

Install the COMSpamph package.

Create a password history database that will store 24 passwords. Without this step, only 5 passwords would be stored.

Account Lockout

Account lockout after a number of unsuccessful authentication attempts may be enabled using the third-party PAM module pam_login_limit[2]. In this example, accounts are locked out for 30 minutes after 5 failed login attempts. During this 30 minutes, any authentication attempts for the user account, both successful or unsuccessful, will reset the 30 minute timer.

To enable account lockout:

Install the COMSpamll package.

Configure PAM.

Relevant entries in bold in /etc/pam.conf:

Lines preceding pam_login_limit must be a sufficient control. The order of pam_dial_auth and pam_unix_auth are switched to accommodate this. If not specified, the default count_limit is 3.

The following optional line in bold resets the failed login count after a successful password change. Without this line, if an administrator resets the password, the user will still have to wait timeout_account seconds until the password is unlocked. Or, the administrator could manually run /usr/local/sbin/login_account -c user to clear the counter.

Make sure PAM support is enabled by setting UsePAM yes in sshd_config.

You may want to disable password authentication by setting PasswordAuthentcation no in sshd_config. Without this, you will be prompted two additional times for your password if your account is locked (although you still won't be able to authenticate).

Storing Passwords in MD5 Format

With Solaris 9 12/02 and later, user passwords may be stored in a format other than crypt_unix by modifying /etc/security/policy.conf. Changing the default encryption algorithm allows passwords to have more than 8 significant characters; with crypt_unix, password and password1 are the same password.

To begin storing user passwords in crypt_bsdmd5, make the following change in /etc/security/policy.conf.