(转载)FreeBSD下jail虚拟机完全实践

上传人:012****78 文档编号:149817348 上传时间:2020-10-30 格式:DOC 页数:5 大小:30KB
返回 下载 相关 举报
(转载)FreeBSD下jail虚拟机完全实践_第1页
第1页 / 共5页
(转载)FreeBSD下jail虚拟机完全实践_第2页
第2页 / 共5页
(转载)FreeBSD下jail虚拟机完全实践_第3页
第3页 / 共5页
(转载)FreeBSD下jail虚拟机完全实践_第4页
第4页 / 共5页
(转载)FreeBSD下jail虚拟机完全实践_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《(转载)FreeBSD下jail虚拟机完全实践》由会员分享,可在线阅读,更多相关《(转载)FreeBSD下jail虚拟机完全实践(5页珍藏版)》请在金锄头文库上搜索。

1、FreeBSD 8.0下jail虚拟机完全实践(1)在Linux下实现虚拟化,我们使用Xen或者KVM;在Windows下实现虚拟化,我们使用VMware或Hyper-V。相对应的,说到BSD系统下的虚拟化解决方案,那么jail是不能不提的。本文将介绍如何在FreeBSD 8.0下使用jail来搭建一个小规模开发环境。在Linux下实现虚拟化,我们使用Xen或者KVM;在Windows下实现虚拟化,我们使用VMware或Hyper-V。相对应的,说到BSD系统下的虚拟化解决方案,那么jail是不能不提的。严格来说jail算是一种安全工具,但经过了多年的开发,jail已经是一个相当成熟的虚拟化解

2、决方案,十分适合布置小规模的开发服务器环境。本文将介绍FreeBSD 8.0下使用jail来搭建一个小规模开发环境的详细步骤。推荐专题:企业内网开发环境部署与经管全攻略(FreeBSD+PHP)jail是什么BSD类操作系统从BSD4.2开始即提供了chroot。 chroot工具能够改变一组进程的根目录的位置,从而建立一个与系统中其他部分相隔离的安全环境,在chroot环境中的进程将无法访问其外的文件或其他资源。正是由于这种能力,即使攻击者攻破了某一个运行于chroot环境的服务,也不能攻破整个系统。chroot对于那些不需要很多灵活性或复杂的高级功能的简单应用而言相当好用。另外,在引入ch

3、root概念的过程中,曾经发现过许多跳出chroot环境的办法。尽管这些问题在较新的FreeBSD版本中已经修正,但很明显地,chroot并不是一些用于加固服务器安全的理想解决方案。因此,必须实现一个新的子系统来解决这些问题,jail便应运而生了。jail以多种方法改进了传统的chroot环境概念。传统的chroot环境只限制了进程能够访问文件系统的哪些部分,其他部分的系统资源 (例如系统用户、正在运行的进程, 以及网络子系统) 是由 chroot 进程与宿主系统中的其他进程共享的。jail扩展了这个模型,它不仅将文件系统的访问虚拟化,而且还将用户、FreeBSD 的网络子系统,以及一些其他系

4、统资源虚拟化。jail应用环境我们实际的开发环境用了一台8核CPU、16G内存的服务器充当宿主机,开了大约六七台jail机作内部开发和测试使用,效果还是比较让大家满意的。就是FreeBSD自身一样,简单和稳定是其主要特点;特别是相对于Vmware的ESXI而言,配置起来要简单很多。安装前的准备工作:1 宿主机的性能尽量高些,内存是越大越好;2 /usr目录越大越好,我分的/usr大约300-400G;3 为了权限和安装的便利,我的操作均是以root进行。4 虚拟机上jail的IP跟我的宿主IP分别为192.168.43.128和192.168.43.129,物理bridge直接。jail的安装

5、第一步就是为 jail 选择一个位置。这个路径是在宿主系统中 jail 的物理位置。一种常用的选择是/usr/jail/jailname此处jailname 是 jail 的主机名。对于“完整” 的 jail 而言, 它通常包含了 FreeBSD 默认安装的基本系统中每个文件的副本。这里我创建了apache 目的是做一个apache 服务的jailmkdir -p /usr/jail/apache编译源码cd /usr/src/usr/src可以选择用sysisntall - configure - src - DVD/CD来安装,这样速度最快。make buildworld新建worldma

6、ke installworld DESTDIR=/usr/jail/apache安装配置文件make distribution DESTDIR=/usr/jail/apachedistribution 这个 make target 将安装全部配置文件,或者换句话说,就是将/usr/src/etc/复制到jail环境中的/etc安装jail的过程也是熟悉FreeBSD目录结构的过程。安装devfs在 jail 中不是必须要挂接devfs(8) 文件系统。而另一方面,几乎所有的应用程序都会需要访问至少一个设备,这主要取决于应用程序的性质和目的。控制 jail 中能够访问的设备非常重要,因为不正确的

7、配置, 很可能允许攻击者在 jail 中进行一些恶意的操作。通过 devfs(8) 实施的控制,可以通过由联机手册devfs(8) 和devfs.conf(5) 介绍的规则集配置来实现,但为了以后能方便的ssh到jail上,这里建议安装。我直接在宿主机的/etc/rc.conf里添加如下内容jail_apache_devfs_enable=YES # 在jail中挂接devfs配置宿主机的/etc/rc.conf,vim /etc/rc.conf,添加内容如下:jail_enable=YESjail_list=apachejail_apache_rootdir=/usr/jail/apache

8、jail_apache_hostname=你的主机名,如jail_apache_ip=192.168.43.129jail_apache_exec=/bin/sh /etc/rcjail_apache_devfs_enable=YES/etc/rc.conf里原有内容如下:ifconfig_le0=inet 192.168.43.128 netmask 255.255.255.0defaultrouter=192.168.43.2hostname=ifconfig_le0_alias0=inet 192.168.43.129 netmask 255.255.255.0 #最后一行的目的是为了替

9、Apache的jail添加IP使用sh /etc/rc来使jail生效,不需要重启,只需要 sh /etc/rc以后,也就是使他jail enable,就可以启用jail了,然后就可以使用jls看到jail的状态了;当然也可以用/etc/rc.d/jail脚本也可以用于手工启动或停止rc.conf中配置的jail,如 /etc/rc.d/jail start apache。jail的经管及其配置经管jail选择工具jailexec,可先用jls找出运行apache的jid例如jexec 1 passwd root可以改变jail的root密码jexec 1 csh 可以用root和/bin/c

10、sh进入jail系统如何启动名为apache的jail的sshjexec 1 vi /etc/rc.confrpc_bind_enable=NOsshd_enable=YEShostname=你的主机名,如sendmail_enable=NOsendmail_submit_enable=NOsendmail_outbound_enable=NOsendmail_msp_queue_enable=NOntpd_enable=YESntpd_sync_on_start=YESnamed_enable=YES以上,1 有关sendmail的选项是为了关闭邮件干扰2 Ntpd 是为了同步时间3 Rpc

11、 绑定 no 为了在rc.conf 里面去掉网卡地址的绑定然后是重要操作 jexec 1 sh /etc/rc 重启虚拟机的服务,不然启动不了jail之apache的ssh的。另外,在宿主机上建一个用于apache_jail的ssh用户jexec 1 pw useradd admin & jexec 1 passwd admin记得把yjwan 放入wheel 便于进去可以su root 账户jexec 1 pw groupmod wheel -m admin如何允许你的jail能够ping没有配置前你会很郁闷的发现,无论你ping啥,就会出现ping: socket: Operation n

12、ot permitted如果想永久保留配置,可以在宿主机上面修改/etc/sysctl.conf 文件加上security.jail.allow_raw_sockets=1重启jail虚拟机/etc/rc.d/jail restart apachejail的优化从宿主机 将/etc/resolv.conf 文件 复制到jail系统中cp /etc/resolv.conf /usr/jail/apache/etc/resolv.conf将宿主机的make.conf也复制过去,这样ports安装速度很快cp /etc/make.conf /usr/jail/apache/etc/make.conf在宿主机上将/usr/ports挂接到jail上,此行可添加到/etc/rc.conf上。mount_nullfs /usr/ports /usr/jail/cas/usr/ports这里值得一说的是,由于宿主机有二个IP:192.168.43.128和192.168.43.129,所以我们ssh jail的时候,很有可能还是在宿主机上;只有jail的ssh配置成功才可能ssh上去,ssh上去看,注意看下当前的hostname和ifconfig。对于FreeBSD8下jail虚拟环境的搭建就介绍到这里。最后祝大家jail愉快,开发愉快,生活更愉快!5 / 5

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号