42
Zellescher Weg 12 Willers-Bau A217 Tel. +49 351 - 463 - 35653 Sebastian Liebscher ([email protected]) Kompetenzzentrum für Videokonferenzdienste (VCC) Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme 20. Workshop Videokonferenzen im Wissenschaftsnetz

Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

Zellescher Weg 12

Willers-Bau A217

Tel. +49 351 - 463 - 35653

Sebastian Liebscher ([email protected])

Kompetenzzentrum für Videokonferenzdienste (VCC)

Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme

20. Workshop Videokonferenzen im Wissenschaftsnetz

Page 2: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

2Sebastian Liebscher

Inhalt

OpenSIPS – ein Open Source Projekt

Überblick zur Installation / grundlegenden Konfiguration

Bedienung

– OpenSIPS Control Panel

– Einstellungen am SIP-Endgerät

– Kontrollmöglichkeiten / Fehlersuche

– Rufmöglichkeiten

Nutzung von TLS / Zertifikatsmanagement

Nutzung weiterer Module / Skripting

– Beispiele: Domain, Dialplan

– Schutz der SIP-Endgeräte / Maßnahmen zum Spamschutz

Page 3: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

3

OPENSIPS –EIN OPEN SOURCE PROJEKT

Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme

Sebastian Liebscher

Page 4: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

4

OpenSIPS – ein Open Source Projekt

OpenSIPS steht für: Open SIP Server

Open Source: http://www.opensips.org

Funktionalitäten: (http://www.opensips.org/About/Features)

– SIP Registrar

– SIP Router / Proxy

– SIP Redirect Server

– u.v.m.

Weitreichende Anpassungsmöglichkeiten:

– vorgefertigte Module

– eigene Skriptsprache

Läuft auf Linux-basierten Systemen

Derzeit verwendete Version im VCC: 2.2.4-1 auf Debian 8 („jessie“)

Sebastian Liebscher

Page 5: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

5

ÜBERBLICK ZUR INSTALLATION / GRUNDLEGENDEN KONFIGURATION

Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme

Sebastian Liebscher

Page 6: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

6

Überblick zur Installation / grundlegenden Konfiguration I

Empfehlung:

– Verwendung eines offiziellen Repositorys zum Erhalt der Pakete

– offiziell verfügbar: Debian/Ubuntu, RedHat/CentOS/Fedora

– Repositorys sind mit Schlüsseln versehen

– Module als Pakete einfach installierbar (auch nachträglich)

Alternative:

– Nutzung von Tarballs oder Checkout über GIT/SVN

– Kompilierung über mitgeliefertes Tool menuconfig möglich

– Compile Flags / Module dabei auswählbar

– Abhängigkeiten müssen manuell aufgelöst werden

Sebastian Liebscher

Page 7: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

7

Überblick zur Installation / grundlegenden Konfiguration II

Einstellungen in /etc/hosts, /etc/hostname, /etc/resolv.conf setzen

Wichtige Pfade zu Konfigurationsdateien:

– /etc/opensips/, /etc/default/, /etc/init.d/

Anpassungen in /etc/opensips/opensipsctlrc, /etc/opensips/osipsconsolerc:

– SIP-Domäne, Datenbankverbindung, …

Erzeugung der notwendigen Datenbanken mittels opensipsdbctl create

Tool zur Erstellung von Konfigurations- /Skriptvorlagen: osipsconfig

Sebastian Liebscher

Page 8: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

7

Überblick zur Installation / grundlegenden Konfiguration II

Einstellungen in /etc/hosts, /etc/hostname, /etc/resolv.conf setzen

Wichtige Pfade zu Konfigurationsdateien:

– /etc/opensips/, /etc/default/, /etc/init.d/

Anpassungen in /etc/opensips/opensipsctlrc, /etc/opensips/osipsconsolerc:

– SIP-Domäne, Datenbankverbindung, …

Erzeugung der notwendigen Datenbanken mittels opensipsdbctl create

Tool zur Erstellung von Konfigurations- /Skriptvorlagen: osipsconfig

Sebastian Liebscher

Page 9: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

7

Überblick zur Installation / grundlegenden Konfiguration II

Einstellungen in /etc/hosts, /etc/hostname, /etc/resolv.conf setzen

Wichtige Pfade zu Konfigurationsdateien:

– /etc/opensips/, /etc/default/, /etc/init.d/

Anpassungen in /etc/opensips/opensipsctlrc, /etc/opensips/osipsconsolerc:

– SIP-Domäne, Datenbankverbindung, …

Erzeugung der notwendigen Datenbanken mittels opensipsdbctl create

Tool zur Erstellung von Konfigurations- /Skriptvorlagen: osipsconfig

– erzeugte Konfigurationsdatei: /etc/opensips/opensips.cfg

– Anpassungen nötig, z.B. bei den IP-Adressen, der Datenbankverbindung,den Dateipfaden etc. (markiert mit # CUSTOMIZE ME)

Sebastian Liebscher

Page 10: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

7

Überblick zur Installation / grundlegenden Konfiguration II

Tool zur Erstellung von Konfigurations- /Skriptvorlagen: osipsconfig

– erzeugte Konfigurationsdatei: /etc/opensips/opensips.cfg

– Anpassungen nötig, z.B. bei den IP-Adressen, der Datenbankverbindung,den Dateipfaden etc. (markiert mit # CUSTOMIZE ME)

– einzelne manuelle Einträge

Sebastian Liebscher

Page 11: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

8

Überblick zur Installation / grundlegenden Konfiguration III

Nutzung von Log-Files:

– Eintrag in /etc/rsyslog.conf: local1.* -/var/log/opensips.log

– Neustart rsyslog

Manueller Start: opensips -f /etc/opensips/opensips.cfg

Start von OpenSIPS als Service:

– Änderungen in /etc/defaults/opensips, (evtl. auch /etc/init.d/opensips)

– Nutzung: /etc/init.d/opensips {start|stop|restart|force-reload|status}

Erforderliche DNS + DNS-SRV-Einträge:

– A-Record: sip-domain => OpenSIPS-Server

– DNS-SRV-Records: {_sip|_sips}.{_tcp|_udp|_tls}.sip-domain=> OpenSIPS-Server, Port {5060|5061}

Sebastian Liebscher

Page 12: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

9

BEDIENUNGEinsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme

Sebastian Liebscher

Page 13: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

10

OpenSIPS Control Panel I

Grafische Benutzeroberfläche für OpenSIPS, php-basiert

Download: http://controlpanel.opensips.org/ als Tarball oder SVN Checkout

Paketabhängigkeiten:libapache2-mod-php5, php5, php5-cli, php5-gd, php5-mysql, php-pear, php5-xmlrpc

Installationen: pear install MDB2, pear install MDB2#mysql, pear install log

Einbindung in Apache2 z.B. mittels Alias- und Directory-Statements

Erforderlich: php.ini: short_open_tag = On

Datenbankerweiterung notwendig:

– Einfügen von ocp_admin_privileges.mysql,cdrs.mysql, tables.mysql in die Datenbank

– Einrichtung erster Nutzer in Tabelle ocp_admin_privileges:INSERT INTO ocp_admin_privileges values('admin','admin',md5('admin:admin'),'all','all')

Sebastian Liebscher

Page 14: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

11

OpenSIPS Control Panel II

Weitere Anpassungen in den php-Dateien:

– Dateipfade, Datenbankverbindung, OpenSIPS fifo-Queue

Eintrag in /etc/crontab:

– * * * * * root cd /var/www/opensips-cp/cron_job/;php get_opensips_stats.php > /dev/null

Beispiele für die Nutzung:

– Eintrag von SIP-Domänen

– Anlegen von Zugängen / Accounts

– Anzeige aktiver Calls, vergangener Calls

– Direktzugriff auf verschiedene Module / Tabellen der Datenbank

Achtung: Nicht alle Daten der Datenbank / Module sind abgebildet, es können aber eigene Menüpunkte programmiert werden

Sebastian Liebscher

Page 15: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

11

OpenSIPS Control Panel II

Weitere Anpassungen in den php-Dateien:

– Dateipfade, Datenbankverbindung, OpenSIPS fifo-Queue

Eintrag in /etc/crontab:

– * * * * * root cd /var/www/opensips-cp/cron_job/;php get_opensips_stats.php > /dev/null

Beispiele für die Nutzung:

– Eintrag von SIP-Domänen

– Anlegen von Zugängen / Accounts

– Anzeige aktiver Calls, vergangener Calls

– Direktzugriff auf verschiedene Module / Tabellen der Datenbank

Achtung: Nicht alle Daten der Datenbank / Module sind abgebildet, es können aber eigene Menüpunkte programmiert werden

Sebastian Liebscher

Page 16: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

11

OpenSIPS Control Panel II

Weitere Anpassungen in den php-Dateien:

– Dateipfade, Datenbankverbindung, OpenSIPS fifo-Queue

Eintrag in /etc/crontab:

– * * * * * root cd /var/www/opensips-cp/cron_job/;php get_opensips_stats.php > /dev/null

Beispiele für die Nutzung:

– Eintrag von SIP-Domänen

– Anlegen von Zugängen / Accounts

– Anzeige aktiver Calls, vergangener Calls

– Direktzugriff auf verschiedene Module / Tabellen der Datenbank

Achtung: Nicht alle Daten der Datenbank / Module sind abgebildet, es können aber eigene Menüpunkte programmiert werden

Sebastian Liebscher

Page 17: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

12

Einstellungen am SIP-Endgerät

Bei Geräten die auch andere Protokolle (z.B. H.323) beherrschen:

– Aktivierung SIP als Protokoll

– „Lauschen“ auf Port 5060 bzw. 5061

Auswahl Transportprotokoll (TCP, UDP, TLS)

URI (name@sip-domain), z.B. [email protected]

Login mit erzeugten Credentials

SIP-Proxy (OpenSIPS-Server)

Sebastian Liebscher

Page 18: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

13

Kontrollmöglichkeiten / Fehlersuche

Am SIP-Endgerät

Sebastian Liebscher

Page 19: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

13

Kontrollmöglichkeiten / Fehlersuche

Am SIP-Endgerät

Mittels netstat –tulpn | grep opensips

Sebastian Liebscher

Page 20: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

13

Kontrollmöglichkeiten / Fehlersuche

Am SIP-Endgerät

Mittels netstat –tulpn | grep opensips

In den Logs: /var/logs/opensips.log

Sebastian Liebscher

Page 21: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

13

Kontrollmöglichkeiten / Fehlersuche

Am SIP-Endgerät

Mittels netstat –tulpn | grep opensips

In den Logs: /var/logs/opensips.log

Im OpenSIPS Control Panel, z.B.:

– laufende Calls: Dialog

– abgeschlossene Calls: CDR Viewer

Sebastian Liebscher

Page 22: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

13

Kontrollmöglichkeiten / Fehlersuche

Sebastian Liebscher

Page 23: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

13

Kontrollmöglichkeiten / Fehlersuche

Sebastian Liebscher

Page 24: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

13

Kontrollmöglichkeiten / Fehlersuche

Am SIP-Endgerät

Mittels netstat –tulpn | grep opensips

In den Logs: /var/logs/opensips.log

Im OpenSIPS Control Panel, z.B.:

– laufende Calls: Dialog

– abgeschlossene Calls: CDR Viewer

In der Datenbank, z.B.:

– fehlgeschlagene Rufe: Tabelle missedCalls

– angemeldete SIP-Endgeräte: Tabelle location

Sebastian Liebscher

Page 25: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

13

Kontrollmöglichkeiten / Fehlersuche

Am SIP-Endgerät

Mittels netstat –tulpn | grep opensips

In den Logs: /var/logs/opensips.log

Im OpenSIPS Control Panel, z.B.:

– laufende Calls: Dialog

– abgeschlossene Calls: CDR Viewer

In der Datenbank, z.B.:

– fehlgeschlagene Rufe: Tabelle missedCalls

– angemeldete SIP-Endgeräte: Tabelle location

Mittels Kommandozeilen-Tools, z.B.:

– Serverstatistiken: opensipsctl monitor

– angemeldete SIP-Endgeräte: opensipsctl ul show, opensipsctl online

Sebastian Liebscher

Page 26: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

13

Kontrollmöglichkeiten / Fehlersuche

Am SIP-Endgerät

Mittels netstat –tulpn | grep opensips

In den Logs: /var/logs/opensips.log

Im OpenSIPS Control Panel, z.B.:

– laufende Calls: Dialog

– abgeschlossene Calls: CDR Viewer

In der Datenbank, z.B.:

– fehlgeschlagene Rufe: Tabelle missedCalls

– angemeldete SIP-Endgeräte: Tabelle location

Mittels Kommandozeilen-Tools, z.B.:

– Serverstatistiken: opensipsctl monitor

– angemeldete SIP-Endgeräte: opensipsctl ul show, opensipsctl online

Sebastian Liebscher

Page 27: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

14

Rufmöglichkeiten

Varianten bzgl. Registrationsstatus:

– „intern“ zu „intern“, d.h. nur am Server registrierte SIP-Endgeräte dabei:• Kurzwahl des Username bzw. Alias möglich (SIP-Endgeräte fügen

dann eigene SIP-Domäne hinzu)• natürlich auch Rufe mittels name/alias@sip-domain möglich

– „intern“ zu „extern“: Rufe mittels uri@other-sip-domain

– „extern“ zu „intern“: Rufe mittels name/alias@sip-domain

Sebastian Liebscher

Page 28: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

14

Rufmöglichkeiten

Varianten bzgl. Registrationsstatus:

– „intern“ zu „intern“, d.h. nur am Server registrierte SIP-Endgeräte dabei:• Kurzwahl des Username bzw. Alias möglich (SIP-Endgeräte fügen

dann eigene SIP-Domäne hinzu)• natürlich auch Rufe mittels name/alias@sip-domain möglich

– „intern“ zu „extern“: Rufe mittels uri@other-sip-domain

– „extern“ zu „intern“: Rufe mittels name/alias@sip-domain

Sebastian Liebscher

Page 29: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

14

Rufmöglichkeiten

Varianten bzgl. Registrationsstatus:

– „intern“ zu „intern“, d.h. nur am Server registrierte SIP-Endgeräte dabei:• Kurzwahl des Username bzw. Alias möglich (SIP-Endgeräte fügen

dann eigene SIP-Domäne hinzu)• natürlich auch Rufe mittels name/alias@sip-domain möglich

– „intern“ zu „extern“: Rufe mittels uri@other-sip-domain

– „extern“ zu „intern“: Rufe mittels name/alias@sip-domain

Varianten bzgl. Transportprotokoll:

– TCP / UDP / TLS möglich auf Sender- und Empfangsseite (9 Varianten)

– einzige „Hürde“ ist für TLS das Zertifikatsmanagement

Sebastian Liebscher

Page 30: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

15

NUTZUNG VON TLS / ZERTIFIKATSMANAGEMENT

Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme

Sebastian Liebscher

Page 31: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

16

Nutzung von TLS / Zertifikatsmanagement I

Antrag / Erhalt Zertifikate über DFN-PKI:

– Erstellung Zertifikatsrequest mittels openssl

Zertifikat für OpenSIPS-Server:

– Zertifikatsprofil: VoIP Server

– eindeutiger Name: DNS-Name OpenSIPS-Server

– alternative Namen: DNS-Name OpenSIPS-Server und SIP-Domäne

Zertifikate für SIP-Endgeräte:

– nicht unbedingt notwendig bzw. Build-In-„Standard-Zertifikat“ möglich

– analog zu Server, Verwendung DNS-Name des SIP-Endgeräts

Allgemein: DFN-PKI-Stammzertifikate bei OpenSIPS-Server / SIP-Endgeräten als vertrauenswürdige CA zu hinterlegen

Sebastian Liebscher

Page 32: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

17

Nutzung von TLS / Zertifikatsmanagement II

Erforderliche Änderungen in /etc/opensips/opensips.cfg:

Fallstrick bei Timeouts:

– modparam("tls_mgm","tls_send_timeout", zeitwert)

– modparam("tls_mgm","tls_handshake_timeout", zeitwert)

Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen:

– require_cert auf 0 oder verify_cert auf 0 setzen

– Überprüfung des SIP-Endgeräts dann nicht am Zertifikat möglich, aber Verbindungsaufbau verschlüsselt

Sebastian Liebscher

Page 33: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

17

Nutzung von TLS / Zertifikatsmanagement II

Erforderliche Änderungen in /etc/opensips/opensips.cfg:

Fallstrick bei Timeouts:

– modparam("tls_mgm","tls_send_timeout", zeitwert)

– modparam("tls_mgm","tls_handshake_timeout", zeitwert)

Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen:

– require_cert auf 0 oder verify_cert auf 0 setzen

– Überprüfung des SIP-Endgeräts dann nicht am Zertifikat möglich, aberVerbindungsaufbau verschlüsselt

Sebastian Liebscher

Page 34: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

17

Nutzung von TLS / Zertifikatsmanagement II

Erforderliche Änderungen in /etc/opensips/opensips.cfg:

Fallstrick bei Timeouts:

– modparam("tls_mgm","tls_send_timeout", zeitwert)

– modparam("tls_mgm","tls_handshake_timeout", zeitwert)

Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen:

– require_cert auf 0 oder verify_cert auf 0 setzen

– Überprüfung des SIP-Endgeräts dann nicht am Zertifikat möglich, aberVerbindungsaufbau verschlüsselt

Sebastian Liebscher

Page 35: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

18

Nutzung von TLS / Zertifikatsmanagement III

Möglichkeit unterschiedlicher Einstellungen für TLS-Verbindungen:

– eingehende TLS-Verbindungen zum OpenSIPS-Server: server_domain

– ausgehende TLS-Verbindungen vom OpenSIPS-Server: client_domain

– ist Socket-basiert (IP-Adresse:Port)

Sebastian Liebscher

Page 36: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

19

NUTZUNG WEITERER MODULE / SKRIPTING

Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme

Sebastian Liebscher

Page 37: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

20

Beispiele: Domain, …

Hilfreich für Skripting:

– https://www.opensips.org/Documentation/Script-CoreVar-2-2

– https://www.opensips.org/Documentation/Script-CoreFunctions-2-2

– https://www.opensips.org/Documentation/Script-Statements-2-2

Modul Domain:

– Änderung in /etc/opensips/opensips.cfg nötig

– Angabe SIP-Domänen in Datenbank / über OpenSIPS Control Panel

– angegebene SIP-Domänen sind „lokal“

– Überprüfung, dass mindestens eine Seite (Rufer, Gerufener) lokal ist

Sebastian Liebscher

Page 38: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

21

Beispiele: …, Dialplan

Umschreibung von Strings, typischerweise der Request -URI

String matching bzw. Regex matching

Angabe der Regeln in Datenbank / über OpenSIPS Control Panel:

Nutzung in /etc/opensips/opensips.cfg:

– dp_translate("0","$ru/$ru");

Sebastian Liebscher

Page 39: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

22

Schutz der SIP-Endgeräte / Maßnahmen zum Spamschutz I

SIP-Endgeräte sollten nach Registrierung nicht von „außen“über Port 5060 / 5061 direkt erreichbar sein (Umgehung des Servers):

– bei einigen Geräten direkt einstellbar bzw. Firewall, ACL, …

– Signalisierung über OpenSIPS-Server erzwungen(Medienströme (RTP/SRTP) direkt über dynamisch ausgehandelte Ports)

Überwiegender Anteil der SIP-Spamcalls hat folgende Form (To-URI):

– numbers@ip-address

SIP-Spamcalls kommen noch am OpenSIPS-Server an

Block der Requests mit IP-Adresse als SIP-Domäne (/etc/opensips/opensips.cfg):

Sebastian Liebscher

Page 40: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

23

Schutz der SIP-Endgeräte / Maßnahmen zum Spamschutz II

Reguläre Rufe zu registrierten Endgeräten müssen erfolgen durch:

– name/alias@sip-domain, wobei sip-domain ein DNS-Name ist

Sebastian Liebscher

Page 41: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

24

ZUSAMMENFASSUNGEinsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme

Sebastian Liebscher

Page 42: Einsatz von OpenSIPS als SIP-Server für Videokonferenzsysteme · Falls nicht alle SIP-Endgeräte ein überprüfbares Zertifikat besitzen: – require_cert auf 0 oder verify_cert

25

Zusammenfassung

Installation / Konfiguration nicht selbsterklärend, Dokumentation gut nutzbar, trotzdem recht zeitintensiv, Methode Trial & Error

OpenSIPS Control Panel erleichtert typische Tätigkeiten

Zahlreiche Stellen an denen Fehler gesucht werden können erzwingen einen gewissen Überblick

Gute Nutzbarkeit des Zertifikatsmanagements gegeben

Einarbeitung in Skriptsprache, Konsolenarbeit etc. unerlässlich

Zahlreiche Module und die Möglichkeit von Eigenentwicklungen bieten großen Spielraum

Einfacher Spamschutz für SIP-Endgeräte umsetzbar

Sebastian Liebscher