食用说明

(建议使用pc端进行查看)
框中"> xxxxxx"表示为应包含如下配置或者参数配置,例:

cat /etc/login.defs  
	> PASS_MAX_DAYS   90    # 密码最大天数
 	> PASS_MIN_DAYS 1 	  # 密码最小天数
 	> PASS_MIN_LEN    8 	# 密码最小长度
 	> PASS_WARN_AGE 7 	  # 密码提前多少天提醒

即表示,

没有带">"符号的,表示要执行的命令或操作

这里执行的命令就是

cat /etc/login.defs

/etc/login.defs文件应该包含如下配置信息

PASS_MAX_DAYS 90

PASS_MIN_DAYS 1

PASS_MIN_LEN 8

PASS_WARN_AGE 7

“#” 表示为注释,一般用于对参数的解释

身份鉴别

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

(高风险项)

  1. 能登录的用户均已设置密码
  2. 用户名和uid唯一
  3. 密码长度及有效期参数,在/etc/login.defs中
  4. 密码复杂度
  1. 查看能登录的用户&用户名和uid唯一:
    (一般为符合)

cat /etc/passwd # 如果结尾是nologin或者其他halt,sync等都是不能登录的,只有是/bin/bash、/bin/zsh、/bin/sh才是能登录的

格式如下:

username:password:UID:GID:GECOS:home_directory:shell

只要最后一个shell参数不是正常的shell配置,就是无法登录,password默认为X,GECOS标识为用户名全程

  1. 查看用户是否设置密码
    (一般为符合)

cat /etc/shadow # password_hash为*或者!!,用户无法用账号密码登录系统username:password_hash:last_password_change:minimum_password_age:maximum_password_age:password_warning_period:password_inactive_period:account_expiry_date:reserved_field

username:password_hash:last_password_change:minimum_password_age:maximum_password_age:password_warning_period:password_inactive_period:account_expiry_date:reserved_field

用户名:密码哈希:最后一次密码更改:最小密码年龄:最大密码年龄:密码警告周期:密码非活动周期:帐户到期日期:保留字段

  1. 查看密码策略
    (一般为不符合)

cat /etc/login.defs > PASS_MAX_DAYS 90 > PASS_MIN_DAYS 1 > PASS_MIN_LEN 8 > PASS_WARN_AGE 7a) cat /etc/pam.d/system-auth > password requisite pam_cracklib.so minlen=8 ucredit= -1、lcredit=-1、dcredit=-1、 ocredit=-1 enforce_for_root

b) cat /etc/pam.d/system-auth > password requisite pam_pwquality.so try_first_pass local_users_only retry=3 enforce_for_root #对root用户强制生效 cat /etc/security/pwquality.conf > difok=5 # 不允许N个字符与旧密码相同; > minlen=8 > dcredit=N #取值-1表示至少有一个数字 > ucredit=N #取值-1表示至少有一个大写字母; > lcredit=N #取值-1表示至少有一个小写字母; > ocredit=N # 取值-1表示至少有一个特殊字符; > minclass=3 # 至少为3类

a)和b)二选其一检查,这是由于启用的pam模块的不同,所以检查的方式也就不一样

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

  1. 查看登录失败处理策略
  2. 查看连接超时自动退出策略
  1. 登录失败处理策略
    (一般是没有配置的)

cat /etc/pam.d/system-auth > auth required pam_tally2.so deny=5 unlock_time=300 even_dney_root root_unlock_time=300

  1. 查看连接超时自动退出策略
    (一般是没有配置的)

cat /etc/profile > export TMOUT=300

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

  1. 是否启用加密协议,一般为ssh,telnet默认不符合
  2. 通过抓包查看是否加密
  3. 如果采用本地管理则默认符合
  1. 访谈管理员
  2. 使用root账号登录,查看使用启用ssh方式进行远程管理(一般为符合)

systemctl list-units --type=service | grep active

  1. 使用wireshark等抓包工具,如果截取信息为密码,无法读取,协议为加密,则符合

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

  1. 访问管理员是否采用两种或两种以上的鉴别技术对用户进行身份鉴别
  2. 是否采用密码技术

这一项一般为不符合的,由于此项是高风险,一般根据补偿措施来降风险

linux的登录密码默认采用SHA256的加密方式

访问控制

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

  1. 查看能登录的用户
  2. 能登录的用户是否采用了密码

和身份鉴别的a)项一样,查看/etc/shadow和/etc/passwd文件

cat /etc/passwd # 如果结尾是nologin或者其他halt,sync等都是不能登录的,只有是/bin/bash、/bin/zsh、/bin/sh才是能登录的cat /etc/shadow # password_hash为*或者!!,用户无法用账号密码登录系统

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

  1. 不存在默认无用的账户
  2. 已修改默认账户的默认口令

/etc/shadow文件是否存在adm、ip、sync、 shutdown、 halt、mail、uucp、operator、games、gopher、ftp、daemon(可不选)等默认的、无用的用户

应核查默认账户的默认口令是否已修改,修改后的密码是否符合密码复杂度策略(一般是root账户)

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

  1. 禁用或删除不需要的系统默认账户,如games、news、 ftp、 1p、halt、shutdown等
  2. 各类管理员均使用自己分配的特定权限账户登录,不存在多余、过期账户

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

  1. 各用户均具备最小权限,不与其他用户权限交叉。设备下可支持新建多用户角色功能
  2. 管理员权限仅分配root用户

例:

系统设置了超级管理员账户root,审计员账户audadmin,安全管理员secadmin,系统管理员sysadmin,网络管理员netadmin,操作员账户XXX等;管理员权限仅授予root账户,其他账户权限设置最小化,实现了管理账户权限分离

e) 应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则

  1. 由专门的安全员负责对访问控制权限的授权工作
  2. 各账户权限配置,均是基于安全员的安全策略配置进行的访问控制

一般由root用户进行授权,典型语句

chown ownername:groupname file_or_directory #文件所有者为特定用户 chmod 644 file_or_directory # 给这个文件授权

举个例子,审计组auditgroup中存在审计管理员auditadmin,日志文件log只有审计管理auditamdin进行修改和查看的操作,其他用户只有查看的操作,就应该如此进行授权

chown auditadmin:auditgroup log chmod 644 log

冒号的前后可以只填某一项:如下

chown :auditgroup log chmod 644 log

f) 访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级

  1. 一般该项默认符合

重要配置文件/etc/shadow、/etc/profile、/etc/passwd、/etc/group、/etc/security的权限设置合理,权限均不超过644。

ls -l filename # 或 ll filename # --------------------- # 例 ls -l /etc/shadow #或 ll /etc/shadow

g) 应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问

  1. centos7.9默认开启SElinux(SElinux三种模式,disable、permissive、enforce)

disable:关闭模式,SElinux不启用

permissive:宽容模式,违反SElinux规则的行为只会记录,不会阻止该行为

enforce:强制模式,违反的行为,将会被记录,同时阻止其行为

一般使用如下命令进行查看

getenforce #或 cat /etc/selinux/config #查看SELINUX的值是什么

安全审计

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

  1. 是否开启系统审计进程
  2. 是否有第三方审计工具,第三方审计工具是否开启
  3. 是否对重要用户的重要事件进行审计(例如使用root进行rm -rf / 操作)
  1. 是否开启审计进程

ps -ef | grep auditd #查看进程是否开启 auditctl -s # enabled 1 表示开启 systemctl status rsyslog #rsyslog是以审计日志的守护进程

  1. centos7服务器默认开启守护进程
  2. audit.rules种记录对文件和底层掉用的相关记录,记录的安全事件较为全面
    一下的代码只是举个例子,可根据实际情况进行配置

more /etc/audit/audit.rules > # 监视sysconfig > -w /etc/sysconfig -p rwxa > # 监视审计配置文件 > -w /etc/rsyslog.conf -p rwxa > -w /etc/audit/audit.rules -p rwxa > -w /etc/audit/auditd.conf -p rwxa ># 监视密码文件 > -w /etc/group -p wa > -w /etc/passwd -p wa > -w /etc/shadow -p rwxa > # 监视环境文件 > -w /etc/profile -p wa > -w /etc/bashrc -p wa 用法: -w filename -p 【权限】 -w: 是用于创建文件或目录监视规则的选项 -p: 要审计的系统调用操作的类型 r: 读操作(read) w: 写操作(wirte) x: 执行操作 (execute) a: 文件属性 (attribute)

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

  1. 审计记录应包括事件的日期、时间、类型、主体标识、客体标识和结果

此项一般默认为符合

可以查看/var/log/文件夹下的日志文件(messages\secure\cron)或者使用命令查看

ausearch -ts today #或 tail /var/log/audit/audit.log

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

  1. 日志留存时间不得低于6个月,对于上线不到6个月的系统,从日志留存的完整性、日志备份策略、日志存储容量等角度进行综合判断
  2. 日志存在保护措施
  3. 日志是否做定期备份

1.查看/var/log/下的各个文件夹,权限不得高于644

2.检查是否部署日志服务器,日志是否做了备份

d) 应对审计进程进行保护,防止未经授权的中断

  1. 非审计人员不得修改审计进程
  2. 存在第三方审计工具的,可实时记录审计日志,管理员不可对日志进行删除

systemctl status rsyslog # rsyslog是以审计日志的守护进程

入侵防范

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

  1. 系统安装遵循最小化安装原则
  2. 不存在所不想要的组件和应用程序
  1. 禁用不需要的服务和组件,如telnet和ftp
  2. 使用命令

yum list installed # 查看已经安装的服务或组件

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

  1. 关闭了系统多余服务,危险服务和进程
  2. 关闭了多余端口
  1. 查看已开启的端口

netstat -an| grep LISTEN

  1. 查看已开启的服务

systemctl lsit-units --type=service | grep running

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

  1. 使用more查看/etc/hosts.allow文件中是否有如下配置限制ip及其访问方式,例如:sshd:192.168.1.10/255.255.255.0
  2. 操作系统防火墙中对接入终端做限制
  3. 对终端接入方式,网络地址范围等条件进行限制
  1. 在/etc/hosts.deny中是否有ALL:ALL配置

在/etc/hosts.allow中,是否有如下配置:sshd:192.168.1.10/255.255.255.0

  1. 操作系统防火墙中是否对接入终端做限制:

firewall -cmd --zone=public --list-rich-rules

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

根据GB∕T 28448-2019 《信息安全技术 网络安全等级保护测评要求》测评对象范围描述,服务器无该项要求,故此项不适用

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

对服务器进行漏扫,对发现的漏洞进行修复

f) 应能够检测到对重要节点进行入侵的行为,并在发生严重入侵事件时提供报警

  1. 入侵的重要均deny,不存在系统入侵的可能性
  2. 主机开启防火墙
  3. 安装有基于主机的IDS设备
  4. 若主机未安装IDS设备,可在网络链路上查看是否部署有IDS和IPS

就写到这吧,后边的恶意代码防范、可信验证、数据完整性、数据保密性、数据的备份恢复和剩余信息保护,没啥好写的了,linxu服务器不涉及到个人信息保护。