65rew111 发表于 2016-12-29 15:01:30

kvm tboot和libvirt的安装

                      参考:http://www.ibm.com/developerworks/cn/aix/systemmaga/8/New_Way_Secure_Cloud/index.html(tboot)
        https://en.wikipedia.org/wiki/Trusted_Execution_Technology(txt技术)
tboot简介:
        为什么会使用到这种技术请参考第一个链接。
        tboot全称trusted boot翻译过来就是可信的引导,它是基于txt(trusted Excution Technology)技术对要启动的宿主系统进行可信的检测,具体的技术实现细节参考以上两个链接。既然要对系统启动进行检测,那么显然,tboot要在内核启动之前启动,因为我这里的系统是借助于grub引导,所以我的实验是修改grub.conf从而更换启动顺序,如果有用其他程序引导的,请根据实际情况修改。
        txt技术需要硬件支持,而且依赖于vt和vt-d技术,所以开启功能时也需要开启这两个,还有一个是tpm(trusted platform module可信平台模块),这个用来保存软件的指纹信息,每次软件启动时都会检测并对比这些指纹信息是否一致,从而判断是否存在风险。
       
tboot的安装使用:
        1.开启txt技术的功能
                bios选项位于:Advanced-->Processor Configuration-->Intel(R) TXT
                vt和vt-d:Advanced-->Processor Configuration--> Intel(R) Virtualization Technology 和 Intel(R)VT for Direct I/O
                tpm:Security -->TPM administartive Control
        2.内核支持
                # grep -i -E "txt|tcg|iommu|virtual|tpm"/boot/config-2.6.32-431.el6.x86_64 查看
                CONFIG_HAVE_INTEL_TXT=y
                CONFIG_GART_IOMMU=y
                CONFIG_CALGARY_IOMMU=y
                # CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT is not set
                CONFIG_AMD_IOMMU=y
                CONFIG_AMD_IOMMU_STATS=y
                CONFIG_IOMMU_HELPER=y
                CONFIG_IOMMU_API=y
                CONFIG_TCG_TPM=y
                CONFIG_TCG_TIS=y
                CONFIG_TCG_NSC=m
                CONFIG_TCG_ATMEL=m
                CONFIG_TCG_INFINEON=m
                # CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
                CONFIG_FB_VIRTUAL=m
                # CONFIG_DEBUG_VIRTUAL is not set
                # CONFIG_IOMMU_DEBUG is not set
                # CONFIG_IOMMU_STRESS is not set
                ONFIG_INTEL_TXT=y
                CONFIG_VIRTUALIZATION=y
                CONFIG_TCG_TPM=y
        3.安装tboot
                yum install tboot -y
        4.修改grub.conf
                default=0
                timeout=5
                splashimage=(hd0,0)/grub/splash.xpm.gz
                hiddenmenu
                title CentOS (2.6.32-431.el6.x86_64)
                        root (hd0,0)
                        kernel/tboot.gz logging=vga,serial,memory
                        module /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=c492ad38-5c04-46e2-bddb-7b05428e16fa rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=autoKEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
                        module /initramfs-2.6.32-431.el6.x86_64.img
                        module /WSM_SINIT_100407_rel.bin
        这里grub引导程序首先加载tboot.gz,而元贝的kernel和initrd都改为以模块方式启动,WSM_SINIT_100407_rel.bin是当前系统的SINIT AC模块,需要到硬件供应商那去索取,也可以选择不要这个模块的功能,不进行加载
        5.获取可信平台的所有权
                modprobe tpm_infineon #这个是tpm的硬件驱动,有的是tpm_tis等
                tcsd #启动tpm守护进程
        6.查看txt执行状态
                txt_stat部分结果如下:
                ***********************************************************
                        TXT measured launch: TRUE
                        secrets flag set: TRUE
                ***********************************************************
               
libvirt简介:参考:http://libvirt.org/
        假设这么一种场景:我们不懂英语,而又想跟美国人做交易,那么我们有什么方法解决呢?一种是我们自学英语,这无疑是比较浪费时间的;而另一种就是请个翻译过来,这个就快捷多了。
        libvirt的角色就是类似于上述场景的翻译,上层用户空间直接和hypervisor打交道会比较复杂,而libvirt则是屏蔽了底层hypervisor的细节,为上层管理工具提供了一个统一的,较稳定的接口(api)。而且这个libvirt还是上述场景中精通多种语言的翻译,支持多种虚拟化方案,比如kvm、xen、LXC等等。
       
        libvirt的几个重要概念如下:
                节点(node):其实就是一个物理机器,上面可能运行多个虚拟机
                hypervisor:也称vmm,就是kvm,xen等实现虚拟化的软件
                domain:就是一个虚拟机,也称为instance(实例)
               
libvirt的安装:
        yum install libyajl yajl-devel libxml* device-mapper* libpciaccess-devel libnl-devel -y
       wgethttp://libvirt.org/sources/libvirt-2.5.0.tar.xz
       tar xf libvirt-2.5.0.tar.xz
       cdlibvirt-2.5.0
       ./configure --help
       ./configure--prefix=/usr/local/libvirt
        make && make install
       
        libvirt的安装很简单,主要是configure 会提示缺少很多库,此时可以 yumlist all |grep"lib_keyword" 查看库的关键字,查找对应的库安装即可,yum里面是我的系统缺少的,总结出来以供参考。

                   

页: [1]
查看完整版本: kvm tboot和libvirt的安装