2024-03-21
Linux
00
请注意,本文编写于 37 天前,最后修改于 37 天前,其中某些信息可能已经过时。

目录

Tomcat-安全加固/安全基线
版本控制
关闭web管理页面
修改tomcat默认账号
不使用root用户启动
隐藏Tomcat版本号
删除示例文档
禁止列出目录
设置安全cookie
禁用shutdown
禁用AJP端口(需确认业务是否使用)
关闭热部署
禁用非法Http方法(按需设置)

Tomcat-安全加固/安全基线

加固前请对系统业务运行的服务、端口等信息进行摸查及评估,并在测试机先行测试,加固不规范,老板扔炸弹。

版本控制

8版本以前已经停止更新,不建议使用

Tomcat下载地址: https://archive.apache.org/dist/tomcat/

关闭web管理页面

将部署 Tomcat 目录下 webapps 下与业务代码无关的文件夹全部删除

修改tomcat默认账号

如果前面管理界面关了,那这个当我没说。

如果非开这个管理页面不可,那就把默认账户修改掉咯,修改掉/Tomcat目录/conftomcat-users.xml默认用户,例如把Tomcat用户改成nginx,再设置一个自己都记不住的密码🙂。

不使用root用户启动

使用普通用户启动

隐藏Tomcat版本号

  1. 进入 /tomcat目录/lib找到catalina.jar

  2. 解压:jar xf catalina.jar

  3. 进入org/apache/catalina/util 编辑ServerInfo.properties

  4. 删除后重新将文件打包成jar

jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties
  1. 重启tomcat

  2. 检验:

curl IP:port | grep "Apache Tomcat"

这里说一个恐怖的事情,加固到后面有可能不知道用了什么版本。

删除示例文档

删除webapps目录下的示例:

docs、examples、host-manager、manager、ROOT

禁止列出目录

安装目录下,conf文件夹中,web.xml,将listings改成false

设置安全cookie

编辑/tomcat目录/conf/context.xml,新增<Context useHttpOnly="true">

禁用shutdown

编辑/tomcat目录/conf/server.xml ,将默认8005端口改为“-1”或更改shutdown命令,防止被恶意远程重启。

禁用AJP端口(需确认业务是否使用)

编辑/tomcat目录/conf/server.xml,将AJP端口改为-1

关闭热部署

编辑server.xml中的host项中,修改autoDeploy="false"

禁用非法Http方法(按需设置)

如果前置nginx的话,在nginx做也行,看你喜欢,做之前要看应用系统是否有用到这些http方法。

conf文件夹中,web.xml

xml
<security-constraint> <web-resource-collection> <web-resource-name>fortune</web-resource-name> <url-pattern>/*</url-pattern> <http-method>PUT</http-method> <http-method>DELETE</http-method> <http-method>HEAD</http-method> <http-method>OPTIONS</http-method> <http-method>TRACE</http-method> </web-resource-collection> <auth-constraint></auth-constraint> </security-constraint>

## 修改默认端口号

tomcat目录下的conf目录,找到server.xml文件。

xml
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:XiaoWang0777

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

本网站由 又拍云Logo 提供CDN加速/云存储服务 萌ICP备20240377号