VirtualBox: Erstellen eines isolierten Webservers mit eingeschränktem Zugriff über LAN

385
silentsurfer

Ich bin mir sicher, dass diese Frage schon einmal beantwortet wurde, aber ich finde keine praktikable Antwort.

Ich habe eine virtuelle Maschine von CentOS 7, die in VirtualBox 5.2.20 ausgeführt wird und auf einem Windows 10 Pro-Computer gehostet wird. Ich habe einen Apache-Webserver auf dem Gast eingerichtet und möchte ihn über das Internet erreichbar machen (z. B. um eine statische Webseite über Port 80 bereitzustellen). Ich möchte jedoch, dass mein Host und andere Geräte in meinem LAN vom Gast abgeschirmt werden, falls er gefährdet ist.

Im Moment habe ich zwei Netzwerkadapter, die in VB konfiguriert sind, einen NAT, um dem Gast ausgehenden Internetzugang zu gewähren, und einen Host-Only-Adapter, um den Webserver lokal zu testen. Momentan ist keine Portweiterleitung eingerichtet, sodass der Gast nur von meinem Gastgeber aus erreichbar ist. Mein Verständnis ist folgendes:

  • Wenn ich NAT mit Portweiterleitung verwende, müsste ich die erforderlichen Ports auch auf meinem Host öffnen, um sie für potenzielle Exploits anfällig zu machen (ich möchte das vermeiden).
  • Wenn ich den Bridged-Modus verwende, kann ich Ports direkt an meinen Gast weiterleiten, aber er hätte auch Zugriff auf andere Hosts in meinem LAN. Wenn mein Gast gehackt wird, wäre er gefährdet.

Ist mein Verständnis richtig? Wenn ja, wie kann ich das Netzwerk so einrichten, dass Portweiterleitung nur zu meinem Gast möglich ist, ohne dass der Rest meines LANs dem Netzwerk ausgesetzt ist?

0
Ich denke, dass es in seiner derzeitigen Form unmöglich ist, das zu tun, was Sie wollen. Ich weiß, unter Linux konnte man NAT verwenden und dann mit IPTables konnte man nur den NAT-Datenverkehr ins Netz lassen und an keiner anderen Stelle, aber selbst dann ist es kompliziert. djsmiley2k vor 5 Jahren 1
Da ich immer noch etwas ungern einen Port auf meinem Host öffnen möchte, frage ich mich, ob ich eine zweite VM als Firewall (hinter meinem Router) verwenden könnte, z. B. pfSense ausführen und eine virtuelle DMZ mit einem anderen Subnetz erstellen könnte, um den Gast von meinem zu trennen LAN. Gibt es irgendwelche Gedanken darüber, wie dies erreicht werden könnte? silentsurfer vor 5 Jahren 0

1 Antwort auf die Frage

0
harrymc

Sie müssen einen Port-Forwarding zu Ihrem Computer durchführen, aber Sie können diesen Port direkt an die von der VM verwendete Netzwerkschnittstelle leiten, damit die VM isoliert bleiben kann. Dies funktioniert möglicherweise mit der Host-Only-Schnittstelle, sodass die VM nicht mit dem Rest Ihres Netzwerks kommunizieren kann.

Der zu verwendende Befehl sieht wie folgt aus und wird in einer Eingabeaufforderung mit erhöhten Rechten ausgeführt, vorausgesetzt, die Host-Only-Schnittstelle ist in 192.168.234.0/24 definiert:

netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.0.0.1 connectaddress=192.168.234.1 connectport=80 protocol=tcp 

Ich habe keine VirtualBox und kann nicht experimentieren. Sie werden diesen Teil tun müssen.

Weitere Informationen finden Sie im Artikel Windows Netsh Interface Portproxy .

Danke, Harry, ich werde es versuchen. Könnten Sie bitte erklären, warum das Port-Proxying (aus Sicht des Hosts) sicherer ist als die Port-Forwarding-Funktion von VB? silentsurfer vor 5 Jahren 0
Es ist kein NAT oder Bridged erforderlich und wird auf Windows-Ebene ausgeführt. harrymc vor 5 Jahren 0
Das ist ein guter Punkt, zumindest bietet es einen Schalter zum Deaktivieren des Internetzugangs über NAT für den Gast, wenn dies nicht für Updates erforderlich ist. Wenn es jedoch um das Öffnen von Ports auf dem Host geht, besteht ein Unterschied zwischen Proxying und Portweiterleitung über VB und NAT? silentsurfer vor 5 Jahren 0
Der Unterschied ist der Isolationsgrad der VM von Ihrem Netzwerk. Ich glaube nicht, dass NAT völlig isoliert ist. harrymc vor 5 Jahren 0