测评前先进行资产的信息收集,查看对应系统的版本
右键我的电脑→属性
一、 身份鉴别
a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换
1. 当前实际情况
确认用户在登录过程中是否采用了身份鉴别措施(一般为用户名+口令)确认是否有空口令账户存在cat /etc/passwd 该文件中各用户的第二字段不为空确认用户当前口令是否具有复杂度,是否定期更换。与linux查看方式相同
按照之前Linux系统默认配置,test本地即可无密登录
但麒麟操作系统默认是有做相应的安全加固配置,装机好后,查看 /etc/ssh/sshd_config文件PermitEmptyPasswords 值默认为 no无法通过空口令进行ssh登录(ssh空口令登录需开启PermitEmptyPasswords yes)
查看口令最后修改日期与口令最长更改日期
chage -l username
2. 操作系统强制策略
① 口令复杂度
配置文件:/etc/security/pwquality.conf
默认情况下已经配置好对应的强制密码复杂度策略
参数说明:
debug:将调试信息写入日志(不懂,不会测试)
type=xxx:当添加/修改密码时,系统给出的省缺提示符是“New UNIX password”以及“Retype UNIX password”,使用该参数可以自定义输入的密码提示符。(如password requisite pam_cracklib.so type=1111111)
retry=N:修改密码可重试的次数,返回密码修改错误
difok=N:新密码必需与旧密码不同的位数
dcredit=N:N >0密码中最多有多少个数字长度加1;
N<0密码中最少有多少个数字
lcredit=N:小写字母的个数
ucredit=N:大写字母的个数
ocredit=N:特殊字母的个数
minclass=N:密码组成(大/小字母,数字,特殊字符)
minlen=N:密码最小长度
在Linux操作系统中,`minclass`是密码复杂度策略的一个参数,用于定义密码中最小要求的字符类别数。字符类别包括大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符(例如 !@#$%^&*())。
当`minclass`被设置为一个正整数值时,这意味着密码必须包含至少该整数值所指定的字符类别数量。例如,如果将`minclass`设置为2,则密码至少需要包含两个不同的字符类别(如数字和大写字母)。
测试minclass=3,尝试配置简单口令无法配置成功
② 口令最长过期时间
配置文件:/etc/login.defs
默认情况下还是99999天
b)应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施
1. 登录失败处理功能
配置文件:/etc/pam.d/password-auth
默认情况下登录失败3次锁定60s,包括所有账户,同时包括本地登录和SSH远程登录
2. 操作超时
图形化桌面:控制面板→电源管理
默认5分钟
ssh 远程管理方式依旧查看TMOUT值
echo $TMOUT 查看是否有相应输出,默认无
c)当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听
netstat -tlnp|more 查看是远程管理方式,确认是否仅使用SSH方式管理
d)应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现
现场核查,一般仅使用用户名+口令或用户名+密钥的方式进行管理。
二、访问控制
a)应对登录的用户分配账户和权限
1. 确定当前账户情况
通过查看/etc/passwd、/etc/shadow、/etc/group文件,查看可登录的普通账户有哪些,以及用户组的情况。
控制面板→ 用户账户 也能查看
2. 确定是否限制root账户权限
配置文件:/etc/ssh/sshd_config
确认PermitRootLogin 是否为no
b)应重命名或删除默认账户,修改默认账户的默认口令
依据28448判定要求,该条满足1或2就可以判断为符合