一、身份鉴别

a) 应对登录的用户进行身份标识和鉴别,身份标识具有唯一性, 身份鉴别信息具有复杂度要求并定期更换;

1)应核查用户在登录时是否采用了身份鉴别措施;

2)应核查用户列表确认用户身份标识是否具有唯一性;

cat /etc/passwd,//查看命令结果,第三字段不存在相同数字、用户名不存在相同名

*第一个段用户名;第二个段密码标志;第三个字段用户ID(0代表超级用户);第四个字段用户组ID;第五个字段用户字段说明;第六个字段用户根目录;第七个字段用户的命令解释器

*Linux用户分为三种:超级用户(root,UID=0)、普通用户(UID 500-60000)、伪用户(UID 1-499)

3)应核查用户配置信息或测试验证是否不存在空口令用户;

/*以:为分隔,检查第二个字段是否为空,然后输出第二个字段为空的行*/

cat /etc/shadow | awk -F: ‘($2 == “” ) { print $1}’

cat /etc/shadow

①用户名
②加密的密码:*代表帐号被锁定;!!表示这个密码已经过期。
$1$ 表明是用MD5加密的;
$2$ 是用Blowfish加密的;
$5$ 是用 SHA-256加密的;
$6$开头表明用SHA-512加密的;
③上次更改密码的日期:表示的是从某个时刻起,到用户最后一次修改口令时的天数,时间起点对不同的系统可能不一样(参考1970年1月1日)。

时间计算命令:date -u -d “1970-01-01 UTC $((第三字段数据*86400 )) seconds”
④最短密码期限(按天计算,0 = 无最短期限), 两次修改口令之间所需的最小天数。
⑤最长密码期限(按天计算), 口令保持有效的最大天数
⑥密码警告期限(按天计算,0 = 未指定警告)
⑦密码非活动期限(按天计算),表示的是用户没有登录活动但账号仍能保持有效的最大天数
⑧账号到期时间: 相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了

⑨ 预留字段

4)应核查用户鉴别信息是否具有复杂度要求;

cat/etc/login.defs查看命令结果是否有设置密码长度,天数

 // 查看命令结果是否有设置密码长度,复杂度。

PASS_MIN_DAYS(密码有效期的最小天数,默认值0)

PASS_MAX_DAYS(密码有效期的最大天数,默认值99999)

PASS_WARN_AGE(提前多少天警告用户口令将过期,默认值7)

PASS_MIN_LEN   (口令最小长度,默认值5,但是现在用户登录时验证已经被 PAM 模块取代,所以这个选项并不生效)

其中前三项设置也可以通过shadow文件的第4、5、6字段体现出来;由于login.defs对root账户无效,因此如果仅以root账户进管理,应记录/etc/shadow的设置,即shadow的配置优先级高于login.defs。

/*Login.defs仅适用于策略更改后的新建账户,老账户不受影响*/

more/etc/pam.d/system-auth

pam_cracklib.so或pam_pwquality.so

retry=5(尝试登录次数)

authtok_type= difok=3定义新密码中必须有几个字符要与旧密码不同。但是如果新密码中有1/2以上的字符与旧密码不同时,该新密码将被接受;

minlen=7(密码长度)

ucreddir=-1 (最少包含一个大写字母)

lcredit=-3 (最少有三个小写字母)

dcredit=-3 (最少有三个数字)

/etc/login.defs (登录程序的配置文件)配置的最短口令位数dictpath=/path/to/dict 启用弱口令检查字典dict enforce_for_root 确保即使是root用户设置密码,也应强制执行复杂性策略。

cat /etc/security/pwquality.conf

5、应核查用户鉴别信息是否定期更换。

上次修改密码时间:chage -l bin

date -u -d “1970-01-01 UTC $((第三字段 * 86400)) seconds”

b测评要求:应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施。

1.本地tty登录,这里是使用login命令,所以从而调用/etc/pam.d/login配置文件,最终调用底层的组件进行密码验证等;

2.本地图形化界面,比如我用gdm,那么我在图形化登录界面时,就会调用/etc/pam.d/gdm配置文件;

3.ssh远程登录,就会调用/etc/pam.d/sshd配置文件

分别查看etc/pam.d/system-auth和etc/pam.d/ password-auth(pam_tally2.so要在pam_unix.so之前,在centos8中被pam_faillock.so代替)

auth required pam_tally2.so onerr=fail deny=5 unlock_time=300 even_deny_root root_unlock_time=600

deny尝试登录次数

time锁定时间(秒)

even_deny root  (锁定root账户)

2、应核查是否配置并启用了登录连续超时及自动退出功能。

本地登录超时:

查看etc/profile全局配置,是否配置TMOUT策略

cat /home/用户名/.bash_profile |grep TMOUT(优先级高)策略设置

远程登录超时:
查看/etc/ssh/sshd_config
 ClientAliveInterval 0 (客户端请求消息的间隔单位为秒,默认为0,不发送)
ClientAliveCountMax 3(客户端响应的次数达到一定值, 就自动断开)
c 测评要求:当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听。

1、查看相关服务:netstat -an| grep telnet,netstat -an | grep ftp, netstat -an | grep ssh

2、查看相关端口:21、22、23

d) 应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别, 且其中一种鉴别技术至少应使用密码技术来实现。

1)应核查是否采用口令、数字证书、生物技术和设备指纹等两种或两种以上组合的鉴别技术对用户身份进行鉴别;

2)应核查其中一种鉴别技术是否使用密码技术来实现

询问管理员,除了输入密码登录还有什么方式能够进行身份鉴别,这个方法有没有采用密码技术。

如数字证书key,令牌,指纹等。

二、访问控制

a 测评要求:应对登录的用户分配账户和权限。

1)应核查是否为用户分配了账户和权限及相关设置情况。

查看Umask的数值,umask=0022

若创建“文件”,默认是没有可执行(x)权限的,所以只有r、w这两个选项,也就是最大为666,权限为 -rw-rw-rw-。

若创建“目录”,则由于可执行(x)权限和是否可以进入此目录有关,因此默认为所有权限开放,即为777,权限为drwx-rwx-rwx

预设权限 = 最大权限 – 预设值

– 新建文件时:(-rw-rw-rw-)-(—–w–w-)===>-rw-r–r–

– 新建目录时:(drwxrwxrwx)-(d—-w–w-)===>drwx r-x r-x

Linux文件一般分为三种:owner(拥有者)、group(所属组)、others(其他)。要求目录/可执行文件的默认权限不大于750,配置文件的默认权限不大于644,(r读-4、w写-2、x执行-1)

a 测评要求:应对登录的用户分配账户和权限。

2、应核查是否已禁用或限制匿名、默认账户的访问权限;

cat /etc/shadow

cat/etc/group 查看组的配置

3、查看文件的权限合理性。

ls -l /etc/passwd、ls -l /etc/shadow、ls -l /etc/profile

b 测评要求:应重命名或删除默认账户,修改默认账户的默认口令。

1)应核查是否已经重命名默认账户或默认账户已被删除;

核查是否已修改默认账户的默认口令;

查看etc/shadow文件。

2、查看root账户能否远程登录;

 查看(/etc/ssh/sshd_config),root用户是否被禁止远程登录,应该为  PermitRootLogin NO

-c 测评要求:应及时删除或停用多余的、过期的账户、避免共享账户的存在。

1、应核查是否不存在多余或过期账户,管理员用户与账户之间是否一一对应;

/etc/shadow、/etc/passwd

 检查是否存在多余、过期的用户,是否一人一号登录系统

-d 测评要求:应授予管理用户所需的最小权限,实现管理用户的权限分离。

1、应核查是否进行角色划分;

询问管理员是否建立了,系统管理员、安全管理员、审计管理员账户,核查管理用户权限是否分离,查看etc/passwd是否有除root账户外的第三个字段是0。

2、应核查管理用户权限是否为其工作任务所需的最小权限。

Cat /etc/sudoers,查看su 权限分配给了哪些组

3、查看etc/pam.d/su 文件下的配置是否被注释掉,验证su root是否被拒绝

4、有开启etc/pam.d/su配置,就要查看查看wheel组的用户,cat/etc/group |grep wheel

有哪一些用户

Leave a Reply