Werbehinweise

Startseite » Blog » VirtualBox: Vom Wirt auf den Gast zugreifen 

Blog

April 2021 März 2021 Februar 2021 Januar 2021 Dezember 2020 November 2020 Oktober 2020 August 2020 Juli 2020 April 2020 März 2020 August 2019 Juni 2019 April 2019 Dezember 2018 September 2018 Februar 2018 Oktober 2017 August 2017 April 2017 März 2017 Februar 2017 Januar 2017 Dezember 2016 Juli 2016 Februar 2016 Januar 2016 Oktober 2015 Juli 2015 Juni 2015 März 2015 Januar 2015 Dezember 2014 November 2014 Oktober 2014 September 2014 Juli 2014 Juni 2014 April 2014 März 2014 Februar 2014 Januar 2014 Dezember 2013 November 2013 Oktober 2013 August 2013 Juli 2013 März 2013 Februar 2013 Januar 2013 Dezember 2012 November 2012 Oktober 2012 September 2012 August 2012 Juli 2012 Juni 2012 Mai 2012 April 2012 März 2012 Februar 2012 Januar 2012 Dezember 2011 November 2011 Oktober 2011 September 2011 August 2011 Juli 2011 Juni 2011 Mai 2011 April 2011 März 2011 Februar 2011 Januar 2011 Dezember 2010 TeamSpeak 3: Benutzerprofil sichern Battlefield: Bad Company 2: Ein Rückblick nach etwa 225 Stunden Windows 7: Versteckte Dateien und Verzeichnisse anzeigen lassen X_FISH vs. »Petra« Und woher stammt der Inhalt in eurem Geldbeutel? VirtualBox 4.0 ist erschienen – mit Problemen Battlefield: Bad Company 2 Vietnam – Das Sparpaket Ubuntu: ACPI nachträglich installieren und aktivieren VirtualBox: Vom Wirt auf den Gast zugreifen Firefox 4.0: Statusleiste wiederherstellen Phatch 0.2.x: Breitenpräferenz beim Verkleinern GParted: NTFS-Partition vergrößern Eine vorwurfsvolle Anfrage Games for Windows live: Error 0X80072751 beziehungsweise 0X80070005 November 2010 Oktober 2010 September 2010 August 2010 Juli 2010 Juni 2010 Mai 2010 April 2010 März 2010 Februar 2010 Januar 2010 Dezember 2009 November 2009 Oktober 2009 September 2009 Januar 2009 Dezember 2008 November 2008 Oktober 2008 September 2008 Juni 2008 Mai 2008 April 2008 März 2008 Februar 2008 Januar 2008 Dezember 2007 November 2007 Oktober 2007 Mai 2007 Februar 2007 Januar 2007 September 2006 August 2006 Juni 2006 Mai 2006 April 2006 März 2006 Februar 2006 November 2005 Oktober 2005 September 2005 Juli 2005 Juni 2005 Mai 2005 Mai 2004 Oktober 2003 September 2003 Juli 2003 Juni 2002 Mai 2002 März 2002 Februar 2002 Januar 2002 November 2001 Oktober 2001 Juli 2001 Juni 2001 Mai 2001 März 2001 Februar 2001 Januar 2001
get Bluefish Editor
Geany – The Flyweight IDE
get Mozilla Firefox
get Opera
get Konqueror
get Mozilla Thunderbird
get Linux Mint
get Ubuntu Linux

Anzeige
ALL-INKL.COM - Webhosting Server Hosting Domain Provider

Werbung

27.

Dezember

2010

VirtualBox: Vom Wirt auf den Gast zugreifen

Per E-Mail kam eine Anfrage wie ich es geschafft habe vom Host aus auf den Server zuzugreifen, welcher bei mir mittels VirtualBox als Mailserver agiert. Bisher hatte ich dies tatsächlich nicht weiter beschrieben, daher ein paar Zeilen dazu wie ich es gelöst habe beziehungsweise wieso ich abgesehen von IMAP, SMTP und HTTP auch noch per SSH auf den Server zugreife.

Zunächst einmal benötigt das Gastsystem zwei (virtuelle) Netzwerkkarten. Über NAT (network address translation) wird ermöglicht, dass das Gastsystem über die Netzwerkverbindung des Wirtsystems ins Internet zugreifen kann. Über diese Verbindung kann das Wirtsystem jedoch nicht auf den Gast zugreifen.

Die IP erhält das Gastsystem dabei über den von VirtualBox gestellten DHCP-Server. Der entsprechende Eintrag über die grafische Benutzeroberfläche von VirtualBox (auf dem Bild ist der Dialog der Version 4.0 zu sehen) sieht wie folgt aus:

Im Gastsystem ist anschließend die erste Netzwerkkarte im System per DHCP mit den entsprechenden Daten versorgt worden. Sowohl die Daten für IPv4 wie auch für IPv6 wurden dem Adapter zugewiesen. Hier wie es sich unter dem Server (Ubuntu 10.10) nach einer Abfrage an der Konsole darstellt. Die Tastatureingaben sind auf dieser Seite in den Fenstern jeweils fett dargestellt, alle anderen Angaben stammen sind Ausgaben des Systems.

root@farnsworth:~# ifconfig eth0
eth0      Link encap:Ethernet  Hardware Adresse 08:00:27:c9:ca:e9  
          inet Adresse:10.0.2.15  Bcast:10.0.2.255  Maske:255.255.255.0
          inet6-Adresse: fe80::a00:27ff:fec9:cae9/64 Gültigkeitsbereich:Verbindung

Für die Verbindung zwischen Gastsystem und Wirtsystem ist zusätzlich ein unter VirtualBox als »host-only«-Netzwerkadapter[1] notwendig. Dieser (virtuelle) Netzwerkanschluss kann von VirtualBox ebenfalls per DHCP dem Gastsystem eine IP zuweisen. Zunächst jedoch erst einmal ein Blick auf die Einstellung in der grafischen Benutzeroberfläche von VirtualBox für den zweiten (virtuellen) Netzwerkadapter:

Während der Installation von VirtualBox wird am Wirtsystem dafür ein zusätzliches (virtuelles) Netzwerk-Interface eingerichtet. Dies hat anschließend bei der Verwendung eines »host-only«-Adapters für das Wirtsystem die Funktion einer Netzwerkkarte, welche das Wirtsystem mit dem (virtuellen) Netzwerk des beziehungsweise der Gäste verbindet. Ein Zugriff weiterer (physikalischer) Rechner im Netzwerk auf den Gast ist nicht möglich, dies suggeriert bereits der Name »host-only«-Netzwerkadapter.

VirtualBox kann für das Gastsystem auch beim »host-only«-Adapter als DHCP-Server agieren. Die Einstellungen können auch hier wieder bequem über die grafische Oberfläche vorgenommen werden. Da ich jedoch beim Wechsel von Linux und Windows als Wirtsystem Probleme mit dem DHCP-Server hatte, habe ich die zweite Netzwerkkarte im System mit einer festen IP versehen, weiter unten auf dieser Seite mehr dazu.

Im Normalfall, wenn also kein regelmäßiger Wechsel des Wirtsystems vorliegt, wird es normalerweise zu keinen Problemen kommen. Daher kann der DHCP-Server für den »host-only«-Adapter normalerweise problemlos verwendet werden.

Dennoch der Hinweis auf ein anderes Problem, welches ich im Zusammenhang mit wechselnden Wirtsystemen bereits beschrieben habe: VirtualBox: Netzwerkkarte unter Linux plötzlich eth1. Sollte sich beim Wechsel des Wirtsystems die Zuweisung der Netzwerkkarteneinstellungen des Gastsystems verändern, sollte diese Seite aufgerufen werden.

Problem mit DHCP für den »host-only«-Adapter

Auch nach dem Lösen des oben verlinkten Problems mit unterschiedlichen MAC der (virtuellen) Netzwerkadapter hatte ich beim Verwenden von VirtualBox unter Windows (7) als Wirtsystem immer wieder Probleme mit dem DHCP-Server für den »host-only«-Adapter.

Mal wurde wie gewünscht per DHCP eine IPv4-Adresse zugewiesen, dann wieder nicht. Unter Linux als Wirtsystem hatte ich nie Probleme.

Nach dem Studium diverser Threads, welche eben diese Problematik im Web ebenfalls beschreiben habe ich den einfachen Weg gewählt: Ich habe dem zweiten Netzwerkadapter im Gastsystem selbst einfach fest eine IP zugeordnet.

Damit war jegliche DHCP-Problematik ausgeschlossen und ich habe nun in jedem Fall sowohl unter Linux wie auch unter Windows aus Wirtsystem die gleiche IP, über welche ich auf das Gastsystem zugreifen kann.

Hier die vollständige /etc/network/interfaces meines Ubuntu Servers (Gastsystem):

root@farnsworth:~# 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

# The primary network interface
auto eth0
iface eth0 inet dhcp

# The VirtualBox host-only network interface 
auto eth1
iface eth1 inet static
        address 192.168.56.102
        netmask 255.255.255.0
        network 192.168.56.0
        broadcast 192.168.56.255

Wichtig: Keinen Standardgateway für eth1 eingeben. Ansonsten versucht das Gastsystem nicht mehr über NAT, sondern über den angegebenen Gateway die Verbindung ins Internet vorzunehmen.

Die Ausgabe für den zweiten Netzwerkadapter im System fällt dementsprechend aus:

root@farnsworth:~# ifconfig eth1
eth1      Link encap:Ethernet  Hardware Adresse 08:00:27:c1:a6:65  
          inet Adresse:192.168.56.102  Bcast:192.168.56.255  Maske:255.255.255.0
          inet6-Adresse: fe80::a00:27ff:fec1:a665/64 Gültigkeitsbereich:Verbindu

Wie man anhand der Ausgabe erkennen kann hat der Adapter eth1 vom VirtualBox-Host mittels DHCP noch eine IPv6-Adresse zugewiesen bekommen. Da ich IPv6 bislang nicht verwende ist dies zwar ganz nett, jedoch spielt es für die Konfiguration des »host-only«-Adapters keine Rolle.

Abschließend nun noch das Beispiel für die Einträge in der /etc/hosts (Linux) beziehungsweise %SystemRoot%\System32\drivers\etc\hosts (Windows). Zunächst wie die Einträge unter Linux beim Wirtsystem bei mir aussehen:

amy@turanga:~$ cat /etc/hosts
192.168.243.123 turanga # Added by NetworkManager
127.0.0.1       localhost.localdomain   localhost
::1     turanga localhost6.localdomain6 localhost6
127.0.1.1       turanga
192.168.56.102  farnsworth.futurama

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Unter Windows (7) etwas nüchterner (da mit nur einem aktiven Eintrag versehen):

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#       127.0.0.1       localhost
#       ::1             localhost

192.168.56.102 farnsworth.futurama

Per ssh auf dem Gastsystem einloggen

Eingangs habe ich erwähnt, dass ich abgesehen von der eigentlichen Funktion als Mailserver mit integriertem Webmailer (Roundcube[3]) auch noch anderweitig auf das Gastsystem zugreife. Diese Zugriffe dienen primär der Konfiguration beziehungsweise der Wartung.

Ich habe auf dem Ubuntu Server mittels OpenSSH eine sogenannte SecureSHell installiert. Darüber kann ich auf sichere Art und Weise dank der verschlüsselten Netzwerkverbindung mit dem Gastsystem eine Verbindung zur Konsole herstellen.

Ist das nicht ein wenig übertrieben? Host-Only und dann auch noch eine SSH? Nun ja, der Sicherheitsgedanke spielte weniger eine Rolle als vielmehr »ich wollte es einfach mal einrichten«.

Völlig paranoid das ich mir selbst nicht mehr trauche bin ich also auch nicht.

Wie sieht so ein Aufruf eigentlich aus? Hier als Beispiel der Versuch mich vom Wirtsystem aus beim Gastsystem einzuloggen. Der Name des Servers »farnsworth.futurama« ist dabei in der Hosts-Datei des Wirtsystems hinterlegt:

amy@turanga:~$ ssh -l root farnsworth.futurama
Warning: Permanently added the RSA host key for IP address '192.168.56.102' to the list 
of known hosts.
root@farnsworth.futurama's password: 
Permission denied, please try again.

Der Versuch sich direkt als Benutzer root einzuloggen schlägt fehl, da der Server (Ubuntu 10.10) dies über ssh nicht direkt erlaubt. Es muss der Weg über einen unprivilegierten Benutzer genommen werden. Im Beispiel heißt dieser Benutzer amy:

amy@turanga:~$ ssh -l amy farnsworth.futurama
amy@farnsworth.futurama's password: 
Linux farnsworth.futurama 2.6.35-24-generic #42-Ubuntu SMP Thu Dec 2 01:41:57 UTC 2010 
i686 GNU/Linux Ubuntu 10.10

Welcome to Ubuntu!
 * Documentation:  https://help.ubuntu.com/
No mail.
Last login: Mon Dec 27 00:14:39 2010
amy@farnsworth:~$ sudo su -
[sudo] password for amy: 
root@farnsworth:~# 

Schön, aber warum sollte man sich die Mühe machen per ssh auf den Gast zuzugreifen? Das geht doch direkt über das Fenster welches VirtualBox vom Client ohnehin geöffnet hält?

Die Antwort ist simpel: In das von VirtualBox geöffnete Fenster des aktuell gestarteten Gastsystems kann ich – zumindest unter VirtualBox 4.0 ohne Installation der sogenannten »Guest Additions« – nicht einfach per Maus copy&paste betreiben.

In einem Terminal in welchem ich unter Linux via ssh oder unter Windows mit PuTTY [3] funktioniert dies jedoch problemlos. Anstatt größere Textblöcke für Konfigurationsdateien abschreiben zu müssen, beispielsweise weil ich sie aus Anleitungen im Web übernehme, kann ich sie bequem und einfach mit einem Mausklick einfügen.

X_FISH


Datenschutzerklärung
Durch die Nutzung der Website stimmen Sie der Verwendung von Cookies zur Durch­führung von Analysen und zum Erstellen von Inhalten und Werbung, welche an Ihre Interessen angepasst ist, zu.