1. 熟悉Xen虚拟化平台部署;
2. Xen sHype/ACM安全架构中的Simple TE和Chinese Wall策略及事实上现机制的分析与验证。
第1章 Xen环境部署1.1 版本号选择
因为Ubuntu使用广泛。软件包易于下载。我们选择Ubuntu系统进行Xen部署。
可选择的LTS系统例如以下[1]:1)Ubuntu 10.04系统採用的是linux 2.6.32内核,因为Linux 3.0下面内核不支持Xen[2],须要又一次编译内核。较为费时费力,内核编译后支持Xen 4.0;
2)Ubuntu 12.04系统採用Linux 3.2+内核,支持Xen 4.1;Xen从4.1開始将xm工具集列为deprecated[3]。而进行ACM/sHype策略方面的配置利用xm工具实现较为方便;
3)Ubuntu 12.04系统採用Linux 3.2+内核。支持Xen 4.2。从Xen 4.2開始,不再支持ACM安全模块。因此不合适。
4)Ubuntu 14.04系统採用Linux 3.13+内核,支持Xen 4.4;
5)Ubuntu 15.04系统採用Linux 3.19.3内核,支持Xen 4.5,Xen从4.5開始取消xm工具集(xend),用xl工具集进行取代[3]。综合以上几点原因,Xen环境採用Ubuntu 12.04 x64部署较为合适,Xen版本号选择4.1,可是本文选择的是Ubuntu 14.04 x64 + Xen 4.1的组合,事实证明也是能够成功安装的。
依据文章[4]中的建议,应该选择64-bit的Ubuntu安装较为合理。因此我们的安装镜像最后确定为ubuntu-14.04-desktop-amd64.iso。
因为Xen的dom0系统支持的显卡有限。不支持VMware Workstation虚拟机中的默认显卡,在安装Xen后重新启动会导致系统黑屏,无法使用。因此此实验不能选择VMware虚拟机,仅仅能选择物理机上安装Ubuntu进行实验。
利用[5]中的教程进行Ubuntu 14.04 LTS x64的U盘安装盘的制作。再利用该安装盘进行安装就可以。假设是与windows双系统,则须要用EasyBCD恢复引导菜单,通过引导菜单进入Ubuntu系统。CloudStack编译环境XenServer启动系统虚拟机失败 http://www.linuxidc.com/Linux/2013-08/88694.htm
禁止CloudStack删除XenServer原有虚拟机 http://www.linuxidc.com/Linux/2013-08/88693.htm
XenServer中设置Linux VM从光驱引导 http://www.linuxidc.com/Linux/2013-07/87699.htm
开启并配置Citrix XenServer的SNMP服务 http://www.linuxidc.com/Linux/2013-01/78487.htm
重置XenServer本地磁盘LVM为EXT3格式 http://www.linuxidc.com/Linux/2013-11/92282.htm
在 Debian 上安装和配置 Xen http://www.linuxidc.com/Linux/2010-04/25351.htm
Fedora 20源码安装Xen4.3.0 http://www.linuxidc.com/Linux/2015-04/116551.htm
1.2 Xen源代码下载及安装依赖包因为Xen公布的二进制安装包默认不含有XSM功能,开启XSM功能必须改变编译选项并进行又一次编译。
因此本文须要从Xen源代码进行安装。
从2013年2月開始,Xen源代码採用git进行管理。其git库地址为:
git://xenbits.xen.org/xen.git源代码下载採用的命令是:
git clone git://xenbits.xen.org/xen.gitcd xen
git checkout stable-4.1
编译须要用到git,须要提前安装好:
apt-get install git接着安装依赖包:
apt-get install bcc bin86 gawk bridge-utils iproutelibcurl3 libcurl4-openssl-dev bzip2 module-init-tools transfig tgif texinfotexlive-latex-base texlive-latex-recommended texlive-fonts-extratexlive-fonts-recommended pciutils-dev mercurial build-essential make gcclibc6-dev zlib1g-dev python python-dev python-twisted libncurses5libncurses5-dev patch libvncserver-dev libsdl-dev libjpeg62-dev iasl libbz2-deve2fslibs-dev git-core uuid-dev ocaml libx11-dev bison flex binutils xorg-devudev gettext libgcrypt11-dev libssl-dev pciutils libglib2.0-dev gcc-multilib fakeroot pkg-config libpci-devcrash crash kexec-tools makedumpfile1.3 Xen源代码编译
1)在Xen 4.0以后,XSM有ACM和FLASK两个模块,默认都不开启,须要选择当中一个。然后进行编译,其Config.mk文件内容例如以下:
XSM_ENABLE ?= nFLASK_ENABLE ?= n
ACM_SECURITY ?= n
2)从Xen 4.2開始,FLASK成为默认的XSM模块,当启用XSM时默认启用FLASK,而ACM默认不启动。其Config.mk文件内容例如以下:
XSM_ENABLE ?= nFLASK_ENABLE ?
= $(XSM_ENABLE)
因为本文採用的版本号是Xen4.1,因此须要依照下面命令改动Config.mk:
XSM_ENABLE ?= yFLASK_ENABLE ?= n
ACM_SECURITY ?
= y
然后执行例如以下命令进行编译:
make dist或make xen tools stubdommake install-xen
make install-toolsPYTHON_PREFIX_ARG="--install-layout=deb"
make install stubdom
1.4 改动/etc/modules
改动/etc/modules文件,加入下面行:
xen-evtchnxen-gntdev
xen-netback
xen-blkback
xenfs
blktap
1.5 加入Lib搜索路径
改动/etc/ld.so.conf.d/libc.conf文件,加入例如以下几行:
/usr/local/lib(已有)/lib64
/usr/lib
/usr/lib64
执行ldconfig命令使改动生效。
1.6 改动grub启动项步骤一:改动/etc/default/grub文件,将GRUB_TIMEOUT=10改动为GRUB_TIMEOUT=-1,将GRUB_HIDDEN_TIMEOUT=0改动为GRUB_HIDDEN_TIMEOUT=10。
步骤二:运行update-grub。
对于Ubuntu 14.04在/boot/grub/grub.cfg中能自己主动生成’Ubuntu, with Xen hypervisor’启动项。不须要像在Ubuntu 12.04中一样自己手动再配置。
重新启动系统。
1.7 測试Xen环境首先启动xend:
//首先启动xencommonsservice xencommons start
//启动xend之前关闭网卡启动xend之后重新启动网卡(假设不这样做会提示出错。原因暂不详)
ifconfig eth0 down
service xend start
ifconfig eth0 up
接着执行xm list命令。结果例如以下:

Name ID Mem VCPUs State Time(s)
Domain-0 0 15610 8 r----- 1305.5
改动/etc/xen/xend-config.sxp文件,去掉xend-unix-server no的凝视,并改为xend-unix-server yes,去掉xend-unix-path/var/lib/xend/xend-socket的凝视。
1.8 创建虚拟机首先。须要制作虚拟机的磁盘文件,输入下面命令创建10GB的磁盘文件
dd if=/dev/zero of=vm1disk bs=1k seek=10000kcount=0mkfs -t ext3 vm1disk
(当须要回复确认时,回答y)
mount -o loop vm1disk /mnt
cp -ax /{root,dev,var,etc,usr,bin,sbin,lib} /mnt
mkdir /mnt/{proc,sys,home,tmp}
然后对/mnt/etc/fstab,/mnt/etc/hostname进行自己定义的改动,这里省略不做改动。
umount /mnt此时,虚拟机磁盘文件vm1disk就已创建完成,用类似的方式创建vm2disk。
接着,编辑虚拟机配置文件/root/domain1.xm,其内容例如以下所看到的:
kernel= "/boot/vmlinuz-3.13.0-24-generic.efi.signed"memory = 512
name = "domain1"
dhcp = "dhcp"
disk = ['tap:aio:/root/vm1disk,sda1,w']
root = "/dev/sda1 ro xencons=tty"
最后,执行命令:
xm createdomain1.xm正常情况下,虚拟机domain1应该已经启动。
通过xm console domain1命令能够打开虚拟机domain1的终端命令行,例如以下图所看到的。

接着类似地创建domain2.xm。再执行xm create domain2.xm启动domain2虚拟机。
1.9 測试ACM/sHype环境改动/etc/xen/xend-config.sxp。添加(xsm_module_name acm)。否则,ACM策略类型将被觉得不支持(未指定使用的xsm类型),出错标识为执行xm getpolicy命令,提示Supported security subsystems : None。改动源码中的xend-config.sxp似乎没有效果,仅仅能改动编译后的文件。
执行xensec_toolgetpolicy命令,结果例如以下,则说明ACM/sHype环境至此就搭建完毕了。
在Windows上安装Python 2.7 x64和wxPython 3.0 x64 for Python 2.7,当中wxPython的下载页面例如以下:http://www.wxpython.org/download.php#msw
相同在Ubuntu上安装wxPython:
apt-get install python-wxgtk2.8 python-wxtools执行下面命令,假设能出现下图所看到的界面,说明策略配置工具安装完成。
python /usr/sbin/xensec_ezpolicy
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2016-04/129857p2.htm
