linux下tomcat安全配置
2016-05-27 15:55
513 查看
转:http://www.tuicool.com/articles/R7fQNfQ
0x00 删除默认目录
安装完tomcat后,删除 $CATALINA_HOME/webapps 下默认的所有目录文件
#!bash
rm -rf /srv/apache-tomcat/webapps/*
0x01 用户管理
如果不需要通过web部署应用,建议注释或删除tomcat-users.xml下用户权限相关配置
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527152911366-1056610469.png)
0x02 隐藏tomcat版本信息
方法一
修改 $CATALINA_HOME/conf/server.xml ,在Connector节点添加server字段,示例如下
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527152924006-679627124.png)
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527152941756-806009638.png)
方法二
修改 $CATALINA_HOME/lib/catalina.jar::org/apache/catalina/util/ServerInfo.properties
默认情况下如图
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527152954928-942131003.png)
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527153022741-621036637.png)
用户可自定义修改server.info字段和server.number字段,示例修改如下图所示。
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527153040756-1774096450.png)
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527153051975-1947842558.png)
0x03 关闭自动部署
如果不需要自动部署,建议关闭自动部署功能。在 $CATALINA_HOME/conf/server.xml 中的host字段,修改 unpackWARs="false" autoDeploy="false" 。
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527153100725-1335311838.png)
0x04 自定义错误页面
修改web.xml,自定义40x、50x等容错页面,防止信息泄露。
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527153137100-1087698198.png)
0x05 禁止列目录(高版本默认已禁止)
修改web.xml
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527153151788-169001725.png)
0x06 AJP端口管理
AJP是为 Tomcat 与 HTTP 服务器之间通信而定制的协议,能提供较高的通信速度和效率。如果tomcat前端放的是apache的时候,会使用到AJP这个连接器。前端如果是由nginx做的反向代理的话可以不使用此连接器,因此需要注销掉该连接器。
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527153206678-1849894193.png)
0x07 服务权限控制
tomcat以非root权限启动,应用部署目录权限和tomcat服务启动用户分离,比如tomcat以tomcat用户启动,而部署应用的目录设置为nobody用户750。
0x08 启用cookie的HttpOnly属性
修改 $CATALINA_HOME/conf/context.xml ,添加 <Context useHttpOnly="true"> ,如下图所示
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527155331756-1483353873.png)
测试结果
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527155352819-197315954.png)
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527155407194-170438653.png)
配置cookie的secure属性,在web.xml中sesion-config节点配置cooker-config,此配置只允许cookie在加密方式下传输。
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527155430694-1270139499.png)
测试结果
0x00 删除默认目录
安装完tomcat后,删除 $CATALINA_HOME/webapps 下默认的所有目录文件
#!bash
rm -rf /srv/apache-tomcat/webapps/*
0x01 用户管理
如果不需要通过web部署应用,建议注释或删除tomcat-users.xml下用户权限相关配置
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527152911366-1056610469.png)
0x02 隐藏tomcat版本信息
方法一
修改 $CATALINA_HOME/conf/server.xml ,在Connector节点添加server字段,示例如下
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527152924006-679627124.png)
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527152941756-806009638.png)
方法二
修改 $CATALINA_HOME/lib/catalina.jar::org/apache/catalina/util/ServerInfo.properties
默认情况下如图
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527152954928-942131003.png)
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527153022741-621036637.png)
用户可自定义修改server.info字段和server.number字段,示例修改如下图所示。
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527153040756-1774096450.png)
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527153051975-1947842558.png)
0x03 关闭自动部署
如果不需要自动部署,建议关闭自动部署功能。在 $CATALINA_HOME/conf/server.xml 中的host字段,修改 unpackWARs="false" autoDeploy="false" 。
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527153100725-1335311838.png)
0x04 自定义错误页面
修改web.xml,自定义40x、50x等容错页面,防止信息泄露。
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527153137100-1087698198.png)
0x05 禁止列目录(高版本默认已禁止)
修改web.xml
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527153151788-169001725.png)
0x06 AJP端口管理
AJP是为 Tomcat 与 HTTP 服务器之间通信而定制的协议,能提供较高的通信速度和效率。如果tomcat前端放的是apache的时候,会使用到AJP这个连接器。前端如果是由nginx做的反向代理的话可以不使用此连接器,因此需要注销掉该连接器。
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527153206678-1849894193.png)
0x07 服务权限控制
tomcat以非root权限启动,应用部署目录权限和tomcat服务启动用户分离,比如tomcat以tomcat用户启动,而部署应用的目录设置为nobody用户750。
0x08 启用cookie的HttpOnly属性
修改 $CATALINA_HOME/conf/context.xml ,添加 <Context useHttpOnly="true"> ,如下图所示
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527155331756-1483353873.png)
测试结果
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527155352819-197315954.png)
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527155407194-170438653.png)
配置cookie的secure属性,在web.xml中sesion-config节点配置cooker-config,此配置只允许cookie在加密方式下传输。
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527155430694-1270139499.png)
测试结果
![](https://images2015.cnblogs.com/blog/16027/201605/16027-20160527155441022-108516772.png)
相关文章推荐
- tomcat(17)启动tomcat
- 修改tomcat,jvm内存
- Tomcat服务器启动闪退,非jdk原因
- jetty和tomcat区别与应用场景
- 虚拟机 centos7 宿主机打不开tomcat项目
- SecurityException: class signer information does not match signer……异常,解决办法
- 集成Tomcat插件到Eclipse ,热部署
- Linux系统下Eclipse中配置Tomcat
- 同一服务器部署多个tomcat时的端口号修改详情
- Eclipse/IntelliJ IDEA添加JRebel 6.4.4以实现Tomcat热部署
- mac 下载安装tomcat 并给权限
- file:/D:/Tomcat%206.0/webapps/Struts2UserLogin/WEB-INF/classes/struts.xml:3:8
- 升级tomcat7的运行日志框架到log4j2,可以打进kafka
- tomcat6目录结构
- 在eclipse中启动tomcat加载不了项目的解决方法
- nginx代理tomcat不能获取真实ip地址解决方法
- tomcat 生成控制台日记到指定文件
- Tomcat集群配置学习篇-----分布式应用
- 解决tomcat内存溢出有关问题
- centos 启动tomcat 报错40001