参考:
http://netexr.blog.51cto.com/2480285/1259882
升级到最新稳定版
老生常谈
从监听端口上加固
仅在本地监听
如果Tomcat不需要对外提供服务,则监听在本地回环,前面放Nginx。如果需要对外提供访问,比如一个Nginx挂多个Tomcat,那么在服务器上用iptables只允许负载均衡器的IP来访问
关闭8009端口
现在我们一般不用Apache通过AJP协议来调用Tomcat了,所以AJP端口可以关闭。
<!--
<Connector port="8009" address="127.0.0.1" protocol="AJP/1.3" redirectPort="8443" />
-->
8005端口
在新版的Tomcat中,SHUTDOWN端口默认就是监听在127.0.0.1的,所以不需要修改。如果还想加固,那可以把SHUTDOWN换成其它的字符串。
<Server port="8005" shutdown="YourString">
查看端口占用情况
➜ /Applications/VMware Fusion.app/Contents/Library tcp|grep 8005 [14:54:55]
java 80543 caiqiqi 61u IPv6 0x10fbff4a2ad96bd9 0t0 TCP 127.0.0.1:8005 (LISTEN)
➜ /Applications/VMware Fusion.app/Contents/Library tcp|grep 8080 [14:55:00]
java 80543 caiqiqi 49u IPv6 0x10fbff4a2ad96159 0t0 TCP 127.0.0.1:8080 (LISTEN)
自定义错误页面,隐藏Tomcat信息
编辑conf/web.xml,在标签上添加以下内容:
<error-page>
<error-code>404</error-code>
<location>/404.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/500.html</location>
</error-page>
禁用Tomcat管理页面
删除webapps目录下Tomcat原有的所有内容
删除conf/Catalina/localhost/下的host-manager.xml和manager.xml这两个文件
用普通用户启动Tomcat
禁止Tomcat列目录
这在新版本中默认就是禁用的,可以在conf/web.xml中编辑
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>