1. 用户与权限管理
useradd -r -m -d /opt/tomcat -s /bin/false tomcat创建无登录权限的专用用户,避免以root运行Tomcat;并通过chown -R tomcat:tomcat /opt/tomcat设置目录所有权,限制权限范围。tomcat-users.xml,移除不必要的用户角色(如manager-gui),仅为必要人员创建强密码账户(包含大小写字母、数字、特殊符号,长度≥8位);可通过<role>和<user>标签限制访问范围。2. 端口与服务加固
server.xml中的<Connector>标签,将HTTP默认端口8080改为非标准端口(如8081),AJP端口8009也同步修改,减少端口扫描攻击风险。server.xml的<Host>标签中设置autoDeploy="false"、unpackWARs="false",防止恶意WAR文件自动解压部署,避免未授权代码执行。server.xml中的AJP连接器(<Connector port="8009" protocol="AJP/1.3">),减少攻击面。3. 版本与信息隐藏
server.xml中的<Connector>标签,添加server="Custom Server Name"属性;或修改lib/catalina.jar中的ServerInfo.properties文件(需解压修改后重新打包),避免泄露版本信息,降低针对性攻击概率。4. SSL/TLS加密配置
server.xml添加如下配置,加密客户端与服务器间的通信,防止中间人攻击:<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" scheme="https" secure="true"
keystoreFile="/path/to/keystore.jks" keystorePass="your_password"
clientAuth="false" sslProtocol="TLS"/>
```。
5. 防火墙与访问控制
firewalld或iptables限制Tomcat端口访问,例如:sudo firewall-cmd --zone=public --add-port=8081/tcp --permanent # 允许修改后的HTTP端口
sudo firewall-cmd --zone=public --add-port=8443/tcp --permanent # 允许HTTPS端口
sudo firewall-cmd --reload
或通过iptables添加规则:iptables -A INPUT -p tcp --dport 8081 -j ACCEPT,并默认拒绝其他端口。tomcat-users.xml中通过<Valve>标签限制管理控制台访问IP,例如仅允许公司IP访问:<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192\.168\.1\.\d+" />
```。
6. 应用与目录安全
webapps目录下的docs、examples、manager、ROOT、host-manager等默认应用,避免暴露敏感信息或不必要的功能。web.xml(全局或应用级),设置listings="false",防止目录结构泄露:<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
```。
context.xml,添加useHttpOnly="true"属性,防止XSS攻击窃取会话Cookie;设置sessionCookieSecure="true",强制HTTPS传输Cookie。7. 日志与监控
logging.properties文件,设置关键组件的日志级别为FINE或ALL(如org.apache.catalina.core.ContainerBase),记录访问和操作详情,便于安全审计。grep、awk等工具分析logs/catalina.out、logs/localhost_access_log.*.txt等日志,监控异常访问(如频繁的404错误、大量POST请求),及时响应潜在攻击。8. 定期更新与补丁管理