GNS3与VirtualBox集成:构建虚拟网络实验环境

本文详细介绍了如何将GNS3与VirtualBox集成,构建包含多个子网和VLAN的虚拟网络实验环境。通过配置路由器和交换机模块,实现不同子网间的连通性测试,为后续网络攻防实验打下基础。

集成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。

1
2
killall dhclient
ifconfig eth0 192.168.1.100

我进一步修改了/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并展示如何在它们之间移动。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计