快速业务通道

freebsd下jail说明

作者 佚名技术 来源 操作系统 浏览 发布时间 2012-06-28
个应用程序在jail里面的所在位置以及运行所需的参数。

然后用ps 查看一下进程状态:

tester# ps -axf |grep pureftpd

95 ?? IsJ 0:00.92 pure-ftpd (SERVER) (pure-ftpd)

可以看到所有这些pure-ftpd的进程都有一个J,标志这这一程序正在jail下面运行。

这时候可能会有一些管理用的程序无法正常工作,因为这些管理用程序无法找到他们需要访问的那些文件,只要找到这些应用程序需要调用的文件(比如日志文件)的位置,然后制造一个soft link就可以了,通常这些管理程序都可以继续正常运行。

到此为止,一个针对应用程序的jail构造完成。

第二类,构造受控制的主机

在这种情况下面,我们首先需要构造一个当前版本操作系统的完整镜像(下面这个脚本是从FreeBSD 4.6r的man page里面来的,实际上4.5以及之前的man page在构造jail目录树脚本上面都有一定的问题,4.6才纠正过来):

tester# cat >>/root/mkjail.sh

jailhome=/data/jail

cd /usr/src

mkdir -p $jailhome

make world DESTDIR=$jailhome

cd etc

make distribution DESTDIR=$jailhome -DNO_MAKEDEV_RUN

cd $jailhome/dev

sh MAKEDEV jail

cd $jailhome

ln -sf dev/null kernel

^D

tester# sh /root/mkjail.sh

最后在/data/jail下面获得一个完整的根据当前源码树编译得来的jail目录树。

接下来:

/*

tester# mkdir $jailhome/stand

tester# cp /stand/sysinstall $jailhome/stand

tester# jail $jailhome jailed.system.box 192.168.0.123 /bin/csh

(这时候就获得了一个jail下面的shell)

jailed# /stand/sysinstall

*/

通过sysinstall这个程序可以对jail系统的常用变量进行设置,比如时区,DNS,Mail。还有jail系统在“启动”的时候需要执行的程序。

如果你足够熟悉这个系统,可以考虑自己手工一个个的做过来。

复制/etc/localtime 到 $jailhome/etc,使jail环境下的应用程序可以得到正确的时间;

复制/etc/resolv.conf 到 $jailhome/etc/resolv.conf 使jail下面可以正确解释域名;

在jail里面运行newaliases 避免sendmail的不断抱怨;

如果打算运行inetd,需要修改inetd的启动参数,加上 -a $LISTEN_ADDR 选项(因为jail无法自己获得当前系统的ip地址,所以必须提供一个ip地址给它)在rc.conf里面看起来应该是这样:

inetd_flags="-wW -a 192.168.0.123"

将系统本身的syslogd 运行加上 -ss 选项,避免这个syslog启动监听端口;修改/etc/rc.conf 加上 syslogd_flags="-ss" (对$jailhome/etc/rc.conf也如法炮制)

在jail内创建一个空的/etc/fstab,在rc.conf里面去掉网卡地址的绑定,这样在jail系统在启动的时候不会抱怨。

为了实际运行这个jail系统,还需要为jail提供一个可以连接的IP地址,这个地址可以与实际环境同一个子网,也可以处于另外一个子网中。

tester# ifconfig fxp0 192.168.0.123 netmask 0xffffffff alias

(这里为网卡fxp0绑定了一个别名,准备提供服务。)

所有这些东西都执行完了以后,可以有几个方法把jail系统启动起来,一个是在jail外面运行

tester# jail $jailhome jailed.system.box $jail_IP_ADDR /bin/sh $jailhome/etc/rc

一个是单纯把ssh/telnetd这样一些提供远程访问的服务在jail内启动起来:

tester# jail $jailhome jailed.system.box $jail_IP_ADDR /bin/sh $jailhome/bin/inetd -wW -a $jail_IP_ADDR

然后从外面登录系统,运行、配置jail系统环境,或者手工启动需要的应用服务。

如果打算运行一个用于生产环境的jail系统的话,推荐使用第一种方法,并且把启动jail的命令放到(实际环境的)/etc/rc.local脚本里面去,这样jail系统可以有比较完备,与实际机器相类似的环境。

这样一个jail

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号