參考: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.內核支持
[root@cqhdtest ~]# 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=auto KEYBOARDTYPE=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
wget http://libvirt.org/sources/libvirt-2.5.0.tar.xz
tar xf libvirt-2.5.0.tar.xz
cd libvirt-2.5.0
./configure --help
./configure --prefix=/usr/local/libvirt
make && make install
libvirt的安裝很簡單,主要是configure 會提示缺少很多庫,此時可以 yum list all |grep "lib_keyword" 查看庫的關鍵字,查找對應的庫安裝即可,yum裏面是我的系統缺少的,總結出來以供參考。