1. 用户与权限管理
useradd -r -d /opt/tomcat -s /bin/false tomcat创建专用用户,并设置目录权限为chown -R tomcat:tomcat /opt/tomcat、chmod -R 750 /opt/tomcat,限制其对系统关键目录的访问。tomcat)设置包含数字、字母、特殊符号的强密码;在tomcat-users.xml中仅授予用户完成工作所需的最小角色(如manager-gui仅允许通过GUI管理,而非admin-gui)。2. 网络与访问控制
firewalld或iptables限制Tomcat端口(默认8080)的访问,仅允许特定IP地址(如运维人员IP)访问。例如firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="8080" accept' --permanent,然后firewall-cmd --reload。server.xml中的<Connector port="8888".../>并重启服务。server.xml中的<Connector>标签,添加server="MyCustomServer/1.0";或修改catalina.jar中的ServerInfo.properties文件(需解压后修改并重新打包),隐藏Tomcat版本,防止攻击者利用已知版本漏洞攻击。3. 服务与端口优化
server.xml中<Connector port="8009".../>的protocol="AJP/1.3"为protocol="HTTP/1.1"并注释掉;关闭自动部署功能,设置autoDeploy="false"、unpackWARs="false",防止恶意WAR文件自动部署。4. 应用与数据安全
web.xml中设置<init-param><param-name>listings</param-name><param-value>false</param-value></init-param>,禁用目录列表,防止敏感文件泄露;添加<security-constraint>限制危险HTTP方法(如PUT、DELETE、TRACE),仅允许GET、POST等必要方法。server.xml添加<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" keystoreFile="/path/to/cert.jks" keystorePass="yourpassword"/>,强制客户端通过HTTPS访问,防止数据传输中被窃取或篡改。5. 日志与监控
logging.properties文件,开启org.apache.catalina、org.apache.jasper等关键组件的FINE级别日志;定期检查logs/catalina.out、logs/localhost_access_log.*.txt等日志文件,监控异常访问(如频繁的404错误、大量POST请求)。6. 补丁与系统加固