VirtualBox: VPN-Netzwerktestumgebung

7

Ich möchte VirtualBox-Instanzen von Ubuntu-Gast einrichten, um ein VPN-Testnetzwerk zu erstellen. Der Host ist Windows 7 Ultimate.

Ich hoffe, eine VirtualBox-Instanz einzurichten, die ein Gateway für das Testnetzwerk darstellt. Bei Bedarf können diesem Netzwerk zusätzliche Knoten hinzugefügt werden.

Abgesehen von der VPN-Konfiguration befasse ich mich mit der erforderlichen virtuellen Netzwerkkonfiguration, die für diesen Test erforderlich ist.

1) Was würde ich brauchen, damit das funktioniert? Nur-Host-Netzwerk?

2) Wie mache ich eine Instanz, um ein Gateway zu werden? Dieser Beitrag erläutert diesen Punkt nicht

3) Wie viele Instanzen sind dafür mindestens erforderlich?

4) Was ifconfigund routeBefehle muss ich ausführen (oder zur Konfiguration hinzufügen), um einen Gateway-Knoten und andere Knoten hinter dem Gateway zu erstellen?

Lurscher
quelle

Antworten:

4

Ich habe ein ähnliches Setup durchgeführt. Lassen Sie mich gleich klarstellen, dass mein VPN von VM1 über VM2 (als Gateway) auf VM3 endete - der Host war nicht beteiligt. Wenn Sie nicht danach suchen, hören Sie hier auf zu lesen.

Wenn Sie noch bei mir sind, beantworte ich Ihre Fragen in einer etwas anderen Reihenfolge:

3) Sie benötigen mindestens 3 Instanzen. 4 Wenn Sie den Zugriff auf zusätzliche Systeme in Ihrem simulierten LAN testen möchten (z. B. zum Testen des VPN in einem "Road Warrior" oder einer anderen Telearbeitsumgebung, in der Sie auf mehrere Dienste im Remote-Netzwerk zugreifen müssen).

1) Verwenden Sie "Private Networking". Richten Sie zwei benannte Netzwerke ein, z. B. "LAN" und "Internet". Ihre Gateway-VM benötigt zwei Schnittstellen, eine in jedem dieser Netzwerke. Ihre "externen" VMs benötigen eine einzige Schnittstelle im "Internet" -Netzwerk, während Ihre "inneren" VMs eine einzige Schnittstelle im "LAN" -Netzwerk benötigen.

2) Eine VM zu einem Gateway zu machen, ist keine Funktion von VirtualBox. Ich hoffe weiterhin, dass sie irgendwann ein integriertes Mittel bieten, um verschiedene Netzwerke auf unterschiedliche Weise zu verbinden, aber bis dahin müssen Sie diesen Teil selbst erledigen. Es gibt leicht Dutzende von Möglichkeiten, dies mit einer Ubuntu-VM zu tun. Meine bevorzugte Methode ist Shorewall, für die die Beispielkonfiguration mit zwei Schnittstellen im Paket shorewall-doc in Aptitude (ebenfalls auf der Website) enthalten sein soll: apt-get install shorewall-perl shorewall-doc(Möglicherweise handelt es sich jetzt nur um Shorewall, nicht um Shorewall-Perl, wie die alte shorewall-shell ist jetzt tot und weg (so oder so willst du immer noch shorewall-doc). Wenn Sie Fragen dazu haben, richten Sie Google ein (Sie machen eine Linux-Box zu einem Router / einer Firewall) oder fragen Sie separat, da der Umfang weit über das hinausgeht, was für eine Unterfrage hier angemessen ist.

Kromey
quelle
2

Ich habe kürzlich etwas Ähnliches getan und eine VirtualBox-Maschine als Gateway verwendet, obwohl auf meinem Gateway-Gerät m0n0wall ausgeführt wurde, das als interner DHCP-Server dient und als Captive-Portal verwendet wurde. Ich empfehle Ihnen, dies zu verwenden.

(Schauen Sie sich meine Frage an, um zu sehen, ob das hilft.)

Auf meinem Host-Computer hatte ich 4 VMS, drei Client- und ein Gateway-Gerät. Auf dem Gateway-Gerät wurde m0n0wall ausgeführt, eine BSD-basierte Distribution, und es wurden zwei Netzwerkkarten konfiguriert, von denen eine als überbrückter Adapter (und dieser würde ins Internet gehen) und die andere eine interne Verbindung war. Die drei Gastclients würden auch mit dem internen Netzwerk verbunden, und die m0n0wall-VM würde als DHCP-Server und Gateway konfiguriert, sodass der gesamte Datenverkehr über die m0n0wall-VM geleitet würde.

In meinem (eher schlechten) Bild unten ist die grüne Box der Host-Computer, die schwarzen Boxen das Gast-VMS, die rote die interne Netzwerkverbindung und die grüne das überbrückte Kabel zur Außenwelt. Die Monowall-VM muss die Portweiterleitung durchführen und hat möglicherweise sofort VPN-Unterstützung, obwohl ich diesen Teil nicht untersucht habe. Geben Sie hier die Bildbeschreibung ein

tombull89
quelle
Vielen Dank. Welche Konfigurationen mussten Sie vornehmen, damit VM <N> und VMG VMG als Gateway des Netzwerks anerkennen? Ich nehme an, Sie haben einige ifconfigund routeBefehle gemacht, aber ich werde es
begrüßen,
Als m0n0wall auf der VMG installiert wurde, wurde ein DHCP-Server aktiviert, der die IP der VM <N> (im internen Netzwerk) spielt und ihr Gateway auf die IP der VMG-Box setzt. Auf dem Gast-Client-Computer wurden keine Arbeiten ausgeführt.
Tombull89
2

Grundinformation

Ich habe vor ein paar Tagen zu Hause ein Labor eingerichtet. Ich habe VMware Workstation verwendet, aber es sollte auch mit virtualbox funktionieren:

Zuerst habe ich alle VMs, die zu meinem Labor gehören, als "Nur-Host-Netzwerk" eingerichtet (sogar das Gateway, aber ich komme in wenigen Worten darauf zurück ...).

Sie benötigen eine VM als Gateway. Zu diesem Zweck habe ich ein Debian 6 verwendet. Zuerst habe ich es als Host-only-Netzwerk eingerichtet. Die automatisch hinzugefügte Netzwerkkarte ist die interne Schnittstelle für Ihre VMs, die zum Labor gehören. Dann habe ich eine zusätzliche Netzwerkkarte hinzugefügt, die mit meiner physischen Netzwerkkarte verbunden ist (dies ist die "externe" Netzwerkkarte). Ich habe statische IP-Adressen für die interne Netzwerkkarte meines Gateways konfiguriert und das Labor-DHCP (das auf einem Windows 2008 R2-Server ausgeführt wird) so konfiguriert, dass seine Clients die interne IP-Adresse meines Gateways als Standard-Gateway verwenden. Meine externe Netzwerkkarte benötigt eine IP meines LAN, um mit meinem regulären Gateway und dem Internet zu kommunizieren (für diese externe Netzwerkkarte muss Ihre reguläre LAN-Gateway-IP als Standard-Gateway konfiguriert sein, da dies Ihr LAN-Gateway ist).

Damit Ihr Lab-Gateway als Gateway funktioniert, muss das Routing aktiviert werden:

echo 1 > /proc/sys/net/ipv4/ip_forward

Dann müssen Sie Ihre gewünschten Dienste wie Ihren VPN-Dienst hinzufügen (auf meinem Gateway wird auch DNS ausgeführt). Sie müssen Ihre Dienste und iptables / Firewall konfigurieren (grundlegendes NAT, Regeln zum Akzeptieren von VPN-Anforderungen usw.).

In dieser Umgebung können Sie Ihr lokales Netzwerk verwenden, um WAN zu simulieren. Richten Sie einen VPN-Client auf Ihrem Windows-Host ein und versuchen Sie, eine Verbindung zur "externen IP" (der regulären LAN-IP) Ihres Lab-Gateways herzustellen.

Bearbeiten: Konfigurieren Sie ein Linux-Gateway

Ich gehe davon aus, dass Ihre gewünschte Gateway-VM als Host-Only-Networking-VM installiert wurde und eine zusätzliche Netzwerkkarte mit Ihrer physischen Netzwerkkarte verbunden wurde. Ich habe Debian verwendet, aber es sollte mit Ubuntu funktionieren. Ich weiß nicht, ob zeroconf manuelle Konfigurationen stört. Ich denke, Ubuntu Server wird für manuelle Netzwerkkonfigurationen freundlicher sein. Wenn Sie Probleme mit Ubuntu haben, versuchen Sie es mit Debian.

Zunächst müssen Sie sicherstellen, dass Ihr Gateway über eine statische interne IP verfügt. Sie konfigurieren dies in / etc / network / interfaces. Hier ist meine Beispielkonfiguration:

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

In meiner Umgebung befindet sich das Lab-Gateway unter 10.0.0.1. Das heißt, Sie müssen das Standard-Gateway Ihrer Clients auf 10.0.0.1 konfigurieren (möglicherweise über DHCP).
Der Internetverkehr wird an das Gateway meiner externen Schnittstelle für Lab-Gateways (192.168.69.1) weitergeleitet, da der Netzwerkverkehr für ein externes IP-Subnetz bestimmt ist.
Um Ihren Firewall-Weiterleitungsverkehr für Ihre Clients zu erhalten, müssen Sie die IPv4-Weiterleitung aktivieren:

echo 1 > /proc/sys/net/ipv4/ip_forward

Ihr nächster Schritt ist die Konfiguration von iptables. Da das Erklären der Konfiguration von iptables meine Antwort überdimensionieren würde, führe ich Sie nur zu einem guten grundlegenden Tutorial für iptables.

Grundkonfigurationen für iptables können jedoch sein:

  • MASQUERADE all deinen ausgehenden Verkehr
  • Weiterleitung des etablierten und zugehörigen Datenverkehrs an Ihr internes Netzwerk
  • VORWÄRTS ausgehender Verkehr
  • Erlaube INPUT Verkehr für ssh

Das ist alles, was Sie tun müssen, um das Gateway zum Laufen zu bringen. Wenn Sie damit fertig sind und die Tests in Ordnung sind, können Sie mit der Installation Ihres VPN-Servers beginnen und ihn konfigurieren. Denken Sie daran, iptables Regeln für VPN hinzuzufügen, um VPN-Verkehr zu ermöglichen.

wullxz
quelle
Vielen Dank! Ich freue mich über alle Details, die Sie dazu geben könnten, wie Sie Ihre Clients so konfiguriert haben, dass sie Ihre Gateway-VM als deren Gateway erkennen. Welche Befehle / Konfigurationen haben Sie auf den Linux-Gästen platziert?
Lurscher
Sagen Sie den Labor-Clients einfach, dass Ihre interne IP-Adresse des Gateways als Standard-Gateway verwendet werden soll. Wenn Sie Ihr Gateway richtig konfiguriert haben, ist das alles. Ich werde Informationen darüber hinzufügen / bearbeiten, wie ich mein Gateway als Gateway verwendet habe.
Wullxz