1、版本安全
定期升级到最新稳定版,但不建议进行跨版本升级。
2、服务降权
不使用root用户启动tomcat,使用用普通用户启动Tomcat。
3、telnet服务端口保护
更改tomcat管理端口8005为不易猜测端口,但要求端口配置在8000~8999之间,并更改shutdown执行的命令,shutdown命令可通过telnet远程对服务进行关闭,有一定的风险。
修改文件: /conf/server.xml
<Server port="8005" shutdown="SHUTDOWN">
例如修改为:<Server port="8123" shutdown="shutdown-xxx">
按实际情况修改
4、更改服务服务监听端口
若 Tomcat 都是放在内网的,则针对 Tomcat 服务的监听地址都是内网地址
修改文件:$CATALINA_HOME/conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
例如修改为:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
按实际情况修改
5、AJP连接端口保护 修改默认的ajp 8009端口为不易冲突(大于1024),但要求端口配置8000~8999之间。
修改文件:$CATALINA_HOME/conf/server.xml
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
例如修改为:
<Connector port="8199" protocol="AJP/1.3" redirectPort="8443" />
按实际情况修改
6、禁用管理端
(1)删除默认$CATALINA_HOME/conf/tomcat-users.xml文件,重启tomcat将会自动生成新的文件 (2)删除$CATALINA_HOME/webapps下载默认的所有目录和文件
7、隐藏Tomcat的版本信息
针对该信息的显示是由一个jar包控制的,该jar包存放在$CATALINA_HOME/lib目录下,名称为 catalina.jar,
在Tomcat关闭的情况下通过解压缩软件找到并修改 org/apache/catalina/util/ServerInfo.properties 文件中的 serverinfo 字段来实现来更改我们tomcat的版本信息
8、关闭war自动部署
默认Tomcat是开启了对war包的热部署的。为了防止被植入木马等恶意程序,因此我们要关闭自动部署。
修改文件:$CATALINA_HOME/conf/server.xml
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
修改为:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="false">
9、添加自定义错误页面
为防止默认的错误信息泄露Tomcat相关信息,需自定义错误页面
编辑$CATALINA_HOME/CONF/web.xml,在</web-app>标签上添加以下内容:
<error-page>
<error-code>404</error-code>
<location>/404.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/500.html</location>
</error-page>
10、屏蔽目录文件自动列出
确认$CATALINA_HOME/CONF/web.xml文件,如下黄色字部分为false状态。
<servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
11、脚本权限回收
控制$CATALINAHOME/bin目录下的start.sh、catalina.sh、shutdown.sh的可执行权限
chmod −R 744 CATALINA_HOME/bin/*
注意:chmod −R 744 意思为当前文件夹拥有者才具备运行权限
CATALINA_HOME/bin/* 路径根据实际部署环境填写
【2、服务降权】中提到tomcat文件夹不使用root权限对tomcat进行运行
因此通过chmod −R 744 将tomcat的文件夹bin下脚本的运行权限,局限于tomcat文件夹
拥有人账号才能运行
12、server head重写
在HTTP Connector配置中加入server的配置 server="server_name",默认是Apache-Copyote/1.1
修改文件:$CATALINA_HOME/conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
修改为:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
server="test"/>
13、访问日志格式规范(选择性修改)
开启tomcat默认访问日志中Referer和User-Agent记录
修改文件:$CATALINA_HOME/conf/server.xml
原始配置:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
修改后配置:
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log"
suffix=".txt" pattern="%h %l %u %t "%r" %s %b %{Referer}i %{User-Agent}i %D"
resolveHosts="false" />
转载:https://blog.csdn.net/weixin_45758890/article/details/105708159