آخرین ویرایش مرداد 17, 1405 حامد کوه فلاح
سیستمهای VoIP و مرکز تلفن، برخلاف بسیاری از نرمافزارهای معمولی، مستقیماً با ارتباطات سازمان، تماسهای ورودی و خروجی، داخلیها، SIP Trunk، ضبط مکالمات و اطلاعات کاربران در ارتباط هستند.
به همین دلیل، امنیت یک سرور Issabel فقط به انتخاب یک Password قوی یا نصب Firewall محدود نمیشود.
یکی از مهمترین اصول نگهداری یک مرکز تلفن حرفهای این است که Issabel، سیستمعامل و Packageهای آن همیشه بهروز باشند.
پروژههای Open Source مانند Issabel نیز دائماً توسط توسعهدهندگان و جامعه کاربران بررسی میشوند و در صورت شناسایی Bug یا آسیبپذیری امنیتی، Patch و Update منتشر میشود. خود Issabel نیز کاربران را به دنبال کردن اخبار، Bugها و نسخههای جدید از طریق Community و منابع رسمی پروژه دعوت میکند.
در همین راستا، یک Security Advisory مهم با شناسه ISS-2026-08 منتشر شده که کاربران Issabel باید آن را جدی بگیرند.
🚨 آسیبپذیری Critical در Issabel
بر اساس Security Advisory مورد بحث، یک آسیبپذیری با سطح CRITICAL شناسایی شده که سیستمهای Issabel در معرض اینترنت را هدف قرار میدهد.
اهمیت موضوع زمانی بیشتر میشود که بدانیم یک PBX معمولاً برای دریافت تماس و برقراری ارتباط با شبکههای خارجی، به اینترنت یا حداقل به شبکههای مختلف سازمان متصل است.
در چنین شرایطی، باقی ماندن یک آسیبپذیری شناختهشده روی سرور میتواند سطح حمله را افزایش دهد.
پیامدهای احتمالی این آسیبپذیری
در Advisory منتشرشده، موارد مهمی از جمله موارد زیر مطرح شده است:
- دسترسی غیرمجاز و کنترل از راه دور سرور
- نصب Malware
- نصب ماندگار Malware و Rootkit
- به خطر افتادن ارتباطات VoIP
- دسترسی یا سوءاستفاده از اطلاعات ذخیرهشده روی سیستم
بنابراین موضوع فقط یک Bug معمولی نیست.
اگر Issabel شما در معرض اینترنت قرار دارد، نصب Patch امنیتی باید در اولویت قرار بگیرد.
چرا آسیبپذیریهای Issabel خطرناک هستند؟
فرض کنید یک شرکت از Issabel برای مدیریت این موارد استفاده میکند:
- 100 داخلی VoIP
- چند SIP Trunk
- IVR
- Queue
- Call Center
- ضبط مکالمات
- CRM Integration
- Web Interface
در چنین شرایطی، Issabel فقط یک نرمافزار تلفنی نیست.
این سرور بخشی از زیرساخت ارتباطی شرکت است.
اگر مهاجم بتواند به سرور دسترسی پیدا کند، مسئله میتواند از یک مشکل نرمافزاری ساده فراتر برود و کل زیرساخت ارتباطی سازمان را تحت تأثیر قرار دهد.
به همین دلیل در سیستمهای Production، Security Update باید جدی گرفته شود.
آیا فقط Issabel باید Update شود؟
خیر.
این یکی از مهمترین نکات در نگهداری سیستمهای Open Source است.
یک سرور Issabel از اجزای مختلف تشکیل شده است:
Issabel + Asterisk + Linux + PHP + Database + Web Server + Libraries + Modules
هرکدام از این بخشها میتوانند در طول زمان دارای Bug یا آسیبپذیری شوند.
بنابراین مدیر سیستم نباید فقط منتظر یک نسخه ISO جدید بماند.
باید بهصورت دورهای موارد زیر بررسی شوند:
- Security Advisoryهای Issabel
- Packageهای Issabel
- Updateهای سیستمعامل
- Asterisk
- PHP و Libraryهای مرتبط
- Moduleهای نصبشده
- سرویسهای Web
- Database
- Firewall و ابزارهای امنیتی
Issabel نیز در منابع رسمی خود، نسخههای جدید و Patchهای مربوط به Bugها را منتشر میکند و در سرویس پشتیبانی خود تأکید کرده که راهحل Bugهای Issabel در قالب Patchهای در دسترس منتشر میشوند.
Open Source بودن Issabel یعنی چه؟
گاهی این تصور وجود دارد که چون Issabel یک نرمافزار Open Source است، بنابراین امنیت آن خودکار انجام میشود.
این تصور اشتباه است.
Open Source بودن به معنی بدون نیاز بودن به Update نیست.
برعکس، یکی از مزایای Open Source این است که کد و پروژه توسط جامعه توسعهدهندگان و Maintainerها توسعه پیدا میکند و مشکلات میتوانند شناسایی و اصلاح شوند.
اما این Patchها زمانی امنیت سیستم شما را افزایش میدهند که روی سرور شما نصب شده باشند.
یعنی:
انتشار Security Patch به تنهایی سرور شما را امن نمیکند؛ نصب Patch است که سیستم را اصلاح میکند.
Issabel خود را بهعنوان یک نرمافزار Free و Open Source برای Unified Communications معرفی میکند و Repositoryهای پروژه نیز در دسترس جامعه قرار دارند.
🔥 چه نسخههایی تحت تأثیر Security Advisory هستند؟
در Advisory مورد استفاده برای این هشدار، نسخههای زیر بهعنوان نسخههای نیازمند Update مشخص شدهاند:
Issabel 4
issabel-framework 4.0.0.12 or earlier Issabel 5
issabel-framework 5.0.0.3 or earlier بنابراین اگر نسخه Framework سیستم شما برابر یا پایینتر از این مقادیر است، باید وضعیت Update آن را بررسی کنید.
چگونه نسخه Issabel Framework را بررسی کنیم؟
قبل از Update میتوانید نسخه Package مربوط به Framework را با دستور زیر بررسی کنید:
rpm <span class="ͼ12">-q</span> issabel-framework یا:
rpm <span class="ͼ12">-qa</span> | <span class="ͼ10">grep</span> issabel-framework برای مثال ممکن است خروجی چیزی شبیه این باشد:
issabel-framework-5.0.0.3 در این حالت باید Update امنیتی مربوطه را انجام دهید.
🚨 دستور Update برای Issabel 4
اگر سیستم شما Issabel 4.0.0.12 یا قدیمیتر است، دستور مشخصشده در Advisory این است:
yum <span class="ͼ12">--disablerepo</span><span class="ͼv">=</span>* <span class="ͼ12">--enablerepo</span><span class="ͼv">=</span>issabel update issabel-framework این دستور بهصورت مشخص Repositoryهای دیگر را غیرفعال کرده و Update مربوط به issabel-framework را از Repository مربوط به Issabel دریافت میکند.
🚨 دستور Update برای Issabel 5
اگر سیستم شما Issabel 5.0.0.3 یا قدیمیتر است:
yum --disablerepo=* --enablerepo=issabel-cinco-beta update issabel-framework این دستور Package مربوط به issabel-framework را از Repository مشخصشده دریافت و Update میکند.
چرا دستور Update را دقیقاً همینطور اجرا کنیم؟
در یک سرور Production نباید بدون توجه به Repositoryها، هر دستوری را اجرا کرد.
دستورات بالا عمداً از:
<span class="ͼ12">--disablerepo</span><span class="ͼv">=</span>* استفاده میکنند.
یعنی Repositoryهای دیگر موقتاً غیرفعال میشوند.
سپس Repository موردنظر با:
<span class="ͼ12">--enablerepo</span><span class="ͼv">=</span>issabel یا:
<span class="ͼ12">--enablerepo</span><span class="ͼv">=</span>issabel-cinco-beta فعال میشود.
در نتیجه Package موردنظر از Repository مشخصشده دریافت میشود.
⚠️ قبل از Update حتماً Backup بگیرید
اگرچه Update امنیتی ضروری است، اما هیچوقت توصیه نمیشود روی یک سیستم Production بدون Backup تغییر ایجاد کنید.
قبل از Update حداقل از موارد مهم سیستم Backup داشته باشید.
بهخصوص:
- Configurationهای Issabel
- Database
- ضبط مکالمات
- Dialplanهای سفارشی
- AGI Scriptها
- Scriptهای اختصاصی
- تنظیمات SIP
- IVR
- Queue
- اطلاعات Call Center
- Integrationهای CRM
اگر سیستم شما یک PBX حیاتی است، بهتر است قبل از Update یک Backup قابلبازگشت یا Snapshot نیز داشته باشید.
آیا با Update، آخرین نسخه Issabel را داریم؟
اینجا یک نکته فنی بسیار مهم وجود دارد.
وقتی این دستور را اجرا میکنید:
yum ... update issabel-framework هدف آن این است که آخرین نسخه قابلدریافت Package مربوطه از Repository فعال و شاخه مربوط به سیستم شما نصب شود.
اما این به معنی ارتقای Major Version نیست.
برای مثال:
Update Issabel 5 ≠ Upgrade از Issabel 5 به Major Version بعدی
بنابراین بهتر است بگوییم:
با Update صحیح، آخرین Package موجود برای Repository و شاخه فعلی سیستم خود را دریافت میکنید.
این دقیقتر از عبارت «با Update همیشه آخرین نسخه اصلی Issabel را دارید» است.
خود Issabel نیز در سیاست پشتیبانی خود اشاره میکند که نسخههای جدیدتر از سطح پشتیبانی بالاتری برخوردارند و نسخههای قدیمیتر ممکن است پشتیبانی محدودتری داشته باشند.
بعد از Update چه کاری انجام دهیم؟
Update را تمامشده فرض نکنید.
بعد از اجرای دستور، ابتدا نسخه Package را بررسی کنید:
rpm <span class="ͼ12">-q</span> issabel-framework سپس وضعیت Asterisk را بررسی کنید:
asterisk <span class="ͼ12">-rx</span> <span class="ͼz">"core show version"</span> اگر از PJSIP استفاده میکنید:
asterisk <span class="ͼ12">-rx</span> <span class="ͼz">"pjsip show endpoints"</span> اگر سیستم شما از chan_sip استفاده میکند:
asterisk <span class="ͼ12">-rx</span> <span class="ͼz">"sip show peers"</span> بعد از Update حتماً تماس تستی بگیرید
در یک PBX واقعی، تست عملی بسیار مهم است.
بعد از Update موارد زیر را بررسی کنید:
تماس داخلی
یک تماس بین دو داخلی برقرار کنید.
تماس خروجی
یک تماس از طریق SIP Trunk برقرار کنید.
تماس ورودی
یک تماس از خارج به شماره سازمان برقرار کنید.
IVR
منوی IVR را تست کنید.
Queue
در صورت استفاده از Queue، ورود تماس و اتصال به Agent را بررسی کنید.
Recording
مطمئن شوید ضبط مکالمات همچنان کار میکند.
Call Center
اگر سیستم Call Center دارید، وضعیت Agentها، Queue و Campaignها را بررسی کنید.
آیا بعد از Update باید سرویسها را Restart کنیم؟
بسته به Packageهایی که Update شدهاند، ممکن است Restart برخی سرویسها لازم باشد.
اما نباید بدون دلیل تمام سرویسهای Production را Restart کرد.
ابتدا خروجی Update را بررسی کنید.
سپس وضعیت سرویسهای مرتبط را بررسی و در صورت نیاز Restart کنید.
در سیستمهای حساس، این کار را در زمان کمترافیک انجام دهید.
اگر بعد از Update هنوز نسخه قدیمی را دیدیم چه کنیم؟
اگر بعد از اجرای دستور هنوز نسخه قبلی را مشاهده کردید، دستور را پشت سر هم اجرا نکنید.
ابتدا موارد زیر را بررسی کنید:
Repository
yum repolist نسخه Package
rpm <span class="ͼ12">-q</span> issabel-framework دسترسی به Repository
بررسی کنید سرور به Repository دسترسی دارد.
وضعیت Package Manager
خروجی yum را کامل بررسی کنید.
ممکن است Package به دلیل Dependency، Repository یا محدودیت دیگری Update نشده باشد.
یک اشتباه خطرناک: «چون سیستم کار میکند، پس امن است»
یکی از بدترین روشهای نگهداری یک PBX این است:
«سیستم مشکلی ندارد، پس دست نزنیم.»
یک آسیبپذیری امنیتی لزوماً باعث Crash یا خرابی سیستم نمیشود.
ممکن است سیستم کاملاً عادی کار کند، تماسها برقرار شوند و کاربران هیچ مشکلی مشاهده نکنند؛ اما در همان زمان یک آسیبپذیری شناختهشده روی سرور وجود داشته باشد.
بنابراین:
Stable بودن سیستم با Secure بودن آن یکسان نیست.
جمعبندی
آسیبپذیریهای امنیتی در نرمافزارهایی که مستقیماً با Internet در ارتباط هستند، باید جدی گرفته شوند.
Issabel نیز از این قاعده مستثنی نیست.
اگر از Issabel برای مرکز تلفن، Call Center یا زیرساخت ارتباطی سازمان استفاده میکنید، بهخصوص اگر سرور شما از طریق Internet قابل دسترسی است، توصیه میشود وضعیت Security Updateهای آن را مرتب بررسی کنید.
در Security Advisory مورد بحث، نسخههای قدیمی issabel-framework در Issabel 4 و Issabel 5 نیازمند Update هستند.
Issabel 4
yum --disablerepo=* --enablerepo=issabel update issabel-framework Issabel 5
yum --disablerepo=* --enablerepo=issabel-cinco-beta update issabel-framework و بعد:
rpm <span class="ͼ12">-q</span> issabel-framework قبل از Update Backup بگیرید، بعد از Update نسخه را بررسی کنید و حتماً تماسهای اصلی سیستم را تست کنید.
و یک نکته را همیشه به خاطر داشته باشید:
یک سیستم VoIP که بدون مشکل کار میکند، لزوماً یک سیستم امن نیست.
بهروز نگه داشتن Issabel، Asterisk، Linux و سایر Open Sourceهای مورد استفاده، بخشی از نگهداری حرفهای زیرساخت VoIP است.
VOIPIRAN.io — مرجع تخصصی VoIP، Issabel و Asterisk
منابع
وبسایت رسمی Issabel
صفحه دریافت Issabel
Community رسمی Issabel
اخبار و Security Updateهای Issabel













