CentOS中Tomcat安全配置要点
tomcat),赋予Tomcat目录所有权(chown -R tomcat:tomcat /usr/local/tomcat),避免以root身份运行,降低权限滥用风险。tomcat-users.xml:仅保留必要用户及角色(如manager-gui用于管理界面、admin-gui用于后台管理),删除默认空用户或测试账户;严格划分角色权限,例如manager-gui仅允许远程访问管理界面,admin-gui允许后台配置。server.xml中设置autoDeploy="false"和unpackWARs="false",防止恶意WAR文件自动解压部署,避免未授权应用上线。server.xml中的AJP端口改为-1(<Connector port="-1" protocol="AJP/1.3" />),关闭潜在的AJP协议漏洞。webapps/manager/META-INF/context.xml,添加RemoteAddrValve阀门,仅允许特定IP(如运维人员IP)访问管理界面,例如:<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192\.168\.1\.\d+" />。WEB-INF/web.xml中,通过<security-constraint>定义URL路径的保护规则,例如限制/admin/*路径仅允许admin角色访问,并指定认证方式(如BASIC或FORM);禁止危险HTTP方法(如PUT、DELETE、TRACE),通过<http-method>标签列出限制的方法,并设置空的<auth-constraint/>拒绝访问。openssl req -newkey rsa:2048 -nodes -keyout /etc/tomcat/keystore.key -out /etc/tomcat/keystore.crt -x509 -days 365。server.xml,取消注释或添加SSL连接器,指定证书路径和密码,启用HTTPS(SSLEnabled="true"),例如:<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" keystoreFile="/etc/tomcat/keystore.jks" keystorePass="yourpassword" scheme="https" secure="true" />。server.xml中的<Connector>标签,添加server属性(如server="CustomTomcat/1.0"),替换默认的Tomcat版本标识,防止攻击者通过响应头获取版本信息进行针对性攻击。web.xml,找到<init-param>标签,设置listings="false",禁止Tomcat自动列出目录内容,避免敏感文件(如WEB-INF/config.properties)泄露。server.xml中配置AccessLogValve,记录用户访问详情(如IP、请求时间、方法、URL、状态码),例如:<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />,便于后续审计异常访问行为。grep、awk等工具分析日志,关注404(未找到)、403(禁止访问)、500(服务器错误)等异常状态码,及时发现潜在攻击(如暴力破解、路径遍历)。firewalld或iptables限制Tomcat端口的访问范围,例如仅允许内网IP(如192.168.1.0/24)访问8080/8443端口,命令示例:firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="8080" accept',然后firewall-cmd --reload。