CentOS Linux 7安全基线检查

CentOS Linux 7安全基线检查

CentOS Linux 7安全基线检查

  1. 确保rsyslog服务已启用 | 安全审计

    描述

    确保rsyslog服务已启用,记录日志用于审计

    检查提示

    加固建议

    运行以下命令启用rsyslog服务 systemctl enable rsyslog


  2. 确保SSH LogLevel设置为INFO | 服务配置

    描述

    确保SSH LogLevel设置为INFO,记录登录和注销活动

    检查提示

    --

    加固建议

    编辑 /etc/ssh/sshd_config 文件以按如下方式设置参数(取消注释): LogLevel INFO


  3. 访问控制配置文件的权限设置 | 文件权限

    描述

    访问控制配置文件的权限设置

    检查提示

    --

    加固建议

    运行以下4条命令: chown root:root /etc/hosts.allow chown root:root /etc/hosts.deny chmod 644 /etc/hosts.deny chmod 644 /etc/hosts.allow


  4. 设置用户权限配置文件的权限 | 文件权限

    描述

    设置用户权限配置文件的权限

    检查提示

    --

    加固建议

    执行以下5条命令 chown root:root /etc/passwd /etc/shadow /etc/group /etc/gshadow chmod 0644 /etc/group chmod 0644 /etc/passwd chmod 0400 /etc/shadow chmod 0400 /etc/gshadow


  5. 开启地址空间布局随机化 | 入侵防范

    描述

    它将进程的内存空间地址随机化来增大入侵者预测目的地址难度,从而降低进程被成功入侵的风险

    检查提示

    --

    加固建议

    执行命令: sysctl -w kernel.randomize_va_space=2


  6. 确保root是唯一的UID为0的帐户 | 身份鉴别

    描述

    除root以外其他UID为0的用户都应该删除,或者为其分配新的UID

    检查提示

    --

    加固建议

    除root以外其他UID为0的用户(查看命令cat /etc/passwd | awk -F: ‘($3 == 0) { print $1 }’|grep -v ‘^root$’ )都应该删除,或者为其分配新的UID


  7. 密码复杂度检查 | 身份鉴别

    描述

    检查密码长度和密码是否使用多种字符类型

    检查提示

    --

    加固建议

    编辑/etc/security/pwquality.conf,把minlen(密码最小长度)设置为9-32位,把minclass(至少包含小写字母、大写字母、数字、特殊字符等4类字符中等3类或4类)设置为3或4。如: minlen=10 minclass=3


  8. 检查系统空密码账户 | 身份鉴别

    描述

    检查系统空密码账户

    检查提示

    --

    加固建议

    为用户设置一个非空密码


  9. 设置密码修改最小间隔时间 | 身份鉴别

    描述

    设置密码修改最小间隔时间,限制密码更改过于频繁

    检查提示

    --

    加固建议

    在 /etc/login.defs 中将 PASS_MIN_DAYS 参数设置为7-14之间,建议为7: PASS_MIN_DAYS 7 需同时执行命令为root用户设置: chage –mindays 7 root


  10. 设置密码失效时间 | 身份鉴别

    描述

    设置密码失效时间,强制定期修改密码,减少密码被泄漏和猜测风险,使用非密码登陆方式(如密钥对)请忽略此项。

    检查提示

    --

    加固建议

    使用非密码登陆方式如密钥对,请忽略此项。在 /etc/login.defs 中将 PASS_MAX_DAYS 参数设置为 60-180之间,如 PASS_MAX_DAYS 90。需同时执行命令设置root密码失效时间: chage –maxdays 90 root。


  11. 设置SSH空闲超时退出时间 | 服务配置

    描述

    设置SSH空闲超时退出时间,可降低未授权用户访问其他用户ssh会话的风险

    检查提示

    --

    加固建议

    编辑/etc/ssh/sshd_config,将ClientAliveInterval 设置为300到900,即5-15分钟,将ClientAliveCountMax设置为0。 ClientAliveInterval 900 ClientAliveCountMax 0


  12. SSHD强制使用V2安全协议 | 服务配置

    描述

    SSHD强制使用V2安全协议

    检查提示

    --

    加固建议

    编辑 /etc/ssh/sshd_config 文件以按如下方式设置参数: Protocol 2


  13. 确保SSH MaxAuthTries设置为3到6之间 | 服务配置

    描述

    设置较低的Max AuthTrimes参数将降低SSH服务器被暴力攻击成功的风险。

    检查提示

    --

    加固建议

    在/etc/ssh/sshd_config中取消MaxAuthTries注释符号#,设置最大密码尝试失败次数3-6,建议为4: MaxAuthTries 4


  14. 确保密码到期警告天数为7或更多 | 身份鉴别

    描述

    确保密码到期警告天数为7或更多

    检查提示

    --

    加固建议

    在 /etc/login.defs 中将 PASS_WARN_AGE 参数设置为7-14之间,建议为7: PASS_WARN_AGE 7 。同时执行命令使root用户设置生效: chage –warndays 7 root


  15. 禁止SSH空密码用户登录 | 服务配置

    描述

    禁止SSH空密码用户登录

    检查提示

    --

    加固建议

    在/etc/ssh/sshd_config中取消PermitEmptyPasswords no注释符号#


  16. 检查密码重用是否受限制 | 身份鉴别

    描述

    强制用户不重用最近使用的密码,降低密码猜测攻击风险

    检查提示

    --

    加固建议

    在/etc/pam.d/password-auth和/etc/pam.d/system-auth中password sufficient pam_unix.so 这行的末尾配置remember参数为5-24之间,原来的内容不用更改。如下面只在末尾加了remember=5,即可限制不能重用最近5个密码。 password sufficient pam_unix.so sha512 try_first_pass remember=5


Redis安全基线检查

  1. redis-server监听配置 | 服务配置

    描述

    Redis监听在0.0.0.0,可能导致服务对外或内网横向移动渗透风险,极易被黑客利用入侵。

    检查提示

    --

    加固建议

    Redis监听在0.0.0.0,可能导致服务对外或内网横向移动渗透风险,极易被黑客利用入侵,建议监听在: 127.0.0.1或内网地址。如业务需要监听外网,请配置防火墙安全策略。


Memcached安全基线检查

  1. Memcached启动权限检测 | 访问控制

    描述

    检测Memcached是否以权限启动

    检查提示

    --

    加固建议

    创建memcached低权限账号(例如:useradd memcached),并在memcached启动时加上-u memcached。注意:在切换低权限账户启动时,需要将memcached文件目录使用chown -R memcached:memcached修改上述目录权限


  2. Memcached udp监听检测 | 服务配置

    描述

    Memcached udp监听检测,检测是否监听在0.0.0.0

    检查提示

    --

    加固建议

    重新启动memcached 加入 -U 0启动参数,例如:memcached -U 0,禁止监听在udp协议上


FTP匿名登录配置检测

  1. Ftp匿名登录 | 身份鉴别

    描述

    检查是否允许匿名登陆FTP。

    检查提示

    --

    加固建议

    建议关闭Ftp匿名登录


Linux系统登录弱口令检测

  1. Linux系统账号弱口令 | 身份鉴别

    描述

    检测Linux系统登录账号常见弱口令,及SSH登录的密码是否常见弱口令

    检查提示

    --

    加固建议

    该帐号发现弱密码,为了保证系统不被黑客恶意猜解入侵,请修改为12位以上,数字/字母/特殊字符组合的强密码


FTP登陆弱口令检测

  1. FTP弱口令 | 身份鉴别

    描述

    检查FTP服务是否存在弱密码用户

    检查提示

    --

    加固建议

    该帐号发现弱密码,请修改为12位以上,数字/字母/特殊字符组合的强密码


Apache Tomcat 安全基线检查

  1. 开启日志记录 | 安全审计

    描述

    Tomcat需要保存输出日志,以便于排除错误和发生安全事件时,进行分析和定位

    检查提示

    --

    加固建议

    1、修改Tomcat根目录下的conf/server.xml文件。 2、取消Host节点下Valve节点的注释(如没有则添加)。 3、重新启动Tomcat


  2. 禁止显示异常调试信息 | 服务配置

    描述

    当请求处理期间发生运行时错误时,ApacheTomcat将向请求者显示调试信息。建议不要向请求者提供此类调试信息。

    检查提示

    --

    加固建议

    在Tomcat根目录下的conf/web.xml文件里面的web-app添加子节点:java.lang.Throwable/error.jsp,在webapps目录下创建error.jsp,定义自定义错误信息


  3. 禁止Tomcat显示目录文件列表 | 服务配置

    描述

    Tomcat允许显示目录文件列表会引发目录遍历漏洞

    检查提示

    --

    加固建议

    修改Tomcat 跟目录下的配置文件conf/web.xml,将listings的值设置为false。 listings false


  4. 禁止自动部署 | 服务配置

    描述

    配置自动部署,容易被部署恶意或未经测试的应用程序,应将其禁用

    检查提示

    --

    加固建议

    修改Tomcat 跟目录下的配置文件conf/server.xml,将host节点的autodeploy属性设置为“false”,如果host的deploystartup属性(没有可以忽略)为“true”,则也将其更改为“false”


  5. 限制服务器平台信息泄漏 | 服务配置

    描述

    限制服务器平台信息泄漏会使攻击者更难确定哪些漏洞会影响服务器平台。

    检查提示

    --

    加固建议

    1、进入Tomcat安装主目录的lib目录下,比如 cd /usr/local/tomcat7/lib 2、执行:jar xf catalina.jar org/apache/catalina/util/ServerInfo.properties,修改文件ServerInfo.properties中的server.info和server.number的值,如分别改为:Apache/11.0.92、11.0.92.0 3、执行:jar uf catalina.jar org/apache/catalina/util/ServerInfo.properties 4、重启Tomcat服务


  6. 删除项目无关文件和目录 | 访问控制

    描述

    Tomcat安装提供了示例应用程序、文档和其他可能不用于生产程序及目录,存在极大安全风险,建议移除

    检查提示

    --

    加固建议

    请删除Tomcat示例程序和目录、管理控制台等,即从Tomcat根目录的webapps目录,移出或删除docs、examples、host-manager、manager目录。


  7. Tomcat目录权限检测 | 访问控制

    描述

    在运行Tomcat服务时,避免使用root用户运行,tomcat目录(catalina.home、 catalina.base目录)所有者应改为非root的运行用户

    检查提示

    --

    加固建议

    使用chown -R <Tomcat启动用户所属组>:<Tomcat启动用户> <Tomcat目录>修改tomcat目录文件所有者,如chown -R tomcat:tomcat /usr/local/tomcat


  8. Tomcat进程运行权限检测 | 访问控制

    描述

    在运行Internet服务时,最好尽可能避免使用root用户运行,降低攻击者拿到服务器控制权限的机会。

    检查提示

    --

    加固建议

    创建低权限的账号运行Tomcat


#