是否建議在 chroot 監獄中運行 Apache?

是否建議在 chroot 監獄中運行 Apache?

我認識的一位系統管理員建議我在 chroot 監獄中執行 Apache,以提高安全性。

我有以下問題:

  1. 這是否可取(即是否有任何我需要注意的「陷阱」)?
  2. 在 chroot 監獄中運行 Apache 是否會影響其效能和可擴展性等能力問題?

他還建議我在單獨的 chroot 監獄中運行我的資料庫(mySQL 和 PostgreSQL)。

這是生產系統中常做的事情嗎

[編輯]

忘了說,伺服器運行在 Ubuntu 8.04 LTS 上

答案1

Chroot 是一種很好的安全措施,它限制了在成功利用漏洞的情況下危害系統的可能性,但在某些情況下也有方法可以逃避 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

希望這可以幫助。

答案2

我有兩個程序,其中一個是apache httpd,透過unix域套接字相互通訊。我已將它們切換到在 chroot 下運行,然後 %10 效能損失。我認為這取決於正在運行的應用程式。我之前沒有聽說 Apache 在 chroot 下有任何效能損失,所以看起來我的第二個應用程式在 chroot 下效能損失。

相關內容