集成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到slot 1(其他镜像可能名称不同,但需寻找SW-交换机标识)。
接下来设置云连接以便接入VirtualBox虚拟机。进入配置框,在NIO Ethernet选项卡中找到"VirtualBox Host-Only Network",点击添加后保存,后续会使用此配置。
现在配置三台机器,使每台都连接到Virtual PC Simulator控制台中的对应设备。以下是我的连接方式和IP设置:
| 机器 | 本地端口 | 远程端口 | 路由器接口 | 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工具。然后将网络适配器改为Host Only模式,并连接到VirtualBox Host-Only以太网适配器。
启动系统并检查连通性…
默认情况下,Debian在eth0使用DHCP,由于处于Host Only网络,可能会获得192.168网段的IP,但需要修改为与其他机器相同子网。首先终止DHCP客户端,然后在192.168.1.0/24子网设置静态IP。
|
|
我进一步修改了/etc/network/interfaces文件,自动为eth0分配此IP。这不是必须的,但能简化操作,避免重启后忘记终止DHCP客户端导致网络中断。
现在处于192.168.1.0/24网络,应该能ping通两个非安全机器,但无法ping通安全机器。
为验证配置并说明同一交换机上使用不同子网不提供安全性,将IP改为192.168.5.0/24网络,检查是否能ping通安全机器。
总结
现在我们已经成功搭建了混合GNS3和VirtualBox的工作实验环境,网络正常运行且具备连通性。建议此时对实验环境创建快照并进行探索。
在第二部分《为GNS3/VirtualBox实验环境添加VLAN》中,我将介绍如何添加VLAN并演示在它们之间的移动方法。