在Ubuntu上跑Tomcat,安全防护这件事真不能掉以轻心——毕竟作为Ja va应用的主流容器,它一直是攻击者的热门目标。下面这6个方向,是经过实战验证的关键措施,直接照着做就行。
基础安全加固
首先,Tomcat绝不能跑在root用户下。一定要创建一个专用系统用户(比如就叫tomcat),并严格限制它的权限——这就好比给房子配个专门的看门人,而不是让房东自己站岗。
其次,webapps目录下那些默认示例应用(比如examples、docs等)必须删干净。这些玩意儿是攻击者部署恶意代码的捷径,留着就是给自己挖坑。同时,把默认端口改掉,HTTP从8080换成不常用的端口,能有效降低被扫描工具瞎碰到的概率。还有一个容易被忽略的点:隐藏Tomcat版本信息。修改server.xml或catalina.jar里的Server属性,别让攻击者一眼就看出你用的是哪个版本。
访问控制与认证
manager和host-manager这些管理界面,能不用就别用。如果确实需要,记得严格限制访问IP,只让内网或特定管理机器访问。在tomcat-users.xml里设置密码时,别再用admin/123456这种组合了——用随机生成的强密码,而且用户角色权限要按最小原则来,manager-script这种高权限角色能不分配就不分配。
暴力破解是常见攻击手法,所以账户锁定机制一定要开启。比如连续输错几次密码就暂时封IP,这个配置在Tomcat自带的功能里就能实现。
协议与加密
AJP协议如果没用到(比如不需要跟Apache集成),直接禁用就好。在server.xml里把protocol改成"HTTP/1.1"就完了。HTTPS是必选项,给Tomcat配个有效的SSL/TLS证书,全站走加密通信——证书别忘了定期更新,过期证书比没证书还危险。
日志与监控
详细日志是事后排查的救命稻草。访问日志、错误日志都得开启,并且定期翻一翻。如果发现某个IP疯狂访问管理端口或频繁请求不存在的资源,那基本就是在试探你。更高级的做法是上入侵检测系统或Web应用防火墙,比如ModSecurity,直接在流量层拦掉恶意请求。
权限与文件管理
应用部署目录的所有权必须交给tomcat用户,其他用户一律不给写入权限。自动部署和热部署功能最好关掉——把autoDeploy设为false,unpackWARs设为false。这样就算有人偷偷上传了恶意WAR包,也不会被自动解压和执行,等于堵死了一条后门。
系统级防护
Ubuntu自带的ufw或iptables别闲置,配好防火墙规则,只开放必要的端口(比如HTTP 8080、HTTPS 8443),其他端口一概封死。最后也是最重要的:定期更新Tomcat版本。官方安全公告一出来就马上跟进,很多知名漏洞都是被公开后大规模利用的,晚一天补上就多一天风险。
以上这些措施组合起来,基本能把Tomcat的安全水平拉到行业标准之上。如果还有更复杂的业务场景,再针对性地加规则即可。
