是否建议在 chroot jail 中运行 Apache?

use*_*402 3 chroot apache-2.2

我认识的一个系统管理员建议我在 chroot jail 中运行 Apache,以提高安全性。

我有以下问题:

  1. 这是否可取(即是否有任何我需要注意的“陷阱”)?
  2. 在 chroot jail 中运行 Apache 是否会影响其性能和可扩展性等能力问题?

他还建议我在单独的 chroot jail 中运行我的数据库(mySQL 和 PostgreSQL)。

这是生产系统中经常做的事情吗

[编辑]

忘了说,服务器运行在 Ubuntu 8.04 LTS 上

Max*_*ell 5

Chrooting 是一种很好的安全措施,它限制了在成功利用的情况下破坏系统的可能性,但在某些情况下也有一些方法可以逃避 chroot,因此它不是保护系统的明确方法。

我不知道在性能和可扩展性方面有什么缺点。关于数据库访问,通常是通过链接到 chroot 内的套接字来完成的,这样您就不必打开任何网络端口来连接数据库。

编辑:以下是从 OpenBSD rc.local (OpenBSD chrooted httpd) 获取的 mysql 访问示例

if [ X"${mysql_server_flags-NO}" != X"NO" -a -x /usr/local/bin/mysqld_safe ]; then
        rm -R /var/www/var/run/mysql
        mkdir -p /var/www/var/run/mysql
        chown _mysql:_mysql   /var/www/var/run/mysql
        echo -n 'MySQL server: '; /usr/local/bin/mysqld_safe --user=_mysql ${mysql_server_flags} &
        sleep 10
        ln -f /var/run/mysql/mysql.sock /var/www/var/run/mysql/mysql.sock
fi
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。