1.流程概览:
5.删除控制台
在tomcat-users.xml中停用所有用户,默认就没开
6.Shutdown Port and Command
推荐加固方式:
代码语言:javascript复制<Server port="18005" shutdown="stop">
另一种方法:
还可以设置port属性为 -1,关闭 shutdown port
代码语言:javascript复制<Server port="-1" shutdown="SHUTDOWN">
关闭后,bin/shutdown.sh 就失效了,提示SEVERE: No shutdown port configured. Shut down server through OS signal. Server not shut down.
7.禁止自动部署 (在运行的Tomcat部署应用)
将host节点的autoDeploy属性设置为“false”
如果存在deployOnStartup属性,也将其更改为“false”
代码语言:javascript复制<Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="false">
8.开启访问日志记录
server.xml
默认就有如下配置,不用修改
代码语言:javascript复制<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log" suffix=".txt"pattern="%h %l %u %t "%r" %s %b" />
9.系统Banner
禁止Tomcat在Response Header返回server信息
代码语言:javascript复制<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" enableLookups="false" redirectPort="8443" server="Application Server" />
server="" 也行
隐藏error page返回
server.xml
https://tomcat.apache.org/tomcat-9.0-doc/config/valve.html#Error_Report_Valve
修改Error_Report_Valve属性为false,解决报错泄露
添加好host部分
代码语言:javascript复制<valve classname="org.apache.catalina.valves.ErrorReportValve" showreport="false" showserverinfo="false"/>
web.xml
修改DefaultServlet 配置 showServerInfo 属性为false
或者,创建文件
CATALINA_BASE/lib/org/apache/catalina/util/ServerInfo.properties,内容为:
server.info=Application Server
或者
进入 apache-tomcat-9.0.53/lib/ 目录,执行如下:
代码语言:javascript复制jar xf catalina.jar org/apache/catalina/util/ServerInfo.properties
如上会从catalina.jar解压org/apache/catalina/util/ServerIn
代码语言:javascript复制fo.properties文件,文件内容如下:[root@VM_1_5_centos lib]# cat org/apache/catalina/util/ServerInfo.properties |grep -v '#'server.info=Apache Tomcat/9.0.53server.number=9.0.53.0server.built=Sep 6 2021 19:09:00 UTC
修改server.info 和 server.number
执行如下,将org/apache/catalina/util/ServerInfo.properties打包进catalina.jar
代码语言:javascript复制jar uf catalina.jar org/apache/catalina/util/ServerInfo.properties
10.禁用http方法
编辑web.xml 文件中配置,将readonly 的param-value值设为false
org.apache.catalina.servlets.DefaultServlet的
代码语言:javascript复制<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
11.禁止目录浏览
conf/web.xml
将listings的值设置为false。
代码语言:javascript复制<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
12.错误页面
conf/web.xml
web-app添加子节点:
代码语言:javascript复制
代码语言:javascript复制<error-page>
<error-code>403</error-code>
<location>/403.html</location>
</error-page>
<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>
<error-page>
<exception-type>java.lang.NullPointerException</exception-type>
<location>/error.</location>
</error-page>
在webapps目录下创建ROOT/404.html,定义自定义错误信息。范例如下:
代码语言:javascript复制<!doctype html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>HTTP状态 404 - 未找到</title>
<style type="text/css">body {font-family:Tahoma,Arial,sans-serif;text-align: center; padding: 50px; background-color:#2d2d2d; color:#fff;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style>
</head>
<body>
<h1>HTTP状态 404 - 未找到</h1>
<hr class="line" />
<p><b>描述</b> 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。</p>
<hr class="line" />
<h3>Application Server</h3>
</body>
</html>
代码语言:javascript复制
13.Change the Website Icon
代码语言:javascript复制添加 64*64 的LOGO到 <Tomcat_Home>/webapps/ROOT/favicon.ico
作者:偷油考拉
源链接:https://www.jianshu.com/p/d96170ab0867
格式整理:IT运维技术圈