1.删除默认目录
安装完tomcat后,删除$CATALINA_HOME/webapps下默认的所有目录文件** rm -rf /srv/apache-tomcat/webapps/**
2.用户管理
如果不需要通过web部署应用,建议注释或删除tomcat-users.xml下用户权限相关配置
3.隐藏tomcat版本信息
方法一:修改$CATALINA_HOME/conf/server.xml,在Connector节点添加server字段,示例如下
方法二:修改$CATALINA_HOME/lib/catalina.jar::org/apache/catalina/util/ServerInfo.properties 默认情况下如图
用户可自定义修改server.info字段和server.number字段,示例修改如下图所示。
4.关闭自动部署
如果不需要自动部署,建议关闭自动部署功能。
在$CATALINA_HOME/conf/server.xml中的host字段,修改unpackWARs=”false” autoDeploy=”false”。
5.自定义错误页面
修改web.xml,自定义40x、50x等容错页面,防止信息泄露。
6.禁止列目录(高版本默认已禁止)
修改web.xml
7.AJP端口管理
AJP是为 Tomcat 与 HTTP 服务器之间通信而定制的协议,能提供较高的通信速度和效率。如果tomcat前端放的是apache的时候,会使用到AJP这个连接器。前端如果是由nginx做的反向代理的话可以不使用此连接器,因此需要注销掉该连接器。
8.服务权限控制
tomcat以非root权限启动,应用部署目录权限和tomcat服务启动用户分离,比如tomcat以tomcat用户启动,而部署应用的目录设置为nobody用户750。
9.启用cookie的HttpOnly属性
修改$CATALINA_HOME/conf/context.xml,添加<Context useHttpOnly=”true”>,如下图所示
测试结果
配置cookie的secure属性,在web.xml中sesion-config节点配置cooker-config,此配置只允许cookie在https加密方式下传输。
测试结果