tomcat十大安全优化措施
1、telnet管理端口保护
使用telnet连接进来可以输入SHUTDOWN可以直接关闭tomcat,极不安全,必须关闭。可以修改默认的管理端口8005改为其他端口,修改SHUTDOWN指令为其他字符串。
# vi conf/server.xml
<Server port="" shutdown="IN0IT">
2 AJP连接端口保护
Tomcat 服务器通过Connector连接器组件与客户程序建立连接,Connector组件负责接收客户的请求,以及把Tomcat服务器的响应结果发送给客 户。默认情况下,Tomcat在server.xml中配置了两种连接器,一种使用ajp,要和apache结合使用,一种使用http。当使用http 时,可以限制ajp端口访问,在于防止线下测试流量被mod_jk转发至线上tomcat服务器。可以通过iptables规则限制ajp端口的访问,或 者直接将改行注释。
# vim conf/server.xml
<!--<Connector port="" protocol="AJP/1.3" redirectPort="" />-->
3 禁用管理端
对于tomcat的web管理端属于高危安全隐患,一旦被攻破,黑客通过上传web shell方式取得服务器的控制权,那是非常可怕的。我们需要删除tomcat安装目录下conf/tomcat-user.xml或者删除webapps下默认的目录和文件。
# mv webapps/* /tmp
4 降权启动tomcat
tomcat 启动用户权限必须为非root,避免一旦tomcat服务被入侵,获取root权限,普通用户只能使用大于1024端口,如果要想使用80端口,可以使用 iptables规则进行转发,或者使用代理。一般情况下,tomcat前方有一个反向代理服务器nginx或者apache等。
参考:https://tomcat.apache.org/tomcat-8.0-doc/setup.html
[root@tomcat ~]# cd /usr/local/tomcat/bin/
[root@tomcat bin]# tar xf commons-daemon-native.tar.gz
[root@tomcat bin]# cd commons-daemon-1.0.-native-src/unix
[root@tomcat unix]# ./configure --with-java=/usr/java/jdk1..0_45/
[root@tomcat unix]# make
[root@tomcat unix]# cp jsvc /usr/local/tomcat/bin/
[root@tomcat bin]# cd /usr/local/tomcat/bin/
编辑daemon.sh,首行加入以下内容,表示启动tomcat用户为nginx
TOMCAT_USER=nginx
启动关闭tomcat
# ./daemon.sh start | stop | version | run
查看启动情况
# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0.0.0.0: 0.0.0.0:* LISTEN /sshd
tcp 127.0.0.1: 0.0.0.0:* LISTEN /master
tcp ::: :::* LISTEN /jsvc.exec
tcp ::: :::* LISTEN /sshd
tcp ::: :::* LISTEN /master
5 文件列表访问控制
conf/web.xml文件中的default部分listings的配置必须为false,false为不列出目录文件,true为允许列出,默认为false。
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
6 版本信息隐藏
对一些常见错误重定向,避免出错暴露服务器和版本信息。在conf/web.xml重定向403,404及500等错误到指定页面。
<error-page>
<error-code></error-code>
<location>/.html</location>
</error-page>
<error-page>
<error-code></error-code>
<location>/.html</location>
</error-page>
<error-page>
<error-code></error-code>
<location>/.html</location>
</error-page>
7 脚本权限回收
去除其他用户对bin目录下可执行权限,防止其他用户起停tomcat
# chmod -R bin/*
8 访问日志格式规范
开启Referer和User-Agetn是为了一旦出现安全问题能够更好的根据日志进行排查
<Host name="23.83.xx.xx" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b %{Referer}i %{User-Agent}i %D" />
<Context docBase="/usr/local/tomcat/webapps/FWYsWeb" path="" reloadable="true"/>
<Context docBase="/usr/local/tomcat/webapps/FWYsWeb" path="/FWYsWeb" reloadable="true"/>
</Host>
9 设置信任IP白名单
只允许192.168.31.0网段访问
<Host name="192.168.31.128" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b %{Referer}i %{User-Agent}i %D" />
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.31.*"/>
<Context docBase="/usr/local/tomcat/webapps/FWYsWeb" path="" reloadable="true"/>
<Context docBase="/usr/local/tomcat/webapps/FWYsWeb" path="/FWYsWeb" reloadable="true"/>
</Host>
10 凑个数,正在想
tomcat十大安全优化措施的更多相关文章
- 十大技巧优化Android App性能
无论锤子还是茄子手机的不断冒出,Android系统的手机市场占有率目前来说还是最大的,因此基于Android开发的App数量也是很庞大的. 那么,如何能开发出更高性能的Android App?相信是软 ...
- 转:IT公司的十大内耗,别说你公司没有!
这篇文章是以前看到的,觉得写得非常好,转载在自己BLOG作为记录.原文:http://www.pmtoo.com/news/2015/0108/7260.html. 当企业发展到一定时期时,会不可避免 ...
- 阿里云资深DBA专家罗龙九:云数据库十大经典案例分析【转载】
阿里云资深DBA专家罗龙九:云数据库十大经典案例分析 2016-07-21 06:33 本文已获阿里云授权发布,转载具体要求见文末 摘要:本文根据阿里云资深DBA专家罗龙九在首届阿里巴巴在线峰会的&l ...
- MySQL管理员珍藏:十大必备工具盘点
作者:dongdongzzcs 第1页: [IT168 专稿]本文的作者Daniel Nichter是MySQL工具的开发者,他为MySQL管理员推荐了十款必备工具.以下是全文内容: MySQL是一套 ...
- Mysql优化(出自官方文档) - 第十篇(优化InnoDB表篇)
Mysql优化(出自官方文档) - 第十篇(优化InnoDB表篇) 目录 Mysql优化(出自官方文档) - 第十篇(优化InnoDB表篇) 1 Optimizing Storage Layout f ...
- 我的MYSQL学习心得(十六) 优化
我的MYSQL学习心得(十六) 优化 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
- 【十大经典数据挖掘算法】Naïve Bayes
[十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 朴素贝叶斯(Naïve Bayes) ...
- 【十大经典数据挖掘算法】k-means
[十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 引言 k-means与kNN虽 ...
- [转] MySql 优化 大数据优化
一.我们可以且应该优化什么? 硬件 操作系统/软件库 SQL服务器(设置和查询) 应用编程接口(API) 应用程序 ------------------------------------------ ...
随机推荐
- 东大OJ-1391-Big big Power
题目描述 Calculate the power num a^(b^c) mod 1e9+7 输入 Multiple test cases,each case has three integers a ...
- android 资讯阅读器(二)
接着上次的博客,上次移植完了tab以后整个app的框架就算是定下来了. 本次目标: 1.数据的获取与展示(ListView) 2.官方的下拉刷新效果(SwipeRefreshLayout) 3.数据接 ...
- android 获取时间
首先,先说下java下可以正常使用的方法: import java.text.DateFormat; import java.text.SimpleDateFormat; import java.ut ...
- VS2015中GLAUX库的链接问题
最近学习OpenGL,照着例子写了个程序,用到了GLAUX库. #include <gl\glaux.h> #pragma comment(lib, "glaux") ...
- nginx 的动静分离配置(tomcat)
nginx+tomcat是想动静分离配置 首先在nginx的配置文件中添加tomcat的的集群配置 upstream tomcats { ip_hash; server 192.168.0.251:8 ...
- eclipse汉化
一.准备工作: 1.eclipse点击help——about eclipse查看软件版本,如图: 2.登录官网语言包下载地址:http://www.eclipse.org/babel/download ...
- 【BZOJ 2194】快速傅立叶之二
随便代换一下把它变成多项式乘法,及$C[T]=\sum_{i=0}^{T}A[i]×B[T-i]$这种形式,然后FFT求一下就可以啦 #include<cmath> #include< ...
- java基础语法要点<一>(基于1.8)
http://yishouce.com/java/run http://www.shucunwang.com/RunCode/java/ 数据类型 8种基本数据类型及对应的 类型封装器 byte, s ...
- C# asp.net mvc 配置多个route 参数
mvc 中路由可以自定义 public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { ...
- 又爱又恨系列之枚举enum
其实枚举挺简单的,只不过以前没好好学,所以不知道这个东西,恩,现在梳理一下 整体而言,首先枚举是一个数据类型,这个数据类型和结构体有点像 可以分为三个层次 1.枚举数据类型定义 第一种:enum 枚举 ...