首页主机资讯Apache2在CentOS上如何实现安全配置

Apache2在CentOS上如何实现安全配置

时间2025-11-28 18:02:04发布访客分类主机资讯浏览306
导读:CentOS 上 Apache HTTP Server 的安全配置清单 一 基础加固 保持系统与应用为最新:执行 sudo yum update -y,及时修补漏洞。 精简攻击面:仅启用必需模块,禁用不需要的模块(如 autoindex、...

CentOS 上 Apache HTTP Server 的安全配置清单

一 基础加固

  • 保持系统与应用为最新:执行 sudo yum update -y,及时修补漏洞。
  • 精简攻击面:仅启用必需模块,禁用不需要的模块(如 autoindex、status、userdir 等,除非明确需要)。
  • 运行身份与权限:确认以低权限用户/组运行(常见为 apache:apache),网站目录最小权限(如 /var/www/html755,文件 644,禁止全局写)。
  • 隐藏版本信息:在 /etc/httpd/conf/httpd.conf/etc/httpd/conf.d/security.conf 中设置:
    • ServerTokens Prod
    • ServerSignature Off
  • 禁用目录列表:在 < Directory “/var/www/html”> 中设置 Options -Indexes
  • 启用常用安全模块:mod_rewrite(用于强制 HTTPS、规范化 URL)、mod_ssl(启用 TLS)。
  • 访问控制:对管理后台、敏感目录使用基于 IP 或 Basic Auth 的访问控制;示例(Basic Auth):
    • 生成口令文件:sudo htpasswd -cm /etc/httpd/conf/htpasswd admin
    • 目录配置:
      • AuthName “Restricted”
      • AuthType Basic
      • AuthUserFile /etc/httpd/conf/htpasswd
      • Require valid-user
  • 重启生效:sudo systemctl restart httpd

二 传输加密与端口管理

  • 安装 SSL 模块:sudo yum install httpd mod_ssl -y
  • 配置 TLS:
    • 方案 A(自签名,测试环境):
      • 生成证书:
        • sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/apache-selfsigned.key -out /etc/pki/tls/certs/apache-selfsigned.crt
      • /etc/httpd/conf.d/ssl.conf 的 *< VirtualHost :443> 中设置:
        • SSLEngine on
        • SSLCertificateFile /etc/pki/tls/certs/apache-selfsigned.crt
        • SSLCertificateKeyFile /etc/pki/tls/private/apache-selfsigned.key
    • 方案 B(生产环境,Let’s Encrypt):
      • 安装客户端:sudo yum install certbot python2-certbot-apache -y
      • 获取并自动配置证书:sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
  • 强制 HTTPS:在 80 虚拟主机中使用 mod_rewriteHTTP → HTTPS
  • 防火墙放行:仅开放 80/443
    • sudo firewall-cmd --permanent --add-service=http
    • sudo firewall-cmd --permanent --add-service=https
    • sudo firewall-cmd --reload
  • 监听与端口:仅监听必要端口(默认 80/443),确认 Listen 80Listen 443 配置合理。

三 访问控制与请求限制

  • 基于 IP 的访问控制:对敏感路径限制来源网段,例如:
      • Require all granted
      • Require not ip 203.0.113.0/24
  • 目录与文件保护:对 .ht、.git、config.*、backup/* 等敏感资源设置 Deny from all 或移出文档根。
  • 防暴力与 DoS:部署 mod_evasive 缓解暴力请求与慢速攻击(按需启用)。
  • 协议与引擎:确保 SSLEngine on 仅出现在 443 虚拟主机;关闭不必要的 SSI、CGI 执行能力。
  • 重启生效:sudo systemctl restart httpd

四 SELinux 与文件系统安全

  • 保持 SELinux 为 enforcing,避免直接 setenforce 0 或改为 disabled(生产环境不推荐)。
  • 设置正确的文件上下文:
    • 网站内容:sudo semanage fcontext -a -t httpd_sys_content_t “/var/www/html(/.*)?”
    • 日志目录:sudo semanage fcontext -a -t httpd_log_t “/var/log/httpd(/.*)?”
    • 执行修复:sudo restorecon -Rv /var/www /var/log/httpd
  • 按需开启布尔值(示例):
    • 允许后端数据库连接:sudo setsebool -P httpd_can_network_connect_db 1
    • 允许访问用户主目录内容:sudo setsebool -P httpd_enable_homedirs 1
  • 变更后验证:getenforcesemanage fcontext -l | grep httpdls -Z 检查上下文。

五 日志监控与维护

  • 日志路径与轮换:访问与错误日志位于 /var/log/httpd/(如 access_log、error_log),使用 logrotate 定期切割与压缩,避免磁盘被占满。
  • 实时监控:
    • 实时查看错误日志:sudo tail -f /var/log/httpd/error_log
    • 结合 journaldrsyslog 集中采集与告警。
  • 合规审计:定期审计配置、模块与开放端口,保留变更记录;对异常 4xx/5xx、可疑 UA、暴力路径访问设置监控与告警。

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


若转载请注明出处: Apache2在CentOS上如何实现安全配置
本文地址: https://pptw.com/jishu/759247.html
如何在CentOS中启动Apache2服务 centos apache如何恢复备份

游客 回复需填写必要信息