FusionPBX ба ACL

Миний нийтлэл бол бүтээгдэхүүний бүрэн тайлбар биш, харин "FusionPBX, эсвэл дахин гайхалтай, FreeSWITCH" сайн нийтлэлийг бага зэрэг сайжруулсан болно. FusionPBX дээрх ACL-ийн сэдвийг тийм ч сайн дэлгээгүй юм шиг санагдаж байна. Би FreeSWITCH/FusionPBX-тэй хийсэн туршлага дээрээ үндэслэн энэ цоорхойг нөхөхийг хичээх болно.

Тиймээс бид domain.local домэйнд 1010 бүртгэгдсэн дотоод дугаартай FusionPBX суулгасан бөгөөд хот руу гадаад дуудлагын тохируулсан маршруттай. Бид ACL-ийг ашиглан утасны системээ зөвшөөрөлгүй дуудлагаас хамгаалахын тулд бидний мөнгийг авч хаях болно. Тэдгээр. зөвхөн ACL-д тодорхойлсон сүлжээнүүдээс гарах дуудлагыг зөвшөөрдөг. Энд танд FusionPBX дээр ACL хэрхэн ажилладаг, түүний онцлог, логик, зангуу цэгийн талаар бүрэн тодорхой ойлголт хэрэгтэй.

Дээрх нийтлэлийн нэр хүндтэй зохиолчийн нэгэн адил би ACL-тэй холбоотой бүх тармуур дээр гишгэсэн.

Би эхлэх болно SipProfiles.
Дотоод болон гадаад хоёр профайл хоёулаа (би тэднийг ингэж нэрлэх болно) Нийтийн агуулгад байгаа бөгөөд энэ нь санамсаргүй биш юм. Дугаарын бүртгэл нь дотоод профайл дээр явагддаг бөгөөд бид үүнд анхаарлаа хандуулах болно. Дотоод профайлд ACL домайнууд нь application-inbound-acl гэж холбогддог. Энэ нь профайлын түвшинд ACL-ийн ажиллагааг хариуцдаг энэ шугам юм. Одоогоор профайлуудын хувьд ийм л байна.

Агуулга

Контекстийг бусад зүйлсээс гадна дуудлагын чиглүүлэлт хийхэд ашигладаг. Ирж буй бүх маршрут нь Нийтийн контексттэй холбоотой.

Гарч буй (хот руу, үүрэн холбоо, холын зайн, олон улсын болон бусад ямар ч) маршрутууд нь (анхдагчаар) домэйн нэрийн хүрээнд (үүнийг domain.local гэж нэрлэе).

ACL

Одоо ACL-ийн талаар ярилцъя. Анхдагч байдлаар, шинээр суулгасан FusionPBX нь хоёр ACL-тэй:

домайнуудын өгөгдмөл үйлдэл: үгүйсгэх - энэ хуудас нь дотоод профайлтай холбогдсон байна
lan үндсэн үйлдэл: зөвшөөрөх

Домэйнуудын ACL жагсаалтад бид сүлжээг зааж өгдөг (жишээлбэл, 192.168.0.0/24), бид энэ сүлжээнд зөвшөөрөл өгдөг, бид reloadacl ашигладаг.

Дараа нь бид энэ сүлжээнээс утсаа бүртгэж байгаа бөгөөд бүх зүйл зүгээр, зааврын дагуу, логикийн дагуу байна.
Бид туршилт хийж, гадаад дугаар руу залгаж, ... бид пончик, эс тэгвээс гурилан бүтээгдэхүүний нүх авдаг. Гэнэт!

Бид консол эсвэл Log Viewer FusioPBX-ээр дамжуулан бүртгэлд дүн шинжилгээ хийж эхэлдэг.

Бид өөрсдийн сорилтыг харж байна:

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

Бид ажиллаж байсан ACL-ийг харж байна:

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

Цааш нь:

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] 

Маршрут байхгүй! Хэдийгээр бид үнэнчээр бүртгүүлсэн маршрут.

Хариулт нь үнэхээр энгийн.

Дуудлага ирлээ. ACL үүнийг алдсан. Мөн ACL нь дотоод профайлд холбогдсон бөгөөд энэ профайл нь олон нийтэд нээлттэй байгаа тул FreeSWITCH нь нийтийн хүрээнд чиглүүлэлтийн талаар шударгаар хардаг. Гэхдээ олон нийтийн хүрээнд зөвхөн орж ирж буй чиглүүлэлт, систем нь тэнд хот руу чиглэсэн ямар ч чиглэл байхгүй гэдгийг үнэн зөвөөр хэлдэг.

Энэ байдлаас гарах дор хаяж хоёр арга бий.

  1. Энэ ACL-ийг профайл дээр биш, харин дотоод дугаарт хавсаргана уу. Энэ нь шийдвэрлэх хамгийн зөв арга байж болох юм, учир нь. Илүү нарийн тааруулахын тулд ACL-ийг Extension-д аль болох ойртуулах нь дээр. Тэдгээр. та гар утасны дуудлага хийх боломжтой утасны тодорхой хаяг / сүлжээний хаягийг зааж өгч болно. Энэ сонголтын сул тал нь Өргөтгөл бүр үүнийг хийх ёстой болно.
  2. ACL-ийг профайлын түвшинд зөв ажиллуулахын тулд засаарай. Өргөтгөл бүрт үүнийг зааж өгөхөөс илүү ACL-д сүлжээг нэг удаа нэмэх нь илүү хялбар мэт санагдаж байсан тул би энэ сонголтыг сонгосон. Гэхдээ энэ нь миний даалгаварт зориулагдсан юм. Бусад ажлуудын хувьд шийдвэр гаргах өөр логик хэрэгтэй байж магадгүй.

Тэгэхээр. ACL домайнуудыг дараах байдлаар засъя:

домэйны өгөгдмөл үйлдэл: зөвшөөрөх

Домэйнуудын ACL жагсаалтад бид сүлжээг бүртгэдэг:

үгүйсгэх 192.168.0.0/24

Өргөдөл, дахин ачаал.
Туршилт хийж байна: бид 98343379хххх дугаар руу дахин залгаад ... хяналтын цэг ирж байна ... САЙН БАЙНА. Бүх зүйл ажиллаж байна.
FreeSWITCH дээр юу болсныг харцгаая:
дуудлага эхэлнэ:

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

ACL алдаагүй:

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

ба цааш нь:

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 

Чиглүүлэлт өнгөрч, дараа нь сэдвийн хамрах хүрээнээс хэтэрсэн холболтын байгууламж ирдэг.

Хэрэв бид ACL дахь сүлжээний хаягийг өөрчилсөн боловч эхний тестээс зургийг авах юм бол, i.e. ACL нь дуудлагыг алгасах ба чиглүүлэлт нь NO_ROUTE_DESTINATION гэж хэлэх болно.

Энэ нь магадгүй миний ACL FusionPBX дээр нэмэхийг хүссэн зүйл юм.

Энэ нь хэн нэгэнд хэрэг болно гэж найдаж байна.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх