1 引言
由于官方尚未发布Tomcat 7的强化指南,ERNW便总结了相关的设置,并制作出本文中列出的清单。尽管有大量的设置可以被应用,但本文旨在提供一些加固方法的基础。可能对操作系统功能造成严重影响的并且需要进行进一步大量测试的设置并未列在该清单中,或者被标记为可选。
我们用“强制”或“可选”标记了此清单中的每个推荐设置,用以清楚的表达从我们的角度来看哪个设置是必须的(强制)或者是应该的(可选)。“可选”也意味着我们推荐你应用此设置,但这可能会影响系统的必需功能。
2 操作与系统安全
2.1 补丁与漏洞管理
必须及时安装与安全相关的Tomcat更新:
必须在10天内安装高危或重要优先级的更新和补丁。
必须在发布后30天内安装中等优先级的更新和补丁。
必须在发布后90天内安装低优先级更新。
有关补丁的可用性和严重性的信息,请参见http://tomcat.apache.org/lists.html#tomcat-announce。
更新可能会影响功能。关于核心/业务方面的Tomcat的更新可能带来的副作用,请查看http://tomcat.apache.org/lists.html#tomcat-announce。
2.2 Tomcat服务的最小权限
在系统上以低权限运行Tomcat应用程序。创建一个专门的 Tomcat服务用户,该用户只能拥有一组最小权限(例如不允许远程登录)。必须检查以最小特权用户身份使用操作系统资源库安装程序的行为,以确保Tomcat不以root /管理员身份运行。必须在配置启动机制的操作系统层级上确保这一点(例如Microsoft Windows上的Windows服务或Unix上的rc脚本):
图一:Windows服务配置
关于安全的服务配置,请参考ERNW Windows加固指南
图二:FreeBSD rc脚本
具体配置与Unix系统和Tomcat版本有关。例如FreeBSD上的Tomcat 7已经不支持配置rc.conf中的用户帐户,因此用户名被硬编码在启动脚本中—这是不推荐的。在FreeBSD上,web和应用服务器应该是以www用户身份运行,可参考http://www.freebsd.org/doc/en/books/porters-handbook/using-php.html#WEB-APPS。
以低权限用户身份运行Tomcat可能会影响Tomcat的某些功能。例如,特权端口不可被设置为监听端口。为了解决该问题,可以在系统上使用本地HTTP代理(例如使用Apache的mod_jk模块)或者定义包转发规则,使得进入流量被转发到Tomcat监听的非特权端口。
① 2000多本网络安全系列电子书
② 网络安全标准题库资料
③ 项目源码
④ 网络安全基础入门、Linux、web安全、攻防方面的视频
⑤ 网络安全学习路线图
【点击这里】
2.3 限制访问Tomcat文件夹
Tomcat文件夹只能由tomcat用户本身访问,尤其是对于目录 t o m c a t h o m e / c o n f / 和 {tomcat_home}/conf /和 t