快速业务通道

关于 Linux 下的 chroot 的些许介绍

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-15
以前,Unix/Linux上的daemon都是以root权限启动的.当时,这似乎是一件理所当然的事情,像Apache这样的服务器软件需要绑定到“众所周知”的端口上(小于1024)来监听HTTP请求,而root是惟一有这种权限的用户. 但是,随着攻击者活动的日益频繁,尤其是缓冲区溢出漏洞数量的激增,使服务器安全受到了更大的威胁.一旦某个网络服务存在漏洞,攻击者就能够访问并控制整个系统.因此,为了减缓这种攻击所带来的负面影响,现在服务器软件通常设计为以root权限启动,然后服务器进程自行放弃root,再以某个低权限的系统账号来运行进程.这种方式的好处在于一旦该服务被攻击者利用漏洞入侵,进程权限很低,攻击者得到的访问权限又是基于这个较低权限的,对系统造成的危害比以前减轻了许多. 有些攻击者会试图找到系统其它的漏洞来提升权限,直至达到root.本地安全性远低于远程安全保护,因此攻击者很有可能在系统中找到可以提升权限的东西.即使没有找到本地漏洞,攻击者也可能会造成其它损害,如删除文件、涂改主页等. 为了进一步提高系统安全性,Linux内核引入了chroot机制.chroot是内核中的一个系统调用,软件可以通过调用库函数chroot,来更改某个进程所能见到的根目录.比如,Apache软件安装在/usr/local/httpd/目录下,以root用户(或具有相同权限的其它账号)启动Apache,这个root权限的父进程会派生数个以nobody权限运行的子进程,具体情况取决于个人设置.父进程监听请求自80端口的tcp数据流,然后根据内部算法将这个请求分配给某个子进程来处理.这时Apache子进程所处的目录继承自父进程,即/usr/local/httpd/. 但是,一旦目录权限设定失误,被攻击的Apache子进程可以访问/usr/local、/usr、/tmp,甚至整个文件系统,Apache进程所处的根目录仍是整个文件系统的根.如果能够利用chroot将Apache限制在/usr/local/httpd/,那么,Apache所能存取的文件都是/usr/local/httpd/下的文件或其子目录下的文件.创建chroot“监牢”就可以将进程权限限制在文件系统目录树中的某一子树中. chroot即change to root,那个root代表的是根目录,也就是改变程式执行时所参考的根目录位置. 一般的目录架构: | CHROOT的目录架构:
__________________|________________________
/ | /hell/
/bin | /hell/bin
/sbin | /hell/sbin
/home | /hell/home
/usr/bin | /hell/usr/bin
也就是用 " /hell " 来代替了原来的 " / " 目录 chroot 这个命令的功能描述为:Run a command with a different root directory. 即,将在其它目录的环境下运行一个命令理解成在"/"目录下运行该命令. 但是我们不能将其错误的理解成整个应用环境的功换. chroot下应用执行环境与原来的环境的差别只是 "/" 目录的实际物理路径不一样(当然会造成同样的路径所访问到的实际文件不一样) 不过实际使用中,一般都是这样用chroot:
chroot 目录 (执行后 "/" 目录会切换到命令中指定的目录,运行此命令还具有root身份才能执行)
这种用法后面没有跟一个命令作为参数,chroot会默认执行SHELL环境变量所保存的值作为命令来执行. SHELL这个程序运行起来后不会退出,且会在终端下给出命令提示符,整个个命令执行起来后,同时出现新shell的提示符,给人的感觉是切换到新的用户环境. 新的shell会重新载入一些环境变量以及初始化脚本,故新环境下坏境变量与原来的环境变量还是有一些差别的.
要测试的话:
新建一个目录 "/test" , 把 /bin 以及 /lib 目录拷贝到新目录下,然后就可以命令 "#chroot /test" 将 "/test" 作为新的 "/" 目录,输入exit即回到原来的环境.
命令CHROOT 的意义何在:
1.限制CHROOT环境下的使用者所能行的程式,如SetUid的程式,或是造成 Load 的 Compiler等等
2.防止使用者存取某些特定档案及配置文件,如/etc/passwd
3.防止入侵者/bin/rm -rf /
4.提供Guest服务及限制不守规矩的使用者.
5.增强系系统的安全.
利用chroot技术 搭建 "监牢" 的技术 正在研究中.....这里先不作介绍了 同时希望我这块砖最好能引出几块宝玉来, 嘿嘿.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号