[Gelöst] Fritzbox -> OPNsense -> FreePBX => keine eingehenden Anrufe

ans1984

Neuer User
Mitglied seit
27 Jul 2018
Beiträge
7
Punkte für Reaktionen
1
Punkte
1
Hallo zusammen,

ich kämpfe seit ein paar Tagen mit einer FreePBX, bei der ich zwar ausgehende Telefonieren kann, eingehend aber keine Anrufe erhalte.
Im Livesystem habe ich seit ca. 1,5 Jahren eine OPNsense in Betrieb, welche einwandfrei funktioniert.
Da die ISDN-Telefonanlage schon älter als 10 Jahre ist, soll diese gegen ein modernes VoIP-System (FreePBX) ausgetauscht werden.

Hab mir das Ganze mal im Labor nachgebaut.
Betreibe ich die FreePBX direkt an FritzBox, funktioniert alles einwandfrei.

Schalte ich die Firewall (OPNsense) mit dazwischen, dann funktionieren zwar ausgehende Anrufe, eingehende Anrufe funktionieren nicht.
Auch wenn externe Anrufer zuerst auflegt bekommt diese die FreePBX gar nicht mit.

Aufbau ist folgender:
FritzBox (192.168.184.1) --> OPNsense (192.168.184.115 (WAN) + 192.168.99.1 (LAN)) -> FreePBX (192.168.99.12)

Für die Rufnummer ist in der FritzBox ein LAN/WLAN-Telefoniegerät eingerichtet.
In der FritzBox ist ein exposed-Host eingerichtet, das alles an die OPNsense schickt.


Die Asterisk-SIP-Settings habe ich auch entsprechend angepasst:

1615133859819.png
SIP-Port ist UDP/5060.

In der Firewall habe ich mir hierzu folgende NAT-Regeln angelegt (Port-Forward):
1615133925613.png

Die OPNsense hat dann automatisch folgende Firewallregeln erstellt:
1615134463226.png

Zusätzlich eine statische Outbound-Route gesetzt und vorher den Mode auf Hybrid gesetzt:
1615133986376.png

Hier noch die Alias-Übersicht:
1615134041537.png

Ausgehende Anrufe funktionieren einwandfrei inkl. Audio.
Eingehende Anrufe kommen gar nicht in der FreePBX an.
Zudem ist mir aufgefallen, das es das interne Telefon gar nicht mitbekommt, wenn der externe Teilnehmer aufgelegt hat.
Legt das interne Telefon auf, dann funktioniert das ganze schon.

Hab aktuell irgendwie den Eindruck, das die FritzBox eingehende Aktivitäten (neuer externer Anruf, externer Teilnehmer hat aufgelegt) überhaupt nicht an die FreePBX weitergibt.

Hat evtl. jemand schon mal eine FreePBX mit dazwischengeklemmter Firewall hinter einer FritzBox in Betrieb genommen?
Ich vermute das das Problem am doppelten NAT liegt (externe DTAG-IP -> NAT -> FritzBox -> Forwarding OPNSense -> NAT -> FreePBX)

Ich könnte zwar die FreePBX direkt hinter die FritzBox setzen und dort dann die FreePBX-Firewall zum Schutz einschalten - schöner wäre aber die Lösung mit der eh schon vorhandenen (zentralen Firewall).

Evtl. hat das gleiche Konstrukt schon in Betrieb und kann mir Tipps geben, wie ich das Ganze zum Laufen bekomme.

Vielen herzlichen Dank schon mal im Voraus für die Unterstützung und Tipps!

Viele Grüße:
Andreas

Bilder gemäß Boardregeln geschrumpft by stoney
 
Zuletzt bearbeitet von einem Moderator:

sonyKatze

Aktives Mitglied
Mitglied seit
6 Aug 2009
Beiträge
2,534
Punkte für Reaktionen
225
Punkte
63
Normalerweise musst Du für ein SIP-Telefon gar nichts in der Firewall verstellen. Die FreePBX spielt bei Dir ja lediglich die Rolle „IP-Telefon“. Das bedeutet für einen Test-Aufbau überall Exposed-Host, DMZ und Port-Forwardings in allen Firewalls löschen (FRITZ!Box und OPNsense). Auch in der Sangoma FreePBX schaltest Du alles bezüglich NAT aus (externhost). Jetzt ermittelst Du hinter der OPNSense das NAT-Binding-Timeout wie in diesem Post beschrieben … wenn Du das hast, schauen wir weiter (der FreePBX ein Keep-Alive beibringen oder von SIP-over-UDP auf SIP-over-TLS wechseln).

Ganz andere Frage: Ist Deine FreePBX als IP-Telefon in der FRITZ!Box eingerichtet oder direkt beim Telefonie-Anbieter Telekom Deutschland eingebucht. Ich vermute von Deinen Erklärungen eher Letzteres, aber ich frage lieber nochmal zur Sicherheit. Ist die Telekom Deutschland überhaupt Dein Telefonie-Anbieter oder nutzt Du einen anderen Anbieter?
 
Zuletzt bearbeitet:
  • Like
Reaktionen: ans1984

ans1984

Neuer User
Mitglied seit
27 Jul 2018
Beiträge
7
Punkte für Reaktionen
1
Punkte
1
Hallo sonyKatze,

vielen herzlichen Dank schon mal für deine Antwort.
Das wäre die perfekte Lösung, dann muss ich keine Ports nach außen öffnen (Portforwarding), denn umso mehr Ports offen sind, umso ein größeres Sicherheitsrisiko besteht.

Ich hab mir in der FritzBox pro Rufnummer jeweils ein LAN/WLAN-Telefon eingerichtet und diese dann in der FreePBX hinterlegt. Hier sind dann die Probleme aufgetreten.
Wenn ich mich mit der FreePBX direkt bei der Telekom einbuche, klappt alles einwandfrei - hier läuft das Ganze dann aber über den STUN-Server.

Auf der FreePBX habe ich mal den Befehl turnutils_natdiscovery -t -T xx stun.antisip.com abgesetzt, bis knapp über 30 Sekunden bekomme ich hier die response 2, darüber dann ein Timeout.
 

sonyKatze

Aktives Mitglied
Mitglied seit
6 Aug 2009
Beiträge
2,534
Punkte für Reaktionen
225
Punkte
63
in der FritzBox pro Rufnummer jeweils ein LAN/WLAN-Telefon eingerichtet
Dann schaue Dir bitte diesen Post an …
Fazit: Du musst in Deinem Fall in FreePBX externaddr=192.168.184.115 eintragen und externhost leer lassen.
knapp über 30 Sekunden
Eine FRITZ!Box hat in ihrer Firewall als Timeout für UDP fünf Minuten. Folglich ist in Deinem Fall die OPNsense der limitierende Faktor. Wie willst Du es machen: (a) Timeout in der OPNsense auf 10 Minuten setzen oder (b) FreePBX ein Keep-Alive machen?

Letzteres ist etwas kompliziert, weil offiziell gar nicht unterstützt und ich kann es auch nur für einen reinen Digium Asterisk ohne FreePBX erklären: In der registration legst Du einen endpoint an. In dem endpoint befindet sich ein aors, der wiederum ein contact und ein qualify_frequency=20 hat. So schickt jedenfalls mein Digium Asterisk alle 20 Sekunden eine SIP-OPTION und hält damit das Firewall-Binding offen.
keine Ports nach außen öffnen (Portforwarding)
Du kannst auf die Nase fallen, wenn die OPNsense den Port um-mapped, also WAN-seitig einen anderen Port nimmt als LAN-seitig. Daher wäre in Deinem Fall ein Port-Forwarding in der OPNsense sinnvoll. Nur für die SIP-Signalisierung, also normalerweise 5060/udp. Das wäre Alternativlösung (c), dann bräuchtest Du auch kein Keep-Alive. externaddr musst Du aber unabhängig davon, in allen drei Alternativen machen.
 
Zuletzt bearbeitet:

ans1984

Neuer User
Mitglied seit
27 Jul 2018
Beiträge
7
Punkte für Reaktionen
1
Punkte
1
Hallo sonyKatze,

vielen Dank für die Hilfe, ich konnte das Problem jetzt damit lösen.

Ich hab als Externe Adresse die IP der FreePBX angegeben und NAT ausgeschaltet - jetzt kommen die eingehenden Anrufe an und ich hab auch Audio in beiden Richtungen.

Jetzt muss ich nur noch herausfinden, wie ich das UDP-Timeout bei der OPNsense anpassen kann, da hab ich bisher noch keinen Menüpunkt für diese Einstellung dafür gefunden habe.

Bei den Foritgate-Firewalls mache ich dies normalerweise mit folgendem Befehl:

config firewall service custom
edit "SIP_Port"
set category "General"
set protocol UDP
set visibility enable
set udp-portrange 5060-5060
set udp-idle-timer 600
next
end
 

sonyKatze

Aktives Mitglied
Mitglied seit
6 Aug 2009
Beiträge
2,534
Punkte für Reaktionen
225
Punkte
63
Bei dem Timeout kann ich Dir nicht helfen. Das ist dann wohl (auch) eine Frage für die OPNsense-Community. Wobei Du für eine FRITZ!Box den Timeout auf 10 Minuten setzen müsstest. Standard sind für UDP 5 Minuten. Warum nicht ein Keep-Alive über SIP-OPTIONS?
IP der FreePBX angegeben
OK!? Ich (als FRITZ!Box) hätte die IP der OPNsense erwartet.
 

ans1984

Neuer User
Mitglied seit
27 Jul 2018
Beiträge
7
Punkte für Reaktionen
1
Punkte
1
Hallo sonyKatze,

sorry, hier hab ich mich verschrieben, es war die IP der Firewall (auf WAN-Seite) gemeint.
Hab übers Wochenende noch ein wenig mit den Einstellungen gespielt, jetzt funktioniert das Zusammenspiel einwandfrei.

Vielen herzlichen Dank für die große Hilfe!

Viele Grüße:
Andreas
 
  • Like
Reaktionen: sonyKatze

Erhalten Sie 3CX für 1 Jahr kostenlos!

Gehostet, in Ihrer privaten Cloud oder on-Premise! Ganz ohne Haken. Geben Sie Ihren Namen und Ihre E-Mail an und los geht´s:

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.
oder via