svirt 项目

「 sVirt 项目是一项社区工作,尝试集成强制访问控制 (MAC) 安全和基于 Linux 的虚拟化 (KVM)。」

「它构建于 SELinux 之上,提供一个基础架构来使管理员能够定义虚拟机隔离策略。
sVirt 可以开箱即用地确保一个虚拟机资源无法供任何其他进程(或虚拟机)访问,
这可由 sysadmin 扩展来定义细粒度的权限,例如将虚拟机分组到一起以共享资源。」

「 Svirt 确保一台虚机出现问题的虚拟机不会影响到主机操作系统。」

「 sVirt= SELinuxpolicy + libvirtdriver」

svirt-1

svirt-2

检测网络中的DHCP Server

DHCP 是 Dynamic Host Configuration Protocol(动态主机分配协议)缩写,它的前身是 BOOTP。DHCP 可以说是 BOOTP 的增强版本,它分为两个部份:一个是服务器端,而另一个是客户端。所有的 IP 网络设定数据都由 DHCP 服务器集中管理,并负责处理客户端的 DHCP 要求;而客户端则会使用从服务器分配下来的IP环境数据。
那么在网络测试环境中,可能存在着一些私用的DHCPServer,这样会影响到其他环境的运行,尤其是在同一个局域网内,那么侦测局域网内的dhcp server的存在,避免第三方的dhcp对实验的影响,我们可以模拟发现当前的dhcp server的运行。
一般当开启DHCP的时候,会使用mac地址的过滤,以防止对其他物理环境的影响。在dhcpd.conf文件中添加: deny unknown-clients;选项。

如果环境中开启了一些dhcp的server,怎么才能检测出环境中的dhcp的存在呢。我们要了解一些DHCP的知识。
DHCP简单的来说是BOOTP + Dynamic allocation of IP addresses。DHCP又比BOOTP多了一种租约的概念,有效且动态的分配客户端的 TCP/IP 设定。那么我们先了解一下BOOTP的协议。

bootp message

dhcp client请求的过程如下:

dhcp req

我们看一下DHCP的 discovery 和 offer的消息格式,我们可以组装我们的数据包。

http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol

组装数据包如下:

使用socket 将封装后的数据包发送出去。然后recv数据包进行数据包的分析。
我们可以分析后的数据看到:
DHCP Server : 192.168.8.xxx
Offered IP address : 192.168.8.1xx
Next Server : 192.168.9.1xx
subnet mask : 192.168.8.1