Tomcat优化实例详解

栏目: Java · 发布时间: 5年前

内容简介:修改默认端口和关闭web服务器的指令 该配置项测试后发现只能在本机

tocat 安全优化

以下配置如无特别指明,默认为在/usr/local/tomcat8/conf/server.xml文件中配置

  • 修改telnet管理端口和命令

<Server port="8005" shutdown="SHUTDOWN">

修改默认端口和关闭web服务器的指令 该配置项测试后发现只能在本机 telnet 127.0.0.1 8005 使用,在别的机器报错,查了不少文档,不得其所,但还是建议修改

  • AJP连接端口保护

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

该端口作用就是apache负载均衡多台tomcat时使用,如不使用该环境可以将其整个注释掉 1.使用该环境时可以修改默认的8009端口为其它不容易冲突的端口 2.通过 iptables规则限制 ajp 端口访问的权限仅为线上机器;

  • 禁用管理端

[root@localhost ~]# rm -rf /usr/local/tomcat8/webapps/* && rm -rf /usr/local/tomcat8/conf/tomcat-users.xml

这些都是系统默认存在的一些安全隐患比较大的文件,很容易被黑客利用

  • 降权启动tomcat

1.tomcat 启动用户权限必须为非root,避免一旦tomcat服务被入侵,获取root权限 2.普通用户只能使用大于1024端口,如果要想使用80端口,可以使用 iptables规则进行转发,或者使用代理。一般情况下,tomcat前方有一个反向代理服务器nginx或者apache等。

[root@localhost ~]# useradd tomcat
#添加用户
[root@localhost ~]# groupadd tomcathome
#添加相应用户组(方便后续,开发、运维各部门的权限分配)
[root@localhost ~]# usermod -g tomcathome tomcat
#用户加入组
[root@localhost ~]# chown -R tomcat.tomcathome /usr/local/tomcat8/* 
给tomcat重新分配属组和属主
[root@localhost ~]# su - tomcat -c "/usr/local/tomcat8/bin/startup.sh"
#临时使用tomcat用户执行该命令
[root@localhost ~]# ps aux| grep tomcat
#查看验证可看到结果
  • 文件列表访问控制

    默认该项是配置为false即关闭,测试时方便调试可以设置为true,生产环境一定要关闭该项,否则用户端访问一个存在的目录,即可看到该目录下所有的文件

[root@localhost qiao]# vim /usr/local/tomcat8/conf/web.xml 
 <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
  • 隐藏版本信息

    默认情况下,用户端访问网站页面出错时会跳转到错误页面,该页面现实有版本信息等,不利于安全维护。

[root@localhost ~]# vim /usr/local/tomcat8/conf/web.xml 

  18 <web-app ......
  21                       
  23 <error-page>
  24     <error-code>404</error-code>
  25     <location>/404.html</location>
  26 </error-page>
  27 <error-page>
  28     <error-code>403</error-code>
  29     <location>/403.html</location>
  30 </error-page>
  31 <error-page>
  32     <error-code>500</error-code>
  33     <location>/500.html</location>
  34 </error-page>
#然后将错误页面的内容保存到相应的文件存放到/usr/local/tomcat8/webapps/ROOT/目录下。
  • 脚本权限回收 chmod -R 744 /usr/local/tomcat8/bin/*

    去除其他用户对bin目录下可执行权限,防止其他用户起停tomcat

  • 访问日志格式规范,开启Referer和User-Agetn是为了一旦出现安全问题能够更好的根据日志进行排查
  • Server header 重写(推荐)

    当 tomcat HTTP 端口直接提供 web 服务时此配置生效,加入此配置,将会替换 http响应 Server header 部分的默认配置,默认是 Apache-Coyote/1.1

[root@localhost ~]# vim /usr/local/tomcat8/conf/server.xml 
     <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" 
               Server="join123" />
               #加入改行配置
  • 性能优化

  • Tomcat Session过期时间

    Tomcat采用数据库连接池技术,当用户在一定时间不对数据库有操作时间后,就自动关闭这个连接,这是为了更好的利用资源,防止浪费宝贵的数据库连接资源。

    两种方法,效果相同

配置只针对于本web应用程序生效
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
            <Context docbase="/web/webapp" path="" 
             defaultSessionTimeOut="200" isWARExpanded="true"
             isWARValidated="false" isInvokerEnabled="true" 
             isWorkDirPersistent="false">
            </Context>
#超时时间为200秒
针对于整个tomcat服务器的所有web应用
[root@localhost ~]# vim /usr/local/tomcat8/conf/web.xml 
    <session-config>
        <session-timeout>30</session-timeout>       
    </session-config>
#超时时间为30分钟

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2019-05/158710.htm


以上所述就是小编给大家介绍的《Tomcat优化实例详解》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

移动交互设计精髓

移动交互设计精髓

班格 (Cameron Banga)、温霍尔德 (Josh Weinhold) / 傅小贞、张颖鋆 / 电子工业出版社 / 2015-4-1 / CNY 89.00

越来越多的人正涌入移动应用领域,而设计和体验将是移动应用成败的关键。作者通过上百款应用的设计实践,系统化地梳理了移动应用的设计方法论,在理解用户、跨平台和适配设计、移动组件应用、界面视觉感染力、简约设计等方面都进行了深入阐述。此外,作者还介绍了一些非常实用的移动设计工具,分享了设计师该如何与开发工程师协同工作,以及如何收集用户反馈、甄别版本迭代的更新需求等。 《移动交互设计精髓——设计完美的......一起来看看 《移动交互设计精髓》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具