尽管 Linux 被认为是一个安全的操作系统,但它的安全性与登录用户的密码强度成等比关系。设置密码策略以确保用户设置了高强度的密码。作为 Linux 用户,您应该注意执行这些策略,以防止发生违规行为。你肯定不希望用户配置弱或易猜的密码,这些密码可以在几秒钟内被黑客强行破解。
在本文中,我们将介绍如何在 Linux 中实施密码策略。我们将介绍密码策略的实施,如密码有效期、密码复杂度和密码长度。
在 Ubuntu / Debian 执行密码策略
执行密码策略主要有两种方法,让我们来详细了解一下。
(1) 配置密码的最长使用天数
首先,您可以配置一个密码策略,要求用户在一定天数后更改密码。最佳实践表明,应该定期更改密码,以保持恶意用户的平衡,并使他们更难侵入您的系统。这不仅适用于 Linux,也适用于其他系统,如 Windows 和 macOS。
要在 Debian / Ubuntu 中实现这一目标,您需要修改 /etc/login.defs 文件,找到 PASS_MAX_DAYS 属性,默认情况下,该时间设置为 99999 天,如下所示。
您可以将其修改为合理的持续时间,例如 30 天。超过 30 天后,您将被迫创建另一个密码。
(2) 使用 pam 配置密码复杂度
确保密码满足一定的复杂性同样至关重要,进一步挫败黑客使用暴力渗透您的系统。
一般来说,强密码应该是大写、小写、数字和特殊字符的组合,长度至少应该是 12-15 个字符。
要在 Debian / Ubuntu 中执行密码复杂性,您需要安装 libpam-pwquality 软件包,如下所示:
$ sudo apt install libpam-pwquality
从您要设置密码策略的地方访问 /etc/pam.d/common-password 文件,默认情况下,如图所示:
找到下面的行
password requisite pam_pwquality.so retry=3
向该行添加以下属性
minlen=12 maxrepeat=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 difok=4 reject_username enforce_for_root
整行代码应该如图所示
让我们来具体说明这些指令的含义:
- retry=3: 退出并返回错误之前提示用户 3 次
- minlen=12: 密码不能少于 12 个字符
- maxrepeat=3: 密码中最多只能包含 3 个重复字符
- ucredit=-1: 密码中至少包含一个大写字符
- lcredit=-1: 密码中至少包含一个小写字符
- dcredit=-1: 密码中至少包含一个数字字符
- ocredit=-1: 密码中至少包含一个特殊字符
- difok=3: 新旧密码至少三处不同
- reject_username: 如果密码由用户名的正常形式或相反形式组成,该选项将拒绝密码
- enforce_for_root: 确保即使是 root 用户也遵守密码策略
在 CentOS / RHEL 中执行密码策略
要在 CentOS / RHEL 中实现这一目标,您需要修改 /etc/pam.d/system-auth 或者 /etc/security/pwquality.conf 文件
打开配置文件
$ sudo vim /etc/pam.d/system-auth
找到以下行
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
添加以下选项
minlen=12 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root
整行代码应该如图所示
保存并退出文件
当您尝试使用不遵守强制策略的弱密码创建用户时,将会出现如下错误
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。