这里就略过安装的步骤了,配置好访问IP后,就可以直接输入IP地址访问我们的VMware ESXI系统了。
VMware ESXi 底层是一个定制版的Linux系统。可通过在控制台开启SSH服务进入Linux系统(默认是关闭SSH服务)。
可在此处开启SSH管理,个人认为,这个SSH管理其实就是类似安全设备(如防火墙)一样的命令行界面,你在应用层面操作的内容都会反馈到命令行界面中。
查看版本:
SSH登录:
vmware -v
1)对登录的用户进行身份标识和鉴别
通过用户名+口令的方式
2)身份标识唯一性
默认不允许添加同名用户
3)身份标识复杂度
首先判断用户当前口令是否为复杂口令,至于什么算复杂口令,这里就不再赘述了。
确认强制口令策略:主机→管理→系统→高级设置→对应键值为:Security.PasswordQualityControl
值具体代表什么什么意思,这里放在下面底层操作系统进行说明
4)身份鉴别信息定期更换
确认强制口令策略:主机→管理→系统→高级设置→对应键值为:Security.PasswordMaxDays
历史密码记录
对应键值:Security.PasswordHistory
当手动修改密码的时候会显示这样的提示,防止用户口令到期后使用相同口令刷新口令更改日期
这里我们登录到系统底层,对登录的用户进行身份标识和鉴别、身份标识具有唯一性与上述一致,这里主要说明口令复杂度模块。
登录底层系统后,他的口令复杂度配置文件在:
/etc/pam.d/passwd
1)pam_passwdqc模块
是一个简单的密码强度检查模块
以下选项可以传递给身份验证模块:
① min=N0,N1,N2,N3,N4
(min=disabled,24,12,8,7)不同类型的密码/密码短语允许的最小密码长度。关键字disabled可用于禁止给定类型的密码,无论其长度如何。每个后续数字都不得大于前一个。
N0:仅用于由一个字符类中的字符组成的密码。字符类包括:数字、小写字母、大写字母和其他字符。还有一种特殊的非ASCII字符类,但不能分类,但假定为非数字。
N1:用于密码,该密码由不符合密码要求的两个字符类中的字符组成。
N2:用于密码短语,除了满足此长度要求之外,密码短语还必须包含足够数量的单词。
N3、N4用于由三个和四个字符类的字符组成的密码。
在计算字符类别的数量时,不计算用作第一个字符的大写字母和用做最后一个字符的数字。除了足够长之外,还要求密码包含足够多的不同字符,已用于字符类和检查时所依据的最小长度
② max=N [最大=40]
允许的最大密码长度,用于防止用户设置对于某些系统服务而言可能太长的密码。
N=8被特殊对待:max = 8时,长度超过8个字符的密码不会被拒绝,但会被截断为8个字符以进行强度检查,并会警告用户。这是为了兼容传统的DES密码散列,它截断密码为8个字符。
如果使用传统散列,请务必将max=8设置为重要值,否则某些弱密码将通过检查。
③ passphrase=N
密码短语所需的字数,或者以0禁用用户选择对密码短语的支持。如果密码中被识别出了常用的短语,那么最小长度就为必须为N2设置的值,常用单词的最小识别长度为N(由passphrase确定)。
④ match=N、similar=permit|deny
如果发现本次修改的密码跟老密码有4个substring的长度类似,就认为是弱密码。(match=4 similar=deny)
⑤ random=N [,only]
随机生成的密码短语的大小,或以0禁用此功能。
⑥ enforce=none|users|everyone
可以使用该模块配置警告仅限密码,但实际上不强制使用强密码。users代表除root账户。
⑦ retry=N
修改密码可重试的次数,返回密码修改错误
⑧ disable_firstupper_lastdigit_check
默认情况下,对于输入的密码,如果第一个字母是大写字母,或者最后一个字母为数字,则不会计入密码字符的种类。比如:Fuck1234,由于第一个F是大写字母,所以会被认为,该密码只有小写字母和数字两种字符。用disable_firstupper_lastdigit_check 禁止了这种识别。
2)针对图中配置详解
password requisite /lib/security/$ISA/pam_passwdqc.so retry=3 min=disabled,disabled,disabled,7,7
①只包含一种字符的密码,拒绝
②只包含两种字符的密码,拒绝
③拒绝
④只包含三种字符的密码,最小长度7位
⑤只包含四种字符的密码,最小长度为7位
有效的密码应该是由大小写字母、数字和其他字符混合组成。你可以用7个字符长密码,至少包含这4个类中的3个字符。
但以密码开头的大写字母和以结束它的数字,不计入其使用的字符类数(经测试,Zhufuy@1、zhuFuy1密码设置不成功,密码zhuFuy@成功)。
所以VMware ESXI 默认口令复杂度配置大致是这个规则。
另外,不知道是不是我这里环境的问题,如果配置口令最大使用期限,使用ssh首次登录时,它会提示:
它居然强制给你用随机生成的密码?上述hanoi&call5Also就是新生成的口令,可以使用该口令登录系统。
1)登录失败处理功能
在web界面查看:主机→管理→系统→高级设置→对应键值为:Security.AccountLockFailures 、Security.AccountUnlockTime
默认:相同账户登录失败次数达到5次后,锁定该账户900秒。
登录失败次数达到设置阈值后,即使输入正确口令也显示密码不正确
2)操作超时
控制台超时,默认情况下,可在此处查看配置:默认为900秒
也可在高级设置中配置:主机→管理→系统→高级设置→对应键值为:
UserVars.HostClientSessionTimeout
当自主设置过值后,已覆盖会变为true
同时应用程序超时的 √ 会消失
这个只要观察远程管理web界面时,使用的是http还是https
默认采用https
默认为用户名+口令的方式进行身份鉴别
该条现场核查是否采用双因素认证
用户在此添加:主机→管理→安全和用户
如果用户无权相关操作的时候访问会被拒绝,这里我没有授予test账户登录管理的权限。
在主机→权限中添加权限
然后可查看对应角色对应web界面的系统功能
针对这条条款,我们就需要去看他系统中有哪些账户,然后权限是怎样分配的。
主机→管理→安全和用户
查看是否存在root、admin、administrator等易猜解账户。
该条同理, 在主机→管理→安全和用户查看
询问管理人员,确认每个账户用途,是否存在多余、过期账户,确认是否存在多人共用同一账户情况存在,有无共享账户存在。
三权分立原则,实现管理用户的权限分离
一般现场核查,确认是否存在管理员、操作员、审计员等类型账户,如果只有一个超管账户那肯定不符合
授权主体一般为该系统管理员,然后在主机→管理→安全和用户 中查看各用户的权限分配情况,即为授权主体配置的主客体访问控制规则,默认符合
主体为用户,客体一般对应系统菜单权限功能
这里个人给默认符合
主要查看系统是否具有强制访问控制机制,该条默认不符合。
1)审计服务
web界面:主机→管理→服务,对应服务名称为:vmsyslogd,确认状态栏是否为正在运行即可
选中该服务,可对其进行策略配置。(默认情况下,随主机启动和停止,开机自启日志服务)
2)审计内容
具体审计的内容可在:主机→监控→日志中查看
3)日志级别
web界面:主机→管理→系统→高级设置
涉及参数:Config.HostAgent.log.level
默认值为info级别
● 信息等级
同一个服务所产生的信息也是有差别的,有启动时仅通知系统而已的一般信息(information),有出现还不至于影响到正常运行的警告信息(warn),还有系统硬件发生严重错误时,所产生的重大问题信息(error)。基本上,Linux内核的syslog将信息分为8个主要的等级,根据syslog.h定义,信息名称与数值的对应如下:
8 none:不记录
7 debug:用来debug(除错)时产生的数据
6 info:仅是一些基本的信息说明而已
5 notice:虽然是正常信息,但比info还需要被注意到的一些内容
4 warning(warn):警示的信息,可能有问题,但是还不至于影响到某个daemon运行的信息
3 err(error):一些重大的错误信息,例如配置文件的某些设置值造成该服务无法启动的信息说明,通常借由err的错误告知,应该可以了解到该服务无法启动的问题
2 crit:比error还要严重的错误信息,这个crit是临界点(critcal)的缩写,这个错误已经很严重了
1 alert:警告,已经很有问题的等级,比crit还要严重
0 emerg(panic):疼痛等级,意指系统已经几乎要宕机的状态,很严重的错误等级。通常大概只有硬件出问题,导致整个内核无法顺利运行,就会出现这样的等级信息。
个人认为这里至少要设置error及以上等级的策略才算符合,不然光记录crit、alert、emerg等级的事件日志量之类的首先会少,而且不利于排错。
1)查看日志
vmware esxi日志包含事件的日期、时间、主客体标识及结果等基本信息,默认符合
选中相应日志类型,可查看对应日志信息
或右键在新窗口打开查看对应日志信息
2)查看系统当前时间
web界面查看:主机→管理→系统→时间和日期
确认当前时间是否与实际一致,因为当前时钟不对,无法保证日志的准确性
如果有时钟服务器,确认NTP服务是否开启,服务器IP地址是否配置正确。
1)输出到日志服务器
web界面查看:主机→管理→系统→高级设置
涉及参数:Syslog.global.logHost
我们可查看该参数来确认是否配置了收集该系统的日志服务器
输出到日志服务器,也就满足了对审计记录进行保护这条要求。
同时需要确定留存的日志时间,是否达到了法律法规要求(至少六个月),该条在《网络安全等级保护测评高风险判定指引》中有过说明。
这里插播一个小事件:记得有一个用户,他们做了等保,然后出了安全事件,某管理员通过虚拟机的管理平台将所有虚拟机删除,导致数据丢失,系统无法正常运行。不过好像是还好有离线的数据备份,数据这块还能恢复回来,但是这造成的危害也是很大的。当时网警看了下等保报告,说为啥这个虚拟机的管理平台没有作为测评对象,如果权限这块没做好,提出问题就是客户自身没落实到位。所以说该虚拟机管理平台的权限管控还是有需要的,同时也需要对日志进行保护,到时候能溯源,所以虚拟机的管理平台对于等保中的要求也是需要进行一下落实的。
2)日志本地保存
如果日志没有发送至日志服务器,或定期备份,仅本地存储的话,就要去看它本地的轮替策略是否做过
①web界面:主机→管理→系统→高级设置
涉及参数:syslog.global.defaultrotate、syslog.global.defaultsize
syslog.global.defaultrotate代表保留的日志轮替个数,默认为8
syslog.global.defaultsize代表每个日志文件的轮替的大小值,单位为kb,默认为1024
这里就需要确认该日志轮替规则是否能满足日常的业务需求,能否避免审计记录受到未预期的覆盖,同时应用层面任何用户无法删除、修改日志。另外根据高风险判例指引,确认日志留存时间是否达到6个月以上。
②如果用户开启了SSH管理,就能通过SSH登录到底层操作系统,就要考虑操作系统底层的日志文件权限了。
日志服务配置文件:/etc/vmsyslog.conf,参数与web界面的一致
存储在底层系统中的日志文件权限,根据web界面的在/var/log目录下查看:
发现都是做了链接的,查看源文件,权限均为600
所以默认情况下,权限基本是符合的,这里就需要确认日志有无留存到6个月以上即可。
这里我通过web界面root账户(最高权限),无法关闭该服务
然后我登录到操作系统底层,关闭对应的进程,发现他会自启
所以默认情况下,审计进程无法被中断,默认符合
web界面:主机→管理→软件包
默认情况下该版本安装了72项软件包,大部分为驱动程序、管理插件、组件间的支持程序、支持库等。
这里有兴趣的小伙伴可自行查询,每种类型是干嘛用的,一般感觉没人会去动,如果会去动的人,也是懂VMware ESXI了,询问下管理员装了什么即可,一般给默认符合。
1)服务
web界面:主机→管理→服务,查看当前运行的服务
也可在系统底层查看chkconfig --list |grep on
这里一般只看web界面服务的状态,确认运行的服务是否有些不为必要。
2)端口
这边web界面无法直接查看端口情况,这块我们可以通过工具进行端口探测,或者登录到底层操作系统查看
使用命令:
esxcli network ip connection list
这里是有开启防火墙的,很多端口是无法从外部进行访问的,一般默认开放的就22、80、443等。
部分端口说明:
80 web通讯端口
443 vSphere Client、vCenter Server、vSphere Web Access Client等相关组件通信端口
22 SSH服务
① web界面:网络→防火墙规则,可查看相应规则
针对于web管理方式,涉及名称:vSphere Web Client
我们可以点击编辑设置,勾选仅允许从以下网络连接,并输入对应的ip地址
经测试,除31段的地址,其余地址将无法访问该web界面。
② SSH管理
同样也在网络→防火墙规则,可查看相应规则
涉及名称SSH服务器
配置方法与上述相同,经测试仅针对SSH方式管理,web方式访问不受限制。
这条实际操作的话一般就要进行渗透测试了,但一般等保公司不会这么去做,所以最简单的方法就是去网上找一下对应vmware的版本是否有数据校验性的漏洞存在,也有不适用的说法,该条款在应用层面进行核查。
同理,该条也是去寻找已爆出的漏洞,再确认该漏洞是否有进行修补。这个我感觉有点难验证,毕竟大家基本都是安装好了就不会去动它了。一般询问管理员,没有发现存在已知漏洞的手段等,默认不符合。
该条款在操作系统层面核查,个人认为不适用,大多情况下都不会开SSH管理,而且这个为成熟的商业软件,你说去底层的操作系统上安装,感觉有点不切实际,主要操作我们都是通过web界面形式来操作的。
同理该条款在操作系统层面核查,该项不适用。
默认不符合。
涉及的数据:鉴别数据、重要审计数据、重要配置数据
鉴别数据、重要配置数据,传输过程中的完整性一般靠传输协议保证,针对vmware esxi就看他是否使用https协议进行数据传输。
对于重要审计数据,如果采用的是syslog协议是无完整性保护。
涉及的数据:鉴别数据、重要审计数据、重要配置数据
询问管理人员是有对这些数据进行了存储完整性保护,默认不符合。
涉及的数据:鉴别数据
传输过程中还是查看是否使用https协议进行数据传输。
鉴别数据默认存储在/etc/shadow文件中,该版本采用SHA-512算法存储
个人认为该设备为计算资源提供层,无需备份。
要备份的虚拟机资源已在操作系统相关测评对象中进行了说明,我们这里是以一个对象作为整个测评内容的,有些是将数据与系统分开测评,所以写法上可能会有些出入。
该设备为计算资源提供层,无需备份
别数据、重要审计数据、重要配置数据
询问管理人员是有对这些数据进行了存储完整性保护,默认不符合。
涉及的数据:鉴别数据
传输过程中还是查看是否使用https协议进行数据传输。
鉴别数据默认存储在/etc/shadow文件中,该版本采用SHA-512算法存储
[外链图片转存中…(img-dK183TJW-1677028927151)]
个人认为该设备为计算资源提供层,无需备份。
要备份的虚拟机资源已在操作系统相关测评对象中进行了说明,我们这里是以一个对象作为整个测评内容的,有些是将数据与系统分开测评,所以写法上可能会有些出入。
该设备为计算资源提供层,无需备份
这边就要询问管理人员vmware底层是否采用集群、热备方式部署,保证计算资源的高可用。