VMware ESXi主机在VMware vSphere虚拟基础架构的管理中起到至为关键的作用,为VMware vSphere主机上的用户设置密码复杂性也是最为基础的安全策略之一。

本文的目的是展示如何在VMware ESXi主机上自动化设置安全策略。这将减少保护软件定义的数据中心的总体操作费用。

密码复杂性策略配置过程

我们将使用PowerCLI在运维机器上运行一个脚本(passwd.ps1)来设置集群中所有主机的密码策略。使用PowerCLI进行批量修改主机密码策略是一种更快、更简单、要求更低的方法。因此,对于拥有大量主机的环境(本篇示例为两台主机),在主机上进行批量更改比在每个主机上的web client上进行更改更为高效。

1、环境准备,通过离线的方式安装。也可通过PowerShell在线安装Powercli(速度比较慢)不再过多赘述,可自行网上查找安装方法。

  1. 下载PowerCLI离线zip包,解压到C:\Windows\System32\WindowsPowerShell\v1.0\Modules目录下,导入VMware.PowerCLI模块。

esxi默认密码是多少 esxi密码设置规则_esxi默认密码是多少

2、报错“在此系统上禁止运行脚本...”。执行如下查看“执行策略”命令,如下图,可看到没有权限执行(不允许执行任何脚本)。

esxi默认密码是多少 esxi密码设置规则_VMware_02

 打开执行脚本权限:可看到系统会提示“安全风险之类的提示”,输入“Y”执行策略。

esxi默认密码是多少 esxi密码设置规则_运维_03

 3、打开PowerShell(实验环境为Win10操作系统)

esxi默认密码是多少 esxi密码设置规则_PowerCLI_04

 4、找到passwd.ps1脚本(本文后面会详细讲解脚本命令,很简单几行)

esxi默认密码是多少 esxi密码设置规则_esxi默认密码是多少_05

 5、编辑脚本,需要主要的地方无非就这四点(暂时不管脚本什么意思,配置好用户名密码)

esxi默认密码是多少 esxi密码设置规则_运维开发_06

6、执行脚本,发现再次出现错误o(╥﹏╥)o

查看错误信息,发现是安全证书验证问题,只需要设置“验证证书”为Ignore(忽略)即可。

 

esxi默认密码是多少 esxi密码设置规则_PowerCLI_07

 

esxi默认密码是多少 esxi密码设置规则_esxi默认密码是多少_08

7、执行成功,可以看到输出了vCenter及ESXi主机Name

esxi默认密码是多少 esxi密码设置规则_esxi默认密码是多少_09

8、登录ESXi主机验证密码策略是否修改成功?

[root@localhost:~] cat /etc/pam.d/passwd

 

esxi默认密码是多少 esxi密码设置规则_esxi默认密码是多少_10

脚本解析

#Set password policy
Connect-VIServer -server <vCenter地址或域名> -user administrator@vsphere.local -password <密码>

#获取连接到的ESXi主机
$VMHosts = Get-VMHost | Where {$_.ConnectionState -eq "Connected"}

#设置密码策略
$passwordpolicy = "retry=3 min=disabled,disabled,disabled,7,7" 

#循环ESXi主机,并配置密码策略
foreach ($VMHost in $VMHosts) {Get-AdvancedSetting -Entity $VMHost -Name Security.PasswordQualityControl |Set-AdvancedSetting -Value $passwordpolicy -Confirm:$false}

ESXi中pam_passwdqc密码质量控制模块

在Linux中进行身份或是状态的验证程序是由PAM来进行的,PAM(Pluggable Authentication Modules)可动态加载验证模块,因为可以按需要动态的对验证的内容进行变更,所以可以大大提高验证的灵活性。

pam_passwdqc模块是PAM的一个简单的密码强度检查模块。除了检查常规密码外,它还支持口令,并可以提供随机生成的口令。

在上面脚本代码中,我们配置了$passwordpolicy = "retry=3 min=disabled,disabled,disabled,7,7"。

简单介绍传递给模块的参数:

min=N0,N1,N2,N3,N4

N0, 只包含由一个字符类中的字符组成的密码。字符类包括:数字、小写字母、大写字母和其他字符。

N1, 只包含由两个字符类的字符组成的密码。

N2, 密码中识别出了常用单词,这里就可以设置最小长度为多少位。

N3和N4分别用于包含三个字符类和四个字符类组成的密码。

...

在本次实验中,min=disabled,disabled,disabled,7,7表示什么意思呢?

拒绝一个字符类、两个字符类组成的密码

拒绝含有常用单词的密码

包含三类字符以上并且长度不少于7位。