为了符合tomcat安全基线,需要做一下加固:

1、管理用户的密码加密:《摘要算法加密tomcat登录密码》

  管理用户在conf/tomcat-users.xml中配置,密码一般是明文形式,如果需要加密,可以在conf/server.xml配置加密算法后,在tomcat-users.xml文件中填写密文。步骤如下:

  1. 1server.xml中配置密码加密方式,此处仅做MD5加密,注意:Realm小节在默认配置中是一行,以/结尾,需要拆开。
  2. <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase">
  3. <CredentialHandler algorithm="MD5" className="org.apache.catalina.realm.MessageDigestCredentialHandler"/>
  4. </Realm>
  5. 2、用digest.sh脚本生成md5加密的密文,输出为:userpassword:balabalabalabala
  6. digest.sh -a md5 userpassword
  7. 3、将生成的密文替换conf/tomcat-users.xml中原来的明文密码

2、配置错误页面:《tomcat配置错误页面》,在web.xml的<web-app>中添加

  1. <!-- 400错误 -->
  2. <error-page>
  3. <error-code>400</error-code>
  4. <location>/error.html</location>
  5. </error-page>
  6. <!-- 404 页面不存在错误 -->
  7. <error-page>
  8. <error-code>404</error-code>
  9. <location>/error.html</location>
  10. </error-page>
  11. <!-- 500 服务器内部错误 -->
  12. <error-page>
  13. <error-code>500</error-code>
  14. <location>/error.html</location>
  15. </error-page>
  16. <!-- java.lang.Exception异常错误,依据这个标记可定义多个类似错误提示 -->
  17. <error-page>
  18. <exception-type>java.lang.Exception</exception-type>
  19. <location>/error.html</location>
  20. </error-page>
  21. <!-- java.lang.NullPointerException异常错误,依据这个标记可定义多个类似错误提示 -->
  22. <error-page>
  23. <exception-type>java.lang.NullPointerException</exception-type>
  24. <location>/error.html</location>
  25. </error-page>

3、允许远程登录manager控制台:修改manager/META-INF/context.xml,注释掉以下限制:

  1. <Valve className="org.apache.catalina.valves.RemoteAddrValve"
  2. allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

4、修改banner:《tomcat修改banner,隐藏版本信息》,修改conf/server.xml的server属性。需要说明的是,此处修改的只是http头中的banner,tomcat的一些错误页面会附加上原始版本信息。关于tomcat的版本信息完全屏蔽,还是要到lib/catalina.jar中去修改。

  1. 打开tomcatconf/server.xml,在server.xml找到
  2. <Connector port="8080" protocol="HTTP/1.1"
  3. connectionTimeout="20000"
  4. redirectPort="8443"
  5. URIEncoding="UTF-8"
  6. useBodyEncodingForURI="true" />
  7.  
  8. 修改后如下:
  9. <Connector port="8080" protocol="HTTP/1.1"
  10. connectionTimeout="20000"
  11. redirectPort="8443"
  12. URIEncoding="UTF-8"
  13. useBodyEncodingForURI="true"
  14. server="Microsoft-IIS/6.5"/>

tomcat安全基线的更多相关文章

  1. Tomcat安全配置规范

    第1章 账号管理.认证授权 1.1 账号 1.1.1 共享帐号管理 安全基线项目名称 Tomcat共享帐号管理安全基线要求项 安全基线编号 SBL-Tomcat-01-01-01 安全基线项说明   ...

  2. 安全基线自动化扫描、生成报告、加固的实现(以Tomcat为例)

    一.背景说明 当前在服务上线前,安全部门都会对服务基线配置进行把关,整个流程可以分为扫描.生成报告.修复三步. 在执行这一流程时当前普遍的做法是半自动化的,扫描和生成报告是自动化的,执行扫描.执行生成 ...

  3. Tomcat APR & Linux Optimization

    一.简介 APR(Apache portable Run-time libraries)模式:简单理解,就是从操作系统级别解决异步IO问题,大幅度的提高服务器的处理和响应性能, 也是Tomcat运行高 ...

  4. 一个适合变化的产品部署集成包(nginx+jdk+tomcat+nodejs+mysql+redis+mongo+MYSQL主主(读写分离)集群建立+代码包+持续上线+备份)

    一.前言 最近公司做了一套新产品,需要发布到不确定的硬件环境中(不同使用单位规模,使用人数,服务器提供的资源不同)若每次进行人工部署耗时费力,周期过长. 二.分析 具体的部署流程如下: 由上图流程进行 ...

  5. Tomcat一个BUG造成CLOSE_WAIT

    之前应该提过,我们线上架构整体重新架设了,应用层面使用的是Spring Boot,前段日子因为一些第三方的原因,略有些匆忙的提前开始线上的内测了.然后运维发现了个问题,服务器的HTTPS端口有大量的C ...

  6. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  7. Tomcat shutdown执行后无法退出进程问题排查及解决

    问题定位及排查 上周无意中调试程序在Linux上ps -ef|grep tomcat发现有许多tomcat的进程,当时因为没有影响系统运行就没当回事.而且我内心总觉得这可能是tomcat像nginx一 ...

  8. 记一次tomcat线程创建异常调优:unable to create new native thread

    测试在进行一次性能测试的时候发现并发300个请求时出现了下面的异常: HTTP Status 500 - Handler processing failed; nested exception is ...

  9. Linux CentOS 配置Tomcat环境

    一.下载Tomcat 下载Tomcat方式也有两种,可以参考我的前一篇博文Linux CentOS配置JDK环境,这边就不再赘述. 二.在Linux处理Tomcat包 1.创建tomcat文件夹 mk ...

随机推荐

  1. Example-based Machine Learning是什么?

    参考:https://christophm.github.io/interpretable-ml-book/proto.html EML简介 Example-based Machine Learnin ...

  2. Codeforces Round #142 (Div. 1) C. Triangles

    Codeforces Round #142 (Div. 1) C. Triangles 题目链接 今天校内选拔赛出了这个题,没做出来....自己思维能力还不够强吧.我题也给读错了.. 每次拆掉一条边, ...

  3. Jmeter连接MYSQL数据库,并进行数据库的操作;

    1.在操作jmeter连接mysql数据库之前,我们需要到网上下载一个jar包.并且添加到测试计划里:mysql-connector-java-5.1.13-bin.jar;把这个jar放到jmete ...

  4. Beta冲刺(7/7)——2019.5.28

    所属课程 软件工程1916|W(福州大学) 作业要求 Beta冲刺(7/7)--2019.5.28 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪万里 ...

  5. HihoCoder - 1652:三角形面积和2(扫描线)

    题意:给定X轴上的一些三角形,求面积并. 每个三角形的给出形式是Li,Ri,Xi,Yi,表示三个顶点分别是(Li,0):(Ri,0):(Xi,Yi),且满足Li<=Xi<=Ri: 思路:我 ...

  6. 2018牛客网暑期ACM多校训练营(第一场)F:Sum of Maximum

    题意:给定N个数a[],现在用a形成一个新的数组b[],1<=b[i]<=a[i]. 问所有的方案的最大值之和. 思路:先排序.然后分段统计贡献,假设a[i-1]<a[i],那么[a ...

  7. Eclipse 常用快捷键——IDEA 常用快捷键

    Eclipse 常用快捷键 熟练 单选注释 ctrl + / 多行注释 ctrl + shift + / 向下复制一行 (Duplicate Lines) ctrl+alt+down 删除一行或选中行 ...

  8. Keil5创建基于RTX的STM32工程(转载+自己的体会)

    转载自:https://blog.csdn.net/u011976086/article/details/54342447#commentBox 之前使用过ucos,freertos,但是这个keil ...

  9. There is no type initializer in Swift----One answer is to use static, it is the same as class final.

    “Unlike stored instance properties, you must always give stored type properties a default value. Thi ...

  10. ZOJ3261-Connections in Galaxy War-(逆向并查集+离线处理)

    题意: 1.有n个星球,每个星球有一个编号(1-n)和一个能量值. 2.一开始将某些星球连通. 3.开战后有很多个操作,查询某个星球能找谁求救或者摧毁两颗星球之间的连通路径,使其不能连通.如果连通则可 ...