CentOS下Tomcat安全配置要点
webapps目录下的所有默认应用(如docs、examples、host-manager、manager、ROOT),防止恶意代码通过默认路径部署。命令:rm -rf /path/to/tomcat/webapps/*。conf/tomcat-users.xml中的所有用户及角色定义,避免未授权访问管理界面。server.xml中的Connector节点,添加server属性(如server="MyAppServer/1.0"),防止攻击者通过响应头获取Tomcat版本,降低针对性攻击风险。tomcat),赋予其Tomcat目录的所有权(chown -R tomcat:tomcat /path/to/tomcat),并通过Systemd服务文件(/etc/systemd/system/tomcat.service)配置Tomcat以该用户身份启动,避免root权限滥用。tomcat-users.xml中定义细粒度角色(如manager-gui、admin-gui),并为每个用户分配最小必要角色;对于敏感管理界面(如host-manager),可通过RemoteAddrValve限制访问IP(如仅允许内网IP),进一步提升安全性。firewalld开放Tomcat端口(如8080、8443),并限制访问来源(如仅允许特定IP或网段),禁止未授权IP访问。示例:firewall-cmd --permanent --zone=public --add-port=8080/tcp,firewall-cmd --reload。server.xml中的Host节点,设置unpackWARs="false"和autoDeploy="false",防止攻击者上传恶意WAR文件并自动部署。web.xml中配置security-constraint,结合RemoteAddrValve实现双重控制。例如,限制/admin/*路径仅允许内网IP访问,或要求用户具备admin角色才能访问敏感资源。keytool生成自签名证书或使用CA证书,在server.xml中添加Connector节点(端口8443),启用HTTPS加密通信,确保数据传输不被窃取或篡改。示例:SSLEnabled="true" keystoreFile="/path/to/keystore" keystorePass="your_password"。context.xml中配置SessionCookie属性,设置sessionCookieHttpOnly="true"(防止XSS窃取Cookie)、sessionCookieSecure="true"(仅通过HTTPS传输),降低会话劫持风险。web.xml中的DefaultServlet配置,设置listings="false",防止目录结构泄露敏感文件信息。chcon -R -t httpd_sys_content_t /path/to/tomcat/webapps、chcon -R -t httpd_sys_rw_content_t /path/to/tomcat/logs),并调整布尔值(setsebool -P httpd_can_network_connect 1),允许Tomcat访问网络资源。755用于目录、644用于文件),避免其他用户修改关键文件(如conf/server.xml、webapps中的应用代码)。conf/server.xml中的AccessLogValve)和错误日志,记录请求详情(如IP、URL、状态码),定期检查日志以发现异常访问(如频繁的登录失败、大量404请求)。