首页主机资讯Linux上如何防止Tomcat被攻击

Linux上如何防止Tomcat被攻击

时间2025-11-17 09:13:04发布访客分类主机资讯浏览638
导读:Linux上防止Tomcat被攻击的实用加固清单 一 基础加固 删除或禁用管理应用:清理 $CATALINA_HOME/webapps 下的 docs、examples、ROOT、host-manager、manager;若必须保留管理端...

Linux上防止Tomcat被攻击的实用加固清单

一 基础加固

  • 删除或禁用管理应用:清理 $CATALINA_HOME/webapps 下的 docs、examples、ROOT、host-manager、manager;若必须保留管理端,仅在内网开放并严格限制来源 IP。
  • 降权运行:创建专用系统用户(如 tomcat),禁止 root 启动;将安装目录属主设为该用户,仅赋予必要权限。
  • 移除未使用组件:如无前置 Apache/Nginx,在 server.xml 中删除 AJP 连接器(8009)
  • 禁用自动部署:将 autoDeploydeployOnStartup 设为 false,避免恶意 WAR 被自动加载。
  • 强口令与最小权限:在 conf/tomcat-users.xml 仅保留必要账号与最小角色,设置复杂密码并定期更换。
  • 防暴力破解:在 server.xmlEngine 中使用 LockOutRealm,设置失败次数与锁定时间。
  • 版本与补丁:保持 Tomcat操作系统 为最新稳定版,及时修复已知漏洞。

二 网络与访问控制

  • 防火墙策略:仅开放必要端口(如 8080/8443);使用 UFW/firewalld/iptables 限制来源 IP 访问管理端或管理端口。
  • 管理端访问控制:对 manager/host-manager 配置 allow 规则仅允许内网或跳板机网段访问;或直接删除管理应用。
  • 关闭或保护 SHUTDOWN 端口:修改 server.xml 中的 8005 端口与关闭命令字符串,或将监听地址改为 127.0.0.1;也可直接关闭该端口。
  • 加密传输:配置 SSL/TLS(8443),使用 keytool 生成证书并在 server.xml 中启用 HTTPS 连接器。

三 应用与运行时安全

  • 禁用危险方法与目录浏览:在 conf/web.xmlDefaultServletreadonly 设为 true(禁用 PUT/DELETE);将 listings 设为 false 防止目录遍历。
  • 隐藏版本信息:修改 catalina.jar 中的 ServerInfo.properties(如移除 Server 字段),降低信息泄露面。
  • 访问日志与审计:在 server.xmlHost 中启用 AccessLogValve,记录 客户端 IP、请求方法、URL、状态码、字节数 等关键字段,便于溯源。
  • 连接与超时控制:在 server.xmlConnector 中合理设置 maxThreads、acceptCount、connectionTimeout,缓解资源耗尽与慢速攻击。

四 抗拒绝服务与监控

  • 连接与速率限制:在 firewalld/iptables 限制单 IP 并发连接数(如 connlimit),对异常来源进行 reject/drop
  • 边界与清洗:部署 WAF(如 ModSecurity) 识别并阻断恶意请求;结合 CDN/反向代理 做流量分散与缓存。
  • 资源隔离:使用 cgroups 限制 CPU/内存 等资源,避免单实例被压垮影响其他服务。
  • 监控告警与日志分析:持续检查 access/error/catalina 日志,监控 线程数、连接数、响应时延 等指标,配合 Prometheus/Grafana 设置阈值告警。

五 快速检查清单与示例

  • 快速检查清单
    • 管理应用已移除或来源 IP 严格受限;tomcat 为非 root 运行。
    • AJP 8009 已移除;autoDeploy/deployOnStartupfalse
    • 8005 已改端口/命令或仅本地监听;listings=false、readonly=true
    • SSL/TLS 已启用;AccessLogValve 已开启;版本信息已隐藏。
    • 防火墙仅放行业务端口与必要来源;已配置 WAF/CDN/监控告警
  • 示例命令
    • 创建专用用户与目录权限:
      • sudo useradd -r -m -d /opt/tomcat -s /bin/false tomcat
      • sudo chown -R tomcat:tomcat /opt/tomcat
      • sudo chmod +x /opt/tomcat/bin/*.sh
    • UFW 仅允许内网访问 8080:
      • sudo ufw allow from 192.168.1.0/24 to any port 8080
      • sudo ufw deny 8080
    • firewalld 限制单 IP 并发连接数:
      • sudo firewall-cmd --permanent --zone=public --add-rich-rule=‘rule family=“ipv4” source address=“1.2.3.4” reject’
      • sudo firewall-cmd --reload
    • 生成自签名证书并配置 HTTPS(示例):
      • $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /path/to/keystore
      • server.xml 添加 Connector:
    • 验证响应头是否隐藏版本:
      • curl -I http://your-domain:8080

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux上如何防止Tomcat被攻击
本文地址: https://pptw.com/jishu/748625.html
Debian如何排查vsftp连接问题 Tomcat在Linux上的资源占用如何优化

游客 回复需填写必要信息