chroot perl 脚本的正确方法是什么?

chroot perl 脚本的正确方法是什么?

我在其中创建了/opt/chroot、 创建了和其他目录,将库、 bash 和 perl 二进制文件复制到了适当的位置。我还将我的脚本放入了。bin lib/opt/chroot/bin/

现在我可以这样运行脚本:

# chroot /opt/chroot 脚本.pl

我担心的是两件事:

  1. 脚本获得root权限。
  2. chrooted 环境中有一个 perl 解释器。

我该如何避免这些安全漏洞?

答案1

Linux 上的 Chroot不是为了安全起见,如果您有 root 权限,或者在 chroot 内部有挂载能力,那么很容易被突破。

您显然应该使用 su 或类似方法放弃 root 权限,只要脚本没有修改解释器文件的权限,就不会有问题。

为此,您需要在 su 的副本和 PAM 的核心位中添加更大的代码块。

像 jailkit 这样的工具可能是管理此问题的更简单方法:

http://olivier.sessink.nl/jailkit/index.html

答案2

为什么不在你的 perl 脚本中 chroot?这样你就不需要 chroot jail 中的所有额外内容了。

只需添加 chroot()http://perldoc.perl.org/functions/chroot.html在脚本的某个位置,然后是 chdir(“/”)。

此后,放弃你的特权,你就准备好了。

相关内容