Deaktivieren der Fortigate SIP Unterstützung für Swisscom SIP-Telefonie

Stellt man von der herkömmlichen Telefonie auf SIP um, wird man seitens der eigenen Firewall, welche den Internetanschluss sichert, meist vor einige Probleme gestellt. SIP birgt für die Firewall zwei grundsätzliche Probleme:

Zum einen übermittelt SIP die interne (meist private) IP des SIP-Telefons oder der PBX im Payload. Beim Source NAT an der Firewall wird aber nur die IP im IP-Header genattet, die IP im Payload bleibt unberührt. Der Empfänger sucht sich jetzt aber die IP aus dem Payload heraus und möchte darauf antworten. Da das aber immer noch die private IP ist, funktioniert das nicht wirklich. Ursache dieses Problems, dass SIP ursprünglich unter IPv6 entwickelt wurde und somit von Network Address Translation (NAT) noch recht wenig gehört hat.

Das zweite Problem ist, dass SIP für die Sprach-Übertragung typischerweise zwei RTP-Kanäle (für eingehende und ausgehende Sprach-Übertragung) öffnet und das auf zwei wahlfreien Ports. Will man die Firewall nicht auf allen Ports öffnen, so haben die RTP Kanäle es schwer zur Destination zu gelangen. Somit würde ein Anruf zwar über SIP (udp/5060) signalisiert werden, aber bei der Gegenseite kommt nicht an, was man sagt.

Um SIP dennoch erfolgreich über die Firewall zu bringen, bieten einige Firewalls eine SIP-Unterstützung an. Diese unterstützt das NATting (neben der IP im IP-Header wird die auch die IP im Payload genatted) und das sogenannte Pinholing, bei dem die Firewall auf der SIP-Signalisierung mitlauscht, welche Ports für die RTP-Kanäle zwischen Source und Destination ausgehandelt werden und diese dann für die SIP-Session punktuell geöffnet werden.

Bei der Fortigate Firewall kann SIP durch den sogenannten SIP-Sessionhelper oder durch den SIP Application Layer Gateway (ALG) unterstützt werden. Um es kurz zu machen – der SIP Sessionhelper ist die einfachere Lösung, welche nur das NATting und das Pinholing unterstützt. Dafür läuft der SIP Sessionhelper aber im Kernel und ist entsprechend schnell. Der SIP ALG läuft dagegen im Userspace, unterstützt zusätzlich aber SIP über TCP, SIP mit IPv6, SIP HA failover, rate limiting und ein SIP Syntax checking.

Durch die unterschiedlichen SIP-Implementierungen der verschiedenen Hersteller ist es nicht immer einfach, die richtige Konfiguration auf der Fortigate zu finden. Mal hilft der Sessionhelper besser, mal ist der ALG erfolgreicher. Nichtsdestotrotz haben wir mit der Fortigate mal wieder sehr gute Hilfsmittel zur Hand, um SIP erfolgreich laufen zu lassen.

Swisscom (und auch einige andere SIP-Hersteller/-Anbieter) haben das SIP mittlerweile so umgeschrieben, dass die Firewall keinerlei Unterstützung mehr bieten muss. Ein sehr schlauer Schritt, wenn SIP so langsam die herkömmliche Telefonie ersetzen soll. Schliesslich will nicht jeder private Haushalt gleich eine komplexe Firewall installieren und konfigurieren.

Also heisst es jetzt die (per default aktive) SIP Unterstützung auf der Fortigate auszuschalten. Zwar liefert Swisscom eine scheinbar praktische Anleitung der hierfür notewendigen Schritte, allerdings ist diese recht durcheinander, verlangt unnütze Konfigurationsschritte und – noch schlimmer – unnötige Reboots.

Deswegen hier eine kleine Anleitung unsererseits (basiernd auf FortiOS v5.2 und v5.4):

FortiOS – SIP deaktivieren.pdf.

2 Responses to “Deaktivieren der Fortigate SIP Unterstützung für Swisscom SIP-Telefonie”


  • Danke für eure Bemühungen eine effizientere Anleitung zum Deaktivieren von SIP für die Forti’s zu pflegen. Könnt ihr schon sagen, ob sich beim FortiOS 5.6 noch etwas geändert hat bezüglich eurer Anleitung?

    Macht weiter so! Sehr gute Beiträge hier in eurem Blog.

  • Sali Stephan,

    soweit wir es bis jetzt wissen, gibt es mit v5.6 keine Änderungen. Die CLI Befehle sind die gleichen geblieben.

    Und danke vielmals für Dein Kompliment.

    Viele Grüsse, Sylvia

Leave a Reply