(Tercel) 版本是 银河麒麟 V10 SP1 版本
(Sword) 版本是 银河麒麟 V10 SP2 版本
(Lance) 版本是 银河麒麟 V10 SP3 版本
注:本文实验版本均为 银河麒麟V10 SP1(Tercel)版本,相应的安全配置仅供参考,版本不同配置可能有所差别
命令行界面查看:
由于该系统配置基本基于Linux,一些参数之前Linux文章中有提到,为了节省篇幅,所以本文可能会略过一些参数的解释
一、身份鉴别
a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换
1. 当前实际情况
确认用户在登录过程中是否采用了身份鉴别措施(一般为用户名+口令)确认是否有空口令账户存在 cat /etc/passwd 该文件中各用户的第二字段不为空确认用户当前口令是否具有复杂度,是否定期更换。与linux查看方式相同
按照之前Linux系统默认配置,test本地即可无密登录
麒麟操作系统默认是有做相应的安全加固配置,装机好后,查看 /etc/ssh/sshd_config 文件PermitEmptyPasswords 参数默认为no,无法通过空口令进行ssh登录(ssh空口令登录需开启 PermitEmptyPasswords yes)
或者查看 /etc/shadow 文件该列数值,代表口令最长使用期限
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,尝试配置简单口令无法配置成功。所以麒麟操作系统口令复杂度校验这块默认设置 minclass=3,minlen=8 符合等保要求。
② 新建用户口令最长过期时间
b)应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施
1. 登录失败处理功能
配置文件:/etc/pam.d/password-auth
默认情况下登录失败3次锁定60s,包括所有账户,同时包括本地登录和远程登录
查看sshd文件,第一行可以理解为引用(或者说包含)了名为 password-auth 的PAM文件,就是告诉系统在进行身份认证时需要使用 password-auth 文件中定义的认证模块。所以针对SSH 远程登录失败也生效。