梦幻之旅

DEBUG - 天道酬勤

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  671 随笔 :: 6 文章 :: 256 评论 :: 0 Trackbacks

Tomcat是一个世界上广泛使用的支持JSP和servlets的Web服务器。它在JAVA运行时上能够很好地运行并支持Web应用部署。
运行Tomcat很简单;到Tomcat网站下载安装程序就可进行Tomcat的安装。没有人对Tomcat的危险性有透彻的了解。Tomcat Web应用程序的主要安全风险存在于以下方面:

Tomcat的JSP或JSP内调用的bean能够实施下列高风险性任务:

·运行一个Windows系统环境下的程序
·读取任意文件夹内任何文件的内容
·删除任意文件夹中的文件
·在任意文件夹内创建新文件

安全配置建议如下:

一、 用户权限

默认安装时Tomcat是以系统服务权限运行的,因此缺省情况下几乎所有的Web服务器的管理员都具有Administrator权限这和IIS不同,存在极大的安全隐患,所以安全设置首先从Tomcat服务降权开始。
1.1 首先创建一个普通用户(最好是隶属于guest组),为其设置密码,将其密码策略设置为“密码永不过期”,比如创建一个用户tomcat_leiliang。然后修改tomcat安装文件夹的访问权限,为tomcat_leiliang赋予tomcat文件夹的读、写、执行的访问权限,赋予tomecat_leiliang对WebApps文件夹的只读访问权限,如果某些Web应用程序需要写访问权限,单独为其授予对那个文件夹的写访问权限。
1.2 “开始→运行”,输入services.msc打开服务管理器,找到Apache Tomcat服务,双击打开该服务,在其实属性窗口中点击“登录”选项卡,在登录身份下选中“以此帐户”,然后在文本框中输入tomcat_leiliang和密码,最后“确定”并重启服务器。这样tomcat就以tomcat_leiliang这个普通用户的权限运行。
1.3 有的时候,我们需要在命令行下运行tomcat,这时候可以在命令下输入命令runas /user:tomcat_leiliang cmd.exe回车后并输入密码,这样就开启一个tomcat_leiliang权限的命令行。最后定位到tomcat的bin文件夹下,输入命令 tomcat6.exe即以tomcat_leiliang在命令行下启动tomcat。

二、更改端口:

2.1 tomcat的默认端口是8080,攻击者可以据此运行扫描工具进行端口扫描,从而获取部署了tomcat的Web服务器然后实施攻击。因此,为了安全期间我们可以修改此默认端口。在tomcat的安装路径的conf目录下找到server.xml文件,用记事本打开然后搜索8080找到对应的字段,然后将8080自行修改为另外的数字。另外,需要说明的是connectionTimeout=”20000″是连接超时,maxThreads=”150″ 是最大线程类似这样的参数也可以根据需要进行修改。

三、 禁止列表

3.1 如果浏览者可以在客户端浏览Web目录,那将会存在较大的安全隐患,因此我们要确认tomcat的设置中禁止列目录。设置文件是web.xml,也在conf目录下。用记事本打开该文件,搜索init-param在其附近找到类似如下字段:
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
确认是false而不是true。

四、用户管理

4.1 tomcat的后台管理员为admin并且默认为空密码,安全期间我们需要修改该默认的用户名并为其设置健壮的密码。其配置文件为tomcat- users.xml,用记事本打开该文件然后进行修改。其中role标签表示其权限,manager说明是管理员权限;user标签表示后台管理用户,可以看到用户名为admin,我们可以将其修改为一个陌生的用户;可以看到password后面为空密码,我们可以为其设置一个复杂的密码。最后修改配置完成的tomcat-users.xml文件为:
<?xml version=’1.0′ encoding=’utf-8′?>
<tomcat-users>
<role rolename=”manager”/>
<role rolename=”admin”/>
<user username=”gslw” password=”test168″ roles=”admin,manager”/>
</tomcat-users>

五、 错误页面

5.1 打开web.xml文件,在最后一行的之前添加如下的语句:
<1– 无法连接到请求页面 –>
<error-page>
<error-code>400</error-code>
<location>/400.htm</location>
</error-page>
<!– 访问未被授权页面 –>
<error-page>
<error-code>401</error-code>
<location>/401.htm</location>
</error-page>
<!– 访问请求被站点拒绝 –>
<error-page>
<error-code>403</error-code>
<location>/403.htm</location>
</error-page>
<!– 未找到请求页面 –>
<error-page>
<error-code>404</error-code>
<location>/404.htm</location>
</error-page>
<!– 服务器错误导致页面无法访问 –>
<error-page>
<error-code>500</error-code>
<location>/500.htm</location>
</error-page>
<!– 错误页面需要放到webapps下root和manager目录中 –>

六、隐藏后台路径

6.1 修改webapps目录内manage目录名,如改为manager_XXX,则默认无法找到该管理目录
6.2 修改后手动访问的方法: http;//域名:端口号/manager名/html

posted on 2012-03-06 16:04 HUIKK 阅读(2231) 评论(0)  编辑  收藏 所属分类: TOOL

只有注册用户登录后才能发表评论。


网站导航: