Quantcast
Channel: 容器云计算,Devops,DBA,网络安全。
Viewing all articles
Browse latest Browse all 780

Tomcat安全配置参考

$
0
0

Tomcat安全配置参考

0x01 基本配置

1 删除默认目录

     安装完tomcat后,删除$CATALINA_HOME/webapps下默认的所有目录文件  rm -rf /srv/apache-tomcat/webapps/

2 隐藏tomcat版本信息

修改$CATALINA_HOME/conf/server.xml,在Connector节点添加server字段,示例如下
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
               server="WVS1.1"
    <!-- A "Connector" using the shared thread pool-->

3 自定义错误页面

修改tomcat/ conf/web.xml,自定义40x、50x等容错页面,防止信息泄露。
(1)配置tomcat/conf/web.xml文件:
在最后</web-app>一行之前加入以下内容:
<error-page> 
<error-code>404</error-code>
<location>/noFile.htm</location> 
</error-page>
……………
<error-page>
<exception-type>java.lang.NullPointerException</exception-type>
<location>/ error.jsp</location> 
</error-page>
       第一个<error-page></error-page>之间的配置实现了将404未找到jsp网页的错误导向noFile.htm页面,也可以用类似方法添加其多的错误代码导向页面,如403,500等。
          第二个<error-page></error-page>之间的配置实现了当jsp网页出现java.lang.NullPointerException导常时,转向error.jsp错误页面,还需要在第个jsp网页中加入以下内容:
<%@ page errorPage="/error.jsp" %>
典型的error.jsp错误页面的程序写法如下:
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page isErrorPage="true"%>
<html>
<head><title>错误页面</title></head>
<body>出错了:</p> 错误信息: <%= exception.getMessage() %><br>
Stack Trace is : <pre><font color="red"><%
java.io.CharArrayWriter cw = new java.io.CharArrayWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(cw,true);
exception.printStackTrace(pw);
out.println(cw.toString());
%></font></pre>
</body>
</html>
当出现NullPointerException异常时tomcat会把网页导入到error.jsp,且会打印出出错信息。

(2)重新启动tomcat服务

 

4 更改tomcat服务器默认端口

1、参考配置操作
(1)修改tomcat/conf/server.xml配置文件,更改默认管理端口到8800
 <Connector
port="8888"  maxHttpHeaderSize="8192" maxThreads="150" 
minSpareThreads="25" maxSpareThreads="75"、
enableLookups="false" redirectPort="8443" acceptCount="100"
 connectionTimeout="300" disableUploadTimeout="true" />
(2)重启tomcat服务
 2、补充操作说明

② 备注事项,登陆http://127.0.0.1:8888  ,进行验证配置。

0X02 安全配置

1 用户权限

      在服务器设备权限配置范围内,根据我们的业务需要,配置其所需的最小权限。同时应删除或锁定与设备运行、维护等工作无关的账号。例如admin, 666等。还有使用单独的账号允许,不能使用与系统账号一样的账号密码。
1、Tomcat 4.x和5.x版本用户角色分为:role1,tomcat,admin,manager四种。
role1:具有读权限;
tomcat:具有读和运行权限;
admin:具有读、运行和写权限;
manager:具有远程管理权限。
Tomcat 6.0.18版本只有admin和manager两种用户角色,且admin用户具有manager管理权限。
2、Tomcat 4.1.37和5.5.27版本及以后发行的版本默认除admin用户外其他用户都不具有manager管理权限。
① 建议配置
编辑tomcat/conf/tomcat-user.xml配置文件,修改用户角色权限 ,例如
<tomcat-users>
<!--
  <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>
② 登陆http://ip:8080/manager/html页面,使用tomcat账号进行本地登录,进行验证配置。

2 口令安全要求

     对于采用静态口令认证技术的设备,口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。
① 建议配置
 在tomcat/conf/tomcat-user.xml配置文件中设置密码
<user username=”root” password=”root123456” roles=”admin”>
② 备注事项
      检查tomcat/conf/tomcat-user.xml配置文件中的帐号口令是否符合移动通过配置口令复杂度要求。
(1)人工检查配置文件中帐号口令是否符合;
(2)使用tomcat弱口令扫描工具定期对Tomcat Web服务器进行远程扫描,检查是否存在弱口令帐号。

3 禁止列目录(高版本默认已禁止)

① 建议配置
(1) 编辑tomcat/conf/web.xml配置文件, 注意原文件和下面的区别。
<init-param>
       <param-name>listings</param-name>
        <param-value>false</param-value>
    </init-param>
 (2)重新启动tomcat服务
② 备注事项
当WEB目录中没有默认首页如index.html,index.jsp等文件时,不会列出目录内容,直接访问http://ip:8800/webadd

4 定时账户自动登出

       对于类似web具备字符交互界面的设备,应支持定时账户自动登出。登出后用户需再次登录才能进入系统。

① 建议配置

编辑tomcat/conf/server.xml配置文件,修改为30秒
<Connector
port="8080"  maxHttpHeaderSize="8192" maxThreads="150" 
minSpareThreads="25" maxSpareThreads="75"、
enableLookups="false" redirectPort="8443" acceptCount="100"
 connectionTimeout="6000" disableUploadTimeout="true" />

② 备注事项

     登陆tomcat默认页面http://ip:8080/manager/html ,使用管理账号登陆,10分钟无操作或者关闭浏览器自动退出。

5 启用cookie的HttpOnly属性

修改$CATALINA_HOME/conf/context.xml,添加<Context useHttpOnly="true">

配置cookie的secure属性,在web.xml中sesion-config节点配置cooker-config,此配置只允许cookie在加密方式下传输。

    <session-config>
        <session-timeout>30</session-timeout>

<cookie-config> 

                              <secure> true</secure>

                          </cookie-config> 
    </session-config>

6 AJP端口管理

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

0x03 其他事项

1 日志记录

      应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号,登录是否成功,登录时间,以及远程登录时,用户使用的IP地址。

 

① 建议配置

编辑server.xml配置文件,在<HOST>标签中增加记录日志功能
将以下内容的注释标记< ! --    -- >取消
<valve classname=”org.apache.catalina.valves.AccessLogValve”
Directory=”logs” prefix=”localhost_access_log.” Suffix=”.txt”
Pattern=”common” resloveHosts=”false”/>

 

② 备注事项

classname:This MUST be set to

 org.apache.catalina.valves.AccessLogValve touse the default access log valve. &<60

Directory:日志文件放置的目录,在tomcat下面有个logs文件夹,那里面是专门放置日志文件的,也可以修改为其他路径;

Prefix: 这个是日志文件的名称前缀,日志名称为localhost_access_log.2008-10-22.txt,前面的前缀就是这个localhost_access_log

Suffix: 文件后缀名

Pattern: common方式时,将记录访问源IP、本地服务器IP、记录日志服务器IP、访问方式、发送字节数、本地接收端口、访问URL地址等相关信息在日志文件中

resolveHosts:值为true时,tomcat会将这个服务器IP地址通过DNS转换为主机名,如果是false,就直接写服务器IP地址

2 HTTPS加密协议

① 建议配置
(1)使用JDK自带的keytool工具生成一个证书
JAVA_HOME/bin/keytool  -genkey –alias tomcat –keyalg  RSA
-keystore /path/to/my/keystore
(2)修改tomcat/conf/server.xml配置文件,更改为使用https方式,增加如下行:
Connector classname=”org.apache.catalina.http.HttpConnector” 
port=”8443”  minProcessors=”5”  maxprocessors=”100” 
enableLookups=”true”  acceptCount=”10”  debug=”0”
scheme=”https” secure=”true” >
Factory classname=”org.apache.catalina.SSLServerSocketFactory”
clientAuth=”false” 
keystoreFile=”/path/to/my/keystore”  keystorePass=”runway”
protocol=”TLS”/>
/Connector>
其中keystorePass的值为生成keystore时输入的密码
(3)重新启动tomcat服务

② 备注事项

     使用https方式登陆tomcat服务器页面,如果登陆成功,证明配置成功;如果登陆失败,证明配置失败。


Viewing all articles
Browse latest Browse all 780

Trending Articles


Vimeo 10.7.1 by Vimeo.com, Inc.


UPDATE SC IDOL: TWO BECOME ONE


KASAMBAHAY BILL IN THE HOUSE


Girasoles para colorear


Presence Quotes – Positive Quotes


EASY COME, EASY GO


Love with Heart Breaking Quotes


Re:Mutton Pies (lleechef)


Ka longiing longsem kaba skhem bad kaba khlain ka pynlong kein ia ka...


Vimeo 10.7.0 by Vimeo.com, Inc.


FORECLOSURE OF REAL ESTATE MORTGAGE


FORTUITOUS EVENT


Pokemon para colorear


Sapos para colorear


Smile Quotes


Letting Go Quotes


Love Song lyrics that marks your Heart


RE: Mutton Pies (frankie241)


Hato lada ym dei namar ka jingpyrshah jong U JJM Nichols Roy (Bah Joy) ngin...


Long Distance Relationship Tagalog Love Quotes