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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于freebsd下jail说明的所有评论