IP-Telefone mit einer externen SIP-Telefonanlage per OpenVPN verbinden

IP-Telefone mit einer externen SIP-Telefonanlage per OpenVPN verbinden

datamate bietet seit dem Frühjahr 2023 keine Leistungen mehr zum Thema VoIP/3CX an. Bitte wenden Sie sich vertrauensvoll an unseren Nachfolger systemwerk.

Im Büroeinsatz oder im Home Office will man manchmal auf ein gutes altes Tischtelefon einfach nicht verzichten. Solange sich die Telefonanlage im gleichen Netzwerk befindet oder direkt über das Internet erreichbar ist, kann die Einrichtung des Telefons nach Schema F erfolgen. Wenn aber die Telefonanlage aus Sicherheitsgründen nur über eine VPN-Verbindung erreichbar ist – was wir sehr empfehlen – dann ist die Einrichtung komplizierter – insbesondere bei einer Zweifaktorauthentifizierung. Mit diesem Beitrag wollen wir dabei Hilfestellung geben. Am Beispiel eines Yealink IP-Telefons der T4-Serie zeigen wir, wie man ein IP-Telefon über eine VPN-Verbindung mit der Askozia-Telefonanlage unseres Small Business Servers Fellow verbindet und so z.B. auch von zu Hause aus die Firmen-Telefonananlage nutzen kann.

** Update Mai 2018: Aufgrund der Einstellung der Askozia PBX-Software in Folge der Akquisition des Herstellers durch 3CX ist die Telefonanlage nicht mehr Bestandteil des Softwarepakets unsers Small Business Servers. Die generellen Aussagen des Artikels sind weiterhin gültig. **

Augen auf beim IP-Telefon Kauf

Befinden sich IP-Telefon und Telefonanlage im gleichen Netzwerk oder ist die Telefonanlage direkt aus dem Internet per URL erreichbar (wie z.B. bei der Cloud-Telefonanlage von Sipgate), dann muss man beim Kauf der Telefoniegeräte wenig beachten. Der Aufbau einer solchen Verbindung ist eine Pflichtfunktionalität aller IP-Telefone. Anders sieht es aus, wenn sich die Telefonanlage hinter einer Firewall befindet und die Kommunikation zwischen Telefon und Anlage eine VPN-Verbindung erfordert. Der Grund: VPN-Unterstützung und erst recht OpenVPN-Unterstützung bringt nicht jedes IP-Telefon mit.

Wir bei datamate arbeiten gerne mit den hochwertigen Yealink IP-Telefonen der T4-Serie. Diese bieten ein sehr gutes Preis-Leistungsverhältnis und – für diesen Beitrag relevant – unterstützen von Hause aus OpenVPN. (OpenVPN ist der VPN-Standard, den wir auf unseren Servern verwenden.) Wacklige Adapterlösungen oder Firewall-zu-Firewall VPNs, wie man sie typischerweise bei der Anbindung von zwei Firmenstandorten nutzt, erspart man sich damit.

Direkte Verbindung zwischen Telefon und Telefonanlage über das Internet

In der Theorie ist das Vorgehen zum Verbinden des Telefons mit der Telefonanlage über das Internet per VPN ganz einfach: Man versorgt das Telefon mit einem VPN-Zertifikat, das SIP-Telefon baut mit diesem eine Verbindung ins Netzwerk der VoIP-Telefonanlage auf und meldet sich dann mit den Zugangsdaten an der Telefonanlage an. Schon kann man lostelefonieren.

In der Praxis ist es leider nicht ganz so einfach. Die Telefone bieten meist keine komfortable Benutzeroberfläche wie z.B. ein OpenVPN-Client für Windows & Co, die Rückmeldung vom Telefon beschränkt sich in aller Regel auf “geht” oder “geht nicht” und auch die Dokumentation hat ihre Tücken. Bei den von uns für diesen Beitrag herangezogenen Yealink-Telefonen haben wir in den Anleitungen des Herstellers gleich mehrere Fehler gefunden. Manchmal stimmen die Dateipfade nicht, mal werden Dateinamen durcheinandergewirbelt oder auf wichtige Aspekte wird nicht hingewiesen. Jeder einzeln Fehler kann den Verbindungsaufbau behindern und zu viel Frust führen.

Die folgende Beschreibung basiert auf einem eingerichteten datamate-Fellow mitsamt konfiguriertem OpenVPN-Dienst und Askozia-Telefonanlage. Wenn Du ein anderes System haben oder andere Softwarelösungen verwenden und Hilfe bei der Einrichtung benötigen, dann rufe uns an: +49 (0)6131 3270777. Wir helfen Dir gerne bei der Anbindung Deines Telefons per VPN.

Schritt 1: Firmware Update

Nicht zwangsläufig nötig, aber ein Firmware Update des Telefons verhindert manchmal ungewollte Probleme. Zum Zeitpunkt der Veröffentlichung dieses Textes war die Version 81 (36.81.0.110) aktuell, welche wir auch für unsere Tests mit dem T41P, T42G und T46G verwendet haben.

Die jeweils aktuelle Firmware erhält man auf den Support-Seiten der Telefonhersteller. Für die populärsten Telefonmodelle der großen Hersteller Gigaset, Grandstream, Snom und Yealink haben wir hier die Download-Links zusammen gestellt.

Schritt 2: VPN-Zertifikat erstellen

Ist auf Fellow der VPN-Server konfiguriert, dann ist in den Benutzereinstellungen mit einem Knopfdruck ein VPN-Zertifikat erzeugt und mit einem weiteren aktiviert. Der Download des Zertifikats erfolgt über den persönlichen Bereich des Benutzers.

Damit ist das Zertifikat aber leider noch nicht abschliessend vorbereitet. Die Yealink Telefone können mit dem serverseitig erzeugten VPN-Zertifikat nicht umgehen. Das Zertifikat muss darum “zurechtmassiert” werden.

Schritt 3: VPN-Zertifikat modifizieren

Die Yealink-Telefone benötigen die vier Komponenten, die in jeder von Fellow erzeugten OVPN-Datei enthalten sind, in separaten Dateien. Diese Separation kann man natürlich manuell durchführen, einfacher ist es aber mit diesem Bash-Skript aus unserer Entwicklungsabteilung. Das Skript separiert, die vom Server erzeugte OVPN-Datei, feinsäuberlich in diese drei Dateien:

  • client.crt (Zertifikat des Clients)
  • ca.crt (Zertifikat der Certificate Authority)
  • client.key (privater Schlüssel des Zertifikats)
Teilung der OVPN-Datei per Bash-Skript

Zur Ausführung des Skripts benötigt man eine Bash-Konsole. Eine solche gibt es natürlich in jedem Linux-System; seit neuestem aber auch nach entsprechender Aktivierung unter Windows 10.

Speichere die ovpn-split.sh Datei im gleichen Verzeichnis wie die heruntergeladene Zertifikatsdatei. Danach führe den folgenden Befehl aus:

./ovpn-split.sh ./zertifikat.ovpn

Das Skript tut also nichts anderes, als die drei in der OVPN-Datei enthaltenen Zertifikate heraus zu lösen. Die Zertifikatsinfos müssen dann noch aus der ursprünglichen OVPN-Datei entfernt und als vpn.cnf abgespeichert werden. Am Ende sollte die Konfigurationsdatei so aussehen:

client
nobind
proto tcp
remote URL 1194
dev tun
comp-lzo
verb 3
resolv-retry infinite
persist-key
persist-tun
ca /config/openvpn/keys/ca.crt
cert /config/openvpn/keys/client.crt
key /config/openvpn/keys/client.key

Wichtig: “URL” in Zeile 4 der vpn.cnf muss natürlich durch die öffentliche IP, die DynDNS-Adresse oder die URL des VPN-Servers ersetzt werden – jenachdem was relevant. (Wichtig: Die IP des VPN-Servers und der Telefonanlage ist bei Fellow unterschiedlich, da die Askozia in einer separaten Virtuellen Maschine läuft.) Gleiches gilt für den hier verwendenten Standard Port von VPN (1194) oder andere Konfigurationselemente, wenn diese von der Konfiguration des OpenVPN-Servers von Fellow abweichen.

Wenn der VPN-Server auf Fellow mit Zwei-Faktorauthentifizierung konfiguriert ist und die Verbindung einen Benutzernamen und ein Passwort erwartet, dann muss in der vpn.cnf noch folgende Zeile ergänzt werden:

auth-user-pass /config/openvpn/keys/auth.txt

In einer separaten auth.txt sind dann Benutzername und Passwort anzugeben. Dies ist notwendig, da die Yealink Telefone keinen Prompt zur Eingabe des zweiten Authentifizierungsfaktors unterstützen.

Benutzername steht in der ersten Zeile
Das Passwort in der zweiten Zeile

Anschliessend sind alle vier Dateien (bei Zwei-Faktorauthentifizierung fünf Dateien) in ein TAR-Archiv zu verpacken. Dabei ist zwingend auf diese Struktur zu achten:

    vpn.cnf
    /keys/ca.crt
    /keys/client.crt
    /keys/client.key
    /keys/auth.txt
Erzeugung des TAR-Archivs mit der VPN-Konfiguration in einer Bash-Konsolte

Um diese Struktur in der TAR-Datei abzubilden, erstellt man für dafür am besten einen separaten Ordner. In diesem legt man einen Unterordner “keys” an. Die TAR-Datei erstellt man dann unter Linux mit dem folgenden Befehl:

tar -cvpf openvpn.tar ./*

Diese Struktur ist sehr wichtig, weil nur wenn diese eingehalten wird die Yealink Telefone die Zertifikats- und Konfigurationsdateien an die richtige Stelle auf dem Telefon kopieren.

Unter Windows verwendet man übrigens am besten das Komprimierungsprogramm 7-Zip. Auch hier muss peinlichst auf die richtige Struktur der gepackten Dateien geachtet werden.

Die VPN-Verbindung zwischen dem IP-Telefon und der Telefonanlage ist jetzt nur noch ein kleines Stückchen entfernt.

Schritt 4: Import der VPN-Konfiguration in das Telefon

Der Import der VPN-Konfiguration in Form der TAR-Datei erfolgt sehr einfach über das Webinterface. Rufe in einem beliebigen Browser die IP-Adresse des Telefons auf, logge Dich sich mit Benutzername und Passwort ein und lade in der Registerkarte “Network” die VPN-Datei hoch (siehe Abbildung). Als letztes noch den VPN-Dienst aktivieren und speichern. So einfach ist das.

Import der OpenVPN-Konfiguration über das Webinterface eines Yealink Telefons der Serie T4

Was jetzt noch fehlt, ist ein Reboot des Telefons. Bei erfolgreichem Verbindungsaufbau der VPN-Verbindung leuchtet im Display des Telefons das VPN-Icon. Leuchtet das Icon nicht, heißt es Ursachenforschung betreiben. Besonders behilflich ist dabei das Log des VPN-Servers, das man bequem über das Cockpit von Fellow einsehen kann. Dort kann man z.B. feststellen, ob eine Verbindungsanfrage vom Telefon beim VPN-Server ankam. Gab es eine solche nicht, dann ist vermutlich die Ordnerstruktur der TAR-Datei fehlerhaft, die Zieladresse in Zeile 4 der vpn.cnf falsch oder eine Firewall blockiert den Verbindungsaufbau. Wenn es eine erfolglose Authentifizierungsanfrage gab, dann ist zu prüfen, ob das VPN-Zertifikat aktiviert ist und die Zertifikats-Dateien korrekt sind. Im Falle der Zwei-Faktorauthentifizierung kann es auch sein, dass der zweite Faktor nicht korrekt übergeben wird.

Verbindung zur Telefonanlage

Die Konfiguration des Telefons ist mit der Einrichtung der VPN-Verbindung noch nicht abgeschlossen. Öffne die Weboberfläche des Yealink-Telefons erneut und gebe im Reiter “Account” die Zugangsdaten ein. Dies sind die interne IP-Adresse der Telefonanlage, die Durchwahl des Benutzers als Benutzername und das eigene Passwort. Dabei muss man nichts besonderes beachten. Das zu Beginn erwähnte Schema F lässt grüßen. Ist die VPN-Verbindung vom Telefongerät aufgebaut, dann hat das Telefon Zugriff als ob es innerhalb des Netzwerks der Telefonanlage ist.

Noch ein wichtiger Hinweis: Autoprovisionierung funktioniert über eine VPN-Verbindung leider nicht. An der manuellen Konfiguration führt leider kein Weg vorbei.

So geht IP-Telefonie über VPN

Gerade für die Anbindung eines Heimarbeitsplatzes an die Telefonanlage eines Unternehmens ist das hier beschriebene Vorgehen gut geeignet. Wir hoffen mit diesem Beitrag eine praktikable Anleitung zur Verbindung von IP-Telefonen mit einer VoIP-Telefonanlage über ein VPN-Verbindung geliefert zu haben.

Wenn Du andere Telefone verwenden und Deine Erfahrungen mit anderen Nutzern teilen willst, dann schreibe uns bitte an info@datamate.org. Wir fügen diese Informationen gerne hinzu.

geschrieben von

Ralf Dyllick-Brenzinger