内容简介:修改默认端口和关闭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优化实例详解》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Data Structures and Algorithms in Java
Robert Lafore / Sams / 2002-11-06 / USD 64.99
Data Structures and Algorithms in Java, Second Edition is designed to be easy to read and understand although the topic itself is complicated. Algorithms are the procedures that software programs use......一起来看看 《Data Structures and Algorithms in Java》 这本书的介绍吧!