UCM LDAP Phonebook

GRANDSTREAM UCM6202 UCM6208 zentrales Telefonbuch für Kontakte

Dieser Artikel beschreibt die zentrale Telefonbuch Bereitstellung mittels LDAP auf einer UCM IP PBX, dadurch haben Benutzer die Möglichkeit, eigene Kontakte zu speichern, abzurufen und daraus Anrufe zu tätigen.

Das vorhandene Telefonbuch der UCM ist für Nebenstellen der Telefonanlage vorgesehen, diese Kontakte können nicht direkt hinzugefügt oder gelöscht werden. Um Kontakte zu ändern geht man zu „Extensions“ im WebUI der UCM. Die schreibgeschützten Attribute der entsprechenden Elemente können bei den Extensions bearbeitet werden. Das Telefonbuch wird automatisch aktualisiert, wenn Änderungen an den Extensions vorgenommen werden. Um externe Kontakte hinzufügen zu können, haben Benutzer die Möglichkeit über zusätzliche Telefonbücher. Für diese Telefonbücher können LDAP-Attribute bearbeitet und Kontakte direkt hinzugefügt oder gelöscht werden.

Zu dem auf der UCM bereits vorinstallierten LDAP Phonebook erstellt man ein zusätzliches Telefonbuch, hier in diesem Beispiel ist es mycontacts, der X.500 Context sieht dabei wie folgt aus:

Die Konfiguration für Telefonbücher findet man im WebUI der UCM unter System Settings – LDAP Server – LDAP Phonebook:

Hier klickt man auf +Add und legt ein neues Phonebook an:

Nach dem speichern zeigt sich das neu angelegte Phonebook wie folgt, der Prefix bezeichnet den X.500 Distinguished Name (DN) als Objekt OU=mycontacts:

Rechts klickt man auf das Editor Symbol um neue Kontakte hinzuzufügen:

Beim Telefon GXP21xx geht man zu PHONEBOOK und LDAP:

Im Feld Server Address trägt man die IP der UCM ein, und im Feld Base den Kontext, unter Phonebook – LDAP: (ou=mycontacts,dc=pbx,dc=com)

Für die Provisionierung des LDAP Phonebook mycontacts geht man zu Value-added-Features – Zero Config – Global Policy und öffnet Contact List und aktiviert Directory unter LDAP Phonebook, danach wählt man bei Source das zuvor angelegte Phonebook, hier mycontacts:

Nun wird bei Zero Config mit klick auf Update die Änderung für die Telefone durchgeführt.

Am Telefon GXP21xx drückt man auf die Directory Taste und wählt LDAP Verzeichnis, es muss min. ein Zeichen eingegeben werden, bevor man den Softkey Suchen drückt, z.B. mit einem A werden alle Kontakte die ein A enthalten aufgelistet.

Benutzer wechseln im Taskmanager

Benutzer wechseln ohne Passwort für Admin aus Taskmgr

Damit Administratoren das Problem eines Benutzers verstehen können, müssen sie sich als diesen anmelden, dazu benötigen sie in der Regel sein Passwort, ist der Benutzer jedoch gerade nicht an seinem Arbeitsplatz, kann der Admin sein Passwort zurücksetzen, um danach sein Benutzerprofil zu erhalten. Wie es auch ohne Benutzerkennwort geht, zeigt dieser Artikel.

Es wird hierzu das Tool PsExec verwendet, dieses wir zuvor in den Download Ordner kopiert haben.

PsExec von Mark Russinovich ist bestandteil der Sysinternals Suite, welche mittlerweile zu Microsoft gehört, Sysinternals sind System-Werkzeuge die als Freeware entwickelt werden, PsExec kann hier heruntergeladen werden.

Der Mitarbeiter im Helpdesk öffnet ein Command Prompt mit erhöhten rechte und führt folgendes Command aus:

Aus dem nun zweiten geöffneten Command Prompt wird der Taskmanager (taskmgr) gestartet:

Taskmanager
Abbildung: Taskmanager aus Command Prompt ausgeführt.

Nun im Taskmanager mit der Maus über den entsprechenden Benutzer gehen, und mit der rechte Maustaste auf Verbinden klicken, das wechseln zum Benutzer passiert nun ohne Passworteingabe.

Gerade auf einem Terminalserver ist diese Lösung für Admins sehr effektiv, hier sind mehrere Benutzer angemeldet, dabei kann der Admin ohne Benutzerkennwort zu seiner Sitzung wechseln. Erwähnt sei hier noch, das es sich nicht um eine Sicherheitslücke handelt, der Admin kann sonst auch tun und lassen was er will, für Benutzer mit normalen rechte ist dieses vorgehen nicht möglich.

SSH Tunnel Reverse Port forwarding

VPN Tunnel mit SSH Port Weiterleitung

SSH ist bei Linux von Beginn an bekannt, auch Apple hat Secure Shell in macOS integriert, und Microsoft verpasste ebenfalls OpenSSH unter Windows 10 ab 1803 und Server 2019 als optio­nales Feature. Dazu gibt es SSH-Tunnel und SSH Port forwarding von den seit geraumer Zeit bekannten Tools wie PuTTY und KiTTY. Warum also SSH nicht nur als Terminal (TTY) nutzen, sondern auch als VPN Tunnel, dabei stehen nützliche Möglichkeiten für den Einsatz zur Verfügung, beispielsweise wenn ein VPN Tunnel nicht an der Firewall terminiert werden soll, oder wenn in Unternehmensnetzwerke keine zusätzliche Software installiert werden kann, oder die rechte dazu fehlen. Ein SSH Reverse Tunnel ist immer dann hilfreich, wenn man auf einen Remote Computer, der hinter einer Firewall steht, nicht zugreifen kann.

  Bei Windows 10 ist der OpenSSH Client in den Einstellungen zu finden, unter Apps & Features – Optionale Features – OpenSSH-Client.

Dieser Beitrag beschreibt die Anwendung von SSH als VPN Tunnel mit Port forwarding unter OpenSSH auf Linux, macOS und Windows.

SSH Tunnel zu Remote Host B

Hier in einem Beispiel wird ein Tunnel von Host A zu Host B aufgebaut, Host B ist ein Webserver von diesem die Intranet Seite http://192.168.111.10 auf Host A geöffnet werden soll. Als einzige voraussetzung gilt dabei, das es auf der Firewall (NAT Router) ein NAT Mapping über Port 22 zu Host B gibt, und das SSH auf jedem Host vorhanden ist.

Abbildung: ssh tunnel host A to host B

Das Command im Linux Terminal auf Host A wie folgt ausführen:

Auf Host A kann nun die Webseite http://localhost geöffnet werden. Der SSH Tunnel macht die Weiterleitung für TCP Port 80 auf Host B von 192.168.111.10 zum localhost 127.0.0.1 auf Host A, der externe Port ist 45680.

Wobei wir uns auf Host B mit Benutzer cherry anmelden.
Die Bedeutung der Parameter:
-L = Lokaler Port.
-N = kein Remote Command ausführen.
-p = Externer SSH Port (NAT Port bei Firewall).
-T = kein Terminal öffnen.

Auf dem Host B muss der SSH Daemon konfiguriert und aktiviert sein, in der Konfigurationsdatei /etc/ssh/sshd_config sind folgende Einstellungen erforderlich, bei vielen Linux distributionen ist dies default.

  Die mit # auskommentierten Zeilen sind default Werte, zB. #AllowTcpForwarding ist per default yes.

Als SSH Server eignen sich viele Geräte, die auf Linux und FreeBSD OS laufen, so auch Synology NAS, FreeNAS, FreePBX Distro, OpenWrt, Rapberry Pi (Raspbian) und nun auch Windows Server, um nur einige zu nennen.

SSH Tunnel zu Remote Host C

In diesem Beispiel wird ein SSH Tunnel von Host A zu Host C aufgebaut, Host C ist ein RDS-Terminalserver, Host B dient als Port forwarder.

Abbildung: ssh tunnel host A to host C

Das Command im Linux Terminal auf Host A wie folgt ausführen:

Die Remotedesktop Sitzung zu Host C wird über localhost auf Host A aufgebaut, durch drücken der Taste Win + R wird Ausführen geöffnet, dazu die Eingabe mstsc /v:localhost mit OK bestätigen.

 In diesem Beispiel wird der Standard TCP Port 3389 für RDP als interner sowie auch als externer Port verwendet. Es können alle unprivilegierte Ports (-L) höher als 1024 verwendet werden, kommt ein anderer Port als 3389 zur Anwendung, dann muss der Port zur ausführung an RDP übergeben werden, zB: mstsc /v:localhost:44389

Bei Host B muss der Kernel für IP forwarding aktiviert sein, das Command hierfür in der Shell als root ist:

Alternativ wird mit echo in der Shell Console das selbe bewirkt:

Den aktuellen IPv4 forward Status wie folgt abfragen:

Mit 1 wird die aktivierung bestätigt, 0 gilt für die deaktivierung. Die Änderung ist nicht Boot persistent, damit nach dem nächsten start das IP forwarding wieder aktiv ist, editiert man mit nano oder sudo vi /etc/sysctl.conf

Es empfiehlt sich zur Authentifizierung ein SSH Schlüssel zu verwenden, ein Schlüsselpaar kann wie folgt erzeugt werden:

Den Public Key ~/.ssh/key_rsa.pub speichert man im Home Pfad des Benutzers, hier in diesem Beispiel auf dem Host B unter dem Pfad in der Datei ~/.ssh/authorized_keys, mehr dazu in diesem Artikel hier.

  Die Authentifizierung unter Verwendung von SSH Schlüssel ist nicht nur sicherer, es bieten sich weitere vorteile, Beispielweise wird der Anwender nicht aufgefordert ein Passwort eingeben zu müssen, auch lässt sich so der SSH Tunnel und weitere Commands aus einem Script ausführen.

SSH Tunnel unter macOS

Bei Apple macOS steht SSH erst nach der Aktivierung zur Verfügung, dies im Terminal wie folgt zur Ausführung kommt:

Danach kann der SSH Tunnel unter macOS aufgebaut werden.

Mit dem Remote Desktop for Mac wird jetzt bei Gateway localhost eingetragen und die RDP Session aufgebaut, auf diese weise sind Terminalserver geschützt und nur über SSH erreichbar.

macOS bietet auch die möglichkeit zur automatisierung und nutzt dazu launchd und die launch system services, folgendes Script wird angelegt unter:
@/Library/LaunchDaemons/server.hostc.client.cherry.home.plist mit folgendem Inhalt:

OpenSSH-Server Installation aus PowerShell

Bei Windows Server 2019 kann der OpenSSH-Server auch aus der PowerShell bereitgestellt werden.