Tomcat 安全设置

上一篇 / 下一篇  2015-07-30 14:17:32 / 个人分类:web安全


tomcat是一个开源Web服务器,基于TomcatWeb运行效率高,可以在一般的硬件平台上流畅运行,因此,颇受Web站长的青睐。不过,在默认配置下其存在一定的安全隐患,可被恶意攻击。

 

 

 (1).服务降权

 

  默认安装时Tomcat是以系统服务权限运行的,因此缺省情况下几乎所有的Web服务器的管理员都具有Administrator权限,这和IIS不同,存在极大的安全隐患,所以我们的安全设置首先从Tomcat服务降权开始。

 

  首先创建一个普通用户,为其设置密码,将其密码策略设置为“密码永不过期”,比如我们创建的用户为tomcat。然后修改Tomcat安装文件夹的访问权限,为tomcat赋予Tomcat文件夹的读、写、执行的访问权限,赋予tomcatWebApps文件夹的只读访问权限,如果某些Web应用程序需要写访问权限,单独为其授予对那个文件夹的写访问权限。

 

 

“开始→运行”,输入services.msc打开服务管理器,找到Apache Tomcat服务,双击打开该服务,在其实属性窗口中点击“登录”选项卡,在登录身份下选中“以此帐户”,然后在文本框中输入tomcat和密码,最后“确定”并重启服务器。这样Tomcat就以tomcat这个普通用户的权限运行

 

 

有的时候,我们需要在命令行下运行Tomcat,这时候可以在命令下输入命令runas /user:tomcat cmd.exe,回车后并输入密码,这样就开启一个tomcat权限的命令行。最后定位到Tomcatbin文件夹下,输入命令tomcat6.exe即以tomcat在命令行下启动Tomcat(7)

 

这样普通用户tomcat运行的Tomcat其权限就大大地降低了,就算是攻击者获得了Webshell也不能进一步深入,从而威胁web服务器的安全。

 

  (2).更改端口

 

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

 

 

(3).禁止列表

 

  我们知道在IIS中如果设置不当,就会列出Web当前目录中的所有文件,在Tomcat也不例外。如果浏览者可以在客户端浏览Web目录,那将会存在较大的安全隐患,因此我们要确认Tomcat的设置中禁止列目录。设置文件是web.xml,也在conf目录下。用记事本打开该文件,搜索init-param在其附近找到类似如下字段:  

<init-param> 

<param-name>listings</param-name> 

<param-value>false</param-value> 

</init-param>   

  确认是false而不是true

 

 

(4).用户管理

 

  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).错误页面

 

  Tomcat不像IIS提供了各种类型的错误页,如果Tomcat发生错误就会显示千篇一律的错误页面。其实我们可以通过修改其配置文件,从而自定义设置其错误页面的显示。打开web.xml文件,在最后一行的之前添加如下的语句:   

<error-page>    

          <error-code>401</error-code>    

          <location>/401.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> 

 

 

  当然,仅仅设置这样的语句还不行,需要创建相应的401.htm404.htm500.htm这样的文件才行。另外,要把错误页面文件放到webapps\manager目录中,否则需要在web.xml中指定其路径

 

(6).关闭8009端口

8009/tcp open ajp13

8009端口是tomcatapachemod_proxy_ajp,mod_jk沟通的端口,没有用到就关了。

tomcatpath/conf/server.xml 中的这段注释掉

<!--

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

    -->

(7).8005端口

 

 


TAG:

 

评分:0

我来说两句

Open Toolbar