Tomcat安全设置
- 更改端口
描述
tomcat的默认端口是8080 ,攻击者可以据此运行扫描工具进行端口扫描,从而获取部署了tomcat的Web服务器然后实施攻击。因此,为了安全期间我们可以修改此默认端口。
检查提示
配置文件路径:apache-tomcat-9.0.39/conf/server.xml
加固建议
- 使用编辑器对配置文件进行编辑;将port:8080改成其他端口号
- <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
- 注释或删除tomcat-users.xml文件内的所有用户权限
描述
tomcat的后台管理员为admin并且默认为空密码
检查提示
配置文件路径:apache-tomcat-9.0.39/conf/tomcat-users.xml
加固建议
1、 禁用账号, 将下面的权限和用户注释
3. 删除webapps下默认所有目录和文件
描述
删除apache-tomcat-9.0.39/webapps中的项目文件
检查提示
路径:apache-tomcat-9.0.39/webapp
加固建议
删除webapp文件夹下面的docs、examples、ROOT。重命名host-manager目录名,如改为host-manager-1,
重命名manager目录名,如改为manager-1;
4、自定义错误页面
描述
web.xml是在某一个应用下面的,他处理的应当是本应用的404,而http://localhost/访问的是tomcat自已的应用,那么这个web.xml配置就应当在webapp/ROOT/下面的应用来配了, ROOT目录下面放着Tomcat的应用
检查提示
配置文件路径:apache-tomcat-9.0.39/conf/web.xml
加固建议 、
1、web.xml追加下面配置
<error-page>
<error-code>404</error-code>
<location>/404.html</location>
</error-page>
2、apache-tomcat-9.0.39/webapp/ROOT文件夹中新建404.html,内容如下:
<html>
<head>
<title>404</title>
</head>
<body>
<p>404</p>
</body>
</html>
5、AJP端口管理
描述
web.xml是AJP是为了Tomcat和AJP之间通信而制定的协议,有比较高的通信速度和效率。若tomcta前面用nginx反向代理则可以忽略ajp连接器(connector)
如若使用的是apache httpd服务器则不能关闭ajp连接器
关闭该连接器只需要注释掉server.xml中对应的节点即可
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
检查提示
配置文件路径: apache-tomcat-9.0.39/conf/server.xml
加固建议
关闭该连接器只需要注释掉server.xml中对应的节点即可
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
6、关闭服务器端口
描述
telnet 命令链接tomcat shutdown端口后,输入shutdown命令可以停止tomcat服务(端口在Server.xml文件中)如下:
<Server port="8005" shutdown="SHUTDOWN">
telnet 127.0.0.1 8005 然后输入shutdown即可停止服务。
检查提示
配置文件路径:apache-tomcat-9.0.39/conf/server.xml
加固建议
如果不改关闭端口或关闭命令,别人会通过端口号和命令关闭服务,出于安全考虑,需要改变端口号或关闭命令。如下,将shutdown命令改变为QUIT
<Server port="8005" shutdown="QUIT">
7、启用cookie的HttpOnly
描述
修改cookie的HttpOnly属性,就无法通过脚步获得cookie的信息。
检查提示
配置文件路径:apache-tomcat-9.0.39/conf/context.xml
加固建议
8、禁止目录列表
描述
配置文件列表访问控制 (禁止目录列表,防止文件名泄漏)
检查提示
配置文件路径:apache-tomcat-9.0.39/conf/web.xml
加固建议
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
· 全程使用 AI 从 0 到 1 写了个小工具
2019-06-17 浅谈 Nginx和LVS的各种优缺点
2019-06-17 LVS负载均衡(LVS简介、三种工作模式、十种调度算法)