Minu artikkel ei ole toote pĂ”hjalik kirjeldus, vaid vaid vĂ€ike tĂ€iendamine heale publikatsioonile âFusionPBX, vĂ”i jĂ€lle-tervist, FreeSWITCHâ. Tundub, et selles ei ole ACL teemat FusionPBX-is vĂ€ga hĂ€sti kĂ€sitletud. Proovin selle tĂŒhiku tĂ€ita, tuginedes oma kogemustele FreeSWITCH/FusionPBX-iga.
Nii siis, meil on installitud FusionPBX, kus on registreeritud sisemine number 1010 domeenis domain.local ja seadistatud marsruut vĂ€liste kĂ”nede jaoks linna. Kasutame ACL-i, et kaitsta meie telefonisĂŒsteemi volitamata kĂ”nede eest, mis vĂ”tavad meie raha. St. ainult ACC-s kirja pandud vĂ”rkudest lubatakse vĂ€ljakutseid. Siin on vajalik tĂ€iesti selge arusaam, kuidas ACL FusionPBX-is töötab, selle omadustest, loogikast ja seotud punktidest.
Nagu ka aukartust Ă€ratav autor eespool mainitud artiklis, olen ka mina kĂ”ndinud kĂ”ikidel selle ACL-iga seotud mĂŒlgastele.
Alustan SipProfiles.
MÔlemad profiilid (nimetame neid nii), nii internal kui ka external, kuuluvad konteksti Public, ja see ei ole juhus. Numbrite registreerimine toimub profiilis internal, sellele pöörame tÀhelepanu. Profiilis internal on seotud ACL-loend domains, kui apply-inbound-acl. Just see rida vastutab ACL-i töö eest profiili tasandil. Praeguseks profiilidega kÔik.
Context
Konteksti kasutatakse lisaks kÔnede marsruutimisele. KÔik sissetulevad marsruudid on seotud konteksti Public.
VÀlismarsruudid (linnas, mobiilile, kaug- ja rahvusvahelisele, ja kÔik muudele) asuvad (vaikimisi) kontekstis nimega domeen (nimetame seda domain.local).
ACL
NĂŒĂŒd uurime ACL-i. Vaikimisi on just installitud FusionPBX-is kaks ACL-loendit:
domains vaikimisi tegevus: deny â see loend on seotud profiiliga internal
lan vaikimisi tegevus: allow
ACL-loendisse domains kirjutame vÔrgu (nÀiteks 192.168.0.0/24), anname sellele vÔrgule lubamise allow ja rakendame reloadacl.
SeejÀrel registreerime telefoni sellest vÔrgust ja kÔik tundub olevat hÀsti ning vastab juhistele.
Alustame testimist, teeme vĂ€lise numbri pöördumise ja⊠saame bublik, tĂ€psemalt bubliku augu. Ăllatav!
Alustame logi analĂŒĂŒsimist konsoolis vĂ”i lĂ€bi Log Viewer FusioPBX-is.
NÀeme meie kÔnet:
switch_channel.c:1104 Uus kanal sofia/internal/1010@domain.localNÀeme tööle hakanud ACL-i:
sofia.c:10208 IP 192.168.0.150 Heaks kiidetud acl "domains[]". JuurdepÀÀs lubatud.Ja edasi:
mod_dialplan_xml.c:637 Töödeldakse 1010 ->98343379xxxx kontekstis public
switch_core_state_machine.c:311 Ei ole marsruuti, katkestatakse
switch_core_state_machine.c:312 KÔne lÔpetatud sofia/internal/1010@domain.local [CS_ROUTING] [NO_ROUTE_DESTINATION] Ei ole marsruuti! Kuigi marsruut on meil Ôigesti kirjas.
Vastus on tegelikult lihtne.
KĂ”ne tuli. ACL laskis selle lĂ€bi. Ja kuna ACL on seotud internal profiiliga, ning see profiil asub kontekstis public, vaatab FreeSWITCH ausalt marsruutimist kontekstis public. Kuid kontekstis public on ainult sissetulev marsruutimine, ja sĂŒsteem ĂŒtleb meile ausalt, et seal ei ole mingeid marsruute linnas.
VÀljapÀÀse sellest olukorrast on vÀhemalt kaks.
- Seostada see ACL mitte profiiliga, vaid iseenda sisemise numbriga. See vĂ”ib olla kĂ”ige Ă”igem lahendus, kuna ACL on parem siduda vĂ”imalikult lĂ€hedal Extensionâile, et teha peenhÀÀlestust. St. on vĂ”imalik mÀÀrata konkreetne aadress/vĂ”rguaadress telefonile, millest ta saab teha vĂ€ljaminevaid kĂ”nesid. Selle variandi miinus on see, et igas Extensionâis peab seda tegema.
- Parandada ACL niimoodi, et see töötaks korrektselt profiili tasemel. Valisin just selle variandi, kuna vĂ”rgus-sisestamise lisamine ACLâle nĂ€is mulle lihtsam kui selle mĂ€rkimine igas Extensionâis. Kuid see on konkreetselt minu ĂŒlesande jaoks. Teiste ĂŒlesannete puhul vĂ”ib olla vajalik teine otsustusloogika.
Nii. Parandame ACL domaines jÀrgmiselt:
domains vaiketoiming: allow
ACL loendisse domains lisame vÔrgud:
deny 192.168.0.0/24
Rakendame, reloadacl.
Testime: valime uuesti numbri 98343379xxxx ja⊠toimub KP⊠Tere. KÔik töötab.
Vaadakem, mis FreeSWITCHâis toimus:
kÔne algab:
switch_channel.c:1104 Uus kanal sofia/internal/1010@domain.localACL ei lasknud lÀbi:
[DEBUG] sofia.c:10263 IP 192.168.0.150 Keelatud acl'i "domains" pÔhjal. Tagasi vahekÔne tÔendamisele.ja edasi:
mod_dialplan_xml.c:637 Töödeldakse 1010 ->98343379xxxx kontekstis domain.local
sofia/internal/1010@domain.local Regex (PASS) [Sity] sihtnumber(98343379xxxx) =~ /9(8343[23]d{6})$/ break=on-false Marsruutimine lĂ€ks lĂ€bi ja edasi toimub ĂŒhenduse loomine, mis jÀÀb teema piiridest vĂ€lja.
Kui me muudame vĂ”rguaadressi ACLâis, saame aga tulemuse esimese testimise kujul, st. ACL laseb kĂ”ne lĂ€bi ja marsruutimine ĂŒtleb NO_ROUTE_DESTINATION.
See on tÔenÀoliselt kÔik, mida ma soovisin ACL FusionPBX kohta lisada.
Loodan, et see kellegile kasulikuks osutub.
Allikas: habr.com
