Tomcat安全加固

近期安全部门内部漏扫时,发现部分tomcat存在通过OPTIONS方法提交特定的请求的问题,在响应中查看allow头信息,在allow头中发现delete、put等选项,delete方法是用来调试web服务器连接的http方式,支持该方式的服务器文件可能被非法删除;put方法用来向服务器提交文件,测试显示部分请求中这些方法是允许的。借此机会,顺手整理了下针对tomcat的安全加固。

一、删除示例文档

删除webapps/docs、examples、manager、ROOT、host-manager,这个步骤不提供了,拿到tomcat一般第一件事就做这个,老生常谈了。

二、禁止列目录

打开web.xml,将<param-name>listings</param-name>&nbsp;改成</param-name>&nbsp;false</param-name>&nbsp;,防止直接访问目录时由于找不到默认页面而列出目录下的文件。

三、修改默认端口

编辑conf/server.xml文件,把8080改成1024-65535的未使用端口。

四、禁用tomcat默认帐号

打开conf/tomcat-user.xml文件,将以下用户注释掉:



<br />

五、禁用不需要的http方法

对应开头,一般禁用delete,put方法,修改web.xml文件,增加如下内容:



<br />


/*
PUT
DELETE
HEAD
OPTIONS
TRACE





BASIC
注意,web.xml文件的修改,需重启tomcat生效。

六、启用安全cookie

防止xss跨站点攻击,tomcat6开始支持此属性,此处在context.xml中添加启用配置,context.xml配置即调用时生效不需要重启tomcat



<br />
# http://tomcat.apache.org/tomcat-6.0-doc/config/context.html

七、修改tomcat版本信息

进入apache-tomcat目录lib下,找到catalina.jar,使用压缩工具依次找到org\apache\catalina\util下的ServerInfo.properties。打开ServerInfo.properties编辑:(去掉版本信息)如下:



<br />
server.info=Apache Tomcat
server.number=
server.built=

八、重定向错误页面

conf/web.xml在倒数第1行之前加如下内容:



<br />

     401
     /401.htm


     404
     /404.htm


     500
     /500.htm
然后在webapps\manger目录中创建相应的401.html\404.htm\500.htm文件,错误返回页也可在应用中配置,应用中配置则只在当前应用生效。

九、其他

以下这个项可能不完全和安全相关,也单独列下吧。

1、禁止使用root用户运行

这个只针对类linux系统而言的,一旦有漏洞,被人注入上传木马,以什么样的用户运行就获取了什么权限。

2、虚拟目录

配置类似如下:



<br />


默认server.xml里一般只有appBase,没有docBase,两者的区别是:appBase这个目录下面的子目录将自动被部署为应用,且war文件将被自动解压缩并部署为应用。如果不想自动war部署,就把autoDeploy配置为false。默认为tomcat下的ROOT目录;docBase只是指向了你某个应用的虚拟目录,这个可以和appBase没有任何关系。这个可以拿apache httpd的默认目录DocumentRoot和虚拟主机VirtualHost对比。

3、日志审核

access log,新的版本里默认都是开启这个的:



修改conf/server.xml,取消注释如下部分:



<br />
 
启用access_log后,重启tomcat,在tomcat_home/logs中可以看到访问日志。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注