等保基线核查 ——CentOS7

(一)身份验证

(a)身份标识和鉴别

口令复杂度

1、是否存在空口令账户:
         awk -F: '($2 == "") { print $1 }' /etc/shadow

在/etc/shadow文件中,每行记录包含多个字段,使用冒号作为分隔符。第一个字段是用户名,第二个字段是加密后的密码。如果某一行的第二个字段为空,则意味着该用户没有设置密码。因此,以上命令会输出在/etc/shadow文件中密码为空的用户(即没有设置密码的用户)的用户名。

2、检查/etc/passwd文件,是否存在UID相同的用户

UID用户在注册后,系统会自动的给你一个UID的数值。意思就是给这名用户编个号。若无同名账号且UID具有唯一性,该检查项可满足。

使用文本编辑器(如vi或nano)打开/etc/passwd文件。
sudo vi /etc/passwd
检查每个用户条目的第三个字段(即UID字段)。UID是唯一的用户标识符。
使用grep和cut命令组合来提取并统计重复的UID。
cut -d: -f3 /etc/passwd | sort | uniq -d
该命令首先使用cut命令提取每个用户条目的第三个字段(以冒号为分隔符),然后使用sort将它们排序,最后使用uniq -d命令显示重复的行。
如果输出为空,则表示不存在UID相同的用户。如果输出包含一些行,则表示存在UID相同的用户。


3、检查/etc/security/pwquality.conf文件,查看密码复杂度

        一些重要参数:

retry=N:定义登录/修改密码失败时,可以重试的次数;

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

minlen=N:定义用户密码的最小长度

dcredit=N:定义用户密码中必须包含多少个数字

ucredit=N:定义用户密码中必须包含多少个大写字母

lcredit=N:定义用户密码中必须包含多少个小些字母

ocredit=N:定义用户密码中必须包含多少个特殊字符(除数字、字母之外);

其中 =-1表示,至少有一个。
 

口令有效期

1、检查/etc/login.defs文件

        /etc/login.defs 是设置用户帐号限制的文件。该文件里的配置对root用户无效。/etc/login.defs 文件用于在Linux创建用户时,对用户的一些基本属性做默认设置,例如指定用户 UID 和 GID 的范围,用户的过期时间,密码的最大长度,等等。

PASS_MAX_DAYS 密码有效期
PASS_MIN_DAYS 0表示自上次修改密码以来,最少隔多少天后用户才能再次修改密码,默认值是 0。
PASS_MIN_LEN 5指定密码的最小长度,默认不小于 5 位,但是现在用户登录时验证已经被 PAM 模块取代,所以这个选项并不生效。
PASS_WARN_AGE 7指定在密码到期前多少天,系统就开始通过用户密码即将到期,默认为 7 天。
UID_MIN 500 指定最小 UID 为 500,也就是说,添加用户时,默认 UID 从 500 开始。注意,如果手工指定了一个用户的 UID 是 550,那么下一个创建的用户的 UID 就会从 551 开始,哪怕 500~549 之间的 UID 没有使用。
UID_MAX 60000指定用户最大的 UID 为 60000。

        /etc/login.defs中PASS_MAX_DAYS:90; PASS_MIN_DAYS:2; PASS_MIN_LENS:8;  PASS_WARGE:7;密码长度不小于8位,更换周期限3个月以内。/etc/security/pwquality.conf中出现以下所有设置: password requisite pam_cracklib.so minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1,则判定为符合。


2、检查/etc/pam.d/password-auth和/etc/pam.d/system-auth 

(b)登录失败处理功能

账户锁定策略

1、检查/etc/pam.d/system-auth文件

        关于/etc/pam.d/system-auth,他是密码设置及登陆控制文件位置
Linux中pam模块有四种模块类型它们是:认证管理(auth),账号管理(account),会话管理(session)
密码(password)管理

具体查看文件中关于该策略的配置

2、检查/etc/ssh/sshd_config文件(超时锁定)

        是否有如下参数(X为锁定次数,该参数需要手动添加) account required /lib/securtiy/pamtally.so deny=x no_magic_rootreset;TMOUT= X(X为超时锁定的分钟数)或ClientAliveInterval= X(X为超时锁定秒数)、ClientAliveCountMax =X(X为允许超时次数)

在sshd_config文件中有两个参数,分别是ClientAliveIntervalClientAliveCountMax。根据ClientAliveCountMax的取值是不是0,会有两种效果。当客户端多久没有操作,服务器端就直接断开ssh连接。 

这个“多久”当然就是由ClientAliveInterval的值来决定,它的单位是秒。 比如ClientAliveInterval是600,ClientAliveCountMax是0,则代表着如果600秒内终端没有操作,则断开ssh连接。

关于/etc/ssh/sshd_config文件,可参考该文章SSH配置文件 /etc/ssh/sshd_conf参数详细说明_/etc/ssh/sshd_config-CSDN博客

 在这里另外列举比如SSH安全策略限制用户登陆ip的方法

1)修改/etc/hosts.allow和/etc/hosts.deny 这两个文件,把需要通过的IP写在/etc/hosts.allow 文件里
[root@localhost ~]# cat /etc/hosts.allow 
sshd:192.168.1.11:allow
[root@localhost ~]# cat /etc/hosts.deny 
sshd:ALL
[root@localhost ~]# /etc/init.d/sshd restart     #重启服务使配置生效

2)修改/etc/ssh/sshd_config文件
[root@localhost ~]# cat /etc/ssh/sshd_config 
allowusers ywxi@192.168.1.11
allowusers root@192.168.1.11
denyusers  ywxitest@192.168.1.11
[root@localhost ~]# /etc/init.d/sshd restart     #重启服务使配置生效

会话超时自动退出

查看/etc/profile

访谈并检查是否设置了连接超时功能。查看/etc/profile或cat /etc/sash/sshd_config。

关于centos7超时退出,有两个主要的方式——

1、设置TMOUT方式方式(在/etc/profile、~/.bashrc、~/.bash_profile等文件的最后加入export TMOUT=900语句即可(单位是秒))

关于/etc/profile——是Linux系统中用来设置全局环境变量的脚本文件。其中可以通过设置TMOUT值来实现超时锁定的功能,即当用户在一段时间内没有任何操作时,系统会自动断开用户的连接。可以在/etc/profile中添加如下代码实现超时锁定功能:
TMOUT=600
readonly TMOUT
export TMOUT
上述代码中,TMOUT的值表示用户在600秒(10分钟)内没有任何操作则自动断开连接。将TMOUT设置为readonly,可以避免用户在登录后修改该值,提高系统的安全性。

2、修改sshd_config文件方式文件方式,一般来说,远程对linux服务器进行管理都是通过ssh协议,所以对sshd_config文件进行配置,也是一种方法。

(c)远程管理

加密协议SSH

1、检查系统是否安装SSH rpm -qa|grep ssh

2、检查SSH服务运行状态 service sshd status。如果ssh服务正在运行,则会显示“sshd (pid xxxx) is running…”;如果ssh服务没有运行,则会显示“sshd is stopped”。

ps -e | grep ssh 查看ssh服务有没有运行,如果有,可以看到类似以下内容:

2254 ? 00:00:00 ssh

再看下这个ssh服务的网络连接情况服务的网络连接情况:

root]#netstat -ntlp

如果看到如下内容如果看到如下内容:

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 22109/sshd

这说明sshd已经能够正常工作了

3、检查是否限制root账户远程登录 cat /etc/ssh/sshd_config

搜索root 查看#PermitRootLogin yes还是(PermitRootLogin no),是no的话才是限制远程登陆

(d)鉴别技术

双因子认证

        采用两种或两种以上组合的鉴别技术,如口令、数字证书Ukey、令牌、指纹等,是否有一种鉴别方法在鉴别过程中使用了密码技术。

1、远程管理必须限定为堡垒机。

2、堡垒机采用用户名+口令和手机令牌两种鉴别技术对用户进行身份鉴别。

(二)访问控制

(a) 登录的用户账户和权限

分配账户和权限    

      应核查是否为用户分配了账户和权限及相关设置情况;应核查是否已禁用或限制匿名、默认账户的访问权限。

     检查操作系统所有用户more /etc/shadow,(权限信息以rwx形式表示,分别代表读、写和执行权限。例如,-rw-r----- 表示文件所有者有读写权限,所属组有读权限,其他用户没有任何权限。)询问其用途、类别、并查看权限,已锁定账户所在行第一个和第二个冒号之间的口令字段为"!"或“*”
检查是否存在除root外其他超级管理员账户 awk -F: '($3 == 0) { print $1 }' /etc/passwd
提供用户权限表,多余账户例如uucp、nuucp、lp、adm、shutdown等均已锁定。


用户的umask安全配置

#more /etc/profile
#more /etc/csh.login
#more /etc/csh.cshrc
#more /etc/bashrc,检查是否包含 umask 值
umask值代表的不同权限可参考该文章linux权限rw对应值,linux系统umask值及其对应的文件权限_AWS云计算的博客-CSDN博客

(b) 默认账户多余的、(c)过期的账户,共享账户    

1、要求:应检查是否已经重命名默认账户或默认账户已被删除;
                应核查是否已修改默认账户的默认口令。
                应核查是否不存在多余或过期账户,答理员用户与账户之间是否一一对应;
                应测试验证多余的、过期的账户是否被删除或停用。

2、根据命令/etc/shadow显示的可用账号与用户权限表进行比对,结合操作运维记录校对管理员用户与账户之间的对应关系。
根据etc/shadow显示,已锁定账户所在行第一个和第二个冒号之间的口令字段为“!”或“*"。

(d)管理用户所需的最小权限

三权分立

        1、要求符合:必须建立几类用户:管理员、审计员(审计管理员使用蓝鲸系统与日志易系统进行安全审计)、操作员,必须有各个用户权限分配表;部分符合:分类建立了用户,但无权限表则部分符合或者建立了用户权限表和实际情况不一致。不符合:只有一个管理员用户,则不符合。

        2、查看ls -l /etc/passwd,查看所有用户及权限。
是否建立管理员、操作员、审计员三种权限的账号。

  (e)主体配置访问控制策略,访问控制策略

1、要求:应核查是否由授权主体(如管理用户)负责配置访间控制策略;
     应核查授权主体是否依据安全策略配置了主体对客体的访问规则;
     应测试验证用户是否有可越权访问情形。

2、检查操作系统所有用户more /etc/shadow
     检查运维日志中新建账号是否为管理员创建并由管理员分配相关权限。
    访问控制的颗粒度是否达到主体为用户级或进程级,客体为文件、数据库表、记录和字段级。
    测试系统是否禁用sudo等提权操作。more /etc/sudoers

(f)访问控制的粒度

1、要求:访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级
应核查访问控拉制策路的控制粒度是否达到主体为用户级或进程级,客体为文件、数据库表、记录或字段级。
2、根据安全策略进行核查,控制粒度是否达到主体为用户级或进程级,客体为文件、数据库表、记录或字段级。

(g)重要主体和客体安全标记

1、要求:应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问。应核查是否对主体、客体设置了安全标记;应测试验证是否依据主体、客体安全标记控制主体对客体访问的强制访问控制策略。

2、验证是否在主体和客体可见安全标记。验证主体、客体安全标记控制主体对客体访问的强制访问控制策略是否生效。

(三)安全审计

(a)安全审计功能

1、要求:

应检查是否开启了安全审计功能;
应检查安全审计范围是否覆盖到每个用户;
应检查是否对重要用户的用户行为和重要安全事件进行审计。

2、检查审计进程(auditd/rsyslog)状态——service auditd status auditd、service rsyslog status rsyslogd
第三方日志审计工具(日志易)实现对用户的全覆盖,主要针对用户操作行为审计。
auditd/rsyslog处于running状态。
第三方日志审计工具(日志易)实现对用户的全覆盖,主要针对用户操作行为审计。

(b)审计记录要求

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

2、输入cat /etc/rsyslog.conf
输入auditctl -s查看audit运行状态
输入auditctl -l查看audit运行规则
检查/etc/audit/rules.d/audit.rules和/etc/audit/audit.rules 文件
rsyslog.conf当中应具备以下值:
*info;
mail.none;
news.none;
authpriv.none;
cron.none/var/log/messages;
AUDIT_STATUS:enabled=1....

(c)审计记录保护

1、  应检查是否采取了保护措施对审计记录进行保护;
        应检查是否采取技术措施对审计记录进行定期备份,并核查起备份策略。
        设置审计管理员对审计记录进行保护,如果日志数据本地保存,则检查审计记录备份周期,有无异地备份。
        若部署有日志服务器或第三方日志审计设备,安装日志易探针,并同步到日志易服务器,在日志易系统中可查询,日志易日志留存180天以上。可查看存储路径及审计策略。
2、/etc/rsyslog.conf文件中以下配置以实现日志文件分隔备份或者远程服务器日志备份
        日志文件分隔备份
        log_format = RAW
        num_logs = 5
        max_log_file = 8
        max_log_file_action = ROTATE
        disk_full_action = SUSPEND

关于/etc/rsyslog.conf文件可参考日志—日志存放位置的相关文件介绍——SyslogFacility—日志等级介绍—配置文件 /etc/rsyslog.conf 的语法—日志轮转等详解-CSDN博客

简单来说如mail.info 代表只要是 mail 的信息,而且该信息等级严重于info(包括info),就会记录下来 

(d)审计进程保护

1、要求:应对审计进程进行保护,防止未经授权的中断。
不存在除root其他超级管理员账户。
审计保护进程(auditd/rsyslog)运行正常

2、检查权限表,仅有一个超级管理员,awk -F: ‘($3 == 0){print $1}’ /etc/passwd
检查审计保护进程(auditd/rsyslog)状态service auditd status auditd、service rsyslog status rsyslogd

(四)入侵防范

应用系统无该项要求

(a)最小安装原则

检查已安装的组件和应用程序 yum list installed

(b)关闭不需要的服务和端口

查看所有已运行的服务和状态systemctl list-unit-files

(c)对通过网络进行管理的管理终端进行限制  

登录操作系统必须限定为堡垒机
堡垒机限定在运维专网登录

(d)能发现并及时修补漏洞

对操作系统进行漏洞扫描,对扫描发现的漏洞进行评估和补丁更新测试。

通过漏洞扫描、渗透测试等方式核查是否存在高风险漏洞;核查是否在经过充分测试评估后及时修补漏洞。

(e)保证输入内容符合要求

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

1、检查系统是否在数据输入界面对无效或非法数据进行检验,如注册用户时是否可以以‘—’,or 1=1 等作为用户名,传送给服务器的参数(如查询关键字、url中的参数等) 中包含特殊字符 (,or1'='1,'and 1=1 --,' and 1=0 -or 1=0 --) 时是否可以正常处理;
2、除特殊字符校验外,还应添加对数据有效性的校验,如尝试输入长度不符合要求,只允许输入数字的地方输入字母等查看系统反应;
3、检查系统返回的错误信息中是否含有sql语句、sql错误信息以及web服务器的绝对路径等;
4.若系统有上传功能,尝试上传与服务器端语言 (jsp、asp、php)样扩展名的文件或exe等可执行文件后,确认在服务器端是否可直接运行。
测评对象:
业务应用系统中间件和系统管理软件及系统设计文档等。

(f)能检测入侵并及时报警

网络中部署流量深度安全分析平台、入侵防御系统IPS。(适用于二级及以上系统)

(五)恶意代码防范

(a)有效阻断病毒和入侵

应采用免受恶意代码攻击的技术措施或主动免疫可信验证机制及时识别入侵和病毒行为,并将其有效阻断
要求:安装有网络版杀毒软件,病毒库最新。
           网络防病毒软件和主机防病毒软件异构,分别采用不同的病毒库。
          发现病毒入侵行为时能够有效阻断并报警。
          操作系统已安装赛门铁克杀毒软件。
          杀毒软件功能完整。
          病毒库更新至最新,能够识别入侵和病毒行为。

(六)可信验证

CentOS操作系统无法实现

(七)数据完整性

CentOS操作系统通过远程管理工具采用SSH 协议进行远程管理,能够保证重要数据在传输过程中的完整性。

CentOS操作系统采用加密算法对口令进行加密,可保证重要数据在存储过程中的完整性。

(八)数据保密性

操作系统通过远程管理工具采用SSH 协议进行远程管理,能够保证重要数据在传输过程中的完整性。

操作系统采用加密算法对口令进行加密,可保证重要数据在存储过程中的保密性。

(九)数据备份恢复

(a)本地数据备份与恢复

1、要求:部署有数据库、应用系统的服务器:对数据库数据、业务应用数据和配置数据进行本地备份,服务器资源录入配置管理系统中,备份策略合理并按需提供数据恢复测试计划和记录。
未部署数据库的服务器:对配置数据进行本地备份,服务器资源录入配置管理系统中,备份策略合理并按需提供数据恢复测试计划和记录。

2、  应访谈网络管理员,询问是否对网络设备中的配置文件进行备份,备份策略是什么;完全数据备份是否每天一次,备份介质是否场外存放; 当其受到破坏时,恢复策略是什么;
        应访谈系统管理员,询问是否对操作系统中的重要信息进行备份,备份策略是什么;完全数据备份是否每天一次,备份介质是否场外存放;当其受到破坏时,恢复策略是什么;
        应访谈数据库管理员,询问是否对数据库管理系统中的主要数据进行备份,备份策略是什么;完全数据备份是否每天-次,备份介质是否场外存放;当其受到破坏时,恢复策略是什么;
        应访谈安全管理员,询问是否对应用系统中的应用程序进行备份,备份策略是什么: 当其受到破坏时,恢复策略是什么;完全数据备份是否每天一次,备份介质是否场外存放;
        应检查设计/验收文档,查看其是否有关于主要主机操作系统、网络设备操作系统、数据库管理系统和应用系统配置有本地数据备份和恢复功能及策略的描述;
        应检查主要主机操作系统、主要网络设备、主要数据库管理系统和主要应用系统,查看其是否提供备份和恢复功能其配置是否正确,并且查看其备份结果是否与备份策略一致。

(b)异地备份

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

1、要求:对数据库数据、业务应用数据进行异地备份,数据不允许备份在同一个数据中心,备份策略合理并按需提供数据恢复测试记录。(同城异地备份需超过30公里)

2、   应访谈网络管理员,询问是否对网络设备中的配置文件提供实时异地数据备份功能;
        应访谈系统管理员,询问是否对操作系统中的重要信息提供实时异地数据备份功能;
        应访谈数据库管理员,询问是否对数据库管理系统中的主要数据提供实时异地数据备份功能;应访谈安全管理员,询问是否对应用系统中的应用程序提供实时异地数据备份功能;
        应检查设计/验收文档,查看其是否有关于主要主机操作系统、网络设备操作系统、数据库管理系统和应用系统配置有实时异地数据备份和恢复功能及策略的描述;
        应检查主要主机操作系统、主要网络设备、主要数据库管理系统和主要应用系统,查看其是否提供实时异地备份和恢复功能,其配置是否正确,并目查看其备份结果是否与备份策略一致。
测评对象:配置数据和业务数据。

(c)系统的高可用

应提供重要数据处理系统的热冗余,保证系统的高可用性。

1、要求:系统部署方式采用热备方式。
2、应核查重要数据处理系统(包括边界路由器 边界防火墙、核心交换机、应用服务器和数据库服务器等)是否采用热冗余方式部署。
应访谈网络管理员,询问是否提供主要网络设备、通信线路的热冗余;
应访谈系统管理员,询问是否提供主要服务器的热冗余;
应检查主要网络设备、主要通信线路和主要数据处理系统是否采用热冗余等技术手段提供系统的高可用性。
测评对象:重要数据处理系统

(十)剩余信息保护

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

Linux操作系统默认符合。

(b)应保证存有敏感数据的存储空间被释放或重新分配前得到完全清除

检查历史记录保存数量echo $HISTSIZE/echo $HISTFILESIZE

1、检查设计文档,是否有涉及剩余信息保护的内容,如内存释放、文件完全删除等;
2、测试应用系统,用某用户登录系统并进行操作,在该用户退出后用另一用户登录,试图操作 (读取、修改或删除等)其他用户产生的文件、目录和数据库记录等资源,查看是否成功,验证系统提供的剩余信息保护功能是否正确 (确保系统内文件、目录和数据库记录等资源所在的存储空间被释放或重新分配给其他用户前得到完全清除);
3、检查用户退出应用系统 (正常退出和非强制关闭)后应用系统和操作系统临时文件 (IE临时文件目录、用户cookies目录、temp目录等) 中是否有残留的用户敏感信息(如网上银行访问后在IE临时目录里可以找到查询资金余额页面的相关敏感信息);
4.如果有下载与个人信息相关文件的页面,点击在线查看操作 (非下载到本地),关闭退出后到临时目录下查看是否存在该文件。
测评对象:
终端和服务器等设备中的操作系统、业务应用系统、数据库管理系统、中间件和系统管理软件及系统设计文档等。

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值