3

我对从 Linux 切换到 freeBSD 很陌生。

我读到了 jail,这个解决方案对于服务器系统来说听起来很棒。所以我对我的网络服务器的想法是创建 3 个监狱。mysql 一个监狱,nginx 一个监狱,php-fpm 一个监狱。现在监狱必须相互交流。我怎么做?

通过IP?这将是一个很大的开销,但安全。这是一个例子:

  • 客户
    • -> TCP/IP -> NGINX
    • -> TCP/IP -> PHP-FPM
    • -> TCP/IP -> MYSQL
    • -> TCP/IP -> PHP-FPM
    • -> TCP/IP -> NGINX
    • -> TCP/IP -> 客户端

使用套接字:那将是一个安全损失..

  • 在主机系统上创建目录
  • 在监狱中创建目录
  • 合并目录

您使用哪种解决方案?或者您有更好的解决方案?

4

2 回答 2

3

我不会分离 php-fpm 但这是可能的。如今,IP 通信的开销并没有那么大,考虑到数据库和 php 处理器需要进行的处理要大得多,也不是那么重要。特别是因为没有涉及实际的电线。数据包通过环回结构通过接口路由,并且不会连接到线路。

分离的好处是,如果需要,您可以将监狱移动到另一台物理机器,移动监狱是轻而易举的事。

为了澄清为什么不将 php-fpm 移动到单独的监狱中,修改网站变成了静态内容(图像)和动态内容(php 文件)的两个任务过程。优点是网络服务器软件中的漏洞无法修改 php 代码。这也是为什么你不应该将你的 php 代码nullfs到 webserver jail 如果你打算分离,因为它会破坏它的优势。

于 2011-05-10T14:31:21.990 回答
1

我真的不知道这是否是最好的解决方案,但如果你可以使用Unix domain sockets,你可以在三个监狱之间共享一个坐骑。命名空间是隔离的(它们不能在共享挂载点之外创建套接字)并且它们应该能够通信。

要创建共享挂载,您可以使用nullfs挂载。一个不错的(相当高级的)关于监狱的指南也谈到了nullfs坐骑。当然,这个挂载点应该只用于套接字,其他文件应该分开。

同样,我不知道这些应用程序是否可以通过 Unix 套接字进行通信,但如果可以的话,您可能已经设置好了。

于 2011-05-10T14:31:33.817 回答