1.流程概览:
5.删除控制台
在tomcat-users.xml中停用所有用户,默认就没开
6.Shutdown Port and Command
推荐加固方式:
<Server port="18005" shutdown="stop">
另一种方法:
还可以设置port属性为 -1,关闭 shutdown port
<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”
<Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="false">
8.开启访问日志记录
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" />
9.系统Banner
禁止Tomcat在Response Header返回server信息
<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部分
<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/ 目录,执行如下:
jar xf catalina.jar org/apache/catalina/util/ServerInfo.properties
如上会从catalina.jar解压org/apache/catalina/util/ServerIn
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
jar uf catalina.jar org/apache/catalina/util/ServerInfo.properties
10.禁用http方法
编辑web.xml 文件中配置,将readonly 的param-value值设为false
org.apache.catalina.servlets.DefaultServlet的
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
11.禁止目录浏览
conf/web.xml
将listings的值设置为false。
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
12.错误页面
conf/web.xml
web-app添加子节点:
<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,定义自定义错误信息。范例如下:
<!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>
13.Change the Website Icon
作者:偷油考拉
格式整理:IT运维技术圈