[原创]利用virtualbox搭建简单的Iptables虚拟局域网测试环境

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
mhye
帖子: 8
注册时间: 2007-04-30 23:57

[原创]利用virtualbox搭建简单的Iptables虚拟局域网测试环境

#1

帖子 mhye » 2007-08-09 22:27

按,最近学习iptables,在网络上找了半天也没知道合适的虚拟机下的测试环境,不知道是不是自己搜索能力差,最近参考论坛Virtualbox自己搭搭建了一个,分享到论坛上,希望大家指正。
网络环境描述
ADSL路由器 wan pppoe拨号,LAN 192.168.1.1/24
自己的PC OS ubuntu 7.04 eth0 192.168.1.101 tap0 192.168.0.1/24(创建的虚拟适配器,后面介绍)
虚拟机(guest) windows xp sp2 适配器:ip 192.168.0.13 mask 255.255.255.0 默认网关 192.168.0.1(也就是tap0)

互联网--ADSL路由器--Ubuntu主机--虚拟机

需要准备的软件 :
Virtualbox 1.4.0,windows XP, User Mode Linux utilities package (uml-utilities)
设置步骤
Virtualbox下的xp安装可以参考论坛上的虚拟机专区的帖子,不做详细介绍。
步骤1、uml-utilities的安装设置。
a 安装uml-utilities
sudo apt-get install uml-utilities
b 添加虚拟网卡
编辑配置文件
sudo gedit /etc/network/interfaces
在文中添加
auto tap0
iface tap0 inet static
address 192.168.0.1
netmask 255.255.255.0
tunctl_user username
说明:此处添加的是静态ip地址,你可以根据自己的需要设置。username是指可以启动tunctl的用户,当然是填自己的用户名了。
c 配置/etc/default/uml-utilities文件使uml_switch连接到此接口。
也就是在此配置文件中添加
UML_SWITCH_OPTIONS="-tap tap0"行。
d 启动 tap0接口:
sudo /sbin/ifup tap0
e 重新启动uml守护进程:
sudo /etc/init.d/uml-utilities restart
现在可以测试一下tap0接口是否可用了,ping 192.168.0.1试试,如果不行的话重新启动计算机看看行不行。至此虚拟网卡配置完成。
步骤2:虚拟机设置
虚拟机的安装及设置就不详细介绍了,这里仅说明网络设置。
在确保客户机没有启动的情况下,选中需要设置的虚拟机,选择设置启动设置界面
在网络选项下的各项设置如下:
A:选项 设置
启用网络适配器 选中
连接到 host interface
mac地址 随机生成的
主机网络界面名称 tap0(此处应该是主机网络接口名称,没见过英文版,应该是host interface name,想必是翻译错误)

设置完以后启动客户机,自xp里面设置客户机的网络适配器。按照前面介绍的
ip 192.168.0.13(自己的ip地址)
掩码 255.255.255.0
默认网关 gateway 192.168.0.1
dns 你的dns服务器地址。
设置完客户机以后,可以在客户机上测试一下能不能访问主机的虚拟适配器
ping 192.168.0.1
也可以在主机上测试能否访问虚拟机
ping 192.168.0.13
步骤3 进行路由相关设置
在主机上开启路由转发
sudo -i
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -p FORWARD ACCEPT
此处使用sudo -i是因为重定向的时候sudo没有办法操作当前用户没有权限操作的文件,不知道有什么办法可以避免使用sudo -i
最后在你的路由器上设置静态路由,将192.168.0.1/255.255.255.0的路由指向你的客户机。因为各人的ADSL路由器各不相同,操作方法可能大相径庭,我只能以我的tp-link 402r为例,想必道理都是一样的。
登录路由器web界面,选中左侧的路由功能,静态路由表,在右边设置如下
ID 目的IP地址 子网掩码 网关 启用
192.168.0.0 255.255.255.0 192.168.1.101 选中
进行上述设置以后可以看看自己的虚拟机能不能访问互联网。

注 在virtualbox的帮助里有介绍如何建立桥接网络,大家可以参考一下。
关于uml-untiles我不是很了解,大家可以参考下面的帮助文件.
/usr/share/doc/uml-utilities/README.Debian
回复