Tomcat服务器的安全配置.doc_第1页
Tomcat服务器的安全配置.doc_第2页
Tomcat服务器的安全配置.doc_第3页
Tomcat服务器的安全配置.doc_第4页
Tomcat服务器的安全配置.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Tomcat服务器的安全配置办法tomcat是一个开源Web 服务器 ,基于Tomcat的Web运行效率高,可以在一般的硬件平台上流畅运行,因此,颇受Web站长的青睐。不过, 在默认配置下其存在一定的 安全 隐患,可被恶意攻击。另外,由于其功能比较单纯需要我们进一步地进行设置。本机将从 安全 和功- tomcat是一个开源Web服务器,基于Tomcat的Web运行效率高,可以在一般的硬件平台上流畅运行,因此,颇受Web站长的青睐。不过, 在默认配置下其存在一定的安全隐患,可被恶意攻击。另外,由于其功能比较单纯需要我们进一步地进行设置。本机将从安全和功能两方面谈谈基于Tomcat的 Web服务器的部署,希望对大家有所帮助。环境描述OS:Windows Server 2003IP:2Tomcat:6.0.181、安全测试(1).登录后台在Windows Server 2003上部署Tomcat,一切保持默认。然后登录Tomcat后台,其默认的后台地址为:2:8080/manager/html。在浏览器中输入该地址,回车后弹出登录对话框,输入默认的用户名admin,默认的密码为空,成功登录后台。(图1)(2).获得Webshell在Tomcat的后台有个WAR file to deploy模块,通过其可以上传WAR文件。Tomcat可以解析WAR文件,能够将其解压并生成web文件。我们将一个jsp格式的webshell 用WinRar打包然后将其后缀改名为WAR(本例为gslw.war),这样;一个WAR包就生成了。最后将其上传到服务器,可以看到在Tomcat的 后台中多了一个名为/gslw的目录,点击该目录打开该目录jsp木马就运行了,这样就获得了一个Webshell。(图2)(3).测试操作创建管理员Tomcat服务默认是以system权限运行的,因此该jsp木马就继承了其权限,几乎可以对Web服务器进行所有的操作。比如启动服务、删除/创建/修改文件、创建用户。我们以创建管理员用户为例进行演示。运行jsp木马的“命令行”模块,分别输入命令net user test test168 /add和net localgroup administrators test /add,这样就创建了一个具有管理员权限的test用户,其密码为test168。(图3)远程登录我们还可以进一步地渗透,比如通过“远程桌面”登录Web服务器。输入命令netstat -ano查看该服务器的3389端口是关闭的。我们可以利用webshell上传一个工具,利用其开启Web服务器的远程桌面。最后,我们就可以成功登录系统,至此整个Web沦陷。(图4)2、安全防范通过上面的测试可以看到,默认配置下的Tomcat服务器的安全性是非常差的。如何来加固Tomcat服务器的安全性呢?我们从以下几个方面来加强。(1).服务降权默认安装时Tomcat是以系统服务权限运行的,因此缺省情况下几乎所有的Web服务器的管理员都具有Administrator权限这和IIS不同,存在极大的安全隐患,所以我们的安全设置首先从Tomcat服务降权开始。首先创建一个普通用户,为其设置密码,将其密码策略设置为“密码永不过期”,比如我们创建的用户为Tomcat_lw。然后修改Tomcat安 装文件夹的访问权限,为Tomcat_lw赋予Tomcat文件夹的读、写、执行的访问权限,赋予Tomcat_lw对WebApps文件夹的只读访问权 限,如果某些Web应用程序需要写访问权限,单独为其授予对那个文件夹的写访问权限。(图5)“开始运行”,输入services.msc打开服务管理器,找到Apache Tomcat服务,双击打开该服务,在其实属性窗口中点击“登录”选项卡,在登录身份下选中“以此帐户”,然后在文本框中输入Tomcat_lw和密码,最后“确定”并重启服务器。这样Tomcat就以Tomcat_lw这个普通用户的权限运行。(图6)有的时候,我们需要在命令行下运行Tomcat,这时候可以在命令下输入命令runas /user:tomcat_lw cmd.exe回车后并输入密码,这样就开启一个Tomcat_lw权限的命令行。最后定位到Tomcat的bin文件夹下,输入命令tomcat6.exe即以Tomcat_lw在命令行下启动Tomcat。(图7)这样普通用户Tomcat_lw运行的Tomcat其权限就大大地降低了,就算是攻击者获得了Webshell也不能进一步深入,从而威胁web服务器的安全。(2).更改端口Tomcat的默认端口是8080,攻击者可以据此运行扫描工具进行端口扫描,从而获取部署了Tomcat的Web服务器然后实施攻击。因此, 为了安全期间我们可以修改此默认端口。在Tomcat的安装路径的conf目录下找到server.xml文件,用记事本打开然后搜索8080找到对应的 字段,然后将8080自行修改为另外的数字。另外,需要说明的是connectionTimeout=20000是连接超 时,maxThreads=150是最大线程类似这样的参数也可以根据需要进行修改。(图8) (3).禁止列表 我们知道在IIS中如果设置不当,就会列出Web当前目录中的所有文件,在Tomcat也不例外。如果浏览者可以在客户端浏览Web目录,那将 会存在较大的安全隐患,因此我们要确认Tomcat的设置中禁止列目录。设置- (3).禁止列表我们知道在IIS中如果设置不当,就会列出Web当前目录中的所有文件,在Tomcat也不例外。如果浏览者可以在客户端浏览Web目录,那将 会存在较大的安全隐患,因此我们要确认Tomcat的设置中禁止列目录。设置文件是web.xml,也在conf目录下。用记事本打开该文件,搜索 init-param在其附近找到类似如下字段: listings false 确认是false而不是true。(图9)(4).用户管理Tomcat的后台管理员为admin并且默认为空密码,安全期间我们需要修改该默认的用户名并为其设置健壮的密码。其配置文件为 tomcat-users.xml,用记事本打开该文件然后进行修改。其中role标签表示其权限,manager说明是管理员权限;user标签表示后 台管理用户,可以看到用户名为admin,我们可以将其修改为一个陌生的用户;可以看到password后面为空密码,我们可以为其设置一个复杂的密码。 最后修改配置完成的tomcat-users.xml文件为: (图10)(5).错误页面Tomcat不像IIS提供了各种类型的错误页,如果Tomcat发生错误就会显示千篇一律的错误页面。其实我们可以通过修改其配置文件,从而自定义设置其错误页面的显示。打开web.xml文件,在最后一行的之前添加如下的语句: 401 /401.htm 404 /404.htm 500 /500.htm 当然,仅仅设置这样的语句还不行,需要创建相应的401.htm、404.htm、500.htm这样的文件才行。另外,要把错误页面文件放到webappsmanager目录中,否则需要在web.xml中指定其路径,最后的效果如图11所示。(图11)总结:Tomcat不同于IIS,其配置没有图形界面,而是通过修改配置文件来完成的。不过,正因为如此用户有更多的自主性,可以根据自己的需要进行扩展。而且其与Apache可以无缝结合,打造安全、强大的Web服务器。- 总结:Tomcat不同于IIS,其配置没有图形界面,而是通过修改配置文件来完成的。不过,正因为如此用户有更多的自主性,可以根据自己的需要进行扩展。而且其与Apache可以无缝结合,打造安全、强大的Web服务器。Tomcat配置的几个安全问题时间:2010-11-05 14:17:55来源:网络 作者:未知 点击:84次 1.关闭服务器端口:server.xml默认有下面一行:这样允许任何人只要telnet到服务器的8005端口,输入"SHUTDOWN",然后回车,服务器立即就被关掉了。从安全的角度上考虑,我们需要把这个shutdown指令改成一个别1.关闭服务器端口:server.xml默认有下面一行:这样允许任何人只要telnet到服务器的8005端口,输入SHUTDOWN,然后回车,服务器立即就被关掉了。从安全的角度上考虑,我们需要把这个shutdown指令改成一个别人不容易猜测的字符串。例如修改如下:,这样就只有在telnet到8006,并且输入lizongbo才能够关闭Tomcat.注意:这个修改不影响shutdown.bat的执行。运行shutdown.bat一样可以关闭服务器。2.对于tomcat3.1中,屏蔽目录文件自动列出的方法缺省情况下,如果你访问tomcat下的一个web应用,那么如果你输入的是一个目录名,而且该目录下没有一个可用的welcome文件,那么tomcat会将该目录下的所有文件列出来,如果你想屏蔽这个缺省行为,那么可以修改conf/web.xml文件,将其中的:defaultorg.apache.catalina.servlets.DefaultServletdebug0listingstrue1修改为:defaultorg.apache.catalina.servlets.DefaultServletdebug0listingsfalse13.如何让Tomcat记录客户端的访问日志需要完成的步骤: 1。修改Tomcat的conf/server.xml文件。 2。加上Valve节点到server.xml文件中,和您目前使用的Connector的节点平级。 如: directory=e:trstrscdstomcatlogs pattern=combined/ 3。重新启动您的Tomcat 4。有用户在访问的时候,在指定的log目录下面会生成一个access_log文件(每天一个)。上述的步骤是以Tomcat4.x为例。(可能会影响性能,不推荐大家使用)。4.处理好Tomcat管理台的安全Tomcat管理台的应用文件,默认在Tomcat安装目录serverwebapps下,有admin和manager两个应用。其用户密码,在Tomcat安装目录conf/tomcat-users.xml中定义。在Tomcat安装目录webapps下admin.xml和manager.xml文件定义了可以通过访问/admin和/manager进入。 默认情况下,完全可以登录tomcat管理台,造成严重安全问题检测办法:用IE打开链接http:/IP:Port/admin,以用户名admin,密码为空登录,如果成功,说明存在问题。解决办法:可以删除Tomcat安装目录webapps下admin.xml和manager.xml文件,或者去掉用户密码,也可以删除应用文件。5.运行错误网页如果找不到网页即出现404错误,会显示服务器版本号,服务器配置也一目了然,为了避免这种情况,希望自定义设置错误页面。 设置如下: 1、将附件的index.htm文件拷贝至webappsROOT目录内,删除或改名原来的index.jsp文件。 2、用记事本打开confweb.xml文件,在文件的倒数第二行(一行之前)加入以下内容: 404 /error_404.htm 路径的是对的,奇怪的是我测试时输入一个不存在的页,出现404错误提示出现的却不是我所定义的页面,这就怪了.主要有以下几个因素:1.使用 tomcat 服务器2.tomcat服务器版本3.浏览器问题4.IE的设置5.错误页本身的大小下面是提供的解决方法: 1.升级tomcat (换成其它服务器,代价沉重)2.ie 设定 工具-Internet选项-高级-显示http友好错误信息(取消选择) ,3. 把错误页做大一点,具体几个字节,没测试,估计三四百足够了, (加一个div块,display设为none就可以了)4.设置指定错误页页状态为正确,骗过IE的自定义错误页 方法 Tomcat是一个世界上广泛使用的支持JSP和servlets的Web服务器。它在JAVA运行时上能够很好地运行并支持Web应用部署。运行Tomcat很简单;到Tomcat网站下载安装程序就可进行Tomcat的安装。没有人对Tomcat的危险性有透Tomcat是一个世界上广泛使用的支持JSP和servlets的Web服务器。它在JAVA运行时上能够很好地运行并支持Web应用部署。运行Tomcat很简单;到Tomcat网站下载安装程序就可进行Tomcat的安装。没有人对Tomcat的危险性有透彻的了解。Tomcat Web应用程序的主要安全风险存在于以下方面:Tomcat的JSP或JSP内调用的bean能够实施下列高风险性任务:运行一个Windows系统环境下的程序读取任意文件夹内任何文件的内容删除任意文件夹中的文件在任意文件夹内创建新文件虽然Tomcat确实提供了很多的安全性,但是由于以下因素而显示了其漏洞:1. 安装后,Tomcat作为一个系统服务运行2. 如果没有将其作为系统服务运行,缺省地几乎所有Web服务器管理员都是将其以Administrator权限运行这两种方式都允许Java运行时访问Windows系统下任意文件夹中的任何文件。缺省情况下,Java运行时根据运行它的用户授予安全权限。当Tomcat以系统管理员身份或作为系统服务运行时,Java运行时取得了系统用户或系统管理员所具有的全部权限。这样一来,Java运行时就取得了所有文件夹中所有文件的全部权限。并且Servlets(JSP在运行过程中要转换成Servlets)取得了同样的权限。所以Java代码可以调用Java SDK中的文件API列出文件夹中的全部文件,删除任何文件,最大的危险在于以系统权限运行一个程序。当任一Servlets含有如下代码:Runtime rt = Runtime.getRuntime();rt.exec(c:SomeDirectorySomeUnsafeProgram.exe)这就是最大的危险,并且很多人都未认识到这点。确保Tomcat安全的途径首先,新建一个帐户1. 用ITOMCAT_计算机名建立一个普通用户2. 为其设置一个密码3. 保证密码永不过期(Password Never Expires)被选中修改Tomcat安装文件夹的访问权限1. 选定环境参数CATALINA_HOME或TOMCAT_HOME指向的Tomcat安装文件夹。2. 为ITOMCAT_计算机名用户赋予读、写、执行的访问权限。3. 为ITOMCAT_计算机名用户赋予对WebApps文件夹的只读访问权限。4. 如果某些Web应用程序需要写访问权限,单独为其授予对那个文件夹的写访问权限。当你需要Tomcat作为系统服务运行时,采取以下步骤:1. 到控制面板,选择管理工具,然后选择服务。2. 找到Tomcat:比如Apache Tomcat.exe等等,打开其属性。3. 选择其登录(Log)标签。4. 选择以.登录(Log ON Using)选项。5. 键入新建的ITOMCAT_计算机名用户作为用户名。6. 输入密码。7. 重启机器。当你需要在一个DOS窗口下运行Tomcat时,采取以下步骤:1. 在开始按钮的运行框中键入CMD以打开一个DOS窗口。2. 键入RunAs /user:ITOMCAT_计算机名 CMD.exe命令。3. 在询问ITOMCAT_计算机名用户的密码时输入设置的密码。4. 这将打开一个新的DOS窗口。5. 在新开的DOS窗口中,转换到Tomcat的bin文件夹内。6. 键入catalina run命令。7. 关闭第一个DOS窗口。以ITOMCAT_计算机名用户在新的DOS窗口内运行只授予该用户相应的权限;当你在这个新的DOS窗口中运行Tomcat时,它只取得了这个选定用户的权限。这样Tomcat就安全了。转载请注明出自荣森网安维护基地 Http:/Www.Rongsen.Com.Cn 空间管理主站: Http:/Kj.Rongsen.Com.Cn 源码网址:Http:/Shop.Rongsen.Com.Cn 更多源码超低价打折到你手软!命令注入(Command injection)是给Web服务器发送请求的行为,以Web应用程序开发者无法预料的方式在服务器上运行,从而绕过服务器的安全防护机制。 在所有运行其他命令行命令的操作系统与服务器软件上,把一些工作当作执行Web应用程序的一部分,都会发现这种漏洞。 引发这一问题的原因在于,在将用户的输入当成参数传给命令之前,系统没有对用户输入进行恰当的或存在的有效性检验及过滤。 没有可用于判断应用程序是否容易受到命令注入攻击的简单方法。因此,一定要对用户输入进行有效性验证。除非Web应用程序使用了CGIServlet或自己调用命令行命令,才有可能免遭命令注入的攻击。 为了防范此种攻击,必须过滤用户输入的大多数特殊字符,因为命令shell接受并使用了太多的特殊字符。通常,从所有用户的输入中过滤这些字符并不可行,因为应用程序一般都需要用到一些必须过滤的字符。 转义反单引号(、)、单引号()和双引号(”)可能是不错的方法,但是对其他字符可能就不这么简单了。为了满足特定应用程序的需要,可能要定制输入有效性检验代码。 身为Tomcat的系统管理员,该如何协助修正此问题呢? 将Tomcat设定为使用稍后(过滤HTTP的请求)一节所述的BadInputValve。 以免Tomcat Valve不是可靠的解决方案,在应用程序中追加BadInputFilter,以过滤应用程序中的请求,过滤恶意的输入,就像BadInputValve完成的那样。 过滤所有用户请求数据,并只接受下列的字符:o-9A-Za-z-_;。 除此之外的其他字符都应该被拒绝,包括GET与POST参数(名称及值),HTTP请求的标题名称及其值(包括cookie)以及其他URL片段,如URI路径信息。BadInputValve和BadInputFilter过滤了各种恶意的输入模式与字符,以终止xss、HTML注入、SQL注入和命令注入攻击。 下面显示了BadInputValve的配置属性。除了className之外,这些属性均可在BadInputFilter上配置使用,以作为初始化参数。 BadInputValve属性 属性:className、含义:此Valve实现的Java类名;必须设为com.oreilly.tomcat.valves.BadInputValve 属性:escapeQuotes、含义:在执行请求之前,决定此valve是否要转义请求参数中的任何引号(包括双引、单引号和反引号)。默认值为false 属性:escapeAngleBzackets、含义:在执行请求之前,决定此valve是否要转移请求参数中的任何尖括号。默认值为false 属性:escape3avaScript、含义:决定此Valve是否要转移请求参数中任何潜在成胁JavaScript函数与对象的引用。默认值为true 属性:allow、含义:以逗号分隔的一组常规表达式,使该valve允许处理一个请求。可以不设定,表示指定none。如果没有设置allow而设置了一个或多个deny,则不允许处理请求 属性:deny、含义:以逗号分隔的一组常规表达式,使该Valve拒绝请求。如果在deny清单中,有一个常规表达式与参数名或值的一部分相匹配,则拒绝请求。 如果没有设定deny且没有设定allow,则表示允许所有请求并过滤其参数。如果没有没定deny,但设置了一个或多个allow,则只有一个或多个allow模式与参数名或值的一部分匹配时,该Valve才允许处理请求。 如欲编辑这些Java类。首先要设置CATALINA_HOHE环境变量: $ export CATALINA_HOME=/opt/tomcat 然后,切换到bad-input目录,并为这些二进制文件创建一个classes目录,然后编译: $cd bad-input $ mkdir classes $ javac -classpath $CATALINA_HORE/lib/catalina.jar:$CATALINA_HOME/lib/servlet-api. jar:$CATALINA_HOME/bin/tomcat-juli.jar -d classes src/com/oreilly/tomcat/valve/ BadInputValve.java src/com/oreilly/tomcat/filter/BadInputFilter.java 一旦编译了这些类,则创建一个包含最终类二进制文件的JAR文件: $ cd classes $ jar cvf bad-input.jar com added manifest adding: com/(in=0)(out=0)(stored 0%) adding: com/oreilly/(in=0)(out=0)(stored 0%) adding: com/oreilly/tomcat/(in=o)(out=0)(stored 0%) adding: com/oreilly/tomcat/valve/(in=0)(out=0)(stored 0&) adding: com/oreilly/tomcat/valve/BadInputValve.class(in=6119)(out=3032)(deflated50&) adding: com/oreilly/tomcat/filter/(in=o)(out=0)(stored 0%) adding: com/oreilly/tomcat/filter/BadInputFilter.class(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论