1. 操作系统整改

1.0 检查系统版本

[root@fshbj-hjbhrcwgl-215-55 ~]# cat /etc/redhat-releaseCentOS Linux release 7.2.1511 (Core)[root@fshbj-hjbhrcwgl-215-55 ~]# uname -r3.10.0-327.el7.x86_64

1.1 访问控制

结果:服务器管理员使用超管权限执行所有操作,服务器管理员和数据库管理员为同一人。

建议:建议进行角色划分,严格控制访问权限,达到三权分立;在操作系统上对可登录服务器的所有用户进行分配单独的系统账户,且账户权限的分配应遵循其职责范围内的最小账户权限,实现管理用户的权限分离。

整改:对于Centos7 这Linux 系统,root用户权限最大,无法实现权限分离

1.2 安全审计

结果:未开启自身审计功能。

建议:建议在确保系统正常运行的情况下,开启系统的安全审计功能或部署第三方审计工具对用户所有操作行为进行记录。审计记录信息应包括事件的日期和时间、用户、事件类型、事件是否成功等。建议部署日志收集系统,对审计记录进行定期备份,遵循《网络安全法》的要求,至少保存6个月以上。

操作:开启自身审计功能-配置audit 审计日志;备份日志


  • 检查auditd状态
systemctl status auditd
  • 永久增加审计规则使用auditcrl -w /etc/passwd -p rwxa 设置的规则重启后会消失
vim /etc/auditd/rules.d/auditd.rules-w /etc/passwd -p rwxa-w /home/guest -p rwxa-w /etc/my.cnf -p rwxa
  • 使规则生效
augenrules --load
  • 检查规则
auditctl -l
  • 生成登陆审计报告
aureport -l
  • 备份日志

audit 日志目录是/var/log/audit/audit.log

定期手动备份日志,并保存6个月

1.3 入侵防范

结果:开启了多余的cupsd系统服务。

建议:建议关闭不需要的系统服务。

整改:关闭cupsd

https://blog.51cto.com/holy2010/343888

在centos7可以直接使用systemctl 命令控制进程

cupsd进程是Linux打印机相关的进程,不用通过linux打印东西的话可以关闭

  • 检查cupsd进程状态systemctl status cups
    #注意是cups
  • 关闭cupsd进程systemctl stop cups
  • 禁止开机自启动systemctl disable cups
  • 再次检查状态
systemctl status cups

1.4 恶意代码防范

结果:未安装杀毒软件。

建议:建议安装防恶意代码软件或相应功能的软件,至少每周进行升级和更新防恶意代码库,确保开启病毒查杀引擎。

整改:安装杀毒软件clamav


  • 安装过程请查看上面的网址
  • 检查clamav状态
systemctl status clamav-freshclam
  • 扫描杀毒
/usr/local/clamav/bin/clamdscan /

1.5 可信验证

结果:被测服务器未使用可信根验证的可信验证机制。

建议:建议终端具有可信根芯片或硬件。服务器启动过程基于可信根对系统引导程序、系统程序、重要配置参数和关键应用程序等进行可信验证度量。在检测到其可信性收到破坏后进行报警。(此项问题可保留,做为持续整改项)

整改:Linux 无法整改

2. Mariadb整改

https://mariadb.com/kb/en/plugins/

2.1 身份鉴别

2.1.1 密码策略

结果:未配置密码策略,管理员使用空口令登录数据库。 待提供mysql数据库从的ip。

建议:建议所有可登录数据库的账户都必须采用身份鉴别机制,在不影响系统正常运行的情况下,设置MySQL数据库密码策略。可以通过show global variables like ‘validate_password% ‘查看密码策略。建议设置

整改:增加密码策略

https://mariadb.com/kb/en/simple-password-check-plugin/

  • 检查mariadb版本。mariadb版本从10.1.2 发布简单密码检查插件simple_password_check
select version();
  • 查看插件位置
SHOW GLOBAL VARIABLES LIKE 'plugin_dir';
  • 安装密码策略插件(注意与Mysql的插件有区分)
INSTALL SONAME 'simple_password_check';
  • 检查密码策略,配上IP一起检查
mysql -uroot -p'Huanbao@668' -e"SHOW VARIABLES LIKE '%password%';"  ; ip a |grep 55

2.1.2 登陆失败处理

结果:已设置登录失败100次,次数过长。设置会话超时时间28800s,时间过长。

建议:在不影响系统正常运行的情况下,设置登录失败次数为5次,会话超时时间为600s。 可根据自身需要设置适当的值。

整改:按建议修改

  • 检查鉴别失败处理功能
show variables like '%connect%';
  • 设置登陆失败次数为5
SET GLOBAL max_connect_errors = 5;
  • 检查超时时间
show variables like 'wait_timeout';
  • 设置超时时间600s
SET GLOBAL wait_timeout = 6000 ;SET session wait_timeout = 6000 ;
  • 检查并截图
mysql -uroot -p'Huanbao@668' -e"show variables like '%connect%'; show variables like 'wait_timeout'; "  ; ip a |grep 55

2.2 访问控制

结果:数据库管理员使用超管权限执行所有操作,数据库管理员和服务器管理员为同一人。

建议:建议进行角色划分,严格控制访问权限,达到三权分立;在数据库上对可登录数据库的所有用户进行分配单独的系统账户,且账户权限的分配应遵循其职责范围内的最小账户权限,实现管理用户的权限分离。

整改:增设数据库管理员和操作员

  • 检查mysql用户
select host,user from mysql.user;
  • 新增mysql操作者用户cgt,并分配权限
GRANT ALL PRIVILEGES ON huanbaooa.* TO 'cgt'@'%' IDENTIFIED BY '1qe3!QE#' WITH GRANT OPTION;
  • 检查mysql用户和权限
mysql -uroot -p'Huanbao@668' -e"select host,user from mysql.user;show grants for 'cgt'@'%'; "  ; ip a |grep 55

2.3 安全审计

结果:被测数据库未部署第三方审计工具。

建议:建议被测数据库开启自身审计功能或部署第三方审计系统如堡垒机,可以对每个用户对数据库的所有操作行为进行安全审计;建议审计记录应包括事件的日期,时间,类型,主体标识,客体标识和结果等;建议部署日志收集系统,对审计记录进行定期备份,遵循《网络安全法》的要求,至少保存6个月以上。

整改:安装插件


https://mariadb.com/kb/en/mariadb-audit-plugin-installation/

  • 检查审计插件
show global variables like '%audit%';
  • 安装插件前,我们需要查找插件存放目录
SHOW VARIABLES LIKE 'plugin_dir';
  • 安装插件
install plugin server_audit soname 'server_audit.so';
  • 开启插件
set global server_audit_logging=on;
  • 设置审计内容
set global server_audit_events='QUERY_DDL,QUERY_DML';
  • 修改配置,避免重启失效
vim /etc/my.cnf#在[mysql]新增配置plugin_load_add = server_audit
  • 检查并截图
mysql -uroot -p'Huanbao@668' -e"show global variables like '%audit%'; "  ; ip a |grep 55
  • 备份日志,保留期限6个月

2.4 数据恢复备份

结果:未提供异地数据备份功能

建议:建议部署异地灾备中心,生产环境与灾备中心数据定时同步。

整改:做好数据备份,由于异地要求市内30公里,无实现条件。




centos7第一次password无法输入 centos7输入密码登录不上_mysql


结语

此文是笔者在负责一个系统等保整改的过程,整理并分享给大家,让大家处理类似的事情可以降低工作量。