This Domain(Admin5.com) is for Sale:

浅析在FreeBSD中建立chroot的FTP服务

时间:2007-10-27  来源:不详  作者:林仙
  1、准备基本的chroot环境
  在进入chroot环境之前要先准备好相应的设置,在本例中我们打算将ftpdchroot到/var/chroot目录中。
  因为系统自带的ftpd在/usr/libexec/目录,所以我们需要在/var/chroot中执行以下操作:
  
  matthew@bsd#mkdir-p/var/chroot/usr/libexec
  
  然后将ftpd复制到该目录中:
  
  matthew@bsd#install-C/usr/libexec/ftpd/var/chroot/usr/libexec
  
  接下来要做的就是将ftpd需要的库也复制到chroot目录中,我们可以使用ldd来检测ftpd运行时需要哪些库:
  
  matthew@bsd#ldd/usr/libexec/ftpd
  /usr/libexec/ftpd:
  libskey.so.2=>/usr/lib/libskey.so.2(0x28074000)
  libmd.so.2=>/usr/lib/libmd.so.2(0x2807b000)
  libcrypt.so.2=>/usr/lib/libcrypt.so.2(0x28084000)
  libutil.so.3=>/usr/lib/libutil.so.3(0x2809d000)
  libpam.so.1=>/usr/lib/libpam.so.1(0x280a6000)
  libc.so.4=>/usr/lib/libc.so.4(0x280af000)
  
  ldd的运行结果显示了ftpd运行时需要库,现在我们只要把这些库安装到我们的chroot的相应目录中便可:
内容来自dedecms

  
  matthew@bsd#mkdir-p/var/chroot/usr/lib
  matthew@bsd#install-C/usr/lib/libskey.so.2/var/chroot/usr/lib
  matthew@bsd#install-C/usr/lib/libmd.so.2/var/chroot/usr/lib
  matthew@bsd#install-C/usr/lib/libcrypt.so.2/var/chroot/usr/lib
  matthew@bsd#install-C/usr/lib/libutil.so.3/var/chroot/usr/lib
  matthew@bsd#install-C/usr/lib/libpam.so.1/var/chroot/usr/lib
  matthew@bsd#install-C/usr/lib/libc.so.4/var/chroot/usr/lib
  
  2、第一次进入chroot环境
  现在我们可以试试看ftpd能不能在我们的chroot环境中运行:
  
  matthew@bsd#chroot/var/chroot/usr/libexec/ftpd
  ELFinterpreter/usr/libexec/ld-elf.so.1notfound
  
  程序出错,根据提示在/usr/libexec中还缺少文件ld-elf.so.1,由于我们的ftpd是在chroot环境中运行,所以我们应该将ld-elf.so.1复制到我们的chroot环境中,即/var/chroot/usr/libexec中:
  
  matthew@bsd#install-C/usr/libexec/ld-elf.so.1/var/chroot/usr/libexec
  
  现在我们再次试着进入我们的chroot环境:

看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息