CentOS Apache安全设置
导读:CentOS 上 Apache 的安全加固清单 一 基础与系统防护 保持系统与应用为最新:执行 yum update -y 定期更新;为关键目录建立备份与变更留痕。 运行身份最小化:在 /etc/httpd/conf/httpd.conf...
CentOS 上 Apache 的安全加固清单
一 基础与系统防护
- 保持系统与应用为最新:执行 yum update -y 定期更新;为关键目录建立备份与变更留痕。
- 运行身份最小化:在 /etc/httpd/conf/httpd.conf 设置 User/Group 为专用低权限账户(如 apache),避免使用 root 或 nobody。
- 最小权限原则:为 /etc/httpd/conf、/usr/sbin/httpd 等设置严格的文件系统权限与属主,仅授权维护人员访问。
- 防火墙放行必要流量:启用 firewalld,仅开放 HTTP/HTTPS(端口 80/443)。
- 入侵防护:部署 Fail2ban 监控 /var/log/httpd/error_log,自动封禁暴力访问来源。
- 安全基线:禁用不必要的模块(如 autoindex、status、cgi、userdir、info、proxy_* 等),减少攻击面。
二 核心 Apache 配置
- 隐藏版本与标识:在 httpd.conf 设置 ServerTokens Prod、ServerSignature Off,降低信息泄露风险。
- 禁止目录浏览:在站点或全局 中将 Options 中的 Indexes 移除(如:Options -Indexes +FollowSymLinks)。
- 限制 HTTP 方法:在需要保护的路径加入方法限制,仅允许 GET/POST(示例见下)。
- 根目录防护:对 / 设置 AllowOverride None 与 Require all denied,防止通过 .htaccess 覆盖与越权访问。
- 访问控制:基于 IP/网段 限制管理后台等敏感路径(示例见下)。
- 请求体大小限制:在 httpd.conf 的全局作用域设置 LimitRequestBody(示例见下)。
- 错误页面处理:为常见错误码(如 400、403、404、500)统一跳转到静态错误页,避免泄露堆栈与路径信息。
- 示例片段(按需合并到对应 VirtualHost 或 Directory):
- 方法限制与根目录防护
< Directory /> AllowOverride None Require all denied < /Directory> < Directory "/var/www/html/admin"> Require ip 192.168.1.0/24 Require not ip 192.168.1.116 < /Directory> < LimitExcept GET POST> Require all denied < /LimitExcept> - 请求体限制(10KB)
LimitRequestBody 10240
- 方法限制与根目录防护
三 加密与认证
- 启用 TLS:安装 mod_ssl,部署有效证书(生产建议使用 Let’s Encrypt)。
- 安装与签发(CentOS 7/8 常见做法):
sudo yum install -y epel-release sudo yum install -y certbot python2-certbot-apache sudo certbot --apache -d www.example.com
- 安装与签发(CentOS 7/8 常见做法):
- 强制 HTTPS:在 80 虚拟主机或 .htaccess 中使用 mod_rewrite 将 HTTP→HTTPS。
- 基本认证:对管理后台等路径启用 htpasswd 认证。
在对应 中加入:sudo htpasswd -c /etc/httpd/conf/.htpasswd adminAuthName "Restricted" AuthType Basic AuthUserFile /etc/httpd/conf/.htpasswd Require valid-user - 传输安全与证书管理:优先使用 TLS 1.2/1.3,定期轮换证书与密钥,确保链文件完整。
四 PHP 与上传目录安全(如启用 PHP)
- 降低信息泄露:在 /etc/php.ini 设置 expose_php = Off。
- 禁用危险函数:如 exec、shell_exec、system、popen、proc_open、phpinfo 等。
- 运行与请求安全:关闭 register_globals、allow_url_include,开启 session.cookie_httponly = 1,生产环境关闭 display_errors。
- 上传目录防护:禁止解析 PHP,仅允许静态资源。
< Directory "/var/www/html/uploads"> php_flag engine off Require all granted < /Directory> - 原则:可写目录不解析脚本,解析目录保持只读,分离用户上传与代码执行路径。
五 日志监控与维护
- 访问与错误日志:确保开启并落盘 ErrorLog 与 CustomLog(combined),便于审计与溯源。
- 请求体日志(按需):在排查阶段可临时加载 mod_dumpio 记录 POST 数据,用完即关闭以降低性能与隐私风险。
LoadModule dumpio_module modules/mod_dumpio.so LogLevel dumpio:trace7 DumpIOInput On - 变更与验证:每次修改后执行 httpd -t 校验语法,再 systemctl reload httpd;定期审计日志与基线合规性,持续更新补丁。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS Apache安全设置
本文地址: https://pptw.com/jishu/774478.html
