/etc/pam.d/sshd 下 新增 password requisite pam_pwquality.so minlen=8 dcredit=-1 ocredit=-1
时间: 2024-09-13 10:12:02 浏览: 95
在Linux系统中,`/etc/pam.d/sshd` 是一个PAM(Pluggable Authentication Modules)配置文件,用于配置`sshd`服务的安全策略。PAM是一种用于实现认证、授权、记账和密码管理的灵活机制,允许系统管理员通过配置文件来定制认证过程,而无需修改服务的源代码。
在`/etc/pam.d/sshd`文件中新增以下行:
```
password requisite pam_pwquality.so minlen=8 dcredit=-1 ocredit=-1
```
这行配置的作用是增强系统对用户密码强度的要求,具体含义如下:
- `password`: 指明这个模块是在密码改变时被调用的。
- `requisite`: 表示这是一个必要条件,如果这个模块认证失败,将立即返回失败,不会继续执行后续的认证步骤。
- `pam_pwquality.so`: 是一个PAM模块,用于增强密码的质量检查。
- `minlen=8`: 设置密码的最小长度为8个字符。
- `dcredit=-1`: 表示至少需要包含一个数字字符,`-1`表示需要的数字字符数量至少比最小长度少一个。
- `ocredit=-1`: 表示至少需要包含一个非字母字符,同样`-1`表示需要的非字母字符数量至少比最小长度少一个。
这样的配置提高了密码的安全性,要求用户在创建或更改密码时必须使用至少8个字符,并且至少包含一个数字和一个特殊字符,从而增加了密码破解的难度。
相关问题
/etc/pam.d/sshd 下 新增 password requisite pam_pwquality.so minlen=8 dcredit=-1 ocredit=-1 我该如何验证配置
`/etc/pam.d/sshd` 是PAM(Pluggable Authentication Modules)配置文件之一,用于控制通过sshd服务进行的认证过程。PAM是一种灵活和强大的认证机制,它允许系统管理员通过编辑配置文件来设定各种认证策略。
您提到的配置项 `password requisite pam_pwquality.so minlen=8 dcredit=-1 ocredit=-1` 是用来增强密码安全性的,具体含义如下:
- `password`: 表示这个模块是用于密码更改过程中的。
- `requisite`: 表示如果此模块失败,则立即返回失败,并且停止后续模块的执行。
- `pam_pwquality.so`: 这是PAM的一个模块,用于检查密码的质量。
- `minlen=8`: 设置密码最小长度为8个字符。
- `dcredit=-1`: 表示至少包含一个数字字符。
- `ocredit=-1`: 表示至少包含一个非数字字符。
要验证PAM配置的生效情况,您可以通过以下步骤进行:
1. 使用`pamtester`工具:这是一个用于测试PAM配置的工具。您可以使用它来模拟用户认证过程,并检查配置是否按预期工作。
首先安装`pamtester`(如果尚未安装):
```bash
sudo yum install pamtester # 在基于RPM的系统中
sudo apt-get install pamtester # 在基于Debian的系统中
```
然后使用以下命令测试sshd服务的密码更改:
```bash
sudo pamtester sshd [username] password
```
您需要替换`[username]`为一个有效的系统用户名。在提示输入密码时,尝试使用一个不符合密码策略的密码,如长度小于8或者没有包含数字的密码,`pamtester`应该会返回一个错误消息,说明密码不符合策略。
2. 尝试更改密码:您可以实际尝试更改系统用户的密码,并看是否按照PAM配置拒绝不符合策略的密码。
3. 检查日志文件:查看`/var/log/auth.log`(或系统对应的认证日志文件)来确认密码更改的尝试是否被记录,并检查是否有相关的错误信息。
我需要在pam.d下的sshd模块进行如下场景的配置,置口令策略为至少 8 位,至少包含一个符号和一个数字,此策略对本地和远程均适用。该如何进行编辑以及如何验证
要在`/etc/pam.d/sshd`模块中配置口令策略,你需要修改PAM(Pluggable Authentication Modules)配置文件,以便实现你描述的密码复杂性要求。以下是一般步骤:
1. 打开`/etc/pam.d/sshd`文件进行编辑。通常需要root权限来修改这个文件,所以使用`sudo`命令或者直接以root用户身份执行编辑器:
```
sudo vi /etc/pam.d/sshd
```
2. 找到与`pam_pwquality.so`或者`pam_cracklib.so`相关的行。在大多数系统中,这个模块被用来设置密码的复杂性要求。如果你的系统中没有这一行,你可能需要添加它。
3. 配置`pam_pwquality.so`或`pam_cracklib.so`模块以满足你的需求。你可能需要设置以下参数:
- `minlen`:设置密码的最小长度。
- `dcredit`:至少包含多少个数字。
- `ucredit`:至少包含多少个大写字母。
- `lcredit`:至少包含多少个小写字母。
- `ocredit`:至少包含多少个特殊字符。
例如,你可以添加或修改如下行来达到至少8位长度,至少包含一个数字和一个特殊字符的要求:
```
password requisite pam_pwquality.so retry=3 minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1
```
这里:
- `retry=3` 表示用户在重试时允许最多3次。
- `minlen=8` 设置最小密码长度为8。
- `dcredit=-1` 至少需要1个数字,负号表示需要至少1个。
- `ucredit=-1` 至少需要1个大写字母。
- `lcredit=-1` 至少需要1个小写字母。
- `ocredit=-1` 至少需要1个特殊字符。
4. 保存并关闭文件。
5. 验证配置。你可以尝试更改密码以确认新的策略是否生效:
```
passwd 用户名
```
系统会提示你输入新密码,并根据你设置的策略进行校验。
6. 确认`/etc/pam.d/sshd`文件的其它相关行没有被错误地修改或禁用,这可能会影响到sshd服务的其它PAM认证功能。
阅读全文