一、身份鉴别
该控制点下有四个检测项,分别是:
控制点 | 测评项 | 测评要点 | 高风险判定 |
身份鉴别 | [重要]a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换; | 1、身份鉴别方式 2、用户身份标识具有唯一性,Linux操作系统以UID做为用户身份标识,具有唯一性。 3、是否存在空口令账户。 4、是否配置口令复杂度策略。 5、是否配置口令定期更换策略。 6、当前口令组成。 |
存在弱口令或相同口令(二级及以上系统) |
[重要]b)应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施; | 1、是否配置登录失败处理策略。 2、是否配置登录连接超时策略。 |
||
[关键]c)当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听; | 是否开启SSH协议。 | 鉴别信息防窃听措施缺失(二级及以上系统) | |
[关键]d)应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现。 | 是否采用双因子鉴别的方式。 | 未采用多种身份鉴别技术(三级及以上系统) |
身份鉴别A
[重要]a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换;
【检查方法】
1、身份鉴别方式:
询问管理员,了解系统是否已设置密码,核查登录过程中系统账户是否使用密码进行验证登录,如果服务器使用堡垒机进行登录也要描述服务器本身身份鉴别方式;
2、身份标识唯一性:
Linux以用户UID做为身份唯一标识,Linux默认符合;
3、是否存在空口令账户:
通过执行命令“more /etc/passwd”检查用户状态,通过命令“more /etc/shadow”查看是否为空口令;
- /etc/passwd文件:Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。每行记录又被冒号(:)分隔为7个字段。
用户名:口令(由于该文件对所有用户可读,出于安全性考虑,这里的口令字段仅用占位符表示,而真正的口令字段存放在/etc/shadow文件中):用户标识号:组标识号:注释性描述:主目录:登录Shell(nologin相当于禁用账户)。
[root@JingNan Gu ~]# more /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin ==>表示该用户无法登录进shell,相当于禁止用户登录
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
每个用户名所对应的口令字段均有占位符“X”,因此可以判定不存在空口令账户
- /etc/shadow文件:/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生,它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用":"隔开。
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
[root@JingNan Gu ~]# more /etc/shadow
root:$6$yWyFGZy26VecnzaI$Rg42MnByStRJBqofxLJ3TJd9lTK2WlJ6OImHZ32AAKVgqganE5YnxDPx1Q3ZH8kRYfV3w9qNJPfbaSMoa1Zx3.::0:99999:7:::
bin:*:18353:0:99999:7:::
daemon:*:18353:0:99999:7:::
adm:*:18353:0:99999:7:::
lp:*:18353:0:99999:7:::
root账户口令已加密
4、是否配置口令复杂度策略:
通过执行命令“more /etc/pam.d/system-auth”检查,/etc/pam.d/system-auth优先级高于/etc/login.defs。口令应至少8位包含数字、大小写字母和特殊字符。
[root@localhost ~]# more/etc/pam.d/system-auth ===> 密码长度和复杂度规则
password requisite password requisite pam_cracklib.so retry=5 difok=3 minlen=8 dcredit=-3 ucredit=-2 lcredit=-4 ocredit=-1 dictpath=/usr/share/cracklib/pw_dict
retry=5 # 修改密码,可以重试的次数
difok=3 # 与旧密码不同的字符个数
minlen=8 # 新密码最小长度
dcredit=-3 # 数字个数。大于0,最多;小于0,最少
ucredit=-2 # 大写字母个数。大于0,最多;小于0,最少
lcredit=-4 # 小写字母个数。大于0,最多;小于0,最少
ocredit=-1 # 特殊字符个数。大于0,最多;小于0,最少
5、是否配置口令定期更换策略:
通过执行命令“more /etc/login.defs”检查。口令有效期应不大于90天。
[root@localhost ~]# more /etc/login.defs ====> 密码长度和定期更换规则
PASS_MAX_DAYS 90 ===> 密码有效期为90天
PASS_MIN_DAYS 0 ===> 密码最短修改时间,增加可以防止非法用户短期内多次修改登录密码
PASS_MIN_LEN 7 ===> 密码最小长度为7位
PASS_WARN_AGE 7 ===> 密码过期前7天提示修改
6、当前口令组成描述:如:当前口令8位以上,包含数字大小写字母和特殊字符。
以上6点都符合,该测评项可以给符合,否则部分符合。
身份鉴别B
[重要]b)应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施;
【检查方法】
1、登录失败
- 本地登录失败处理策略:使用“cat /etc/pam.d/system-auth”,核查文件中的pam_tally2.so模块信息。
[root@localhost ~]# more /etc/pam.d/system-auth
auth required pam_lly2.so onerr=fail deny=5 unlock_time=300 even_deny_root root_unlock_time=10
- 远程登录失败处理策略:使用“cat/etc/pam.d/sshd” ,核查pam_tally2.so模块信息。
[root@localhost ~]# more /etc/pam.d/sshd
auth required pam_lly2.so onerr=fail deny=5 unlock_time=300 even_deny_root root_unlock_time=10
2、登录连接超时
使用“cat /etc/profile”,查看是否有TMOUT参数
[root@localhost ~]# more /etc/profile
==> 是否有类似TIMEOUT=300s参数
身份鉴别C
[关键]c)当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听;
【检查方法】
1、记录远程管理方式,
1)询问管理员,采取何种方式进行远程管理.以root身份登录操作系统.查看是否运行sshd服务,相关端口是否已经打开,诺未使用ssh远程管理,则查看是否使用了telent协议进行远程管理(telnet默认不符合)
[root@localhost ~]# service -status-all | grep sshd ==> 查看是否运行sshd服务
[root@localhost ~]# netstat -an | grep 22 ===> 查看相关端口是否已经打开
[root@localhost ~]# service --status-all | grep running ==> 若未使用ssh协议,查看是否使用了telnet协议进行远程管理