温馨提示×

Ubuntu Apache2安全配置怎么做

小樊
33
2025-12-09 02:59:58
栏目: 智能运维

Ubuntu Apache2 安全配置清单

一 基础加固

  • 保持系统与软件为最新:执行sudo apt update && sudo apt upgrade,及时修补漏洞。
  • 精简攻击面:禁用不需要的模块(如a2dismod autoindex等),仅启用必需模块。
  • 隐藏版本信息:在**/etc/apache2/conf-enabled/security.conf中设置ServerTokens ProdServerSignature Off**,减少信息泄露。
  • 目录与访问:禁止目录浏览(在站点或全局配置使用Options -Indexes),对管理路径设置Require all denied;为敏感目录增加AuthType BasicRequire valid-user的访问控制。
  • 运行身份:如需自定义运行用户/组,可在**/etc/apache2/envvars中设置APACHE_RUN_USER/APACHE_RUN_GROUP**并重启服务。
  • 日志与监控:确保开启ErrorLogCustomLog,并结合tail -f /var/log/apache2/error.log与监控工具进行审计。

二 传输加密与端口管理

  • 防火墙放行:使用UFW仅放行必要流量,例如sudo ufw allow ‘Apache Full’,或明确放行80/tcp443/tcp
  • 启用 HTTPS:启用模块sudo a2enmod ssl,部署证书后启用默认 SSL 站点(如sudo a2ensite default-ssl),或自建虚拟主机监听443
  • 证书部署:将证书与私钥放置于**/etc/apache2/ssl/,在虚拟主机中配置SSLEngine on**、SSLCertificateFileSSLCertificateKeyFile,如使用链证书则配置SSLCertificateChainFile
  • 端口与监听:确认**/etc/apache2/ports.conf包含Listen 80Listen 443**;如使用非标准端口,需同步在防火墙放行并在虚拟主机中对应监听。
  • 验证:访问https://你的域名确认证书生效与锁标识显示。

三 访问控制与攻击防护

  • 基础认证:对管理后台或敏感目录增加**.htaccess或目录级配置,使用htpasswd生成凭据文件并限制为Require valid-user**。
  • 暴力破解防护:部署Fail2Ban并启用对 Apache 日志的监控,自动封禁恶意 IP。
  • 连接耗尽与慢速攻击缓解:按需部署libapache2-mod-evasive(抗 DDoS/HTTP 洪泛)与libapache2-mod-qos(限流与连接控制),并配置日志目录与阈值参数。
  • 文件与目录权限:网站根目录建议chown -R www-data:www-datachmod -R 755,避免世界可写。

四 PHP 与关键模块安全

  • 精简动态语言风险:如非必要,避免启用mod_php;使用PHP-FPM与反向代理模式,降低 Apache 进程直接执行代码的风险。
  • PHP 安全配置:在php.ini中禁用危险函数(如exec、system、shell_exec等),设置open_basedir限制脚本可访问目录,并关闭display_errors防止信息泄露。
  • 按需加载模块:仅启用业务需要的模块,定期审查**/etc/apache2/mods-enabled/**并移除无用模块。

五 运维与合规建议

  • 变更与回滚:修改前备份配置与证书,变更后使用apache2ctl configtest校验语法,再systemctl reload apache2平滑生效。
  • 持续监控:结合fail2ban与日志分析,定期审计**/var/log/apache2/**中的异常访问与错误。
  • 备份策略:定期备份网站文件与配置(如打包**/etc/apache2/var/www**),确保可快速恢复。
  • 安全基线:生产环境建议启用AppArmor并为其编写站点专属策略,限制 Apache 对系统资源的访问;不建议直接移除 AppArmor。

0