[Erledigt] Asterisk <-> PFsense (1:1NAT) <-> Fritzbox Abindung IP Türsprechstelle

rubinho

Mitglied
Mitglied seit
3 Aug 2004
Beiträge
222
Punkte für Reaktionen
1
Punkte
18
Hallo Leute,

mir ist es fast schon peinlich, aber ich habe gestern an meiner Asterisk Konfiguration (pjsip.conf) rumgeschraubt (ohne Sicherung) und dadurch meine Anbindung zur Fritzbox gekappt.

Leider weiß ich nicht mehr was ich im Ursprungszustand (vor Jahren) eingetragen hatte und muss somit auf die Community Expertise zurückgreifen. (Schäm)
Vorab das grundsätzliche Problem:
Die Fritzbox erlaubt es normalerweise nicht, wenn sich die IP Türsprechanlage in einem anderen Netz als das ihrige befindet. Leider gibt es auch keine Möglichkeit sichere Netze einzutragen (Featurerequest an AVM ist raus)
Und da meine Türsprechstelle direkt am Asterisk Server angebunden ist und beide Geräte sich in abgeschotteten Netzen befinden, musste ich zwischen Asterisk und Fritte über meine Pfsense ein 1:1 Nat einrichten.
Ich musste lediglich in der pjsip.conf eine NAT-Konfig eintragen, damit die original Adresse im SIP Header durch die NAT Adresse ausgetauscht wird. Leider gelingt mir dieses nicht mehr, nachdem ich Id*ot daran gebastelt hatte.

Code:
pjsip.conf

[global]
type=global
default_realm=asterisk.meinedomain.de
user_agent=Asterisk PBX
endpoint_identifier_order=ip,username

[transport-udp-nat]
type=transport
protocol=udp
bind=172.22.1.23:5062
local_net=172.22.1.0/24
external_media_address=172.20.0.3
external_signaling_address=172.20.0.3

[intercom]
transport = transport-udp-nat
type = endpoint
context = Tuerstationen
rtp_symmetric = yes
force_rport = yes
rewrite_contact = yes
from_user = intercom
from_domain = 172.20.111.2
outbound_auth = auth_reg_intercom
bind_rtp_to_media_address = 172.20.0.3
media_address = 172.20.0.3
aors = intercom

[intercom]
type = aor
contact = sip:[email protected]:5060
qualify_frequency = 30

[auth_reg_intercom]
type = auth
auth_type=userpass
username = intercom
password = *********

extensions.conf

[Tuerstationen]
exten => _59,1,Dial(PJSIP/59@intercom)

Im Log der FB steht dann folgendes....

Code:
Brute-Force (BF) / Denial-of-Service (DoS) attacks
---------
Denial of Service: 172.20.0.3 blocked since 2022-10-13 19:23:05 (211/300 seconds remaining)
ACK sip:[email protected]:5060 SIP/2.0
Via: SIP/2.0/UDP 172.22.1.22:5062;rport;branch=z9hG4bKPj0c92e160-06c8-474a-ba10-aa9490c7472f
From: <sip:[email protected]>;tag=94aec021-e645-4940-83d5-c9e86c7984ce
To: <sip:[email protected]>;tag=E8646E551213D2F9
Call-ID: 6adf4315-0b82-4d27-9073-02f55f7407a3
CSeq: 24493 ACK
Max-Forwards: 70
User-Agent: Asterisk PBX
Content-Length:  0



SIP REGISTER destinations
---------
##### END SECTION voipd

##### BEGIN SECTION sip SIP messages
SIP log
----------
2022-10-13 19:23:05.124 - IN: my=172.20.111.2%13:5060 peer=172.20.0.3 port=5062 UDP, sipiface=none:
ACK sip:[email protected]:5060 2.0
Via: SIP/2.0/UDP 172.22.1.22:5062;rport;branch=z9hG4bKPj0c92e160-06c8-474a-ba10-aa9490c7472f
From: <sip:[email protected]>;tag=94aec021-e645-4940-83d5-c9e86c7984ce
To: <sip:[email protected]>;tag=E8646E551213D2F9
Call-ID: 6adf4315-0b82-4d27-9073-02f55f7407a3
CSeq: 24493 ACK
Max-Forwards: 70
User-Agent: Asterisk PBX
Content-Length: 0


Ich weiß leider nicht, wieso Asterist folgendes übermittelt... "Via: SIP/2.0/UDP 172.22.1.22:5062;" Diese IP ist eine der beiden IPs von Asterisk und eigentlich sollte da auch die NAT Adresse 172.20.0.3 stehen.
Was fehlt mir dazu noch, oder hab ich ein anderes Problem?

Wie gesagt, ich habs bis gestern am laufen gehabt.

Gruß
Rubinho
 
--Update--

Ich habe jetzt die Option "from_user = intercom" ausgeklammert.

Jetzt sehe ich zwar die richtige IP an der FB ankommen, allerdings übermittelt Asterisk nun die Zielnummer "59" nicht mehr.

Code:
SIP log
----------
2022-10-14 07:47:42.954 - IN: my=172.20.111.2%13:5060 peer=172.20.0.3 port=5062 UDP, sipiface=none:
OPTIONS sip:[email protected]:5060 2.0
Via: SIP/2.0/UDP 172.20.0.3:5062;rport;branch=z9hG4bKPj25d45f6e-1f67-418e-80e3-c2bebba71960
From: <sip:[email protected]>;tag=d79cbab6-68ad-4a2b-b5ce-c4dcd5b2b3a3
To: <sip:[email protected]>
Call-ID: 1f03efb0-2168-458b-adee-691147cbf16f
CSeq: 32217 OPTIONS
Contact: <sip:[email protected]:5062>
Authorization: Digest username="intercom", realm="fritz.box", nonce="1E09CC1E205FEADC", uri="sip:[email protected]:5060", response="6b0db45ee5ce1fa4cecd7887818b5a0c"
Max-Forwards: 70
User-Agent: Asterisk PBX
Content-Length: 0

Code:
[intercom]
transport = transport-udp-nat
type = endpoint
context = Tuerstationen
rtp_symmetric = yes
force_rport = yes
rewrite_contact = yes
;from_user = intercom
from_domain = 172.20.111.2
outbound_auth = auth_reg_intercom
aors = intercom

[intercom]
type = aor
contact = sip:[email protected]:5060
qualify_frequency = 30

[auth_reg_intercom]
type = auth
auth_type=userpass
password = ******
username = intercom

--Extensions--
[Tuerstationen]
exten => _59,1,Dial(PJSIP/59@intercom)
 
--update--
Zwischenerfolg, bei dem ersten Rufen der Nummer, reagiert meine FB und meine Telefone klingeln.
Allerings nur das eine Mal. Danach hat die Bruteforce Detection der FB rein und blockiert die Connection.

Code:
[global]
type=global
default_realm=pbx.meinedomain.de
user_agent=Asterisk PBX
endpoint_identifier_order=ip,username

[transport-udp-nat]
type=transport
protocol=udp
bind=172.22.1.23:5062
local_net=172.22.1.0/24
external_media_address=172.20.0.3
external_signaling_address=172.20.0.3

[intercom]
language=de
transport = transport-udp-nat
type = endpoint
context = lokal
force_rport = yes
rtp_symmetric = yes
rewrite_contact = yes
aors = intercom
allow = g722,ulaw,alaw,h264,h263p,h263
from_user = intercom
from_domain = 172.20.111.2
outbound_auth = auth_intercom

[intercom]
type = identify
endpoint = intercom
match = 172.20.111.2

[intercom]
type = aor
max_contacts=5
contact = sip:[email protected]:5060
qualify_frequency = 600

[auth_intercom]
type = auth
auth_type=userpass
password = *******
username = intercom

Code:
Brute-Force (BF) / Denial-of-Service (DoS) attacks
---------
Denial of Service: 172.20.0.3 blocked since 2022-10-14 20:29:52 (49/300 seconds remaining)
ACK sip:[email protected]:5060 SIP/2.0
Via: SIP/2.0/UDP 172.22.1.22:5062;rport;branch=z9hG4bKPjec469710-5c0c-4a05-b04b-bd37f1caec5b
From: <sip:[email protected]>;tag=3151f381-af0e-46aa-8ad8-71609693cb46
To: <sip:[email protected]>;tag=6DDDC9D78E22609E
Call-ID: 1e8747b6-0c63-4b1b-adcf-e381edf42f4d
CSeq: 29745 ACK
Max-Forwards: 70
User-Agent: Asterisk PBX
Content-Length:  0

Hier der mögliche Grund für das Blocken. (Paketmitschnitt auf der Fritte)
Was könnte der Grund sein? Ich verstehe nicht wie das vorher gehen konne :rolleyes:
1665776385945.png
Vollbild(er) gemäß Boardregeln als Vorschau eingebunden by stoney
 
Zuletzt bearbeitet von einem Moderator:
So, ich habe erstmal aufgegeben und einen Workaround geschaffen.
Ich habe mir ein zweiter Asterisk@Docker-Server aufgesetzt, der sich im gleichen Netz wie die Fritzbox befindet. Somit habe ich das Problem umgangen.
Nicht schön, aber mir fällt nix mehr ein. Positiver Nebeneffekt, mit meiner alten Asterisk Version (v13) in der DMZ hatte ich Probleme mit dem Feature Early Media bei der Verwendung von Linphone und meiner Türsprechanlage und mit der neuen Dockervariante (v18) läuft die Vorschau des Kamerabildes.
Das war im Übrigen der ursprüngliche Grund, warum ich Hand an der Pjsip.conf angelegt hatte.
Nun muss ich wenigstens mein Hauptsystem nicht zwingend auf v18 upgraden, allerdings habe ich eine Fehlerquelle mehr in der Kette.
Ich werde mir wohl ein neues Konzept überlegen um die potentiellen Fehlerquellen zu reduzieren.

lg
Rubinho
 
Die Fritzbox erlaubt es normalerweise nicht, wenn sich die IP Türsprechanlage in einem anderen Netz als das ihrige befindet.

Wenn man für das Endgerät "VoIP über Internet" erlaubt, sollte das funktionieren.

Ich hatte meinen Asterisk vor geraumer Zeit über Fritzbox VPN (LAN-LAN Koppelung) als Client an der Fritzbox meiner Mutter. Das sollte eine vergleichbare Konstellation sein. Ich musste dafür nichts besonderes einstellen, außer ein zusätzliches local-net, damit Asterisk eben nicht nat-tet. Als Host logischerweise die (lokale) IPv4 Adresse der entfernten Fritzbox. Ich müsste mal schauen, ob ich das in den archivierten Configs noch finde, war aber echt kein Hexenwerk.
 
@Mrs. Moose
Das Problem ist, dass ich die Türsprechstelle nicht als normales Endgerät anlege, sondern tatsächlich in der FB die Option "IP Türsprechanlage" auswähle.
Nur dann bekomme ich auf meinem Dect Fritzphones auch ein Bild von der Haustür angezeigt. Allerdings fehlt bei dieser Option dann die Auswahlmöglichkeit "Anmeldung aus dem Internet erlauben". Von daher funktioniert das so nicht, leider.
Und wenn du über IPsec einen Tunnel mit der Fritte aufbaust, ist die Fritte zumindest so schlau das entfernte Netz als Trust anzusehen. Auch dann gibt es meiner Meinung nach keine Probleme.

Schön wäre es, wenn von AVM ein Menüpunkt implementiert würde, welches die Möglichkeit bieten würde vertrauenswürdige Netze einzutragen, von mir aus nur auf private Adressen begrenzt. Aber ich bin wohl einer von sehr wenigen die so ein Bedarf haben, von daher sehe ich Schwarz für dieses Feature.

Trotzdem danke für dein Feedback :)
 
Was könnte der Grund sein? Ich verstehe nicht wie das vorher gehen konne
CSeq: 32217 OPTIONS
^^^^^^Zähler^^^^^^^^^^
Bei der hohen Zählernummer?
Irgendwas bombardiert die FRITZ!Box mt OPTIONS Requests.
Kein Problem solange die Quelle der FRITZ!Box bekannt ist (Authentifiziert/Registriert)*.
Auf Asteriskseite möglichst die Qualify Optionen deaktivieren, und/oder den Unterschied herausfinden wo die Qualifyfrequenz in Sekunden oder in Millisekunden oder Nanosekunden angegeben werden muss.


* Looks like SIP OPTIONS require a REGISTER first in ASTERISK 18
 
Zuletzt bearbeitet:
Ich habe Qualify Frequenz nun entfernt, was aber nicht half. Einmal bin ich durchgekommen, danach hat die FB geblockt.
Auch ein Registrieren von Asterisk an der FB hatte keine positiven Auswirkungen auf das Verhalten.
Warum Asterisk die FB mit den Option Requests bombardiert, entzieht sich meiner Kenntnis.

Trotzdem danke für den Hinweis.
 
Einen handfesten (PJSIP) Tip hab ich leider nicht parat, ausser dass auf FRITZ!Box Seite die "Denial-of-Service" Sperre zu Beachten ist, und das machste ja...
Denial of Service: 172.20.0.3 blocked since 2022-10-14 20:29:52 (49/300 seconds remaining)
Erst nach Ablauf der 5 Minuten (300s) macht es Sinn sich ohne vorherige (unregistrierte) OPTIONS Requests (oder meinetwegen SIP Pings) an der FRITZ!Box anzumelden.
Also möglichst keine Qualifies und wenn dann nur wenn auch wirklich authorisiert/registriert.

Ach so, da bin ich auch nicht so der Experte, aber brauchst du nicht noch eine Route für das 172.20.er Netz in der FRITZ!Box?
Siehe: Heimnetz >Tab> Netzwerkeinstellungen > weitere Einstellungen > [IPv4 Routen] > [Neue Ipv4-Route] (Oder so ähnlich ;) )
 
Zuletzt bearbeitet:
Ich bin jetzt einen anderen Weg gegangen und habe mittels JSTool meiner Türsprechanlage die Erlaubnis aus dem Internet zugewiesen.
Jetzt brauch ich mein Netz nicht mehr via 1:1 NAT zu vergewaltigen und alles läuft.

Danke für die Unterstützung.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

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.