Zum Inhalt springenZur Seitennavigation springen: vorherige Seite [Zugriffstaste p]/nächste Seite [Zugriffstaste n]
Navigation
Bezieht sich auf SUSE Linux Enterprise Server 12 SP3

8 Fernzugriff mit VNC

Mit Virtual Network Computing (VNC) können Sie einen Remote-Computer über einen grafischen Desktop steuern (anders als bei einem Remote-Shell-Zugriff). VNC ist plattformunabhängig und ermöglicht Ihnen den Zugriff auf den Remote-Rechner über ein beliebiges Betriebssystem.

SUSE Linux Enterprise Server unterstützt zwei verschiedene Arten von VNC-Sitzungen: einmalige Sitzungen, die so lange aktiv sind, wie die VNC-Verbindung zum Client besteht, und permanente Sitzungen, die so lange aktiv sind, bis sie explizit beendet werden.

Anmerkung
Anmerkung: Sitzungstypen

Ein Rechner kann beide Sitzungen gleichzeitig auf verschiedenen Ports bieten, eine geöffnete Sitzung kann jedoch nicht von einem Typ in den anderen konvertiert werden.

8.1 Der vncviewer-Client

Um eine Verbindung zu einem VNC-Dienst herzustellen, der von einem Server bereitgestellt wird, ist ein Client erforderlich. Der Standard-Client in SUSE Linux Enterprise Server ist vncviewer, der im Paket tigervnc bereitgestellt wird.

8.1.1 Verbinden mithilfe der vncviewer-CLI

Mit folgendem Kommando können Sie den VNC-Viewer starten und eine Sitzung mit dem Server initiieren:

vncviewer jupiter.example.com:1

Anstelle der VNC-Anmeldenummer können Sie auch die Portnummer mit zwei Doppelpunkten angeben:

vncviewer jupiter.example.com::5901
Anmerkung
Anmerkung: Hinweis: Anzeige- und Portnummer

Die im VNC-Client angegebene Anzeige- oder Portnummer muss mit der Anzeige- oder Portnummer übereinstimmen, die durch den Befehl vncserver auf dem Zielcomputer ausgewählt wird. Weitere Informationen finden Sie unter Abschnitt 8.3, „Permanente VNC-Sitzungen“.

8.1.2 Verbinden mithilfe der vncviewer-GUI

Wenn vncviewer ausgeführt wird, ohne --listen oder einen Host für die Verbindung anzugeben, wird ein Fenster zur Eingabe von Verbindungsinformationen angezeigt. Geben Sie den Host in das Feld VNC server (VNC-Server) wie in Abschnitt 8.1.1, „Verbinden mithilfe der vncviewer-CLI“ ein und klicken Sie auf Connect (Verbinden).

vncviewer fordert die Angabe von Verbindungsinformationen
Abbildung 8.1: vncviewer

8.1.3 Benachrichtigungen zu unverschlüsselten Verbindungen

Das VNC-Protokoll unterstützt verschiedene Arten von verschlüsselten Verbindungen, nicht zu verwechseln mit Passwortauthentifizierung. Wenn eine Verbindung kein TLS verwendet, wird der Text (Connection not encrypted!) (Verbindung nicht verschlüsselt!) im Fenstertitel des VNC-Viewers angezeigt.

8.2 Einmalige VNC-Sitzungen

Eine einmalige Sitzung wird vom Remote-Client initiiert. Sie startet einen grafischen Anmeldebildschirm auf dem Server. Auf diese Weise können Sie den Benutzer auswählen, der die Sitzung starten soll sowie, sofern vom Anmeldungsmanager unterstützt, die Desktop-Umgebung. Wenn Sie die Client-Verbindung, beispielsweise eine VNC-Sitzung, beenden, werden auch alle während der Sitzung gestarteten Anwendungen beendet. Einmalige VNC-Sitzungen können nicht freigegeben werden, Sie können jedoch mehrere Sitzungen gleichzeitig auf demselben Host ausführen.

Prozedur 8.1: Aktivieren von einmaligen VNC-Sitzungen
  1. Starten Sie YaST › Netzwerkdienste › Verwaltung von entfernten Rechnern aus (remote) (VNC).

  2. Aktivieren Sie Verwaltung via entfernten Rechner (remote) erlauben.

  3. Aktivieren Sie bei Bedarf Firewall-Port öffnen (wenn Ihre Netzwerkschnittstelle z. B. so konfiguriert ist, dass sie in der externen Zone liegt). Wenn Sie mehrere Netzwerkschnittstellen haben, beschränken Sie das Öffnen der Firewall-Ports über Firewall-Details auf eine bestimmte Schnittstelle.

  4. Bestätigen Sie die Einstellungen mit Beenden.

  5. Falls zu dem Zeitpunkt noch nicht alle erforderlichen Pakete verfügbar sind, müssen Sie der Installation der fehlenden Pakete zustimmen.

8.2.1 Verfügbare Konfigurationen

Die Standardkonfiguration von SUSE Linux Enterprise Server stellt Sitzungen mit einer Auflösung von 1024 x 768 Pixeln und einer Farbtiefe von 16 Bit bereit. Die Sitzungen sind an Port 5901 für reguläre VNC-Viewer (entspricht VNC-Display 1) und an Port 5801 für Webbrowser verfügbar.

Weitere Konfigurationen können an anderen Ports verfügbar gemacht werden., siehe Abschnitt 8.2.3, „Konfigurieren einmaliger VNC-Sitzungen“

VNC-Anzeigenummern und X-Anzeigenummern sind bei einmaligen Sitzungen unabhängig. Eine VNC-Anzeigenummer wird manuell jeder Konfiguration zugewiesen, die vom Server unterstützt wird (:1 im obigen Beispiel). Immer, wenn eine VNC-Sitzung mit einer der Konfigurationen initiiert wird, erhält sie automatisch eine freie X-Display-Nummer.

Standardmäßig versuchen sowohl der VNC-Client als auch der Server, über ein selbstsigniertes SSL-Zertifikat sicher zu kommunizieren, das nach der Installation erzeugt wird. Verwenden Sie wahlweise das Standardzertifikat oder ersetzen Sie es durch Ihr eigenes Zertifikat. Wenn Sie das selbstsignierte Zertifikat verwenden, müssen Sie vor dem ersten Herstellen einer Verbindung die Signatur bestätigen – sowohl im VNC-Viewer als auch im Webbrowser. Der Java-Client wird über HTTPS mit demselben Zertifikat wie VNC bereitgestellt.

8.2.2 Initiieren einer einmaligen VNC-Sitzung

Um eine Verbindung zu einer permanenten VNC-Sitzung herzustellen, muss ein VNC-Viewer installiert sein, lesen Sie hierzu auch Abschnitt 8.1, „Der vncviewer-Client“. Alternativ können Sie einen Java-fähigen Webbrowser verwenden, um die VNC-Sitzung anzuzeigen. Geben Sie hierzu folgende URL ein: http://jupiter.example.com:5801.

8.2.3 Konfigurieren einmaliger VNC-Sitzungen

Sie können diesen Abschnitt überspringen, wenn Sie die Standardkonfiguration nicht ändern müssen bzw. möchten.

Einmalige VNC-Sitzungen werden über den xinetd-Daemon gestartet. Eine Konfigurationsdatei befindet sich unter /etc/xinetd.d/vnc. Standardmäßig bietet sie sechs Konfigurationsblöcke: drei für VNC-Viewer (vnc1 bis vnc3) und drei für Java-Applets (vnchttpd1 bis vnchttpd3). Standardmäßig sind nur vnc1 und vnchttpd1 aktiv.

Um eine Konfiguration zu aktivieren, können Sie die Zeile disable = yes mit dem Zeichen # in der ersten Spalte auskommentieren oder die Zeile vollständig löschen. Wenn Sie eine Konfiguration deaktivieren möchten, dann entfernen Sie das Kommentarzeichen oder fügen Sie diese Zeile hinzu.

Der Xvnc-Server kann über die Option server_args konfiguriert werden – eine Liste der Optionen finden Sie mit Xnvc --help.

Achten Sie beim Hinzufügen benutzerdefinierter Konfigurationen darauf, keine Ports zu verwenden, die bereits von anderen Konfigurationen, anderen Services oder bestehenden permanenten VNC-Sitzungen auf demselben Host verwendet werden.

Aktivieren Sie Konfigurationsänderungen mit folgendem Kommando:

sudo systemctl reload xinetd
Wichtig
Wichtig: Firewall und VNC-Ports

Wenn Sie die entfernte Verwaltung wie in Prozedur 8.1, „Aktivieren von einmaligen VNC-Sitzungen“ beschrieben aktivieren, werden die Ports 5801 und 5901 in der Firewall geöffnet. Wenn die Netzwerkschnittstelle, über die die VNC-Sitzung bereitgestellt wird, durch eine Firewall geschützt wird, müssen Sie die entsprechenden Ports manuell öffnen, wenn Sie zusätzliche Ports für VNC-Sitzungen aktivieren. Eine Anleitung dazu finden Sie in Chapter 15, Masquerading and Firewalls.

8.3 Permanente VNC-Sitzungen

Eine permanente VNC-Sitzung wird auf dem Server initiiert. Die Sitzung und sämtliche in dieser Sitzungsausführung gestarteten Anwendungen werden ungeachtet der Client-Verbindungen so lange ausgeführt, bis die Sitzung beendet wird.

Auf eine permanente Sitzung kann gleichzeitig von mehreren Clients zugegriffen werden. Dies eignet sich ideal für Demozwecke, bei denen ein Client den vollen Zugriff und alle anderen einen reinen Anzeigezugriff haben. Weiter eignet sich dies für Schulungen, bei denen der Schulungsleiter einen Zugriff auf den Desktop des Teilnehmers benötigt. In den meisten Fällen werden Sie Ihre VNC-Sitzung jedoch nicht freigeben wollen.

Im Gegensatz zu einer einmaligen Sitzung, bei der ein Display-Manager gestartet wird, startet eine permanente Sitzung einen einsatzbereiten Desktop, der unter dem Benutzernamen ausgeführt wird, unter dem die VNC-Sitzung gestartet wurde. Der Zugriff auf permanente Sitzungen ist passwortgeschützt.

Der Zugriff auf permanente Sitzungen wird durch zwei mögliche Arten von Passwörtern geschützt:

  • ein reguläres Passwort, das den vollen Zugriff ermöglicht, oder

  • ein optionales Passwort, das keinen interaktiven Zugriff ermöglicht und nur eine Anzeige liefert.

Eine Sitzung kann mehrere Client-Verbindungen beider Arten gleichzeitig haben.

Prozedur 8.2: Starten einer permanenten VNC-Sitzung
  1. Öffnen Sie eine Shell uns stellen Sie sicher, dass Sie als der Benutzer angemeldet sind, der Eigentümer der VNC-Sitzung sein soll.

  2. Wenn die Netzwerkschnittstelle, über die die VNC-Sitzung bereitgestellt wird, durch eine Firewall geschützt wird, müssen Sie die von Ihrer Sitzung verwendeten Ports manuell in der Firewall öffnen. Wenn Sie mehrere Sitzungen starten, können ie alternativ einen Portbereich öffnen. Details zur Konfiguration der Firewall finden Sie unter Chapter 15, Masquerading and Firewalls.

    vncserver verwendet die Port 5901 für Display :1, 5902 für Display :2 usw. Bei permanenten Sitzungen haben das VNC-Display und das X-Display normalerweise dieselbe Nummer.

  3. Geben Sie folgendes Kommando ein, um eine Sitzung mit einer Auflösung von 1024x769 Pixel und einer Farbtiefe von 16 Bit zu starten:

    vncserver -geometry 1024x768 -depth 16

    Das Kommando vncserver verwendet, sofern keine Display-Nummer angegeben ist, eine freie Display-Nummer und gibt seine Auswahl aus. Weitere Optionen finden Sie mit man 1 vncserver.

Bei der erstmaligen Ausführung von vncserver wird nach einem Passwort für den vollständigen Zugriff auf die Sitzung gefragt. Geben Sie gegebenenfalls auch ein Passwort für den reinen Anzeigezugriff auf die Sitzung ein.

Die hier angegebenen Passwörter werden auch für zukünftige Sitzungen verwendet, die durch denselben Benutzer gestartet werden. Sie können mit dem Kommando vncpasswd geändert werden.

Wichtig
Wichtig: Sicherheitsüberlegungen

Achten Sie darauf, dass Ihre Passwörter sicher und ausreichend lang sind (mindestens acht Zeichen). Teilen Sie diese Passwörter niemandem mit.

Beenden Sie, um die Sitzung zu beenden, die Desktopumgebung, die innerhalb der VNC-Sitzung ausgeführt wird über den VNC-Viewer so, wie Sie eine normale lokale X-Sitzung beenden würden.

Wenn Sie eine Sitzung lieber manuell beenden, öffnen Sie eine Shell auf dem VNC-Server und vergewissern Sie sich, dass Sie als der Benutzer angemeldet ist, der der Eigentümer der zu beendenden VNC-Sitzung ist. Führen Sie das folgende Kommando aus, um die Sitzung zu beenden, die auf Display :1: vncserver -kill :1 ausgeführt wird.

8.3.1 Verbindung zu einer permanenten VNC-Sitzung herstellen

Um eine Verbindung zu einer permanenten VNC-Sitzung herzustellen, muss ein VNC-Viewer installiert sein, lesen Sie hierzu auch Abschnitt 8.1, „Der vncviewer-Client“. Alternativ können Sie einen Java-fähigen Webbrowser verwenden, um die VNC-Sitzung anzuzeigen. Geben Sie hierzu folgende URL ein: http://jupiter.example.com:5801.

8.3.2 Konfigurieren von permanenten VNC-Sitzungen

Permanente VNC-Sitzungen können durch Bearbeiten von $HOME/.vnc/xstartup konfiguriert werden. Standardmäßig startet dieses Shell-Skript dieselbe GUI bzw. denselben Fenstermanager, aus dem es gestartet wurde. In SUSE Linux Enterprise Server ist dies entweder GNOME oder IceWM. Wenn Sie beim Starten Ihrer Sitzung einen bestimmten Fenstermanager verwenden möchten, legen Sie die Variable WINDOWMANAGER fest:

WINDOWMANAGER=gnome vncserver -geometry 1024x768
WINDOWMANAGER=icewm vncserver -geometry 1024x768
Anmerkung
Anmerkung: Eine Konfiguration pro Benutzer

Permanente VNC-Sitzungen werden jeweils nur einmal pro Benutzer konfiguriert. Mehrere von demselben Benutzer gestartete Sitzungen verwenden alle dieselben Start- und Passwortdateien.

8.4 Verschlüsselte VNC-Kommunikation

Wenn der VNC-Server ordnungsgemäß eingerichtet ist, wird die gesamte Kommunikation zwischen dem VNC-Server und dem Client verschlüsselt. Hierzu gehört die Authentifizierung zu Beginn sowie die gesamte Datenübertragung im weiteren Verlauf.

Die Sicherheitsoptionen werden unabhängig vom Typ der zu startenden VNC-Sitzung (einmalig oder persistent) mit dem Parameter -securitytypes des Befehls /usr/bin/Xvnc in der Zeile server_args konfiguriert. Der Parameter -securitytypes bestimmt sowohl die Authentifizierungsmethode als auch die Verschlüsselung. Hier stehen die folgenden Optionen zur Auswahl:

Authentifizierungen
None, TLSNone, X509None

Keine Authentifizierung.

VncAuth, TLSVnc, X509Vnc

Authentifizierung mit benutzerdefiniertem Passwort.

Plain, TLSPlain, X509Plain

Authentifizierung mit Überprüfung des Benutzerpassworts mit PAM.

Verschlüsselungen
None, VncAuth, Plain

Keine Verschlüsselung.

TLSNone, TLSVnc, TLSPlain

Anonyme TLS-Verschlüsselung. Alle Angaben werden verschlüsselt; auf dem Remote-Host erfolgt jedoch keine Überprüfung. Damit sind Sie gegen passive Angreifer geschützt, nicht jedoch gegen Man-in-the-Middle-Angreifer.

X509None, X509Vnc, X509Plain

TLS-Verschlüsselung mit Zertifikat. Wenn Sie ein selbstsigniertes Zertifikat heranziehen, werden Sie bei der ersten Verbindung aufgefordert, dieses Zertifikat zu bestätigen. Bei weiteren Verbindungen erhalten Sie nur dann eine Warnung, wenn das Zertifikat geändert wurde. So sind Sie gegen alle Angreifer geschützt, ausgenommen Man-in-the-Middle-Angreifer bei der ersten Verbindung (ähnlich wie bei der typischen SSH-Verwendung). Wenn Sie ein Zertifikat heranziehen, das von einer Zertifizierungsstelle signiert wurde und das mit dem Computernamen übereinstimmt, erzielen Sie praktisch uneingeschränkte Sicherheit (ähnlich wie bei der typischen HTTPS-Verwendung).

Tipp
Tipp: Pfad zum Zertifikat und zum Schlüssel

Bei der X509-gestützten Verschlüsselung müssen Sie den Pfad zum X509-Zertifikat/-Schlüssel mit den Optionen -X509Cert und -X509Key angeben.

Wenn Sie mehrere Sicherheitstypen angeben (jeweils durch Komma getrennt), wird der erste Typ herangezogen, der sowohl vom Client als auch vom Server unterstützt wird. So können Sie die opportunistische Verschlüsselung auf dem Server konfigurieren. Dies ist von Nutzen, wenn VNC-Clients unterstützt werden sollen, die ihrerseits keine Verschlüsselung unterstützen.

Auf dem Client können Sie außerdem die zulässigen Sicherheitstypen angeben, sodass ein Downgrade-Angriff vermieden wird, wenn Sie eine Verbindung zu einem Server herstellen, auf dem bekanntermaßen die Verschlüsselung aktiviert ist. (Der VNC-Viewer warnt Sie in diesem Fall allerdings mit der Meldung „Verbindung nicht verschlüsselt!“ ).

Diese Seite drucken