一、身份鉴别(安全通用要求)

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

/etc/login.defs

 登陆密码有效期为99999天

登陆密码最短修改时间,增加可防止非法用户短期内多次修改登陆密码

登陆密码最小长度为5位

登陆密码过期前7天提示修改

结果记录:

(0.5)

服务器采用账户+口令方式进行身份鉴别,身份标识具有唯一性,没有启用口令复杂度策略,没有设置口令长度,没有设置定期更换口令周期。

问题描述:

服务器没有启用没有启用口令复杂度策略,没有设置口令长度,没有设置定期更换口令周期,外部攻击者可利用口令暴力破解、口令猜解等手段获取弱口令账户的鉴别信息,从而获取服务器的管理权限进行恶意操作。

整改建议:

建议服务器设置口令复杂度,口令必须包含大小写字母、数字、特殊字符,设置口令最小长度为8位,设置定期更换口令周期为90天。

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

测评方法:

(1)、核查文件中SSH远程登陆失败处理功能(/etc/pam.d/sshd  #ssh远程登录处理)

(2)、核查/etc/profile文件中TLMEOUT环境变量是否配置了超时锁定参数(/etc/profile)

/etc/pam.d/sshd  #ssh远程登录处理

 服务器已设置登录失败3次后锁定账户150s,已配置并开启空闲会话超时600s自动退出功能。

结果记录

c)当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听。

服务器远程管理:SSH协议、Telnet协议

Telnet协议是不安全的,因为其在传输过程中账户与密码均为明文。

SSH协议的原理与Telnet协议原理相似,且具有更高的安全性。

SSH是一个运行与传输控制层的应用程序。与Telnet协议相比,SSH协议提供了强大的认证和加密功能,可以保证远程连接过程中传输的数据是经过加密处理的(保证了账户与密码的安全)。

测评方法:

(1)查看是否运行了sshd服务(/etc/pam.d/sshd #ssh远程登录处理)

 符合:(1)

该服务器采用SSH协议进行远程管理,防止鉴别信息在网络传输过程中被监听。

二、访问控制

a)应对登录的用户分配账户和权限。

 /etc/sudoers  #了解那些用户拥有root权限"

测评结果记录

服务器已为登录账户root分配超级管理员权限,但没有限制登录账户的root的管理权限

b)应重命名或删除默认账户,修改默认账户的默认口令。

测评方法:

1、查看文件中的用户,是否存在adm、lp、sync、shutdown、halt、mail、uucp、operator、games、gopher ftp等默认的、无用的用户(查看命令:/etc/shadow)

2、查看root账户是否能够进行远程登陆 

/etc/ssh/sshd_config #禁止root远程登录  应配置PermitRootLogin no

测评结果记录

c)应及时删除或停用多余的、过期的账户,避免共享账户的存在。

服务器不存在多余、过期的账户,无多人共用同一个管理账户情况。

d)应授予管理用户所需的最小权限,实现管理用户的权限分离。

三权分立:安全管理员、系统管理员、审计管理员

/etc/sudoers  #了解那些用户拥有root权限"

三、安全审计

a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计。

Linux系统审计功能有两个,一个是audit,另一个是syslog,audit 主要用来记录安全信息,用于对系统安全事件的追溯;而 syslog 日志系统用来记录系统中的各种信息,如硬件警报和软件日志等。但是 syslog 属于应用层,没办法记录太多信息。audit 来记录内核信息,包括文件的读写,权限的改变等。

两个功能都是相互独立的,谁都不影响谁,我们测评时主要看audit功能,我们可以使用命令:service auditd status,来启动audit功能,命令:auditctl -s,来查看auditd内核模块的状态,其中enabled参数为1代表开启,为0代表关闭,如下图所示:

 

b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息。

开启autid服务后,所有的审计日志会记录在/var/log/audit/audit.log文件中,该文件记录格式是每行以type开头,后边有事件发生的日期和时间,以及事件ID、同一种事件ID一致,用户等各种信息,如下图所示:

 以上图表示符合要求的

c)应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等。

询问管理员是否定期备份,备份策略是啥                                

1、head -20 /var/log/audit/audit.log   #audit的前20条日志
2、tail -n 10 /var/log/audit/audit.log   #audit的后10条日志(查看日志的记录是否满6个月)

四、入侵防范(安全通用要求)

a)应遵循最小安装的原则,仅安装需要的组件和应用程序。

yum list installed  #查看已安装的组件

b)应关闭不需要的系统服务、默认共享和高危端口。

Linux不存在默认共享

系统服务:查看telnet是否开启(不能开启)

                  service telnet status #查看telnet服务

高危端口:查看是否有高危端口(netstat  -ntlp#查看端口号")

 上图没有高危端口

c)应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制。

使用管理员权限的身份登录Linux,查看/etc/hosts.deny与/etc/hosts.allow中,是否有对IP或网段进行限制

d)应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求。

服务器未有能自主设置输入内容格式的通信接口,故此项不适用。

e)应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞。

五、可信验证(安全通用要求)

a)可基于可信根对计算设备的系统引导程序、系统程序、重要配置参数和应用程序等进行可信验证,并在检测到其可信性受到破坏后进行报警,并将验证结果形成审计记录送至安全管理中心。

这个是现阶段没有办法做到的,所有都是不符合

在金融界才有可能做到

五、数据完整性(安全通用要求)

a)应采用校验技术保证重要数据在传输过程中的完整性。

查看是否开启ssh服务(ps -e | grep ssh

 符合:

xxx采用SSH协议进行远程管理,保证重要数据在传输过程中的完整性。

六、数据备份恢复(安全通用要求)

a)应提供重要数据的本地数据备份与恢复功能。

b)应提供异地数据备份功能,利用通信网络将重要数据定时批量传送至备用场地。

七、剩余信息保护(安全通用要求)

a)应保证鉴别信息所在的存储空间被释放或重新分配前得到完全清除。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐