以下内容供参考使用:
配置项 | 配置操作 | 基线符合性判定依据 |
检查是否存在除root之外UID为0的用户 | 参考配置操作: cat /etc/passwd ##查看当前所有用户的情况; 或者: awk -F: '{ if($3 == 0 && $1 != "root") print $1 }' /etc/passwd ##返回值应为空 | UID为0的任何用户都拥有系统的最高权限,保证只有root用户的UID为0 |
检查多余账户 | 1、检查/etc/passwd文件,对不启用的用户登录配置为/sbin/nologin或以#号注释: more /etc/passwd cd /home && ls | 结合要求和实际业务情况判断符合要求,删除或锁定与系统运行、维护等工作无关的账户。 cat /etc/password,多余账户处于锁定状态为符合 |
用户权限分离 | 参考配置操作: useradd 新建账户 passwd 设置口令 chmod 修改用户主目录权限,确保只有该用户可以读写 | 1、判定条件 结合要求和实际业务情况判断符合要求,根据系统的要求,设定不同的账户和账户组,管理员用户、操作员用户和审计用户。 2、检测操作 不同的用户登录,检查用户主目录的权限 |
root用户远程登录限制 | 参考配置操作: 1、新建用户,执行: #useradd 用户名, #passwd 密码 2、修改 sshd_Config 文件,执行 vi /etc/ssh/sshd_config,找到 PermitRootLogin,删除前面的#号并且修改为 no,重启 sshd 服务,执行# service sshd restart | 查看配置: cat /etc/ssh/sshd_config, PermitRootLogin no 符合 |
密码复杂度 | 1、检查/etc/pam.d/password-auth和/etc/pam.d/system-auth确认已包含支持pam_pwquality.so模块(默认选项) 2、 编辑/etc/security/pwquality.conf文件,包含如下配置: minlen = 9 dcredit = -1 ucredit = -1 ocredit = -1 lcredit = -1 | 1、最短密码长度8个字符,启用本机组策略中密码必须符合复杂性要求的策略。 2、即密码至少包含四种类别的字符中的三种 |
密码生存期 | 对于采用静态口令认证技术的系统,账户口令的生存期不长于90 天,最短1天,提前15天提醒修改密码 | 查看配置文件,输出结果匹配操作指南中参数值为符 |
密码重用 | 编辑/etc/pam.d/password-auth和/etc/pam.d/system-auth文件,在password sufficient pam_unix.so 这行的末尾配置添加remember=5 | 不能重复使用最近5次(含5次)内已使用的口令 |
帐户锁定 | 编辑/etc/pam.d/password-auth和/etc/pam.d/system-auth文件,在# User changes will be destroyed the next time authconfig is run.这行下面增加 auth required pam_tally2.so deny=5 unlock_time=600 even_deny_root root_unlock_time=600 | 对于采用静态口令认证技术的系统,应配置当用户连续认证失败次数超过 5 次(不含 5 次) 后,锁定该用户使用的账号,避免用户口令被暴力破解。 |
用户缺省权限控制 | 1、cat /etc/bashrc 查看全局默认设置umask值 2、查看具体用户home目录下.bash_profile,具体用户的umask $umask #获取当前权限掩码 单独针对用户设置:可修改用户home目录下的.bash_profile脚本文件,例如,可增加一条语句:umask 027;对于权限要求较严格的场合,建议设置为077。 全局默认设置:默认通过全局脚本/etc/bashrc设置所有用户的默认umask值,修改脚本即可实现对用户默认umask值的全局性修改,通常建议将umask设置为027以上,对于权限要求较严格的场合,建议设置为077。 | 查看全局默认设置umask值为027或更小权限为符合(如有特需权限需求,可根据实际情况判断); |
检查重要文件属性设置 | 查看关键目录的用户对应权限参考命令 ls -l /etc/passwd /etc/shadow /etc/group 参考配置操作: 通过chmod命令对目录的权限进行实际设置。 1、/etc/passwd 所有用户都可读,root用户可写 配置命令:chmod 644 /etc/passwd 2、/etc/shadow 只有root可读 配置命令:chmod 600 /etc/shadow; 3、/etc/group 必须所有用户都可读,root用户可写 配置命令:chmod 644 /etc/group; 4、个别特殊环境,对文件进行锁定 chattr +i /etc/passwd chattr +i /etc/shadow | 检查/etc/shadow、/etc/shadow、/etc/group、/etc/passwd文件属性 |
防火墙设置 | 检查防火墙状态 ubuntu系统使用防火墙为ufw,查看防火墙命令为 ufw status; cenotos7系统使用防火墙为firewalld,查看防火墙命令为systemctl status firewalld; cenotos6系统使用防火墙为iptables,查看防火墙命令为service iptables status | systemctl status firewalld |
检查是否限制远程登录IP范围 | 1、编辑/etc/hosts.allow 增加一行 <service>: 允许访问的IP;举例如下: all:192.168.4.44:allow #允许单个IP; sshd:192.168.1.:allow #允许192.168.1的整个网段的PC通过SSH来访问本机 重启进程: #/etc/init.d/xinetd restart 2、编辑/etc/hosts.deny 增加一行 all:all 重启进程: #/etc/init.d/xinetd restart | /etc/hosts.allow、/etc/hosts.deny已进行配置 |
关闭不必要的系统服务 | 1、执行命令 #chkconfig --list,查看哪些服务开放。 检查方法:与管理员确认无用服务已关闭 使用如下方式禁用不必要的服务 #service <服务名> stop #chkconfig --level 35 off | 执行命令 #chkconfig --list,查看哪些服务开放。 检查方法:与管理员确认无用服务已关闭 |
查找未授权的SUID/SGID文件 | 用下面的命令查找系统中所有的SUID和SGID程序,执行: //若只检查重要文件是否存在suid和sgid权限 | / |
远程登录超时设置 | 执行命令 # grep "^TMOUT" /etc/bashrc # grep "^TMOUT" /etc/profile 输出“TMOUT=600”为符合 | 输出“TMOUT=600”为符合 |
配置cron、at的安全性 | ||
SSH协议安全配置 | 编辑/etc/ssh/sshd_config,增加如下配置内容(注释内容仅做参数解释,不需在配置文件体现): LogLevel INFO //记录登入登出日志 Protocol 2 //启用SSH v2 MaxAuthTries 5 //密码尝试失败最大次数为5 PermitEmptyPasswords no //禁用SSH空密码用户登录 ClientAliveInterval 600 //10分钟空闲会话退出 ClientAliveCountMax 0 //空闲会话结束前不发送确认 | 查看配置文件符合以上参数设置 |
禁止Control-Alt-Delete键盘关闭命令 | 参考配置操作(centos7) cp /usr/lib/systemd/system/ctrl-alt-del.target /usr/lib/systemd/system/ctrl-alt-del.target.bak //备份配置文件 | 检查方法:查看是否存在以下文件 ll /usr/lib/systemd/system/ctrl-alt-del.target |
系统安全审计 | 查看审计服务并启动审计服务 ps -ef | grep auditd | 查看审计服务并启动 |
审计日志的记录与保护 | 1、配置远程日志存储服务器 vi /etc/rsyslog.conf 注:格式如下*.*后面跟tab建,端口小于1024时需要配置设置selinux #*.* @@remote-host:514 *.* @xx.xx.xx.xx services syslogd restart 或 systemctl restart rsyslog | 查看审计服务并启动 |
安全日志完备性要求 | 1、# cat /etc/syslog.conf查看是否有对应配置 vi /etc/profile | 1、cat /etc/syslog.conf确认有对应配置; 2、查看/var/log/secure,应记录有需要的设备相关的安全事件 3、查看/etc/profile配置 |