定期检查并安装Tomcat官方发布的安全补丁,优先升级至最新稳定版本(如2025年10月发现的CVE-2025-55752路径遍历漏洞,需升级至Tomcat 9.0.109及以上、10.0.45及以上、11.0.11及以上版本);同时保持Linux系统更新,通过apt update && apt upgrade(Debian/Ubuntu)或yum update(CentOS/RHEL)安装系统安全补丁,修复内核及依赖库漏洞。
tomcat-users.xml内不需要的用户(例如tomcat默认账号);管理员账户的密码长度须≥8位,并从特殊符号、大小写字母、数字中覆盖至少3类;tomcat_user),通过chown -R tomcat_user:tomcat_user /opt/tomcat赋予权限,避免以root身份运行Tomcat(降低入侵后权限提升风险);tomcat-users.xml中进一步细分用户角色(例如manager-gui仅可访问管理界面,admin-gui可以管理配置),使用户只能访问职责范围内的资源。server.xml中的<Host>标签,并设置autoDeploy="false"、unpackWARs="false",以阻止恶意WAR包被自动部署;webapps目录中的docs(文档)、examples(示例)、ROOT(默认页)、host-manager(主机管理)、manager(应用管理)等目录,从而缩小攻击面;server.xml并把AJP连接器端口改成-1(<Connector port="-1" protocol="AJP/1.3" />);server.xml中的shutdown端口修改为-1(<Server port="-1" shutdown="SHUTDOWN">),使shutdown命令无法从远程经该端口发出。ufw(Ubuntu)或firewalld(CentOS)限制Tomcat端口(默认8080)的访问,仅允许特定IP(如运维人员IP)访问(示例:sudo ufw allow from 192.168.1.100 to any port 8080);server.xml内的<Connector>标签,把端口从8080调整为其他高位端口(如8081);端口扫描攻击的概率由此降低;server.xml中的<Connector>标签,增加server="MyAppServer/1.0"属性,防止Tomcat版本暴露,从而减少针对性攻击。为Tomcat配置SSL证书,可加密其与客户端之间的数据传输,防范数据窃取、篡改等中间人攻击。操作步骤如下:
keytool -genkeypair -alias tomcat -keyalg RSA -keystore /opt/tomcat/keystore.jks);server.xml,添加SSL连接器(示例:<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" scheme="https" secure="true" keystoreFile="/opt/tomcat/keystore.jks" keystorePass="your_password" clientAuth="false" sslProtocol="TLS" />);https://your_domain:8443访问。logging.properties文件,把日志级别调整为FINE或FINER,以记录URL、IP、方法等请求详情;grep、awk等工具分析catalina.out、localhost_access_log.*.txt等日志,重点检查PUT方法调用、非工作时间登录及频繁出现的404请求等异常行为;logrotate工具,将日志文件体积控制在合理范围,防止其挤占过多磁盘空间(示例:/opt/tomcat/logs/catalina.out { daily rotate 7 compress missingok })。