FusionPBX è ACL

U mo articulu ùn hè micca una descrizzione completa di u pruduttu, ma solu un ligeru raffinamentu di a bona publicazione "FusionPBX, o novu-grande, FreeSWITCH". Mi pari chì u tema di ACL in FusionPBX ùn hè micca assai ben divulgatu in questu. Pruvaraghju di cumpensà sta lacuna basatu annantu à a mo sperienza cù FreeSWITCH / FusionPBX.

È cusì, avemu un FusionPBX installatu cù un numeru internu registratu 1010 in u duminiu domain.local è una strada cunfigurata per chjamati esterni à a cità. Utilizemu ACL per assicurà u nostru sistema di telefonia da chjamati micca autorizati chì ci portaranu i nostri soldi. Quelli. solu da e rete descritte in l'ACL permettenu e chjama in uscita. È quì avete bisognu di una cunniscenza cumplettamente chjara di cumu ACL funziona in FusionPBX, e so caratteristiche, a logica è u so puntu di ancora.

Cum'è l'autore rispettatu di l'articulu sopra, aghju ancu pisatu nantu à tutti i razzii ligati à ACL.

Cumincià cù SipProfiles.
I dui profili (li chjameraghju cusì), sia interni sia esterni, sò in u cuntestu Publicu, è questu ùn hè micca accidintali. L'arregistramentu di i numeri si faci in u prufilu internu, è avemu da esse attenti à questu. In u prufilu internu, i domini ACL hè ligatu cum'è apply-inbound-acl. Hè sta linea chì hè rispunsevule per l'operazione di l'ACL à u livellu di u prufilu. Finu à avà, hè questu cù i profili.

cuntestu

U cuntestu hè utilizatu, frà altre cose, in u routing di chjama. Tutte e rotte entranti sò ligati à u cuntestu Pùblicu.

Outgoing (à a cità, à cellula, longa distanza, internaziunale, è qualsiasi altri) rotte sò (per difettu) in u cuntestu di un nome di duminiu (chiamemu domain.local).

ACL

Avà trattamu cù ACL. Per automaticamente, un FusionPBX appena installatu hà dui ACL:

Azzione predeterminata di domini: deny - sta foglia hè ligata à u prufilu internu
azione predefinita lan: permette

In a lista di domini ACL, prescrivemu a reta (bene, per esempiu, 192.168.0.0/24), facemu l'autorizazione per questa reta, usemu reloadacl.

In seguitu, avemu registratu un telefonu da sta reta, è tuttu pare esse bè è secondu l'istruzzioni è logica.
Cuminciamu à pruvà, fate una chjama à un numeru esternu è ... avemu una ciambella, o piuttostu una ciambella. Di colpu !

Cuminciamu à analizà u log in a cunsola o attraversu u Log Viewer FusioPBX.

Avemu vistu a nostra sfida:

switch_channel.c:1104 New Channel sofia/internal/[email protected]

Avemu vistu l'ACL chì hà travagliatu:

sofia.c:10208 IP 192.168.0.150 Approved by acl "domains[]". Access Granted.

È in più:

mod_dialplan_xml.c:637 Processing 1010 <1010>->98343379xxxx in context public
switch_core_state_machine.c:311 No Route, Aborting 
switch_core_state_machine.c:312 Hangup sofia/internal/[email protected] [CS_ROUTING] [NO_ROUTE_DESTINATION] 

Nisuna strada ! Ancu s'è a strada avemu onestamente registratu.

A risposta hè veramente simplice.

A chjama hè ghjunta. ACL hà mancatu. E postu chì l'ACL hè ligatu in u prufilu internu, è questu prufilu hè in u cuntestu publicu, FreeSWITCH onestamente guarda à u routing in u cuntestu publicu. Ma in u cuntestu pùblicu, solu u routing in entrata, è u sistema onestamente ci dice chì ùn ci sò micca rotte à a cità quì.

Ci hè almenu duie manere di fora di sta situazione.

  1. Attach this ACL micca à u prufilu, ma à u numeru internu stessu. Questu pò esse u modu più currettu per risolve, perchè. Hè megliu ligà l'ACL u più vicinu pussibule à Extension per una sintonizazione più fine. Quelli. pudete prescrive un indirizzu specificu / indirizzu di rete di u telefunu da quale pò fà una chjama in uscita. U svantaghju di sta opzione hè chì ogni Extension hà da fà questu.
  2. Fix l'ACL in modu chì funziona currettamente à u livellu di u prufilu. Aghju sceltu sta opzione, perchè mi pareva più faciule d'aghjunghje a reta à l'ACL una volta chì di prescrive in ogni Extension. Ma questu hè specificamente per u mo compitu. Per altri compiti, pudete bisognu di una logica di decisione diversa.

Allora. Fixemu i duminii ACL cusì:

azzione predeterminata di domini: permette

In a lista di domini ACL, registremu a reta:

ricusà 192.168.0.0/24

Applicà, reloadacl.
Testemu: marchemu u numeru 98343379xxxx di novu è ... u puntu di cuntrollu hè ghjuntu ... HELLO. Tuttu travaglia.
Videmu ciò chì hè accadutu in FreeSWITCH:
a chjama principia:

switch_channel.c:1104 New Channel sofia/internal/[email protected]

ACL ùn mancava micca:

[DEBUG] sofia.c:10263 IP 192.168.0.150 Rejected by acl "domains". Falling back to Digest auth.

è in più:

mod_dialplan_xml.c:637 Processing 1010 <1010>->98343379xxxx in context domain.local
sofia/internal/[email protected] Regex (PASS) [Sity] destination_number(98343379xxxx) =~ /^9(8343[23]d{6})$/ break=on-false 

Routing hè passatu, è dopu vene u stabilimentu di cunnessione, chì hè fora di u scopu di u tema.

Se cambiamu l'indirizzu di a reta in l'ACL, ma uttene a stampa da a prima prova, i.e. L'ACL saltarà a chjama è u routing dicerà NO_ROUTE_DESTINATION.

Hè probabilmente tuttu ciò chì vulia aghjunghje nantu à ACL FusionPBX.

Spergu chì serà utile à qualchissia.

Source: www.habr.com

Add a comment