tomcat安全优化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat安全优化相关的知识,希望对你有一定的参考价值。

1、删除默认登录后台

如果不需要通过web来部署应用,删除默认管理后台

1.1、问题确认

1

2

3

4

5

6

Tomcat的默认后台地址为:http://域名:端口/manager/html.进入之后弹出登陆对话框,Tomcat默认的用户名admin,密码为空。

Tomcat的一些弱口令:

tomcat tomcat 

admin 空 

admin admin 

admin 123456

 

 

1.2、优化操作:

(1)删除webapps目录下所有文件

1

2

3

4

5

6

7

8

9

10

11

12

[[email protected] local]# cd tomcat7/webapps/

[[email protected] webapps]# ll

总用量 20

drwxr-xr-x 13 root root 4096 5月  23 16:32 docs

drwxr-xr-x  6 root root 4096 5月  23 16:32 examples

drwxr-xr-x  5 root root 4096 5月  23 16:32 host-manager

drwxr-xr-x  5 root root 4096 5月  23 16:32 manager

drwxr-xr-x  3 root root 4096 5月  23 16:32 ROOT

[[email protected] webapps]# rm -rf *

[[email protected] webapps]# ll

总用量 0

[[email protected] webapps]# 

(2)删除或注释登录用户信息

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

vim conf/tomcat-users.xml 

<tomcat-users>

<!--

  NOTE:  By default, no user is included in the "manager-gui" role required

  to operate the "/manager/html" web application.  If you wish to use this app,

  you must define such a user - the username and password are arbitrary.

-->

<!--

  NOTE:  The sample user and role entries below are wrapped in a comment

  and thus are ignored when reading this file. Do not forget to remove

  <!.. ..> that surrounds them.

-->

<!--

  <role rolename="tomcat"/>

  <role rolename="role1"/>

  <user username="tomcat" password="tomcat" roles="tomcat"/>

  <user username="both" password="tomcat" roles="tomcat,role1"/>

  <user username="role1" password="tomcat" roles="role1"/>

-->

</tomcat-users> 

 

2、隐藏Tomcat版本信息

2.1、问题确认

 

 

2.2、优化操作

下载lib/catalina.jar 到本地,使用压缩软件打开,依次路径找到\org\apache\catalina\util\ServerInfo.properties ,找到版本信息,修改伪装

1

2

3

server.info=Apache Tomcat/7.0.42

server.number=7.0.42.0

server.built=Jul 2 2013 08:57:41    

改为

随意写

1

2

3

server.info=TEXT1.1

server.number=1.1

server.built=Jul 2 2013 08:57:41

修改完毕。重启tomcat

 

2.3、修复验证

 

 

1

2

3

4

5

6

7

8

[[email protected] ~]# curl -I 192.168.0.1:5050

HTTP/1.1 200 OK

Content-Type: text/html;charset=ISO-8859-1

Transfer-Encoding: chunked

Date: Wed, 25 May 2016 16:41:22 GMT

Server: TEXT1.1

 

[[email protected] ~]# 

 

 

 

3、关闭自动部署

<Host>元素的autoDeploy属性。默认为true,表示如果有新的WEB应用放入appBase并且Tomcat在运行的情况下,自动载入应用。建议关闭,改为false

1

2

      <Host name="localhost"  appBase="webapps"

            unpackWARs="true" autoDeploy="false">

 

4、自定义错误页面

默认的40X/50X错误页面会暴露版本等敏感信息

 

 

5、AJP端口管理

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

1

<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->

 

6、服务权限控制

tomcat以普通用户权限启动。

创建普通用户javauser,主目录/home/javauser,可以用来存放web应用,允许登录。(默认情况下,不修改密码,javause用户的密码是锁定的,外部无法登录,仅本机可以su - javauser)

tomcat实例安装目录、应用部署目录的属主和属组都修改为javauser,防止出现权限问题

 

1

2

3

4

5

6

7

8

9

[[email protected] ~]# useradd javauser

[[email protected] ~]# chown javauser:javauser /usr/local/tomcat7-5050 -R

[[email protected] ~]# su -c /usr/local/tomcat7-5050/bin/startup.sh javauser

Using CATALINA_BASE:   /usr/local/tomcat7-5050

Using CATALINA_HOME:   /usr/local/tomcat7-5050

Using CATALINA_TMPDIR: /usr/local/tomcat7-5050/temp

Using JRE_HOME:        /usr/java/jdk1.7.0_40/jre

Using CLASSPATH:       /usr/local/tomcat7-5050/bin/bootstrap.jar:/usr/local/tomcat7-5050/bin/tomcat-juli.jar

[[email protected] ~]# 


7、shutdown端口保护

对于一个已经开启的tomcat服务器,可以在cmd下使用telnet XXXX 8005命令进行连接,然后输入“SHUTDOWN” 命令就可以关闭服务器



默认情况下,shutdown端口仅监听127.0.0.1。不是的话,需要使用iptables限制源IP对这个端口的访问





8、启用cookie的HttpOnly属性

在<Contextu>元素设置属性seHttpOnly="true"

此问题的原因在于防范xss攻击,当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输,也就是只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以不会被窃取到Cookie 的具体内容。

HttpOnly属性:

如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这样能有效的防止XSS攻击。

 

1

<Context useHttpOnly="true">

 



以上是关于tomcat安全优化的主要内容,如果未能解决你的问题,请参考以下文章

tomcat安全优化

Tomcat多实例集群架构 安全优化和性能优化

Linux下jvm与tomcat的安全与优化

Tomcat安全设置与优化详解(非原创)

tomcat安全优化

浅谈tomcat优化(内存,并发,缓存,安全,网络,系统等)