阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Xen安全架构sHype/ACM策略配置图文教程

508次阅读
没有评论

共计 17254 个字符,预计需要花费 44 分钟才能阅读完成。

实验要求

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.git
cd 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 makedumpfile

1.3           Xen 源代码编译

1)在 Xen 4.0 以后,XSM 有 ACM 和 FLASK 两个模块,默认都不开启,须要选择当中一个。然后进行编译,其 Config.mk 文件内容例如以下:

XSM_ENABLE ?= n
FLASK_ENABLE ?= n
ACM_SECURITY ?= n

2)从 Xen 4.2 開始,FLASK 成为默认的 XSM 模块,当启用 XSM 时默认启用 FLASK,而 ACM 默认不启动。其 Config.mk 文件内容例如以下:

XSM_ENABLE ?= n
FLASK_ENABLE ?

= $(XSM_ENABLE)

因为本文採用的版本号是 Xen4.1,因此须要依照下面命令改动 Config.mk:

XSM_ENABLE ?= y
FLASK_ENABLE ?= n
ACM_SECURITY ?

= y

然后执行例如以下命令进行编译:

make dist 或 make xen tools stubdom
make install-xen
make install-toolsPYTHON_PREFIX_ARG="--install-layout=deb"
make install stubdom

1.4           改动 /etc/modules

改动 /etc/modules 文件,加入下面行:

xen-evtchn
xen-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:

// 首先启动 xencommons
service xencommons start
// 启动 xend 之前关闭网卡启动 xend 之后重新启动网卡(假设不这样做会提示出错。原因暂不详)ifconfig eth0 down
service xend start
ifconfig eth0 up

接着执行 xm list 命令。结果例如以下:

Xen 安全架构 sHype/ACM 策略配置图文教程

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=0
mkfs -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 的终端命令行,例如以下图所看到的。

Xen 安全架构 sHype/ACM 策略配置图文教程

接着类似地创建 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 

Xen 安全架构 sHype/ACM 策略配置图文教程

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-04/129857p2.htm

 

第 2 章           ACM 策略配置

在 xensec_ezpolicy 里,点击 New Orgbutton。新增加三个组织:A-Bank、B-Bank 和 AutoCorp,而且在 A -Bank 下创建两个部门:SecurityUnderwriting 和 MarketAnalysis。然后选中__UNLABELED__、A-Bank 和 B -Bank 三项,点击 Create run-time exclusion rulefrom selectionbutton,将其增加到一个冲突集中,接着用类似方法将__UNLABELED__、A-Bank.MarketAnalysis 和 A -Bank.SecurityUnderwriting 三项增加到一个冲突集中。终于结果例如以下图所看到的:

Xen 安全架构 sHype/ACM 策略配置图文教程

选择菜单里的 File ->Save as Xen ACM Security Policy …将策略文件保存到路径:/etc/xen/acm-security/policies/mytest-security_policy.xml

该文件终于内容例如以下所看到的:

<?xml version=”1.0″ encoding=”UTF-8″?

>
<!– Auto-generated by ezPolicy        –>
<SecurityPolicyDefinition xmlns=”http://www.ibm.com” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://www.ibm.com ../../security_policy.xsd “>
    <PolicyHeader>
        <PolicyName>mytest</PolicyName>
        <Date>Tue Jun 09 14:41:58 2015</Date>
        <Version>1.0</Version>
    </PolicyHeader>

    <SimpleTypeEnforcement>
        <SimpleTypeEnforcementTypes>
            <Type>SystemManagement</Type>
            <Type>__UNLABELED__</Type>
            <Type>A-Bank</Type>
            <Type>A-Bank.SecurityUnderwriting</Type>
            <Type>A-Bank.MarketAnalysis</Type>
            <Type>B-Bank</Type>
            <Type>AutoCorp</Type>
        </SimpleTypeEnforcementTypes>
    </SimpleTypeEnforcement>

    <ChineseWall priority=”PrimaryPolicyComponent”>
        <ChineseWallTypes>
            <Type>SystemManagement</Type>
            <Type>__UNLABELED__</Type>
            <Type>A-Bank</Type>
            <Type>A-Bank.SecurityUnderwriting</Type>
            <Type>A-Bank.MarketAnalysis</Type>
            <Type>B-Bank</Type>
            <Type>AutoCorp</Type>
        </ChineseWallTypes>

        <ConflictSets>
            <Conflict name=”RER”>
                <Type>__UNLABELED__</Type>
                <Type>A-Bank</Type>
                <Type>B-Bank</Type>
            </Conflict>
            <Conflict name=”RER”>
                <Type>__UNLABELED__</Type>
                <Type>A-Bank.MarketAnalysis</Type>
                <Type>A-Bank.SecurityUnderwriting</Type>
            </Conflict>
      </ConflictSets>
    </ChineseWall>

    <SecurityLabelTemplate>
        <SubjectLabels bootstrap=”SystemManagement”>
            <VirtualMachineLabel>
                <Name>SystemManagement</Name>
                <SimpleTypeEnforcementTypes>
                    <Type>SystemManagement</Type>
                    <Type>__UNLABELED__</Type>
                    <Type>A-Bank</Type>
                    <Type>A-Bank.SecurityUnderwriting</Type>
                    <Type>A-Bank.MarketAnalysis</Type>
                    <Type>B-Bank</Type>
                    <Type>AutoCorp</Type>
                </SimpleTypeEnforcementTypes>
                <ChineseWallTypes>
                    <Type>SystemManagement</Type>
                </ChineseWallTypes>
            </VirtualMachineLabel>

            <VirtualMachineLabel>
                <Name>__UNLABELED__</Name>
                <SimpleTypeEnforcementTypes>
                    <Type>__UNLABELED__</Type>
                </SimpleTypeEnforcementTypes>
                <ChineseWallTypes>
                    <Type>__UNLABELED__</Type>
                </ChineseWallTypes>
            </VirtualMachineLabel>

            <VirtualMachineLabel>
                <Name>A-Bank</Name>
                <SimpleTypeEnforcementTypes>
                    <Type>A-Bank</Type>
                </SimpleTypeEnforcementTypes>
                <ChineseWallTypes>
                    <Type>A-Bank</Type>
                </ChineseWallTypes>
            </VirtualMachineLabel>

            <VirtualMachineLabel>
                <Name>A-Bank.SecurityUnderwriting</Name>
                <SimpleTypeEnforcementTypes>
                    <Type>A-Bank.SecurityUnderwriting</Type>
                </SimpleTypeEnforcementTypes>
                <ChineseWallTypes>
                    <Type>A-Bank</Type>
                    <Type>A-Bank.SecurityUnderwriting</Type>
                </ChineseWallTypes>
            </VirtualMachineLabel>

            <VirtualMachineLabel>
                <Name>A-Bank.MarketAnalysis</Name>
                <SimpleTypeEnforcementTypes>
                    <Type>A-Bank.MarketAnalysis</Type>
                </SimpleTypeEnforcementTypes>
                <ChineseWallTypes>
                    <Type>A-Bank</Type>
                    <Type>A-Bank.MarketAnalysis</Type>
                </ChineseWallTypes>
            </VirtualMachineLabel>

            <VirtualMachineLabel>
                <Name>B-Bank</Name>
                <SimpleTypeEnforcementTypes>
                    <Type>B-Bank</Type>
                </SimpleTypeEnforcementTypes>
                <ChineseWallTypes>
                    <Type>B-Bank</Type>
                </ChineseWallTypes>
            </VirtualMachineLabel>

            <VirtualMachineLabel>
                <Name>AutoCorp</Name>
                <SimpleTypeEnforcementTypes>
                    <Type>AutoCorp</Type>
                </SimpleTypeEnforcementTypes>
                <ChineseWallTypes>
                    <Type>AutoCorp</Type>
                </ChineseWallTypes>
            </VirtualMachineLabel>
        </SubjectLabels>

        <ObjectLabels>
            <ResourceLabel>
                <Name>SystemManagement</Name>
                <SimpleTypeEnforcementTypes>
                    <Type>SystemManagement</Type>
                </SimpleTypeEnforcementTypes>
            </ResourceLabel>

            <ResourceLabel>
                <Name>__UNLABELED__</Name>
                <SimpleTypeEnforcementTypes>
                    <Type>__UNLABELED__</Type>
                </SimpleTypeEnforcementTypes>
            </ResourceLabel>

            <ResourceLabel>
                <Name>A-Bank</Name>
                <SimpleTypeEnforcementTypes>
                    <Type>A-Bank</Type>
                </SimpleTypeEnforcementTypes>
            </ResourceLabel>

            <ResourceLabel>
                <Name>A-Bank.SecurityUnderwriting</Name>
                <SimpleTypeEnforcementTypes>
                    <Type>A-Bank.SecurityUnderwriting</Type>
                </SimpleTypeEnforcementTypes>
            </ResourceLabel>

            <ResourceLabel>
                <Name>A-Bank.MarketAnalysis</Name>
                <SimpleTypeEnforcementTypes>
                    <Type>A-Bank.MarketAnalysis</Type>
                </SimpleTypeEnforcementTypes>
            </ResourceLabel>

            <ResourceLabel>
                <Name>B-Bank</Name>
                <SimpleTypeEnforcementTypes>
                    <Type>B-Bank</Type>
                </SimpleTypeEnforcementTypes>
            </ResourceLabel>

            <ResourceLabel>
                <Name>AutoCorp</Name>
                <SimpleTypeEnforcementTypes>
                    <Type>AutoCorp</Type>
                </SimpleTypeEnforcementTypes>
            </ResourceLabel>
        </ObjectLabels>
    </SecurityLabelTemplate>
</SecurityPolicyDefinition>

下一步。关闭全部虚拟机,在命令行里运行下面命令,使刚才编辑的策略生效。

xm resetpolicy
xm setpolicy ACM mytest 

以下,给 domain1 和 domain2 分别设置 A -Bank 和 B -Bank 的标签:

xm addlabel A-Bank dom domain1.xm
xm addlabel B-Bank dom domain2.xm 

接着,给虚拟磁盘文件设置 A -Bank 和 B -Bank 的标签:

xm addlabel A-Bank res tap:aio:/root/vm1disk
xm addlabel B-Bank res tap:aio:/root/vm2disk

设置结果如图所看到的。

这样才干保证虚拟机 domain1 能訪问磁盘文件 vm1disk,虚拟机 domain1 能訪问磁盘文件 vm1disk,虚拟机才会创建成功,从而验证了 STE 策略。

Xen 安全架构 sHype/ACM 策略配置图文教程 

然后创建 domain1 虚拟机,保持 domain1 开启的同一时候,再启动 domain2 虚拟机:

xm create domain2.xm
xm create domain2.xm

这时我们会发现 domain2 虚拟机创建失败。例如以下图所看到的,提示 Error: Domain inconflict set with running domain? 

Xen 安全架构 sHype/ACM 策略配置图文教程 

这是因为在 ChineseWall 策略里,虚拟机 domain1 的标签为 A -Bank,虚拟机 domain2 的标签为 B -Bank,而 A -Bank 和 B -Bank 在同一个利益冲突类(Run-time Exclustion Rules)中,因此无法同一时候在同一个主机中执行。

第 3 章           遇到的错误与解决方式

1. 编译 tools 时失败,提示 check_Python_devel 函数检查失败。是个 bug

解决方式:改动 /xen/tools/check/check_python_devel 文件。去掉里面的验证

2. 编译 tools 时失败。提示 undefinedreference to symbol ‘timer_settime@@GLIBC_2.3.3

解决方式:依照 http://stackoverflow.com/questions/18286738/undefined-reference-to-symbol-timer-settimeglibc-2-3- 3 里的说明。将 /xen/tools/ioemu-remote/Makefile.target 里的 LIBS+=-lm 改动为 LIBS+=-lz -lrt –lm

3. 编译 tools 时失败,提示 xg_main.c:181:52:error: ‘ulong’ undeclared (first use in this

function)

解决方式:參照 http://lists.xen.org/archives/html/xen-devel/2012-12/msg00429.html

改动 /xen/tools/debugger/gdbsx/xg/xg_main.c。在文件开头增加 #include <sys/types.h>

4. 编译 tools 时失败,提示 ocamlfind:command not found

解决方式:apt-getinstall ocaml-findlib

5. 编译 tools 时失败,提示 Error:Unbound module Xenbus

解决方式:改动 /xen/tools/ocaml/xenstored/connection.ml 里的 Line:118,把那三行凝视掉。加入 let is_backend_mmap con =false

6. Ubuntu 怎样进行视频录制

解决方式:利用 kazam 进行视频录制。用法例如以下:

apt-get install kazam
apt-get install pulseaudio
pulseaudio // 打开 pulseaudioserver
kazam // 执行视频录制软件

第 4 章           參考资料

[1] List of Ubuntu releases. http://en.wikipedia.org/wiki/List_of_Ubuntu_releases#Table_of_versions

[2] Ubuntu12.04 安装 Xen4. http://www.linuxidc.com/Linux/2013-03/81303.htm

[3] XEND. http://wiki.xen.org/wiki/XEND

[4] Ubuntu 10.04(with grub2)安装 Xen 4.0.1. http://www.linuxidc.com/Linux/2011-07/39259.htm

[5] 怎么用 U 盘安装 Ubuntu. http://www.linuxidc.com/Linux/2014-10/108402.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-04/129857.htm

实验要求

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.git
cd 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 makedumpfile

1.3           Xen 源代码编译

1)在 Xen 4.0 以后,XSM 有 ACM 和 FLASK 两个模块,默认都不开启,须要选择当中一个。然后进行编译,其 Config.mk 文件内容例如以下:

XSM_ENABLE ?= n
FLASK_ENABLE ?= n
ACM_SECURITY ?= n

2)从 Xen 4.2 開始,FLASK 成为默认的 XSM 模块,当启用 XSM 时默认启用 FLASK,而 ACM 默认不启动。其 Config.mk 文件内容例如以下:

XSM_ENABLE ?= n
FLASK_ENABLE ?

= $(XSM_ENABLE)

因为本文採用的版本号是 Xen4.1,因此须要依照下面命令改动 Config.mk:

XSM_ENABLE ?= y
FLASK_ENABLE ?= n
ACM_SECURITY ?

= y

然后执行例如以下命令进行编译:

make dist 或 make xen tools stubdom
make install-xen
make install-toolsPYTHON_PREFIX_ARG="--install-layout=deb"
make install stubdom

1.4           改动 /etc/modules

改动 /etc/modules 文件,加入下面行:

xen-evtchn
xen-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:

// 首先启动 xencommons
service xencommons start
// 启动 xend 之前关闭网卡启动 xend 之后重新启动网卡(假设不这样做会提示出错。原因暂不详)ifconfig eth0 down
service xend start
ifconfig eth0 up

接着执行 xm list 命令。结果例如以下:

Xen 安全架构 sHype/ACM 策略配置图文教程

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=0
mkfs -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 的终端命令行,例如以下图所看到的。

Xen 安全架构 sHype/ACM 策略配置图文教程

接着类似地创建 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 

Xen 安全架构 sHype/ACM 策略配置图文教程

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-04/129857p2.htm

 

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计17254字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7992132
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装 2026 年最强个人助理 ClawdBot、完整安装教程 一、前言 学不完,根本学不完!近期,一款名...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

  300 元就能买到的 ” 小钢炮 ”?惠普 7L 四盘位小主机解析 最近...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装 2026 年最强个人助理 ClawdBot、完整安装教程 一、前言 学不完,根本学不完!近期,一款名...
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...