设为首页 收藏本站

运维网

查看: 86|回复: 0

[经验分享] tomcat安全配置参考

[复制链接]
累计签到:3 天
连续签到:1 天
发表于 2018-5-12 16:51:47 | 显示全部楼层 |阅读模式
0x01 基本配置
1 删除默认目录
     安装完tomcat后,删除$CATALINA_HOME/webapps下默认的所有目录文件  rm -rf /srv/apache-tomcat/webapps/*
2 隐藏tomcat版本信息
修改$CATALINA_HOME/conf/server.xml,在Connector节点添加server字段,示例如下
<Connectorport="8080" protocol="HTTP/1.1"
              connectionTimeout="20000"
               redirectPort="8443"/>
               server="WVS1.1"
    <!-- A "Connector" using theshared 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网页中加入以下内容:
<%@ pageerrorPage="/error.jsp" %>
典型的error.jsp错误页面的程序写法如下:
<%@ pagecontentType="text/html;charset=GB2312"%>
<%@ pageisErrorPage="true"%>
<html>
<head><title>错误页面</title></head>
<body>出错了:</p> 错误信息: <%= exception.getMessage()%><br>
Stack Trace is :<pre><font color="red"><%
java.io.CharArrayWritercw = new java.io.CharArrayWriter();
java.io.PrintWriterpw = 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配置文件中设置密码
<userusername=”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,添加<ContextuseHttpOnly="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做的反向代理的话可以不使用此连接器,因此需要注销掉该连接器。


运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须注明原文的出处
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、运维网 - 服务您的运维操作管理专家!
6、联系人Email:admin@yunvn.com 网址:www.iyunv.com

点击关注更多内容
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则  允许回帖邮件提醒楼主

关注运维网官方微信X

关注运维网官方微信

扫描二维码关注运维网官方微信,最新一手资源尽在官方微信!快快关注我们吧...

扫描微信二维码查看详情

客服 E-mail:kefu@yunvn.com

本站由青云提供云计算服务

运维网--中国最专业的运维工程师交流社区

京ICP备14039699号-1 Copyright © 2012-2018

使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

Good good study day day up !


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


独家合作伙伴: 青云cloud

快速回复 返回顶部 返回列表