Linux平台Tomcat的安全加固
2017-11-08
因为Tomcat技术先进、性能稳定且免费,因而深受Java爱好者喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
当前有大量企业的生产环境部署tomcat,如果设置不当,远程攻击者可以利用漏洞执行恶意代码,或者利用弱口令非法登录系统破坏生产数据,导致生产系统停止服务,甚至泄露用户重要数据等灾难性后果。
本文以Tomcat8.5.12版本运行于CentOS7为例,介绍一些安全加固的建议:
1.以普通用户安装Tomcat
root是超级用户,具有系统中所有的权限。以root用户安装运行tomcat存在安全隐患。
例如在user1用户下进行安装,步骤如下:下载JDK和tomcat安装包,将JDK和tomcat解包到user1家目录下:
更新环境变量文件:
添加如下内容:
保存文件,生效环境变量:
如果能显示java版本则JDK安装成功,tomcat能启动说明安装成功。
2.修改默认服务端口
修改方法是$CATALINA_BASE/conf/server.xml文件中修改8080为实际端口:
保存文件后,重启tomcat生效。
3.加固管理页面
编辑$CATALINA_BASE/conf/tomcat-users.xml文件。修改admin用户的密码为 adm@2017PWDjiagu,删 除所有弱口令。
如果不需要管理页面也可以直接禁用,防止密码被破解或者泄露。
禁用管理页面的具体方法是删除Webapps目录下Tomcat原有的所有内容,删 除$CATALINA_BASE/conf/Catalina/localhost/下的host-manager.xml和manager.xml这两个文件。重新启动Tomcat生效。
4.禁用自动部署
如果有一个WAR文件,想部署它,默认只需要把该文件简单的拷贝到CATALINA_BASE/webapps目录下即可。一旦Tomcat监听到这个文件,它将解开该文件包。关闭自动部署功能可防止被植入木马等恶意程序。
具体方法:
5.隐藏版本信息
在默认配置下,当应用出现异常时,客户端会显示Tomcat的版本信息。攻击者可以根据Tomcat版本信息选择漏洞库攻击,所以需要将Tomcat的版本信息隐藏。
具体方法:
新建目录$CATALINA_HOME/lib/org/apache/catalina/util, 新 建ServerInfo.properties文件。编辑文件内容如下:
server.info=version1.0 #这里填写自定义的版本信息。
6.版本升级
检查目前所使用的Tomcat版本是否存在安全漏洞,如果存在安全漏洞,则需要升级到新的安全版本。在选择Tomcat的版本时,我们一般要选择最新的稳定版本。
这样可在安全性和稳定性间取得一个很好的平衡。如果要从低版本升级到高版本,建议先在测试环境中测试通过后再进行升级,以避免由于兼容性带来的问题。
关于Tomcat的安全漏洞可以关注官方发布的安全公告,也可以关注一些漏洞发布平台的最新Tomcat漏洞信息。
此外,当Tomcat对公网用户提供服务的时候,防火墙策略也一定要根据实际业务需求进行细化,降低被攻击的风险。