如何设定执行Java的Linux安全环境

http://tech.ddvip.com   2007年03月12日    社区交流

如何设定执行Java的Linux安全环境。

  chroot︰最大的安全性监狱

  对于真正的偏执狂,还可能进一步讨论保护 Java 语言服务。当该服务提供对本地文件系统的某种形式的存取权时,这尤其有用。JVM 执行时安全性特性并不能阻止已经有权存取文件系统的应用程序存取除了使用者专用的文件之外的文件。在 Tomcat 的情况中,文件存取是它作为 HTTP 服务器使用时所固有的。它通常将为每个 Web 应用程序提供服务的文件限制为该应用程序目录中的那些文件,但 servlet 应用程序可以避开这些限制。当 Tomcat 与诸如 Apache 之类别的前端 Web 服务器共同执行时,也会发生这种情况。

  透过使用 chroot,您可以阻止 Tomcat(和所有在 Tomcat 下执行的 Web 应用程序)存取为该服务器留出的空间以外的任何东西。chroot 并不以任何方式特定于 Java 应用程序,但它是为 JVM 提供的安全性加入最终包装器的简便方法。我将在这里为那些不熟悉 chroot 概念的人介绍设定它的要点。

  chroot 所做的类别似于用于执行 Java 程序代码的 JVM 沙箱,但它适用于文件系统本身。chroot 执行一条指令并将您指定的位置设定成有效根目录。所执行的指令(可以是执行其它指令(包括应用程序)的 shell 指令码)只能存取所指定的有效根目录下的文件系统的一部分。文件系统的其余部分对于该指令来说完全不存在。

  要对诸如 Tomcat 之类别的应用程序使用 chroot,需要将一些基本系统应用程序和链接库(包括实际的 Java JDK 安装)复制到新的虚拟根目录下。这可能会占用许多空间 ─ 也许从一百兆字节到一千兆字节或更多 ─ 这取决于您想尽多少努力来将这些应用程序和链接库减少到最小。设定它的最简单方法也最浪费空间︰祇要将整个 /bin、/lib、/usr/bin 和 /usr/lib 目录树以及 Java 安装复制到新的根目录下,使 root 使用者成为对所有文件的拥有者和唯一授权的写入者。如果想要让磁盘使用率保持到最小,可以有选择地只复制 chroot 中需要的指令(包括基本指令,如 ls、rm、echo 和 cat 等,以及实际的 Java 安装)以及那些指令使用的库(透过使用 ldd 可以找到那些库)。

责编:豆豆技术应用

正在加载评论...