首页主机资讯CentOS中Apache的安全设置有哪些

CentOS中Apache的安全设置有哪些

时间2025-12-04 02:54:04发布访客分类主机资讯浏览1384
导读:CentOS 上 Apache 的安全设置清单 一 基础加固 保持系统与软件为最新:执行 sudo yum update -y,及时修补漏洞。 精简与禁用不必要的模块:如非必需,禁用 mod_cgi、mod_status、mod_user...

CentOS 上 Apache 的安全设置清单

一 基础加固

  • 保持系统与软件为最新:执行 sudo yum update -y,及时修补漏洞。
  • 精简与禁用不必要的模块:如非必需,禁用 mod_cgi、mod_status、mod_userdir、autoindex 等,减少攻击面。
  • 隐藏版本与系统信息:在全局或主配置中设置 ServerTokens ProdServerSignature Off,避免泄露版本细节。
  • 禁用目录列表:在 中使用 Options -Indexes,防止目录内容被列举。
  • 限制 Web 根目录之外的访问:通过配置与权限策略,禁止访问 /etc、/var/log、/root 等敏感路径。
  • 运行身份最小化:确认以低权限用户/组运行(如 apache),避免使用 root。
  • 禁用或限制 .htaccess:在需要性能与安全时设置 AllowOverride None,仅在必要时启用。
  • 限制 HTTP 方法与请求体:使用 Limit/LimitExcept 仅允许 GET、POST 等必要方法;用 LimitRequestBody 限制上传大小,缓解滥用风险。

二 传输加密与端口管控

  • 启用 SSL/TLS:安装 mod_ssl,配置 *VirtualHost :443,设置 SSLEngine on、证书与链文件路径。
  • 获取可信证书:使用 Let’s Encrypt/Certbot 自动申请与部署证书,命令示例:sudo certbot --apache -d yourdomain.com
  • 防火墙放行:通过 firewalld 仅开放 80/443,示例:sudo firewall-cmd --permanent --add-service=http --add-service=https & & sudo firewall-cmd --reload
  • 仅暴露必要端口:避免开放管理端口与调试端口到公网。

三 访问控制与请求限制

  • 基于 IP 的访问控制:在 中使用 Require all granted/deniedAllow from/Require ip 限制来源。
  • 禁用危险方法与限制大小:仅允许业务所需方法,配合 LimitRequestBody 控制 POST 数据上限。
  • 目录与文件粒度的权限控制:结合 Order/Allow/DenyRequire 指令,细化到目录、文件与位置。
  • 启用 mod_rewrite 做访问控制与跳转:如强制 HTTPS、阻断恶意路径、规范化 URL。
  • 防范 DoS 与暴力请求:部署 mod_evasive 检测并限制异常请求速率。

四 日志监控与运行时安全

  • 启用并合理配置日志:确保 ErrorLogCustomLog(combined) 正常记录,便于审计与入侵追踪。
  • 定期审计与监控:持续查看 /var/log/httpd/ 的访问与错误日志,结合监控告警异常流量与状态码。
  • 启用 SELinux 并正确配置:优先使用 setseboolchcon 调整策略(如日志写入、目录上下文),避免直接关闭 SELinux。
  • 部署 WAF:使用 ModSecurity 等 Web 应用防火墙,缓解 XSS、SQL 注入、文件上传 等常见漏洞。
  • 备份与变更管理:变更前备份配置(如 /etc/httpd/conf/httpd.conf),变更后校验并保留回滚方案。

五 最小化示例配置片段

# 隐藏版本与签名
ServerTokens Prod
ServerSignature Off

# 目录访问与禁用索引
<
    Directory "/var/www/html">
    
    Options -Indexes
    AllowOverride None
    Require all granted
<
    /Directory>
    

# 仅允许 GET/POST,限制 POST 大小(示例:10MB)
<
    LimitExcept GET POST>
    
    Require all denied
<
    /LimitExcept>

LimitRequestBody 10485760

# 强制 HTTPS(需启用 mod_rewrite)
RewriteEngine On
RewriteCond %{
HTTPS}
 off
RewriteRule ^(.*)$ https://%{
HTTP_HOST}
    $1 [L,R=301]

以上为常用安全项的精简示例,需结合实际虚拟主机与业务需求调整,并在修改后执行 sudo systemctl restart httpd 使配置生效。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS中Apache的安全设置有哪些
本文地址: https://pptw.com/jishu/763108.html
Apache2如何配置日志记录在CentOS Filebeat日志轮转策略如何设置

游客 回复需填写必要信息