怎样用Apache2提升网站安全性
导读:Apache2 安全加固清单 一 基础与系统层防护 保持软件与系统为最新:定期执行系统与安全更新,及时修补 Apache2 与依赖组件漏洞。 最小化攻击面:仅启用必需模块,禁用无用模块(如 autoindex、status、userdir...
Apache2 安全加固清单
一 基础与系统层防护
- 保持软件与系统为最新:定期执行系统与安全更新,及时修补 Apache2 与依赖组件漏洞。
- 最小化攻击面:仅启用必需模块,禁用无用模块(如 autoindex、status、userdir、cgi 等),减少被利用面。
- 运行身份降权:以非特权用户/组运行 Apache2(如 www-data/apache),避免使用 root。
- 网络与端口控制:仅开放 80/443;在 UFW 中执行
sudo ufw allow 'Apache Full';在 firewalld 中放行 http/https 服务。 - 文件系统权限:网站目录建议
chown -R www-data:www-data /var/www/html,权限755为主,敏感文件更严格;配置与二进制目录限制为受控组访问。
二 核心 Apache 配置加固
- 隐藏版本与标识:设置
ServerTokens Prod与ServerSignature Off,避免泄露 Apache/OS/模块 版本信息。 - 禁用目录浏览:在全局或站点目录使用
Options -Indexes,防止目录文件列表泄露。 - 限制目录覆盖:生产环境建议
AllowOverride None,将访问控制集中在主配置,降低被 .htaccess 绕过的风险。 - 访问控制示例:对管理路径限制来源 IP(示例仅放行 192.168.100.0/24 与单 IP 192.168.100.22)
< Directory /var/www/html/admin> Options None AllowOverride None Require all denied Require ip 192.168.100.0/24 Require ip 192.168.100.22 < /Directory> - 根目录默认拒绝:对系统根或上层目录设置
Order deny,allow+Deny from all,仅对业务目录显式放行。 - 语法校验与重启:变更后用
httpd -t(或apache2ctl configtest)校验,再systemctl restart apache2使配置生效。
三 传输加密与证书管理
- 启用 HTTPS 并强制跳转:使用 Let’s Encrypt 获取免费证书并自动配置
- Ubuntu/Debian:
sudo apt install certbot python3-certbot-apache - 执行:
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
- Ubuntu/Debian:
- 防火墙放行:确保 UFW 的
Apache Full或 firewalld 的 http/https 已开启,避免 443 被阻断。 - 自签名证书(测试/内网):
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 或相应虚拟主机中配置
SSLEngine on、SSLCertificateFile、SSLCertificateKeyFile并重启服务。
四 安全头与 Web 应用防护
- 启用安全响应头(需
mod_headers):< IfModule mod_headers.c> Header always set X-Content-Type-Options "nosniff" Header always set X-Frame-Options "SAMEORIGIN" Header always set X-XSS-Protection "1; mode=block" Header always set Referrer-Policy "no-referrer-when-downgrade" Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; object-src 'none'; " < /IfModule> - 部署 WAF:安装并启用 ModSecurity
sudo apt install libapache2-mod-security2sudo a2enmod security2- 基本配置:
SecRuleEngine On、SecRequestBodyAccess On、SecAuditLog /var/log/modsec_audit.log,按需加载 OWASP Core Rule Set。
- 防暴力与 DoS:部署 Fail2Ban 监控 Apache 日志并自动封禁;必要时结合 mod_evasive 缓解请求洪泛。
五 日志监控与持续运维
- 日志与审计:确保访问与错误日志正常记录,定期审计异常请求与扫描行为;启用 ModSecurity 审计日志以追溯攻击链。
- 运行监控与告警:结合系统监控与日志告警,对 4xx/5xx 激增、异常 UA/Referer、暴力路径探测等设定阈值告警。
- 备份与变更管理:定期备份网站文件与配置,变更前先
configtest,变更后留回滚方案与变更记录。 - 平台加固:在 RHEL/CentOS 上结合 SELinux 正确设置 httpd 上下文与布尔值;按需限制 Apache 访问数据库端口与敏感资源。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 怎样用Apache2提升网站安全性
本文地址: https://pptw.com/jishu/780243.html
