Information
The variables in the /etc/default/passwd file indicate various strategies for creating differences required between an old and a new password. As requiring users to select a specific numbers of differences between the characters in the existing password and the new one can strengthen the password by increasing the symbol-set space, to further increase the difficulty of breaking any password by brute-force attacks, these values should be set as appropriate to the needs of the user.
Rationale:
Administrators may wish to add site-specific dictionaries to the DICTIONLIST parameter.
Warning: Sites often have differing opinions on the optimal value of the HISTORY parameter (how many previous passwords to remember per user in order to prevent re-use). The values specified here are in compliance with NSA/DISA requirements. If this is too restrictive for your site, you may wish to set a HISTORY value of 4 and a MAXREPEATS of 2. Consult your local security rules for guidance.
Solution
Perform the following to implement the recommended state:
# cd /etc/default
# awk '/PASSLENGTH=/ { $1 = 'PASSLENGTH=14' };
/NAMECHECK=/ { $1 = 'NAMECHECK=YES' };
/HISTORY=/ { $1 = 'HISTORY=10' };
/MINDIFF=/ { $1 = 'MINDIFF=3' };
/MINUPPER=/ { $1 = 'MINUPPER=1' };
/MINLOWER=/ { $1 = 'MINLOWER=1' };
/MINSPECIAL=/ { $1 = 'MINSPECIAL=1' };
/MINDIGIT=/ { $1 = 'MINDIGIT=1' };
/MAXREPEATS=/ { $1 = 'MAXREPEATS=1' };
/WHITESPACE=/ { $1 = 'WHITESPACE=YES' };
/DICTIONDBDIR=/ { $1 = 'DICTIONDBDIR=/var/passwd' };
/DICTIONLIST=/ { $1 = 'DICTIONLIST=/usr/share/lib/dict/words' };
{ print }' passwd > passwd.CIS
# mv passwd.CIS passwd