- 论坛徽章:
- 0
|
在FreeBSD中, 有一个类似于chroot的东西, 叫做jail, 它能不仅能把一个进程限制在一个文件夹下面, 而且还可以进一步限制该进程可以使用的资源, 以及对网络连接的隔离.
chroot: 改变进程的根目录为制定目录. 在chroot之后没有可能再切换回原来的根目录. 通过chroot可以稍微提高系统的安全性, 但不是最终的解决方案.
chroot的缺点在于:
1. chroot可以通过加载内核模块的方式进行破解.
2. chroot之后的进程依然可以connect到正常进程listen的端口.
FreeBSD的jail对chroot的改进在于:
1. jail之后的进程默认是不能加载内核模块或者是创建socket的.
2. 每个jail拥有不同的jid, 不同的jail很容易区分, 比方说可以pkill -j jid -KILL来结束指定jail的所有子进程. jid已经设计在进程结构之中.
应用举例:
1. 通过Jail来构造一个安全稳定的apache服务器:
让httpd以www用户身份执行, 并且限制只能访问/var/jail/apache文件夹下面的文件. 这里可以给这个jail的网络连接设置一个独立的IP, 这样就如同运行了一个虚拟机一般. 这里事实上我们只是运行了一个程序而已, 因此jail技术的性能是非常之高的, 一台机器能同时跑多少个apache进程, 就能开多少个虚拟机.
http://blog.epptime.com/?p=12 |
|