useradd -r -d /opt/tomcat -s /bin/false tomcat创建专用用户,并设置目录权限chown -R tomcat:tomcat /opt/tomcat,限制其对系统关键资源的访问。tomcat-users.xml,移除无关账号(如tomcat1),仅为必要角色(如manager-gui、admin-gui)分配权限,且密码需满足复杂度要求(8位以上,包含数字、大小写字母、特殊符号)。server.xml中的Connector配置,将默认的8080(HTTP)/8443(HTTPS)端口修改为非标准端口(如8081/8444),减少被自动扫描工具发现的概率。server.xml的Host标签中添加<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.d+" />,仅允许特定IP段访问管理界面(如manager、host-manager)。firewalld或iptables限制访问,例如firewall-cmd --zone public --add-port 8081/tcp --permanent && firewall-cmd --reload(仅允许8081端口访问),拒绝其他未授权端口的流量。webapps目录下的docs(文档)、examples(示例)、ROOT(默认页)、manager(管理控制台,若无需使用)、host-manager(主机管理)等文件夹,避免恶意代码部署。server.xml中的Context配置,设置autoDeploy="false"和unpackWARs="false",防止攻击者通过上传恶意WAR包实现自动部署。server.xml中的AJP连接器(默认端口8009),若无需与前置Web服务器(如Apache)集成,可直接注释或删除该配置。keytool创建自签名证书),编辑server.xml添加Connector配置(端口8443),启用HTTPS协议,确保数据在传输过程中不被窃取或篡改。server.xml中的Connector属性,添加server="MyAppServer/1.0",或在catalina.jar中修改ServerInfo.properties文件,隐藏Tomcat版本号,防止攻击者利用已知版本漏洞攻击。logging.properties文件,设置日志级别为FINE(如org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = FINE),记录访问源IP、请求URL、响应状态等信息;同时启用Tomcat访问日志(server.xml中添加AccessLogValve),便于后续审计。grep、awk等工具分析日志,重点关注异常访问(如频繁的404错误、同一IP的大量请求)、登录失败记录(如FailedLoginAttempts),及时发现潜在攻击行为。yum update(CentOS)或apt update(Ubuntu)更新Linux内核、OpenSSL、Java等依赖组件,确保系统环境的安全性。catalina.sh中添加-Djava.security.manager -Djava.security.policy==$CATALINA_HOME/conf/catalina.policy参数,限制应用程序的权限(如文件读写、网络访问),防止恶意代码破坏系统。server.xml中配置LockOutRealm,通过failureCount(连续失败次数,默认5次)和lockOutTime(锁定时间,默认300秒)参数,防止攻击者通过暴力破解获取管理账号权限。web.xml文件,在default servlet中设置listings="false",防止目录列表泄露敏感文件(如WEB-INF目录下的配置文件)。