# linux下tomcat安全配置

Author: 乌云历史资料库 (@wooyun_archive)
Published: 2016-05-25T01:29:00Z
Canonical: https://wepostx.com/topics/271

> 乌云历史资料归档
>
> **原始作者：** s4cr00t
> **原始编号：** superkieran-wooyundrops:1216
> **原始发布时间：** 2016-05-25 09:29
> **声明：内容仅用于技术研究和个人使用，版权归 wooyun.org。**

---

# 0x00 删除默认目录

安装完tomcat后，删除$CATALINA_HOME/webapps下默认的所有目录文件

```text
#!bash rm -rf /srv/apache-tomcat/webapps/*
```

# 0x01 用户管理

如果不需要通过web部署应用，建议注释或删除tomcat-users.xml下用户权限相关配置

![原文图片](/media/2016/06/0298556403714b6eab4eb62c96b91e2d)

# 0x02 隐藏tomcat版本信息

方法一
修改$CATALINA_HOME/conf/server.xml,在Connector节点添加server字段，示例如下

![原文图片](/media/2016/06/1bc3021ea7cfec884c65efda275f24ed)

![原文图片](/media/2016/06/f2b02fd51f34bda304d4e9e19bf94f99)

方法二
修改$CATALINA_HOME/lib/catalina.jar::org/apache/catalina/util/ServerInfo.properties
默认情况下如图

![原文图片](/media/2016/06/d88a5f817465e46626f4a1e345e3e0e4)

![原文图片](/media/2016/06/2f293fe57a8c50da2edbbeb0873ed038)

用户可自定义修改server.info字段和server.number字段，示例修改如下图所示。

![原文图片](/media/2016/06/7365862f04413f3c528b90ee5ee7be35)

![原文图片](/media/2016/06/4d6ff7af2fc1ae359d0eca4758b31e0e)

# 0x03 关闭自动部署

如果不需要自动部署，建议关闭自动部署功能。在$CATALINA_HOME/conf/server.xml中的host字段，修改unpackWARs="false" autoDeploy="false"。

![原文图片](/media/2016/06/f2bbb1bb00fb52327efb95b1d12b8f4f)

# 0x03 自定义错误页面

修改web.xml,自定义40x、50x等容错页面，防止信息泄露。

![原文图片](/media/2016/06/62e26e4bc3d13d6d3590128da736555f)

# 0x05 禁止列目录（高版本默认已禁止）

修改web.xml

![原文图片](/media/2016/06/12f96368d80998e5a31b36fd8b76b8b3)

# 0x06 AJP端口管理

AJP是为 Tomcat 与 HTTP 服务器之间通信而定制的协议，能提供较高的通信速度和效率。如果tomcat前端放的是apache的时候，会使用到AJP这个连接器。前端如果是由nginx做的反向代理的话可以不使用此连接器，因此需要注销掉该连接器。

![原文图片](/media/2016/06/a42e4a71cfc097d53ca670e3aaf7a469)

# 0x07 服务权限控制

tomcat以非root权限启动，应用部署目录权限和tomcat服务启动用户分离，比如tomcat以tomcat用户启动，而部署应用的目录设置为nobody用户750。

# 0x08 启用cookie的HttpOnly属性

修改$CATALINA_HOME/conf/context.xml，添加<Context useHttpOnly="true">,如下图所示

![原文图片](/media/2016/06/34206b1529826a95ab3f66b9caf26b7e)

测试结果

![原文图片](/media/2016/06/4bf3fc0daa8f386b7f637c48cb1009fc)

![原文图片](/media/2016/06/4a7861481e9fe5f42c6f06c1101f9dc9)

配置cookie的secure属性，在web.xml中sesion-config节点配置cooker-config，此配置只允许cookie在加密方式下传输。

![原文图片](/media/2016/06/8548fc7edf352c8b50fb827b1391a4b6)

测试结果

![原文图片](/media/2016/06/7e2ad7686bdad668d04c6dc754b8ebf6)

## Replies
