Archiv der Kategorie: Linux

GNU/Linux Howto’s and Tutorials

VNC-Verbindung mit SSH absichern

SSH-Tunnel zu Linux VNC-Server

VNC-Verbindungen gelten als unsicher, denn sie sind nicht verschlüsselt. VNC-Sitzungen können mit OpenSSH verschlüsselt werden, hierbei wird der Datenverkehr durch ein sicheren SSH-Tunnel geroutet und ist abgesichert.

Der SSH-Tunnel benötigt Benutzeranmeldung und den VNC Port. Der Client Befehl wird im Linux CLI wie folgt ausgeführt:

Bei Benutzer USER diesen durch den tatsächlichen Benutzername ersetzen, ein Passwort wird zur Ausführung des Tunnels aufgefordert. Bitte beachte, dass es sich dabei um das Passwort für den SSH-Login handelt, die Benutzeranmeldung zum VNC kann idealerweise die selbe UID sein, dann ist das Passwort das selbe. Der Port der getunnelt werden muss ist 5901. Der Befehl wird auf dem Computer des VNC-Viewer ausgeführt. Die Anmeldung findet wie gewohnt statt:

Mit dem VNC-Viewer kann nun die virtuelle Desktop Sitzung zur Loopback Adresse ausgeführt werden:

Hinweis: Beim OpenSSH-Server müssen die Optionen aktiviert sein, in der Konfigurationsdatei /etc/ssh/sshd_config.

 

SSH-Tunnel auf Windows zum VNC-Server

Unter Windows kann mittels PuTTY oder KiTTY ein SSH-Tunnel zum VNC-Server geöffnet werden, dabei wird über das Loopback Interface und Port 5901 getunnelt.

Abbildung: KiTTY Configuration

Unter der Category, Connection – SSH – Tunnels, bei Source Port wird 5901 eingetragen, Destination ist 127.0.0.1:5901, dann mit klick auf Add wird der Tunnel hinzugefügt.

Abbildung: KiTTY SSH Tunnel Configuration

Mit klick auf Open wird der Tunnel gestartet, indem man sich beim VNC-Host anmeldet.

Die sichere SSH-Verbindung zum VNC-Server kann nun initialisiert werden. Es wird bei Remote Host die Loopback Adresse 127.0.0.1 mit Port 5901 im TightVNC-Viewer eingetragen: 127.0.0.1:5901

Abbildung: TightVNC Connection

Nach der Anmeldung gibt Connection Information Auskunft über die aktuelle Verbindung, mit klick auf das Symbol    im Menübalken.

 




vncserver Installation auf Fedora 28

vncserver ist ein Dienstprogramm, das einen VNC-Desktop (Virtual Network Computing) startet. Es führt Xvnc mit entsprechenden Optionen aus und startet ein Fenstermanager. Der VNC-Desktop vncserver ermöglicht es Benutzern, Sitzungen parallel auf einer Maschine auszuführen, auf die dann von einer beliebigen Anzahl von Clients von überall zugegriffen werden kann.

GNOME Desktop Umgebung Installieren

Der vncserver kann den Unity Desktop nicht virtualisieren, deshalb wir erst ein alternativen Window Manager installieren, es eignet sich der xfce oder Mate Desktop, letzter wir hier verwenden. Wir führen die folgenden zwei Befehle aus, wobei wir erst root werden:

VNC-Server installieren

Um den TigerVNC Server zu installieren, führt man folgenden Befehl aus:

VNC-Servers Konfigurieren

Die Konfigurationsdatei /etc/systemd/system/vncserver@.service wird für den VNC-Server erforderlich. Um die Datei zu erstellen, kopieren wir die Datei /lib/systemd/system/vncserver@.service wie folgt als root:

Wir bearbeiten /etc/systemd/system/vncserver@.service, und ersetzen bei jedem USER diesen durch den tatsächlichen Benutzernamen. Lasse die restlichen Zeilen der Datei unverändert. Das Argument -geometry gibt die Größe des zu erstellenden VNC-Desktops an. Standardmäßig ist auf 1024×768 eingestellt.

Um die Bildschirmauflösung auf die des Clients anzupassen, wird die Datei mit vi ~/.vnc/config editiert.

Nach dem Speichern, den folgenden Befehl ausführen, damit werden die Änderungen sofort wirksam:

Lege das Passwort für den Benutzer fest, dieser in der Konfigurationsdatei definiert ist. Beachte dass man zuerst von root zu USER wechseln muss.

Die Mate Desktop Umgebung in die VNC-Konfiguration ~/.xinitrc übernehmen:

Die Konfigurationsdatei ~/.vnc/xstartup ist für den VNC-Daemon nicht erforderlich, sollte jedoch angepasst werden:

Firewall Konfigurieren

Damit der VNC-Client sich zum VNC-Server verbinden kann, wird die Firewall konfiguriert:

VNC-Server starten

Um den Dienst zu starten und zu aktivieren, geben wir die Display Nummer direkt im Befehl ein. Die unter der ersten VNC-Verbindung konfigurierte Datei funktioniert als Vorlage, in der %i durch systemd mit der display_number in der regel mit 1 ersetzt wird. Führe dazu folgenden Befehl aus:
systemctl start vncserver@:display_number.service

Der Dienst soll beim Systemstart automatisch starten. Dazu gibt man als root den Befehl wie folgt ein:

Jetzt können Benutzer vom Client mit VNC-Viewer-Programm eine Verbindung zum VNC-Server herstellen, über die Display Nummer und dem Passwort, dieses wir zuvor mit vncpasswd vergeben haben.

Für Windows gibt es die Freeware TightVNC-Viewer, um ein virtuellen Desktop herzustellen, hier ist die Display Nummer 1, welche beim VNC-Viewer im Feld Remote Host eingetragen wird, mit der IP und Port 5901, mit Doppelpunkt dazwischen.

Abbildung: TightVNC-Viewer Windows

Download TightVNC: http://www.tightvnc.com/

Weitere VNC-Viewer für Mac OS X, iOS, Android, Chrome OS und Raspberry Pi gibt es von RealVNC, ebenfalls als Freeware, damit ist die VNC-Desktop (Virtual Desktop) Anwendung von jedem Gerät aus möglich.

Troubleshooting

Die vncserver Log-Datei ist unter $HOME/.vnc/hostname:1.log

Der hostname fedora.localdomain durch den tatsächlichen ersetzen.

Überprüfen ob der VNC-Server gestartet ist:

Die Ausgabe des laufenden vncserver Prozess in etwa wie folgt:

Mit netstat wird überprüft, ob der VNC Port 5901 LISTEN ist:

Tunneln der VNC-Server Verbindung über SSH

VNC-Verbindungen gelten als unsicher, da sie nicht verschlüsselt sind. Im letzten Schritt tunneln wir die VNC-Verbindung mit SSH, um den VNC-Verkehr zu verschlüsseln und zu sichern. Um den Tunnel auszuführen, benötigen wir den Login-Benutzer, sein Passwort und den Port. Führe auf dem Client folgenden Befehl aus:

Das Passwort wird zur Ausführung des Tunnels aufgefordert. Bitte beachte, dass es sich dabei um das Passwort für den SSH-Login handelt, die Benutzeranmeldung zum VNC kann idealerweise die selbe UID sein, dann ist das VNC-Passwort das selbe. Der Port der getunnelt werden muss ist 5901, wie oben gezeigt. Der Befehl wird auf dem Computer des VNC-Viewer ausgeführt.

Unter Windows kann mittels PuTTY oder KiTTY ein SSH-Tunnel zum VNC-Server geöffnet werden, dabei wird das Loopback Interface über Port 5901 getunnelt.

Abbildung: KiTTY Configuration

Unter der der Category, Connection – SSH – Tunnels, bei Source Port wird 5901 eingetragen, Destination ist 127.0.0.1:5901, dann mit klick auf Add wird der Tunnel hinzugefügt.

Mit klick auf Open wird der Tunnel gestartet, indem man sich beim VNC-Host anmeldet.

Die sichere SSH-Verbindung zum VNC-Server kann nun initialisiert werden. Es wird bei Remote Host die Loopback Adresse 127.0.0.1 mit Port 5901 im TightVNC-Viewer eingetragen.

Nach der Anmeldung gibt Connection Information Auskunft über die aktuelle Verbindung.

 

Unified Communication

Auch in der Telefonie bleibt die Digitalisierung nicht stehen, dabei sticht das Asterisk Tool Kit als eine interessante alternative zu kommerziellen Telefonielösungen hervor.

Asterisk ist eine Open Source basierte Telefonanlagen Software für den Einsatz einer IP PBX unter Linux, lauffähig auf unterschiedlichen Rechner Plattformen. Asterisk beinhaltet  umfangreiche CTI Funktionalitäten, sowie eine API Schnittstelle AMI zur Integration von CTI Anwendungen. Unterstützt werden IP-Telefonie (VoIP) mit unterschiedlichen Protokollen wie SIP/SSIP, IAX und Fax T.38, mittels Hardware wird auch ISDN und POTS unterstützt, so können Endgeräte mit analog Telefonanschluss genutzt werden.

Mark Spencer hat Asterisk ursprünglich bei der Firma Digium entwickelt. Mittlerweile haben sich noch weitere Entwickler der Asterisk-Gemeinde angeschlossen und so stammen viele Erweiterungen und Applikationen auch von anderen Contributoren. Der Name beruht auf der Bezeichnung des Sternsymbol, dieses als Wahlfunktion die Steuerung der Telefonie regelt, wie beispielsweise *72 für die Weiterleitung.

Asterisk funktioniert auf einer Reihe unterschiedlicher Systeme. Neben Personal Computern mit x86-Prozessor läuft Asterisk auch auf dem Raspberry Pi und Router die OpenWrt unterstützen, ebenfalls werden Installationen auf Embedded Systeme mit Flash Speicher angeboten, wie dem ALIX Board von PC Engines.

Unified Communication

Bei der Portierung auf ARM Prozessoren kommen auch kommerzielle Asterisk basierte Telefonie Lösungen auf den Markt, eine davon ist die UCM6202 von Grandstream, diese für rund 250 EURO erhältlich ist.

Hybrid IP PBX mit 1 GB RAM und 4 GB Flash, ein NAT Router mit WAN und LAN Port, diese in Switch Mode geschalten werden können. Für analog Anschlüsse gibt es je 2 FXS und FXO Ports. Ein 2 Zeilen Display mit IP Adresse und Schnittstellen Mode.

Die Unified Communication UCM6202 beinhaltet umfangreiche CTI Funktionalitäten, in der neusten Firmware (1.0.15.16) wird Asterisk 13 und ein komfortables AJAX unterstütztes WebUI geboten.

Benutzer haben Kontrolle über ein WebUI und können Einstellungen vornehmen. Anrufe und Präsenz Status können im Benutzerpanel überwacht werden. Gemeinsame Telefonbücher sind über LDAP aus Active Directory abrufbar.

Die UCM6202 bietet dem Teilnehmer Information über laufende, verpasste und abgehaltene Verbindungen, sowie Sprachnachrichten. FollowMe und Weiterleitungen können aktiviert werden, Konferenzen abgehalten und geplant werden, dazu Einladungen per Email versenden, mit Integrierbarkeit externer Kalender, wie Google Kalender.

Funktionen

Die UCM6202 unterstützt bis zu 500 registrierte Nutzer, 50 SIP Trunks und 30 parallele Gespräche, ohne Beschränkung wie etwa für anzahl von Lizenzen. Für Grandstream SIP Endgeräte ist eine Zero Configuration Provisionierung möglich. Es wird größtmögliche Sicherheit durch die Anwendung von SRTP, TLS und HTTPS ermöglicht. Zwei Gigabit Netzwerkanschlüsse mit integrierter PoE Stromversorgung. Interaktive Sprachansagen (IVR) bis max. 5-Stufen (Interactive Voice Response). Integrierter Server zur Sprachaufzeichnung, Zugang und Abruf über die Web-Schnittstelle. Mehrfach Zeitgesteuerte Regeln für Ansagen von Bürozeiten und Feiertage. Anruf-Warteschlange für mehr Effizienz bei hohem Gesprächsvolumen. Integrierte Anruf Aufzeichnung (CDR) mit vielen Details wie Zeit, Datum, Nebenstelle, genutzte Leitung usw. Mehrsprachige Ansagen zur effizienten Verteilung ankommender Gespräche. Integriertes LDAP und XML Telefonbuch, flexible Dial-Pläne. Unterstützung für alle SIP-Video-Endgeräte, sofern diese H.264, H.263 oder H.263+ Codecs nutzen. Anrufbeantworter und Fax zu E-Mail Weiterleitung. Virtuelle Konferenzräume, WebRTC, PMS System mit Hotel Mini-Bar, Room Reservation und CTI Server. API Schnittstellen und Integration für Salesforce und SugarCRM. Backup Automatisierung mit Möglichkeit für externe Speicher. Firewall zur Steuerung von Zugang und Fail2ban für abwehr von Brute-Force und DDoS Angriffe. Syslog Protokollierung auf Remote Host zur Überprüfung und Fehlersuche. Asterisk Tool Kit und Linux Open Source basierend (ohne Lizenzkosten).

Grandstream App für Video anrufe auf iOS und Android Smartphone.

      

Die Mobile App Wave von Grandstream mit Möglichkeit für Nachrichten, Konferenz, Transfer und Video Verbindungen.

Abbildung: GXP1625, UCM6202

Mit Grandstream IP Telefone wird Zero Config Provisionierung mit automatischer Konfiguration über TR069 und XML möglich. die Geräte werden mit IP oder MAC Adresse gescannt, Geräte anderer Hersteller sind einsetzbar, mit herkömmlicher Provisionierung über TFTP Server oder das TR069 Protokoll, falls vom Hersteller vorgesehen, ansonsten gibt es die manuelle Einrichtung.

Hersteller Quelle:
Grandstream UCM6202 IP PBX Series
Open Source Asterisk Toolkit