我想设置 Ubuntu 客户机的 VirtualBox 实例来创建 VPN 测试网络。主机是 Windows 7 Ultimate。
我希望设置一个 VirtualBox 实例,作为测试网络的网关。可以根据需要向此网络添加其他节点。
抛开 VPN 配置不谈,我关心的是此测试所需的虚拟网络配置。
1) 我需要做什么才能让它工作?仅主机网络?
2)如何创建一个实例以成为网关?这篇文章没有阐明这一点
3) 为此至少需要多少个实例?
4)为了创建网关节点和网关后面的其他节点,我需要运行(或添加到配置中)什么命令ifconfig
?route
答案1
我做过类似的设置。让我先澄清一下,我的 VPN 从 VM1 开始,经过 VM2(充当网关)最后到达 VM3——主机没有参与。如果这不是你想要的,就不要再往下读了。
如果你还在听我讲,我将按照稍微不同的顺序回答你的问题:
3) 您至少需要 3 个实例。如果您想测试访问模拟 LAN 内的其他系统(例如,在“公路战士”或其他需要访问远程网络内多个服务的远程办公环境中测试 VPN),则需要 4 个实例。
1) 使用“私有网络”。设置两个命名网络,例如“LAN”和“Internet”。您的网关 VM 将需要两个接口,每个网络各一个;您的“外部”VM 将需要“Internet”网络上的单个接口,而您的“内部”VM 将需要“LAN”网络上的单个接口。
2) 将虚拟机设为网关不是 VirtualBox 的功能。我仍然希望他们最终能提供内置方法,以不同方式连接不同的网络,但在此之前,您需要自己完成这部分工作。使用 Ubuntu VM 很容易有几十种方法可以做到这一点;我首选的方法是使用 Shorewall,您需要在 Aptitude 的 shorewall-doc 包中包含双接口示例配置(也在其网站上):(apt-get install shorewall-perl shorewall-doc
现在可能只是 shorewall,而不是 shorewall-perl,因为旧的 shorewall-shell 现在已经不存在了;无论哪种方式,您仍然需要 shorewall-doc)。如果您在设置方面有疑问,请 Google(您正在将 Linux 机器设为路由器/防火墙)或单独提问,因为范围远远超出了此处子问题的范围。
答案2
我最近做了类似的事情,使用 VirtualBox 机器作为网关,虽然我的网关设备运行的是 m0n0wall,它作为内部 DHCP 服务器并被用作强制门户,但我建议您使用它。
(看一下我的问题看看是否有帮助)
在我的主机上,我有 4 个 VMS、3 个客户端和一个网关设备。网关设备运行 m0n0wall(一个基于 BSD 的发行版),并配置了两个网卡,一个设置为桥接适配器(这将连接到互联网),另一个将用于内部连接。三个来宾客户端也将连接到内部网络,并且 m0n0wall VM 将配置为 DHCP 服务器和网关,因此所有流量都通过 m0n0wall VM。
在我下面这张(相当差劲的)图片中,绿色框是主机,黑色框是客户 VMS,红色是内部网络连接,绿色是与外界桥接的电缆。monowall VM 必须进行端口转发,并且可能立即支持 VPN,尽管我还没有研究过这部分。
答案3
基本信息
几天前我在家里创建了一个实验室。我使用了 VMware Workstation,但它也应该适用于 virtualbox:
首先,我将属于我的实验室的所有虚拟机设置为“仅主机网络”(甚至是网关,但我只用几句话就可以说清楚......)。
您需要一个虚拟机作为网关。为此,我使用了 Debian 6。首先,我将其设置为仅主机网络。自动添加的 NIC 将成为属于实验室的虚拟机的内部接口。然后,我添加了一个桥接到我的物理 NIC 的附加 NIC(这将是“外部”NIC)。我为网关的内部 NIC 配置了静态 IP,并配置了 lab-DHCP(在 Windows 2008 R2 服务器上运行)以告知其客户端我的网关的内部 IP,以将其用作默认网关。我的外部 NIC 需要我的 LAN 的 IP 才能与我的常规网关和互联网通信(此外部 NIC 需要将您的常规局域网网关 IP 配置为默认网关,因为这是您的局域网网关)。
为了使您的实验室网关作为网关工作,必须激活路由:
echo 1 > /proc/sys/net/ipv4/ip_forward
然后你必须添加你想要的服务,比如你的 VPN 服务(我的网关也运行 DNS)。你必须配置你的服务和 iptables/防火墙(基本 NAT、接受 VPN 请求的规则等)。
在该环境下,您可以使用本地网络模拟 WAN。在 windows 主机上设置 VPN 客户端,然后尝试连接到 lab-gateway 的“external-ip”(即 regular-lan-ip)。
编辑:配置 linux-gateway
我假设,您所需的网关虚拟机已安装为仅主机网络虚拟机,并且有一个额外的 NIC 桥接到您的物理 NIC。我使用了 debian,但它应该可以与 ubuntu 一起使用。我不知道 zeroconf 是否会干扰手动配置。我认为 ubuntu 服务器对手动网络配置更友好。如果您在使用 ubuntu 时遇到问题,请尝试使用 debian。
首先,您必须确保您的网关具有静态内部 IP。您可以在 /etc/network/interfaces 中配置它。这是我的示例配置:
root@lab-fw01:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
#external interface
auto eth0
iface eth0 inet static
address 192.168.69.2
network 192.168.69.0
netmask 255.255.255.0
gateway 192.168.69.1
#internal interface
auto eth1
iface eth1 inet static
address 10.0.0.1
network 10.0.0.0
netmask 255.255.255.0
在我的环境中,实验室网关位于 10.0.0.1。这意味着,您必须将客户端的默认网关配置为 10.0.0.1(可能通过 DHCP)。
由于网络流量发往外部 IP 子网,因此 Internet 流量将转发到我的实验室网关外部接口(192.168.69.1)的网关。
要让您的防火墙转发客户端的流量,您必须启用 ipv4 转发:
echo 1 > /proc/sys/net/ipv4/ip_forward
下一步是配置 iptables。因为解释如何配置 iptables 会占用太多篇幅,所以我将引导您良好的基础iptables 教程。
但是,iptables 的基本配置可能是:
- 伪装所有传出的流量
- 将已建立和相关的流量转发到您的内部网络
- 转发传出流量
- 允许 ssh 的 INPUT 流量
这就是运行网关所需要做的全部工作。如果您已准备好并且测试正常,则可以开始安装 VPN 服务器并对其进行配置。请记住将 VPN 规则添加到 iptables 以允许 VPN 流量。