GuestOS安装指南与基于xen的隐蔽通道配置Version0Revision128th,Apr,2010DraftContact:bareshift@gmail.
com(editor)qingnishen@ss.
pku.
edu.
cn(advisor)WorkInProgressThisdocumentisanintermediatedraftforcommentonlyandissubjecttochangewithoutnotice.
Readersshouldnotdesignproductsbasedonthisdocument.
TVGCONFIDENTIALCopyrightTVGinPekingUniversity2007-2017可信虚拟化课题组文档计划Version0Revision01DraftTVGCONFIDENTIALCopyright2008TrustedVirtualizationGroup,Incorporated.
DisclaimerTHISSPECIFICATIONISPROVIDED"ASIS"WITHNOWARRANTIESWHATSOEVER,INCLUDINGANYWARRANTYOFMERCHANTABILITY,NONINFRINGEMENT,FITNESSFORANYPARTICULARPURPOSE,ORANYWARRANTYOTHERWISEARISINGOUTOFANYPROPOSAL,SPECIFICATIONORSAMPLE.
Withoutlimitation,TCGdisclaimsallliability,includingliabilityforinfringementofanyproprietaryrights,relatingtouseofinformationinthisspecificationandtotheimplementationofthisspecification,andTCGdisclaimsallliabilityforcostofprocurementofsubstitutegoodsorservices,lostprofits,lossofuse,lossofdataoranyincidental,consequential,direct,indirect,orspecialdamages,whetherundercontract,tort,warrantyorotherwise,arisinginanywayoutofuseorrelianceuponthisspecificationoranyinformationherein.
Nolicense,expressorimplied,byestoppelsorotherwise,toanyTVGorTVGmemberintellectualpropertyrightsisgrantedherein.
ExceptthatalicenseisherebygrantedbyTVGtocopyandreproducethisspecificationforinternaluseonly.
ContacttheTrustedComputingGroupatwww.
trustedcomputinggroup.
orgforinformationonspecificationlicensingthroughmembershipagreements.
Anymarksandbrandscontainedhereinarethepropertyoftheirrespectiveowners.
可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftTVGCONFIDENTIALRevisionHistoryVersionCommentTableofContents可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftTVGCONFIDENTIAL1ScopeandAudience.
12准备环境.
22.
1RHEL的安装.
22.
2ftp的配置.
22.
3CentOS的准备32.
4网络环境的配置.
33GuestOS的安装.
53.
1磁盘映像文件的准备53.
2获知本地ip.
53.
3开始半虚拟安装.
53.
4复制GuestOS.
153.
5创建和陷入domU154隐蔽通道场景的建立.
174.
1本隐蔽通道原理.
17模块的加载17内存映射的建立.
17缓冲区的结构18虚拟设备的操作函数.
18写操作18读操作18同步.
19模块的卸载194.
2源程序的获取194.
3编译与装载.
204.
4写入和读取.
204.
5查看信息205存在的问题.
215.
1容易出现内核错误215.
2容易陷入假死状态216参考资料.
22可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage1of22TVGCONFIDENTIAL1ScopeandAudience本文档主要以centos为例介绍如何安装GuestOS,并介绍如何在虚拟环境下配置隐蔽通道场景.
如果在vmware中,GuestOS的速度太慢,建议在物理平台上搭建xen系统.
测试平台的配置如下:VMware7.
0.
0HardwarePlatformx86_32HostOSRHEL5.
4HostOSKernelVersion2.
6.
18GuestOSGccVersion4.
1.
2GuestOSCentOS5.
3可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage2of22TVGCONFIDENTIAL2准备环境2.
1RHEL的安装RHEL的安装文件可以从https://www.
redhat.
com/apps/download下载.
在vmware7.
0上安装RHEL时,不要选择从映像文件安装,那样vmware会屏蔽掉xen的安装,自动无人值守的安装完RHEL.
我们需要选择以后安装操作系统.
RHEL的安装过程中,在软件包选择期间选择virtualization.
这样就会安装xen系统.
另外需要自定义安装ftp服务,以供ftp运行.
2.
2ftp的配置在安装CentOS前,我们需要配置ftp服务器,因为半虚拟安装只能通过网络而无法通过本地数据.
首先修改/etc/passwd文件中ftp的登陆路径:#vi/etc/passwd可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage3of22TVGCONFIDENTIAL在服务管理中开启vsftpd:2.
3CentOS的准备CentOS可以由http://mirror.
centos.
org/centos/5/isos/i386/获得因为RHEL在xen环境下不支持vmwaretools,我们需要将CentOS由iso导入RHEL系统.
则CentOS的安装光盘会位于/media/centos5.
3xxx2.
4网络环境的配置由于我们是从ftp安装GuestOS,因此需要确保桥接脚本打开.
#cd/etc/xen#vixend-config.
sxp可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage4of22TVGCONFIDENTIAL可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage5of22TVGCONFIDENTIAL3GuestOS的安装3.
1磁盘映像文件的准备创建一个大小为4G的映像文件:3.
2获知本地ip记录下本机的ip地址,以供安装命令输入.
注意,不能使用127.
0.
0.
1,因为桥接后的domU地址必然与dom0不同.
3.
3开始半虚拟安装.
这里ftp地址请输入刚才记下的本地ip.
需要注意的是在vmware里在xen下安装GuestOS会非常慢,请耐心等待.
语言只能选择English:[root@linux~]#ddif=/dev/zeroof=/disk2/xen/centos5.
imgbs=1Mcount=4096[root@linux~]#chcon-txen_image_t/disk2/xen/centos5.
img[root@linux~]#ifconfig[root@linux~]#virt-install-ncentos5_virt-r256\>-f/disk2/xen/centos5.
img--nographics\>-lftp://192.
168.
x.
x/media/centos5.
3xxx#-n:后面接你的domain-U的名称,这个名称的配置文件会被主动建立在/etc/xen底下#-r:后面接要给这个domain-U的内存容量,目前至少需要256MB才能够执行#-f:后面接的就是要给domain-U的映像文件#--nographics:不使用图形界面来安装#-l:后面接安装服务器的来源.
安装服务器的写法为:#NFS时:nfs:主机的IP:可以安装的目录#WWW时:http://主机的IP/实际的/完整目录#FTP时:ftp://主机的IP/实际的完整目录可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage6of22TVGCONFIDENTIAL这里我们只需要ipv4,并且打开DHCP,有关ipv6的选项都可以不选:可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage7of22TVGCONFIDENTIAL警告信息,确认格式化:使用tab键进行切换,用enter确认.
用costomlayout自定义磁盘分割:新建两个分卷:可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage8of22TVGCONFIDENTIAL可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage9of22TVGCONFIDENTIAL确认:可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage10of22TVGCONFIDENTIAL选择grup作为bootloader:控制台的驱动设备,默认:可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage11of22TVGCONFIDENTIAL我们不需要grub密码,留空:Bootloader配置,默认:可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage12of22TVGCONFIDENTIAL把bootloader安装在MBR:网络配置中也可以去掉ipv6的支持.
其他选项默认:可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage13of22TVGCONFIDENTIAL时区任意选择,root密码需要设置:可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage14of22TVGCONFIDENTIAL安装包,不能选择gnome/KDE等图形界面.
另外这里需要进入自定义设置,安装源文件支持,gcc开发环境,vi:需要等待很久,重启后登陆:可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage15of22TVGCONFIDENTIAL我们暂且关闭这个domU,来复制映像文件创建第二个GuestOS.
3.
4复制GuestOS首先,复制映像文件.
然后,复制和修改配置文件.
修改其中的domU名称,uuid,映像文件路径,mac地址3.
5创建和陷入domU[root@linux~]#poweroff[root@linux~]#cd/etc/xen[root@linux~]#cpcentos-virtcentos2-virt[root@linux~]#vicentos2-virt[root@linux~]#cd/disk2/xen[root@linux~]#cpcentos.
imgcentos2.
img[root@linux~]#xmcreatecentos-virt[root@linux~]#xmcreatecentos2-virt可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage16of22TVGCONFIDENTIAL新开两个终端,分别陷入两个domU.
至此,两个GuestOS安装完毕.
[root@linux~]#xmconsolecentos-virt[root@linux~]#xmconsolecentos2-virt可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage17of22TVGCONFIDENTIAL4隐蔽通道场景的建立4.
1本隐蔽通道原理Xen原谅GuestOS对内存分配/虚拟物理内存表:MachineFrameNumbertoPseudo-physicalFrameNumbertable-的越界访问,所以任何GuestOS都可以对mfn2pfn表进行修改.
流程图如下:模块的加载虚拟驱动的挂载通过staticintxencc_init(void)函数实现,用misc_register(&xencc_dev)注册杂项设备,调用init_ring_buffer()进行缓冲区初始化工作.
内存映射的建立下面程序要建立虚拟内存和物理内存的对应关系.
这通过allocate_mfn()函数实现:函数首先用alloc_pages()给程序分配一定的内存页,然后通过page_to_pfn(pt)获得页的虚拟内存地址pfn,再通过pfn_to_mfn(pfn)获得内存的物理地址mfn.
由此获得pfn和mfn的对应关系.
可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage18of22TVGCONFIDENTIAL缓冲区的结构缓冲通过mmu_update_t结构实现,内容包括:标记,同步,数据大小标记,剩余数据大小标记和数据区.
初始化部分如下:if(igetxencc1.
tarftp>quit[root@linux~]#tar-xvfxencc1.
tarftp>getxencc2.
tarftp>quit[root@linux~]#tar-xvfxencc2.
tar可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage20of22TVGCONFIDENTIAL4.
3编译与装载由于程序很不稳定,经常出现内核pte错误,这时可通过ctrl+c回到shell.
双方执行以下操作:4.
4写入和读取在第一个GuestOS执行echo操作并流入虚拟驱动设备:在第二个GuestOS执行cat操作从虚拟驱动设备读取信息并流入文件:4.
5查看信息至此,我们可以查看由隐蔽通道接收的信息:[root@linux~]#make[root@linux~]#insmodxencc.
ko[root@linux~]#echo(yourmessage)>/dev/xencc[root@linux~]#cat/dev/xencc>test[root@linux~]#vitest可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage21of22TVGCONFIDENTIAL5存在的问题5.
1容易出现内核错误类似错误会经常出现,需要ctrl+c回到shell:5.
2容易陷入假死状态当读者没有读取数据时,写者程序会一直占用cpu并屏蔽中断.
可改进pfn_tag_find,加入最大等待次数解决此问题.
可信虚拟化课题组文档计划TVGCopyrightVersion0Revision01DraftPage22of22TVGCONFIDENTIAL6参考资料1>鸟哥.
利用Xen設計虛擬機器http://linux.
vbird.
org/linux_enterprise/xen.
php#other_inst_virt2>MickalSalaün.
PracticaloverviewofaXencovertchannel
HostHatch在当地时间7月30日发布了一系列的促销套餐,涉及亚洲和欧美的多个地区机房,最低年付15美元起,一次买2年还能免费升级双倍资源。商家成立于2011年,提供基于KVM架构的VPS主机,数据中心包括中国香港、美国、英国、荷兰、印度、挪威、澳大利亚等国家的十几个地区机房。官方网站:https://hosthatch.com/NVMe VPS(香港/悉尼)1 CPU core (12.5%...
HostKvm商家我们也不用多介绍,这个服务商来自国内某商家,旗下也有多个品牌的,每次看到推送信息都是几个服务商品牌一起推送的。当然商家还是比较稳定的,商家品牌比较多,这也是国内商家一贯的做法,这样广撒网。这次看到黑五优惠活动发布了,针对其主打的香港云服务器提供终身6折的优惠,其余机房服务器依然是8折,另还有充值50美元赠送5美元的优惠活动,有需要的可以看看。HostKvm是一个创建于2013年的...
优惠码50SSDOFF 首月5折50WHTSSD 年付5折15OFF 85折优惠,可循环使用荷兰VPSCPU内存SSD带宽IPv4价格购买1核1G50G1Gbps/3TB1个$ 9.10/月链接2核2G80G1Gbps/5TB1个$ 12.70/月链接2核3G100G1Gbps/7TB1个$ 16.30/月链接3核4G150G1Gbps/10TB1个$ 18.10/月链接阿联酋VPSCPU内存SS...
怎样设置虚拟内存为你推荐
美国免费主机有没有更好的免费主机,虚拟主机购买虚拟主机需要购买吗?我想自己做个网站,只买了域名了,请问还需要怎么做呢?linux主机Linux主机 VS. Windows主机,您选择哪一个?ip代理地址代理ip地址是怎么来的?免费vps服务器有没有便宜的vps,最好是免费的域名购买为什么要购买域名,域名是干嘛用的?1g虚拟主机我要做一个下载资料类网站,刚买了一个虚拟主机1G的,提供商说一次,只能上传一个小于10M的文件大连虚拟主机大连横展网络科技有限公司怎么样?长沙虚拟主机长沙双线虚拟主机湖南稳定双线虚拟主机湖南双线主机租用推荐一个?双线虚拟主机G型双线虚拟主机是什么意思
directspace bluevm 服务器架设 网络空间租赁 php空间购买 搜索引擎提交入口 云服务器比较 lamp架构 购买空间 privatetracker godaddyssl 海外加速 月付空间 apachetomcat 中国域名根服务器 g6950 neobux 瓦工工具 ddos攻击小组 kosskeb79 更多