集成GNS3和VirtualBox
2013年9月9日
由于我来自开发背景而非系统管理,对第二层网络的了解不够深入,因此决定通过实践来提升。我一直对VLAN及其绕过技术感兴趣,认为这是一个不错的起点。
家中有两个小孩,在家庭办公室放置一堆物理路由器和交换机并不可行,因为它们通常很吵。于是我决定将所有设备虚拟化,这样既安静又便于快照和移植。在Twitter上征求建议时,得到两种观点:
- 应该可行,没有理由不行
- 不行,只能虚拟化路由器,GNS3处理交换不佳
事实证明这是可行的,而且设置相当简单。本文将介绍如何建立一个包含几台机器、单个交换机/路由器和几个子网的基础实验环境。这里不会涉及实际攻击,因为我还未进行任何攻击测试,这些将在后续理解网络运作、不同现实场景和最佳攻击方式后展开。
我不会详细教授GNS3、VirtualBox或Cisco/IOS的使用,但会提供足够截图,即使你只有基础知识也能跟上。
实验计划
下图展示我将设置的基础实验:
计划中,Unsec1和Unsec2是共享同一VLAN的两台机器,而Sec1是一台“安全”机器,位于其自己的VLAN中。VBox1是VirtualBox机器,将在不同VLAN间移动以进行各种攻击。
设置步骤
首先设置路由器。我使用3660型号和IOS镜像c3660-ik9o3s-mz.124-13b,其他镜像可能也可行,如果你没有此镜像,可以寻找其他可用版本。
要启用交换模块,右键点击路由器选择配置,在插槽中添加NM-16ESW到插槽1,其他镜像可能有不同名称,但寻找SW - switch即可。
接下来设置云连接以便连接到VirtualBox机器。进入其配置框,在NIO Ethernet选项卡中找到“VirtualBox Host-Only Network”。点击添加,它将出现在下方框中。保存后稍后会用到。
现在设置三台机器,每台都连接到Virtual PC Simulator控制台中的各自机器。以下是我连接的方式和设置的IP地址:
注意,Sec1故意放在不同子网,因为它最终将位于自己的VLAN中,因此有自己的地址范围。
| 机器 | 本地端口 | 远程端口 | 路由器接口 | IP地址 |
|---|---|---|---|---|
| Unsec1 | 30000 | 20000 | f1/0 | 192.168.1.1 |
| Unsec2 | 30001 | 20001 | f1/1 | 192.168.1.2 |
| Sec1 | 30002 | 20002 | f1/2 | 192.168.5.1 |
启动Virtual PC Simulator控制台,设置IP地址并测试连通性:
如预期,两个非安全机器可以互相ping通,但安全机器无法ping通它们。
现在添加VirtualBox机器。我新建了一个Debian稳定版机器,因为目前只期望进行基本网络操作。安装后添加了vlan包,以便需要时使用VLAN工具。然后将网络适配器改为仅主机模式,并连接到VirtualBox Host-Only Ethernet适配器。
启动机器并检查连通性…
默认情况下,Debian机器在eth0上使用DHCP,由于你在仅主机网络上,可能会获得192.168网络的IP,但需要更改它以与其他机器在同一子网。首先终止DHCP客户端,然后在192.168.1.0/24子网上设置静态IP。
|
|
我进一步修改了/etc/network/interfaces文件,自动分配此IP到eth0,这不是必须的,但使事情更简单,避免重启后忘记终止DHCP客户端导致网络中断。
现在我们在192.168.1.0/24网络上,应该可以ping通两个非安全机器,但不能ping通安全机器。
为了检查工作状态,并展示仅在同一交换机上使用不同子网不提供任何安全性,将IP改为192.168.5.0/24网络,检查是否可以ping通安全机器。
总结
我们现在有一个工作的GNS3和VirtualBox混合实验环境,网络已启动并运行,具有连通性。这是一个好的结束点,建议你进行快照并实验。
在第二部分[向GNS3/VirtualBox实验添加VLAN]中,我将介绍如何向实验添加VLAN并展示如何在它们之间移动。