Benutzer:Basti/VPN

Wechseln zu: Navigation, Suche

Hier beschreibe ich mein VPN-Setup mit aller nötiger Hard- und Software und insbesondere die Möglichkeit des verschlüsselten VoIPens. Dazu ist lediglich ein lokaler Telefonieserver nötig (sei es in Form eines Routers mit VoIP-Server oder einer Asterisk-Installation).

Wem VoIP und VPN in einem Satz komisch vorkommt, sei gesagt: wenn die Internetanbindung nicht zu schlecht ist, funktioniert das wunderbar. Hierzu sei auch auf die Artikel in der Wikipedia hingewiesen: deutsch/englisch (etwas ausführlicher).

Motivation

Durch den Gedanken angetrieben, verschlüsselt telefonieren zu können, und zwar ohne auf Softphone/Headset angewiesen zu sein, habe ich mir ein VPN mit OpenVPN aufgesetzt. Zum Telefonieren dient eine Fritz!Box 7170, die einen eingebauten lokalen VoIP-Server mitbringt. An die Fritz!Box können dann entweder per TAE-Buchse analoge Telefone angeschlossen oder beliebig viele Softphones angemeldet werden.

Im Klartext bedeutet das: mehrere LANs werden zu einem VPN zusammengefasst werden, indem sich dank VPN-Bridging alle Rechner so verhalten, als seien sie im selben lokalen Netz. Und in diesem Netzwerk loggen sich nun Softphones oder normale Analogtelefone per (erwähnter) Fritz!Box oder Telefone über weitere Router mit TAE-Buchsen (o.ä.) auf der Fritz!Box als Telefon-Server ein.

Fritz!Box Konfiguration

Im Webinterface der Fritz!Box 7170 können Geräte folgendermaßen registriert werden:

Einstellungen => Telefonie => Telefoniegeräte => Neues Gerät einrichten => Telefon (ggf. mit Anrufbeantworter) => LAN/WLAN (IP-Telefon)

Nachdem Benutzername und Passwort bekannt sind, können diese entweder zur Anmeldung eines Softphones (z.B. Linphone, Twinkle) oder aber als "VoIP-Anbieter-Login" auf z.B. einer weiteren Fritz!Box benutzt werden (sprich: der zweite VoIP-Router benutzt den ersten als Registrar).

Der VoIP-Server läuft ab Werk auf Port 5060.

Um nicht jedem Telefoniegerät eine "echte" Festnetznummer zuweisen zu müssen (zum ausschließlich internen Telefonierem im VPN) können Internetrufnummern angemeldet werden, die nicht existieren (z.B. als Registrar die lokale IP der Fritz!Box angeben). Per Telnet kann der Versuch unterbunden werden, die Nummer anzumelden [1].

Server-Konfiguration

Wie schon erwähnt, benutze ich die Variante des Ethernet Bridgings. Der Einfachheit halber nutze ich statische Schlüssel (ein Schlüssel pro VPN-Client).

Zur Erstellung des Bridgings finden sich für Linux-Nutzer gute Beispiel-Scripts.

/etc/openvpn/server.conf:

port 1194 # VPN Port
proto udp # Transportprotokoll
dev tap0 # virtuelles TAP Device
secret <Keyfile> # statischer Key
local <lokale IP> # lokale IP des VPN-Servers
cipher AES-256-CBC # Verschluesselungsmethode
comp-lzo # Kompression aktivieren
keepalive 10 120 # alle 10 Sekunden pingen mit 120 Sekunden Time-Out
verb 4 # Loggingstufe
log-append openvpn.log # Logs an Datei anhaengen

Client-Konfiguration

Auf der Clientseite wird das tap-Device automatisch erstellt.

client
port 1194 # VPN Port
proto udp # Transportprotokoll
dev tap # virtuelles TAP Device
remote <Server-IP> # Server IP
cipher AES-256-CBC # Verschluesselungsmethode
ifconfig <lokale IP im Zielnetz> <Subnetzmaske des Zielnetzes> # gewuenschte IP im Zielnetz
secret <Keyfile> # statischer Key
comp-lzo # Kompression aktivieren
verb 4 # Loggingstufe
log-append openvpn.log # Logs an Datei anhaengen

Nachdem das VPN läuft und die Anmeldung am lokalen VoIP-Server geglückt ist, kann intern unter Angabe der Nebenstelle (natürlich kostenlos) telefoniert werden:

**<Nebenstelle>