用户账户管理是系统管理员最重要的工作之一。密码安全是系统安全中最受关注的方面之一。在本教程中,我将向您展示如何在Linux上设置密码策略。假设你已经在你的Linux系统上使用PAM(PluggableAuthenticationModules,可插入认证模块),这些年几乎所有的Linux发行版都在使用它。准备工作安装PAM的cracklib模块,它提供额外的密码检查功能。Debian、Ubuntu、LinuxMint系统:$sudoapt-getinstalllibpam-cracklibCentOS、Fedora、RHEL系统默认已经安装了cracklibPAM模块,无需在这些系统上进行上述操作。为了强制执行密码策略,我们需要修改/etc/pam.d目录下的PAM配置文件。一旦修改,该政策将立即生效。注意:本教程中的密码策略仅对非root用户有效,对root用户无效。禁止使用旧密码找到同时有“password”和“pam_unix.so”字段的行,追加“remember=5”,表示禁止使用最近5个密码(已经使用过的密码将被删除)保存在下面的/etc/security/opasswd中)。在Debian、Ubuntu或LinuxMint系统上:$sudovi/etc/pam.d/common-passwordpassword[success=1default=ignore]pam_unix.soobscuresha512remember=5在CentOS、Fedora、RHEL系统上:$sudovi/etc/pam.d/system-authpasswordsufficientpamunix.sosha512shadownulloktryfirstpassuseauthtokremember=5设置最小密码长度找到同时具有“password”和“pam_cracklib.so”字段并附加“minlen=10”的行,这意味着最小密码长度为(10-类型数).这里的“类型数”是指不同字符类型的数量。PAM提供4种符号作为密码(大写字母、小写字母、数字和标点符号)。如果您的密码同时使用所有4种类型的符号,并且您的minlen设置为10,则允许的最短密码长度为6个字符。在Debian、Ubuntu或LinuxMint系统上:$sudovi/etc/pam.d/common-passwordpasswordrequisitepam_cracklib.soretry=3minlen=10difok=3在CentOS、Fedora、RHEL系统上:$sudovi/etc/pam.d/system-authpasswordrequisitepam_cracklib.soretry=3difok=3minlen=10设置密码复杂性找到同时具有“password”和“pam_cracklib.so”字段和“ucredit=-1lcredit=-2dcredit=-1ocredit=-1”的行,这意味着密码必须至少包含一个大写字母(ucredit)、两个小写字母(lcredit)、一个数字(dcredit)和一个标点符号(ocredit)。在Debian、Ubuntu或LinuxMint系统上:$sudovi/etc/pam.d/common-passwordpasswordrequisitepam_cracklib.soretry=3minlen=10difok=3ucredit=-1lcredit=-2dcredit=-1ocredit=-1CentOS、Fedora、RHEL系统:$sudovi/etc/pam.d/system-authpasswordrequisitepam_cracklib.soretry=3difok=3minlen=10ucredit=-1lcredit=-2dcredit=-1ocredit=-1设置密码有效期编辑/etc/login.defs文件,可以设置有效期当前密码,具体变量如下:$sudovi/etc/login.defsPASSMAXDAYS150PASSMINDAYS0PASSWARNAAGE7这些设置要求用户每6个月修改一次密码,并会提前7天提醒用户密码即将到期。如果要为每个用户设置不同的密码期限,请使用chage命令。以下命令可以查看用户的密码过期时间:$sudochage-lxmoduloLastpasswordchange:Dec30,2013Passwordexpires:neverPasswordinactive:neverAccountexpires:neverMinimumnumberofdaysbetweenpasswordchange:0Maximumnumberofdaysbetweenpasswordchange:99999Numberofdaysofwarningbeforepassword默认情况下,用户密码不会永远过期。以下命令用于修改xmodulo用户的密码年龄:$sudochage-E6/30/2014-m5-M90-I30-W14xmodulo的上述命令将密码年龄设置为2014年6月3日。另外,修改密码的最短期限为5天,最长为90天。密码到期前14天会发短信提醒用户,密码到期后账户将被锁定30天。来自:http://xmodulo.com/2013/12/set-password-policy-linux.html翻译:bazz2校对:Caroline
