Apache基线核查
字数 1190 2025-08-15 21:32:00

Apache服务器安全基线配置指南

一、访问控制

1.1 文件权限控制

  1. 配置文件权限设置

    • 非属主用户对配置文件只读,属主可读写
    • 命令:chmod 644 /usr/local/apache/conf/httpd.conf
  2. 日志文件权限设置

    • 用户日志:chmod 644 access_log
    • 错误日志:chmod 644 error_log

1.2 HTTP方法限制

  1. 禁用危险HTTP方法
    • 在httpd.conf中添加:
      <LimitExcept GET POST>
        Deny from all
      </LimitExcept>
      

1.3 目录结构保护

  1. 禁止显示目录结构

    • 在所有Options关键字后移除Indexes
    • 示例:
      <Directory "/Web">
        Options FollowSymlinks
      </Directory>
      
  2. 限制Web目录外访问

    • 在httpd.conf中添加:
      <Directory />
        Order deny,allow
        Deny from all
      </Directory>
      

1.4 默认端口修改

  1. 更改默认80端口
    • 修改Listen语句:
      Listen X.X.X.X:8080
      

1.5 IP绑定策略

  1. 绑定特定IP地址
    • 单IP:Listen 80
    • 多IP:Listen X.X.X.X:80

1.6 运行账户设置

  1. 专用用户和组运行Apache
    • 在配置文件中添加:
      User apache
      Group apache
      

1.7 CGI安全

  1. 禁用CGI功能
    • 编译时禁用:
      ./configure --disable-cgi --disable-cgid
      
    • 配置文件中移除CGI相关LoadModule语句
    • 删除或注释cgi-bin目录配置

1.8 根目录保护

  1. 限制根目录修改权限
    • 执行命令:
      chmod -R a-w /usr/local/apache
      

二、安全审计

2.1 日志配置

  1. 错误日志设置

    • 设置路径:ErrorLog logs/error_log
    • 设置日志级别:LogLevel notice
  2. 访问日志设置

    • 设置路径:CustomLog log/access_log

2.2 日志格式

  1. 自定义日志格式
    • 示例:
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Accept}i\"\"%{Referer}i\" \"%{User-Agent}i\""
      

三、剩余信息保护

3.1 请求超时设置

  1. 设置请求超时时间
    • 在httpd.conf中添加:
      TimeOut 10
      

四、软件容错

4.1 错误页面重定向

  1. 配置各类错误页面
    • 示例:
      ErrorDocument 400 /custom400.html
      ErrorDocument 401 /custom401.html
      ErrorDocument 403 /custom403.html
      ErrorDocument 404 /custom404.html
      ErrorDocument 405 /custom405.html
      ErrorDocument 500 /custom500.html
      

五、资源控制

5.1 连接管理

  1. 持久连接超时设置

    • 在httpd.conf中添加:
      KeepAliveTimeout 15
      
  2. 启用持久连接

    • 在httpd.conf中添加:
      KeepAlive On
      

5.2 连接数限制

  1. 最大连接数配置
    • 示例配置:
      <IfModule prefork.c>
        StartServers 8
        MinSpareServers 5
        MaxSpareServers 20
        MaxClients 1500
        MaxRequestsPerChild 1000
        ServerLimit 1500
      </IfModule>
      

5.3 请求缓冲

  1. HTTP请求缓冲

    • 在httpd.conf中添加:
      AcceptFilter http data
      
  2. HTTPS请求缓冲

    • 在httpd.conf中添加:
      AcceptFilter https data
      

5.4 请求大小限制

  1. 限制HTTP请求主体大小
    • 在httpd.conf中添加:
      LimitRequestBody 102400
      

六、数据保密性

6.1 安全增强

  1. 关闭TRACE方法

    • 在httpd.conf中添加:
      TraceEnable Off
      
  2. 删除默认文件

    • 删除说明文件:
      rm -rf /usr/local/apache2/manual
      
    • 删除默认HTML:
      rm -rf /usr/local/apache2/htdocs/*
      
    • 删除默认CGI:
      rm -rf /usr/local/apache2/cgi-bin/*
      
  3. 隐藏敏感信息

    • 隐藏版本号:
      ServerToken Prod
      
    • 隐藏签名:
      ServerSignature Off
      

6.2 HTTPS支持

  1. 启用SSL模块
    • 静态编译:
      ./configure --enable-ssl
      
    • 动态模块:
      ./configure --enable-ssl=shared
      
      然后在配置文件中添加:
      LoadModule ssl_module modules/mod_ssl.so
      

总结

本指南涵盖了Apache服务器安全配置的各个方面,包括访问控制、安全审计、资源控制等关键安全领域。通过实施这些配置,可以显著提高Apache服务器的安全性,降低被攻击的风险。建议管理员根据实际环境需求,选择适用的配置项进行实施,并定期检查和更新安全配置。

Apache服务器安全基线配置指南 一、访问控制 1.1 文件权限控制 配置文件权限设置 非属主用户对配置文件只读,属主可读写 命令: chmod 644 /usr/local/apache/conf/httpd.conf 日志文件权限设置 用户日志: chmod 644 access_log 错误日志: chmod 644 error_log 1.2 HTTP方法限制 禁用危险HTTP方法 在httpd.conf中添加: 1.3 目录结构保护 禁止显示目录结构 在所有 Options 关键字后移除 Indexes 示例: 限制Web目录外访问 在httpd.conf中添加: 1.4 默认端口修改 更改默认80端口 修改 Listen 语句: 1.5 IP绑定策略 绑定特定IP地址 单IP: Listen 80 多IP: Listen X.X.X.X:80 1.6 运行账户设置 专用用户和组运行Apache 在配置文件中添加: 1.7 CGI安全 禁用CGI功能 编译时禁用: 配置文件中移除CGI相关 LoadModule 语句 删除或注释 cgi-bin 目录配置 1.8 根目录保护 限制根目录修改权限 执行命令: 二、安全审计 2.1 日志配置 错误日志设置 设置路径: ErrorLog logs/error_log 设置日志级别: LogLevel notice 访问日志设置 设置路径: CustomLog log/access_log 2.2 日志格式 自定义日志格式 示例: 三、剩余信息保护 3.1 请求超时设置 设置请求超时时间 在httpd.conf中添加: 四、软件容错 4.1 错误页面重定向 配置各类错误页面 示例: 五、资源控制 5.1 连接管理 持久连接超时设置 在httpd.conf中添加: 启用持久连接 在httpd.conf中添加: 5.2 连接数限制 最大连接数配置 示例配置: 5.3 请求缓冲 HTTP请求缓冲 在httpd.conf中添加: HTTPS请求缓冲 在httpd.conf中添加: 5.4 请求大小限制 限制HTTP请求主体大小 在httpd.conf中添加: 六、数据保密性 6.1 安全增强 关闭TRACE方法 在httpd.conf中添加: 删除默认文件 删除说明文件: 删除默认HTML: 删除默认CGI: 隐藏敏感信息 隐藏版本号: 隐藏签名: 6.2 HTTPS支持 启用SSL模块 静态编译: 动态模块: 然后在配置文件中添加: 总结 本指南涵盖了Apache服务器安全配置的各个方面,包括访问控制、安全审计、资源控制等关键安全领域。通过实施这些配置,可以显著提高Apache服务器的安全性,降低被攻击的风险。建议管理员根据实际环境需求,选择适用的配置项进行实施,并定期检查和更新安全配置。