Linux Apache如何配置安全
导读:Linux Apache 安全配置清单 一 基础安全基线 隐藏版本与标识:在全局配置中关闭签名与版本暴露,减少信息泄露面。 设置:ServerSignature Off、ServerTokens Prod 禁用目录列表:避免未授权目...
Linux Apache 安全配置清单
一 基础安全基线
- 隐藏版本与标识:在全局配置中关闭签名与版本暴露,减少信息泄露面。
- 设置:ServerSignature Off、ServerTokens Prod
- 禁用目录列表:避免未授权目录内容被列示。
- 设置:在目标目录或全局将 Options -Indexes
- 以最小权限运行:创建专用系统用户/组(如 www 或 apache),并在配置中指定 User、Group,禁止以 root 直接运行工作进程。
- 最小权限文件系统:网站目录由内容属主管理,Web 服务仅授予读取(及必要目录的写入)权限;配置文件与日志目录仅管理员可写。
- 持续更新:定期升级 Apache 与模块,及时修补已知漏洞。
二 模块与请求限制
- 精简模块:仅启用必需模块,禁用高风险或不需要的模块(示例:userdir、autoindex、status、cgi、includes、negotiation 等)。注意启用 SSL 时不要禁用 mod_setenvif,否则 httpd-ssl.conf 中的 BrowserMatch 会报错。
- 限制请求大小:在 LimitRequestBody(或对应上下文)设置合理上限,降低缓冲区溢出与滥用风险。
- 访问控制:对管理接口、特定路径按 IP/网段 限制访问;对敏感目录采用白名单策略。
- 符号链接与 SSI:生产环境建议禁用 FollowSymLinks,对需要 SSI 的目录使用 IncludesNOEXEC,避免执行任意命令。
三 传输加密与端口管理
- 启用 HTTPS/TLS:部署有效证书(推荐 Let’s Encrypt),配置强加密套件与协议(禁用 SSLv3/TLS1.0/1.1,优先 TLS1.2/1.3),并在虚拟主机中正确设置 SSLEngine on、SSLCertificateFile、SSLCertificateKeyFile、SSLCertificateChainFile。
- 端口与监听:仅开放必要端口(默认 80/443),如需变更监听端口,同步更新防火墙与虚拟主机配置,确保外部可达性与一致性。
四 日志监控与抗攻击
- 访问与错误日志:启用并合理轮转日志,记录 IP、时间、请求、UA、Referer 等关键字段,便于审计与溯源。
- 抗 DoS/Slowloris:部署 mod_evasive 缓解高频请求与慢速攻击;配置示例参数:DOSHashTableSize 2048、DOSPageCount 20、DOSSiteCount 300、DOSBlockingPeriod 10、DOSLogDir /var/log/apache2/evasive。
- 基线核查:变更前执行 httpd -t 校验配置语法,变更后复核服务状态与日志输出。
五 最小化配置示例
- 全局隐藏版本与目录列表
- 配置:
ServerSignature Off ServerTokens Prod Options -Indexes
- 配置:
- 以专用用户运行(示例用户/组:www/www)
- 配置:
User www Group www
- 配置:
- 根目录默认拒绝与文档目录授权
- 配置:
< Directory /> Options None AllowOverride None Require all denied < /Directory> < Directory /var/www/html> Options -Indexes +FollowSymLinks AllowOverride None Require all granted < /Directory>
- 配置:
- 访问控制示例(仅内网网段可访问管理路径)
- 配置:
< Directory /var/www/html/admin> Require ip 192.168.1.0/24 127.0.0.1 < /Directory>
- 配置:
- 请求大小限制(示例:10 MB)
- 配置:
LimitRequestBody 10485760
- 配置:
- 启用 SSL/TLS(示例片段)
- 配置:
SSLEngine on SSLCertificateFile /etc/ssl/certs/example.com.crt SSLCertificateKeyFile /etc/ssl/private/example.com.key SSLCertificateChainFile /etc/ssl/certs/example-chain.crt
- 配置:
- 变更校验与生效
- 命令:
httpd -t systemctl reload apache2 # Debian/Ubuntu systemctl reload httpd # RHEL/CentOS
- 命令:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux Apache如何配置安全
本文地址: https://pptw.com/jishu/757700.html
