我在其中创建了/opt/chroot
、 创建了和其他目录,将库、 bash 和 perl 二进制文件复制到了适当的位置。我还将我的脚本放入了。bin
lib
/opt/chroot/bin/
现在我可以这样运行脚本:
# chroot /opt/chroot 脚本.pl
我担心的是两件事:
- 脚本获得root权限。
- chrooted 环境中有一个 perl 解释器。
我该如何避免这些安全漏洞?
答案1
Linux 上的 Chroot不是为了安全起见,如果您有 root 权限,或者在 chroot 内部有挂载能力,那么很容易被突破。
您显然应该使用 su 或类似方法放弃 root 权限,只要脚本没有修改解释器文件的权限,就不会有问题。
为此,您需要在 su 的副本和 PAM 的核心位中添加更大的代码块。
像 jailkit 这样的工具可能是管理此问题的更简单方法:
答案2
为什么不在你的 perl 脚本中 chroot?这样你就不需要 chroot jail 中的所有额外内容了。
只需添加 chroot()http://perldoc.perl.org/functions/chroot.html在脚本的某个位置,然后是 chdir(“/”)。
此后,放弃你的特权,你就准备好了。