خط Wrong password برای داخلی ۱۰۱، ساعت سه بامداد در لاگ Asterisk، یعنی کسی رمز را حدس می‌زند. از این خط به بعد، امنیت ایزابل مسئله‌ای مالی است. صاحب سانترال معمولاً نگران داده است. خسارت اصلی اما قبض تماس است: اسکنر داخلی‌ها را می‌شمارد، رمز ضعیف را می‌زند و شبانه مقصدهای گران را می‌گیرد. چهار مانع جلویش می‌ایستد: رمز قوی، فهرست مجاز IP، زندان Fail2ban و رمز روی مسیر خروجی.

مرحله حملهردپا در لاگمانع
شناسایی سرورسربرگ User-Agent با مقدار friendly-scannerفایروال و محدودیت IP
شمارش داخلی‌ها«No matching endpoint found» یا «No matching peer found»پاسخ یکسان به نام درست و نادرست
حدس رمز«Wrong password» یا «ChallengeResponseFailed»رمز قوی و زندان Fail2ban
تماس خروجی جعلی«Rejecting unknown SIP connection» یا ردیف مشکوک در گزارش تماسرمز مسیر و سقف اعتبار ترانک
تکرار همان چهار گامهمان IP بارها در لاگبن ۱۲ ساعته زندان و پایش گزارش

💡 چرا قبض، اولین نشانه است

سرویس وصل می‌ماند و مهاجم هم‌زمان با کارمندها از همان سانترال با مقصدهای گران تماس می‌گیرد؛ از بیرون چیزی غیرعادی دیده نمی‌شود.
✅ قبل از قبض، گزارش تماس‌های ساعت تعطیل را بخوانید؛ نشت همان‌جا پیداست.

فایروال فهرست‌محور و جداسازی کانتکستی که موقع نصب ایزابل روی سرور مجازی گذاشته‌اید، مرز سانترال شما هستند. مهاجم همین مرزها را هر شب می‌آزماید. حمله ترتیب ثابتی دارد و هر گام یک خط در لاگ می‌گذارد. هر چه زودتر زنجیره را قطع کنید، خسارت کمتر است.

لاگ تماس‌های ناموفق سانترال روی نمایشگر سرور

زنجیره حمله تماس جعلی روی SIP

مهاجم چهار گام برمی‌دارد: سرور را پیدا می‌کند، داخلی‌ها را می‌شمارد، رمز یکی را می‌زند و خط خروجی می‌گیرد. شب بعد همین را تکرار می‌کند. امنیت ایزابل به شکستن فقط یکی از این چهار حلقه بند است. تماس جعلی بدون هر چهار گام به نتیجه نمی‌رسد.

مجموعه SIPVicious ابزار متداول این کار است؛ طبق مستندات پروژه، svmap سرور را پیدا می‌کند، svwar داخلی‌ها را می‌شمارد و svcrack رمز را امتحان می‌کند. از دید مدافع، همه این‌ها رشته‌ای از درخواست ناموفق در لاگ است.

ردپای هر گام در لاگ

  • شناسایی: سربرگ User-Agent با مقدار friendly-scanner در بسته‌های SIP.
  • شمارش داخلی: در PJSIP خط «No matching endpoint found» و در chan_sip «No matching peer found».
  • حدس رمز: «Wrong password» یا رویداد «ChallengeResponseFailed».
  • تماس خروجی: «Rejecting unknown SIP connection» برای تماس ناشناس ردشده، یا ردیف ناآشنا در گزارش تماس.

🔸 امضای اسکنر در لاگ

در کد SIPVicious مقدار پیش‌فرض سربرگ User-Agent رشته friendly-scanner است. ابزار می‌تواند این مقدار را عوض کند، پس ندیدنش دلیل امنیت نیست. این سربرگ را با pjsip set logger on در کنسول Asterisk می‌بینید.

امنیت ایزابل، زندان Fail2ban را برای لاگ امنیتی Asterisk تنظیم کنید

زندان Fail2ban را برای لاگ امنیتی Asterisk تنظیم کنید

زندان asterisk در Fail2ban لاگ Asterisk را می‌خواند و IP منبعی را که پیاپی در احراز هویت شکست می‌خورد بن می‌کند. اگر زندان فایل درست را نخواند، امنیت ایزابل فقط ظاهری است و هیچ مهاجمی بن نمی‌شود.

زندان پیش‌فرض ایزابل

طبق مستندات ایزابل، قوانین Fail2ban هنگام نصب اضافه می‌شوند و در پنل از مسیر Security → Fail2Ban دیده می‌شوند؛ اگر سرویس خاموش است، روشنش کنید. فایل jail.d/issabel.conf زندان asterisk را با maxretry = 5 و bantime = 43200 (۱۲ ساعت) فعال می‌کند و زندان جدای asterisk-ami هم دارد. فیلتر در /etc/fail2ban/filter.d/asterisk.conf است و زندان، فایل /var/log/asterisk/messages را می‌خواند.

هر خط لاگ با کدام الگو گرفته می‌شود

# خط لاگ:    Registration from '<sip:101@...>' failed for '203.0.113.45:5060' - Wrong password
# الگوی فیلتر: failed for '<HOST>(:\d+)?' - (?:Wrong password|...)

# خط لاگ:    SecurityEvent="ChallengeResponseFailed",... RemoteAddress="IPV4/UDP/203.0.113.45/5060"
# الگوی فیلتر: SecurityEvent="(?:...|ChallengeResponseFailed|...)",... RemoteAddress="IPV[46]/[^/"]+/<HOST>/\d+"

خط اول کار chan_sip است و خط دوم رویداد امنیتی. PJSIP هر احراز ناموفق را با خط «Failed to authenticate» در سطح NOTICE هم ثبت می‌کند و فیلتر آن را هم می‌گیرد.

بررسی کنید رویدادها به messages می‌رسند

در نصب تازه ایزابل، ماژول Asterisk Logfile Settings سطح لاگ security را در فایل messages هم روشن می‌کند. با grep SECURITY /var/log/asterisk/messages وجود این خط‌ها را بسنجید. اگر خالی بود، سطح security را در همان ماژول برای messages روشن کنید، نه برای فایلی جدا، چون زندان فایل جدا را نمی‌خواند. سپس fail2ban-client status asterisk فهرست IPهای بن‌شده را نشان می‌دهد؛ در پنل هم صفحه Banned IPs هست.

⚠️ زندانی که لاگ اشتباه را می‌بیند یا دفتر خودتان را می‌بندد

دو خطای رایج: فایل لاگ زندان با جایی که Asterisk می‌نویسد فرق دارد، پس زندان چیزی نمی‌بیند؛ یا نشانی دفتر در ignoreip نیست و اولین اشتباه رمز کارمند، IP خودتان را بن می‌کند. فهرست ignoreip را هم مرور کنید و هر نشانی ناآشنا را حذف کنید.

داخلی با رمز ضعیف دروازه خروجی مهاجم است

ضعیف‌ترین داخلی، کف امنیت ایزابل را تعیین می‌کند. مهاجم فقط به یک داخلی با رمز قابل‌حدس نیاز دارد تا خط خروجی بگیرد. سه کار این دروازه را می‌بندد: رمز قوی، پاسخ یکسان به نام کاربری درست و نادرست، و فهرست مجاز IP.

رمز قوی و پاسخ یکسان

ایزابل رمز داخلی را دست‌کم شش کاراکتر با حداقل دو حرف و دو رقم می‌خواهد. صفحه Security → Weak Keys فهرست رمزهای ضعیف موجود را می‌آورد. در chan_sip گزینه alwaysauthreject پیش‌فرض yes است: درخواست ردشده همیشه یک پاسخ می‌گیرد و مهاجم نمی‌فهمد نام کاربری درست بوده یا نه. ایزابل این گزینه و allowguest=no را خودش در تنظیمات عمومی SIP می‌نویسد. در PJSIP این رفتار توکار است و طبق توضیح کد، گزینه جدایی ندارد.

فهرست مجاز IP با permit و deny

اگر داخلی جای ثابتی دارد، دسترسی‌اش را به همان نشانی محدود کنید. فرم داخلی chan_sip در ایزابل فیلدهای Permit و Deny دارد که پیش‌فرضشان 0.0.0.0/0.0.0.0 است، یعنی همه نشانی‌ها. در PJSIP شیء type=acl با کلیدهای permit، deny و contact_acl (از Asterisk 12.2.0) روی همه ترافیک ورودی SIP اعمال می‌شود. برای شعبه، یک آی‌پی اختصاصی و ثابت این فهرست را دقیق می‌کند.

پنل وب و AMI را محدود کنید

رابط AMI در ایزابل روشن است و پنل به آن نیاز دارد، پس خاموشش نکنید. فایل manager.conf ایزابل enabled = yes و bindaddr = 0.0.0.0 روی پورت 5038 دارد. اگر برنامه‌ای از بیرون سرور به AMI وصل نمی‌شود، bindaddr را 127.0.0.1 کنید. کاربر admin با permit و deny به localhost محدود است؛ همین را نگه دارید. رمز آن از AMPMGRPASS در amportal.conf می‌آید و اگر پیش‌فرض مانده، رمز قوی بگذارید.

⚠️ پنل و AMI باز روی اینترنت

رابط AMI باز روی نشانی عمومی یعنی هر کس رمز را بزند کنترل تماس‌ها را دارد؛ پنل وب باز هم صفحه ورود را در معرض حمله رمز می‌گذارد. پورت 5038 و پنل را در Security → Firewall فقط برای نشانی مدیران باز کنید.

سقف هزینه را بیرون از سانترال هم ببندید

سقف هزینه را بیرون از سانترال هم ببندید

بن‌کردن مهاجم، امنیت ایزابل را کامل نمی‌کند؛ خسارت را هم باید سقف‌دار کرد. کارت سوخت شرکت که شبانه در شهری دیگر کشیده می‌شود با سقف روزانه و ساعت‌های مجاز مهار می‌شود، و خط خروجی سانترال با رمز مسیر، ساعت کاری و سقف اعتبار ترانک.

مسیر خروجی را پشت رمز و ساعت کاری بگذارید

هر مسیر خروجی ایزابل گزینه Route Password دارد. طبق متن ماژول، مسیر پیش از وصل تماس رمز می‌خواهد تا تماس به مقصد بین‌الملل یا شماره‌های گران محدود شود. مقدار آن یک رمز عددی است یا مسیر یک فایل رمز. Asterisk این رمز را با Authenticate می‌گیرد و پس از سه تلاش ناموفق خط را قطع می‌کند. برای چند کاربر، ماژول PIN Sets فهرست رمز می‌سازد. گزینه Time Group هم مسیر را بیرون از ساعت کاری نادیده می‌گیرد؛ مسیر بین‌الملل را به ساعت اداری ببندید.

گزارش تماس را بخوانید

گزارش تماس سه ردپا را نشان می‌دهد: تماس خروجی در ساعت تعطیل، تکرار به مقصد ناآشنا و جهش ناگهانی تماس هم‌زمان.

💡 گزارش تماس کجاست

در پنل از مسیر Reports → CDR Report. روی سرور، اگر ماژول cdr_csv بار شده باشد، فایل /var/log/asterisk/cdr-csv/Master.csv. واکنش را از قبل بچینید تا آن صبح وقت تلف نشود: داخلی مشکوک خاموش، رمز تازه، الگوی مقصد بسته.

سریع‌ترین ترمز بیرون از سانترال، سقف اعتبار ترانک است و فقط ارائه‌دهنده می‌تواند آن را بگذارد. از ارائه‌دهنده بپرسید سقف اعتبار یا فهرست مقصد مجاز دارد یا نه. اگر دارد، همین امروز فعالش کنید.

صبحی که ارائه‌دهنده ترانک درباره قبضی غیرعادی زنگ زد، نمی‌دانستید از کجا شروع کنید. اولین جواب آن صبح در گزارش تماس ساعت‌های تعطیل بود.

چطور بفهمم سانترالم تماس جعلی داشته است؟

از گزارش تماس. تماس بیرون از ساعت کاری، تکرار به مقصد گران ناآشنا یا جهش تماس هم‌زمان نشانه نشت است. در پنل مسیر Reports → CDR Report را ببینید.

دارد. قوانین Fail2ban هنگام نصب ایزابل اضافه می‌شوند و در Security → Fail2Ban دیده می‌شوند. کار شما فقط سنجیدن روشن و درست بودن آن است.

در chan_sip گزینه alwaysauthreject پیش‌فرض yes است تا مهاجم نفهمد نام کاربری درست بوده یا نه. در PJSIP همین رفتار توکار است و گزینه جدا ندارد.

ایزابل دست‌کم شش کاراکتر با حداقل دو حرف و دو رقم می‌خواهد. رمز نباید قابل‌حدس یا برابر شماره داخلی باشد؛ صفحه Weak Keys رمزهای ضعیف را نشان می‌دهد.

زندان asterisk فایل /var/log/asterisk/messages را می‌خواند. در ایزابل سطح security به‌طور پیش‌فرض در همین فایل است؛ با grep SECURITY روی آن بسنجید و اگر نبود، در Asterisk Logfile Settings برای messages روشنش کنید.

برای مسیر بین‌الملل گزینه Route Password را پر کنید؛ Asterisk پس از سه تلاش ناموفق خط را قطع می‌کند. برای چند کاربر از ماژول PIN Sets استفاده کنید.

مسیری که با / شروع شود، در مستندات Authenticate فایلی است با یک رمز ساده در هر خط. فهرست کد و هش فقط با گزینه m خوانده می‌شود و ایزابل Authenticate را بدون گزینه صدا می‌زند.

رابط AMI را خاموش نکنید، چون پنل به آن نیاز دارد. آن را به 127.0.0.1 ببندید، permit و deny را روی localhost نگه دارید و رمز قوی بگذارید. پورت 5038 و پنل را در Security → Firewall فقط برای مدیران باز کنید.

بله. فایروال جلوی نشانی‌هایی را می‌گیرد که از پیش بسته‌اید؛ Fail2ban نشانی‌ای را که بارها رمز اشتباه می‌زند خودکار بن می‌کند. هر دو را روشن نگه دارید.

جمع‌بندی؛ امنیت ایزابل زنجیره‌ای است که در نخستین حلقه ممکن می‌شکند حمله همان چهار گام همیشگی است و هر گام مانع و ردپای خودش را دارد. فایروال و فهرست مجاز IP اسکنر را از سرویس دور نگه می‌دارد. رمز قوی و پاسخ یکسان، شمارش و حدس را بی‌اثر می‌کند. زندان Fail2ban را به messages وصل نگه دارید و نشانی دفتر را در ignoreip بگذارید تا فقط مهاجم بن شود. AMI را روشن اما محدود نگه دارید. چون هیچ دیواری کامل نیست، مسیر خروجی را پشت رمز و ساعت کاری بگذارید و گزارش تماس را هر هفته بخوانید تا نشت پیش از رسیدن قبض در لاگ دیده شود.

🚀 دیوارها کجا کشیده می‌شوند

رمز مسیر خروجی آخرین قفل است؛ قفل اول، کانتکستی است که تماس ناشناس را اصلاً به مسیر خروجی نمی‌رساند.

در لاگ خودتان کدام شماره داخلی بیشترین خط ثبت ناموفق را دارد؟ رمز همان داخلی را پیش از همه عوض کنید؛ مهاجم از آن شروع کرده است.

منابع

وب داده
وب داده

جدید ترین مطالب آموزشی و کاربردی را در اینجا بخوانید !
ما با بهره‌گیری از دانش روز و تجربه متخصصان حوزه فناوری، مجموعه‌ای از آموزش‌های کاربردی و مقالات تخصصی را گردآوری کرده‌ایم که هر یک، پاسخی دقیق به پرسش‌های شماست. ؛ از مفاهیم پایه تا پیچیده‌ترین تکنیک‌های حرفه‌ای. اینجا، دانش با زبانی ساده اما عمیق در اختیار شما قرار می‌گیرد.

مقاله‌ها: 279
پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *