FusionPBX و ACL

مقاله من شرح کاملی از محصول نیست، بلکه فقط اصلاح مختصری از انتشار خوب "FusionPBX، یا دوباره عالی، FreeSWITCH" است. به نظر من موضوع ACL در FusionPBX به خوبی در آن آشکار نشده است. من سعی خواهم کرد این شکاف را بر اساس تجربه خودم با FreeSWITCH/FusionPBX پر کنم.

و بنابراین، ما یک FusionPBX نصب شده با شماره داخلی ثبت شده 1010 در دامنه domain.local و یک مسیر پیکربندی شده برای تماس های خارجی به شهر داریم. ما از ACL برای ایمن سازی سیستم تلفن خود در برابر تماس های غیرمجاز که پول ما را از بین می برد استفاده می کنیم. آن ها فقط از شبکه های توضیح داده شده در ACL تماس های خروجی را مجاز می دانند. و در اینجا شما نیاز به درک کاملی از نحوه عملکرد ACL در FusionPBX، ویژگی‌ها، منطق و نقطه اتصال آن دارید.

من هم مانند نویسنده محترم مقاله فوق روی تمامی رک های مربوط به 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

اعمال، بارگذاری مجدد
ما در حال تست هستیم: دوباره شماره 98343379xxxx را می گیریم و ... ایست بازرسی در حال آمدن است ... سلام. همه چیز کار می کند.
بیایید ببینیم در 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

اضافه کردن نظر