CentOS中Apache的安全设置有哪些
导读: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 Prod 与 ServerSignature 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/denied 与 Allow from/Require ip 限制来源。
- 禁用危险方法与限制大小:仅允许业务所需方法,配合 LimitRequestBody 控制 POST 数据上限。
- 目录与文件粒度的权限控制:结合 Order/Allow/Deny 或 Require 指令,细化到目录、文件与位置。
- 启用 mod_rewrite 做访问控制与跳转:如强制 HTTPS、阻断恶意路径、规范化 URL。
- 防范 DoS 与暴力请求:部署 mod_evasive 检测并限制异常请求速率。
四 日志监控与运行时安全
- 启用并合理配置日志:确保 ErrorLog 与 CustomLog(combined) 正常记录,便于审计与入侵追踪。
- 定期审计与监控:持续查看 /var/log/httpd/ 的访问与错误日志,结合监控告警异常流量与状态码。
- 启用 SELinux 并正确配置:优先使用 setsebool 与 chcon 调整策略(如日志写入、目录上下文),避免直接关闭 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
