Asterisk - Konfig Sipgate

für Gesprächs- und Transportverschlüsselung

Bei der Konfiguration für Sipgate habe ich mich für den Weg über die pjsip_wizard.conf Datei entschieden. Dieser Weg ist etwas übersichtlicher als die klassische PJSIP-Konfiguration.

Als erstes müssen wir einen eigenen Transport erstellen (das sollte man bei TLS für jede registrierte Rufnummer / jedes registrierte Konto machen). Diese habe ich in eine eigene Datei ausgelagert und pjsip-tls-transports.conf genannt. Diese Datei muss dann in der pjsip.conf eingebunden werden mittels dem Befehl #include pjsip-tls-transports.conf. Der Inhalt sieht wie folgt aus, das lokale Netz mit local_net ist natürlich anzupassen, ggf. auch der Pfad zur Datei, die sämtliche ca-Zertifikate enthält:

[transport-sipgate-tls]
type = transport
protocol = tls
bind = 0.0.0.0:0
local_net=192.168.2.0/24
ca_list_file = /etc/ssl/certs/ca-certificates.crt
method = tlsv1_2
verify_server = yes
allow_reload = no
tos = 0xb8
cos = 3

Die Datei pjsip_wizard.conf wurde für sipgate um folgendes ergänzt:

[trunk_defaults](!)
type = wizard
sends_auth = yes
sends_registrations = yes
endpoint/allow_subscribe = no
endpoint/allow = !all,g722,alaw
endpoint/rewrite_contact = yes
endpoint/rtp_symmetric = true
endpoint/direct_media = no
endpoint/language = de
aor/qualify_frequency = 30
registration/expiration = 1800

Dieser Abschnitt ist ein sogenanntes Template (oder eine Vorlage), auf der man sämtliche anderen Konten aufbauen kann, ohne sich mit den Anweisungen wiederholen zu müssen. Erkennbar ist dies an dem (!) hinter der Konfigurations-Definition.

Nachfolgend die Konfiguration für ein sipgate-Konto. Die Kontodaten müssen natürlich angepasst werden, ebenso der entsprechende Kontext, in dem ankommende Gespräche abgefangen werden sollen. Die benutzten Server-Bereiche in der Identify-Sektion konnte ich den Hilfeseiten von Sipgate entnehmen. Zu beachten ist, dass ankommende Gespräche in die s-Extension fallen, sobald das Konto über den PJSIP-Wizard erstellt worden ist. Ob man dies gezielt ändern kann, weiß ich nicht. Die Sipgate-Konfiguration "erbt" die Einstellungen des Abschnitts trunk_defaults

;==== sipgate Config ====

[sipgate](trunk_defaults)
transport = transport-sipgate-tls
endpoint/context = sipgate-in
remote_hosts = sipgate.de
accepts_registrations = no
endpoint/send_rpid = yes
endpoint/send_pai = yes
endpoint/from_user = sipgate-benutzername
endpoint/from_domain = sipgate.de
client_uri_pattern = sip:sipgate-benutzername@sip.sipgate.de
server_uri_pattern = sip:sip.sipgate.de
contact_pattern = sip:sipgate.de
endpoint/force_rport = true
endpoint/incoming_call_offer_pref = remote
outbound_auth/username = sipate-benutzername@sipgate.de
outbound_auth/password = sipgate-sip-passwort
endpoint/outbound_proxy = sip:sip.sipgate.de\;lr
aor/outbound_proxy = sip:sip.sipgate.de\;lr
registration/outbound_proxy = sip:sip.sipgate.de\;lr
identify/match = 217.10.64.0/20,217.116.112.0/20,212.9.32.0/19
endpoint/disallow = all
endpoint/allow = g722,ulaw,alaw
endpoint/media_encryption = sdes

Wie man erkennen kann, ist die Medien-Verschlüsselung mittels sdes aktiviert. Mit dieser Konfiguration sollte es nun möglich sein, Transport- und Gesprächsverschlüsselung über sipgate einzurichten. ACHTUNG: Die Gesprächsverschlüsselung gilt nur bis zum Endpunkt bei sipgate. Es ist noch keine Ende-zu-Ende Verschlüsselung!!!