一、操作系统
1、查看文件权限
查看该文件的权限 ls -la /var/log/audit/audit.log 查看如下文件的权限是否满足 ls -l /etc/passwd ls -l /etc/hosts ls -l /etc/login.defs ls -l /etc/hosts.allow ls -l /etc/shadow ls -l /etc/hosts.deny ls -l /etc/group ls -l /etc/services 文件中日志信息所在文件的访问权限 ls -l /var/log/messages ls -l /var/log/secure ls -l /var/log/audit/audit.log find / -name ".rhosts" 查看rhost文件 pwck -r /etc/passwd 查看文件的完整性,结果在结尾显示是否改变 pwck -r /etc/shadow 查看文件的完整性,结果在结尾显示是否改变
2、查看系统版本
more /proc/version 查看系统版本号 rpm -qa| grep patch 查看已安装系统补丁
more /etc/issue 或者
more /etc/redhat-release 查看当前系统版本
3、服务相关
yum list installed 查看操作系统中已安装的程序包 systemctl list-unit-files 查看开机自启项 systemctl list-units |grep running centos系统查看运行的服务) service --status-all 查看所运行中服务情况(否已经关闭危险的网络服务如echo、shell、login、finger、命令等。关闭非必需的网络服务如talk、ntalk、pop-2、Sendmail、Imapd、Pop3d等) lsof -i:21、lsof -i:22、lsof -i:23 查看端口开启情况 more /etc/services|grep telnet 查看是否启用对应的telnet端口服务 rpm -aq|grep ssh 查看是否安装了SSH相应的包 ps -e | grep ssh 查看ssh是否启动 netstat -an -t 核查是否不存在非必要的高危端口
more /etc/ssh/sshd_config 访问ssh配置文件
3、审计相关
systemctl status rsyslog 检查日志运行 service auditd status (service rsyslog status ) 查看审计功能是否正常运行 more /var/log/audit/audit.log 审计日志存放位置 auditctl -l 查看audit规则 auditctl -s 查看audit运行状态; more /var/log/messages 系统日志信息存放在此文件 more /var/log/audit/audit.log 查看审计具体记录内容 more /etc/audit/audit.rules 查看审计规则 more /etc/rsyslog.conf 审计配置内容 more /etc/audit/auditd.conf 审计配置内容 more /etc/rsyslog.conf 配置文件里设置了日志服务器
authconfig --test | grep hashing 查看加密
more /etc/audit/auditd.conf 重点检查num_logs(最大能生成几个审计文件),max_log_file(单个审计文件最大容量多少兆),
max_log_file_action(日志容量达到最大后的操作),disk_full_action,disk_erro_action 等字段。
4、密码复杂度
chage -l root Root密码复杂度 cat /etc/login.defs|grep PASS 查看当前所设置的密码长度及更换周期 more /etc/pam.d/system-auth 确认密码复杂度要求及针对终端直接登录,如:登录失败等 more /etc/pam.d/sshd 只针对SSH远程登录也可设置登录失败次数 more /etc/sudo.conf (cat /etc/sudoers|grep =\(ALL\)) 核查root级用户的权限都授予哪些账户 more /etc/passwd |awk -F: '{print $1,$2}' 用户中的第二个字段(口令)不为空,为x表示设置了密码。 more /etc/shadow
第二个字段为口令加密字段。(第一位:账号、第二位:加密加密、第三位:上次修改密码的时间、第四位:两次修改口令之间所需的最小天数、第五位:密码保持有效的最大天数天数、第六位:密码变更前提前几天警告、
第七位:账号失效日期、第八位:账号取消日期。其中在密码栏的第一个字星号代表帐号被锁定、双叹号表示这个密码已经过期了,失效日期是从1970年1月1日开始的多少天)
5、入侵检测
find / -namie <daemonname> -print 检查是否安装了主机入侵检测软件 more /var/log/secure | grep refused 查看入侵检测的措施 more /etc/hosts.deny (黑名单)对终端接入范围进行限制 more /etc/hosts.allow (白名单)或more /etc/ssh/sshd_config指定终端地址可访问 crontab -l 核查入侵和病毒行规则 more /etc/profile 查看有无tmout连接超时 more /etc/profile 清除敏感数据所在的存储空间 more /etc/security/limits.conf 是否对资源进行了限定
二、mysql数据库
1、检查
mysql -u root -p 进入数据库 SELECT * FROM mysql.user; 查看设置的用户 SELECT Host,User,plugin FROM mysql.user; SELECT Host,User,Password,plugin FROM mysql.user; 检查是否存在空口令用户(MySQL5.6及以下) SELECT Host,User,authentication_string,plugin FROM mysql.user; 检查是否存在空口令用户(MySQL5.7及以上) SHOW VARIABLES LIKE'validate_password%'; 检查口令复杂度(MySQL5.6及以下) SELECT Host,User,password_lifetime FROM mysql.user; 检查口令定期更换(MySQL5.7及以上) SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME='connection_control' ; 检查是否安装登录失败处理模块(MySQL5.6及以下) SHOW variables LIKE 'connection_control%'; 检查是否配置登录失败处理参数;(MySQL5.6及以下) SHOW variables LIKE '%timeout'; 检查连接超时 SHOW variables LIKE 'general_log%'; 检查数据库日志模块状态 SELECT * FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME='audit_log'; 检查是否安装并开启MySQL Enterprise Audit模块 SHOW variables LIKE'require_secure_transport'; 检查是否开启SSL通信