احتمالا تا به حال به بسیاری از افراد برخورده اید که سیستم تلفنی استریسکی آنها هک شده است و مجبور به پرداخت میلیون ها تومان به مخابرات شده اند و یا حتی شاید خودتان قربانی این حملات بوده اید، یک سرور ویپ همانند هر سرور دیگری نیاز به امن شدن دارد با این تفاوت که سرور های ویپ با توجه به ارزش بسیار بالای ترافیک تلفنی بین الملل دارای جذابیت بسیار زیادی برای هکر ها هستند.
بسیاری از هک های سیستم های تلفنی توسط روبات ها صورت می گیرند و آنها با سیستم های کد بار کاملا آشنا هستند، در صورتی که سیستم استریسک خود را بر روی اینترنت قرار بدهید نیازی به بد شانسی برای هک نیست ! قطعا در یک بازه زمانی هک خواهید شد، پس فراموش نکنید سرور تلفنی خود را هرگز به اینترنت بدون محافظ و درنظر گرفتن نکات ایمنی متصل نکنید.
علاوه بر زیان بسیار مالی که خواهید کرد، این تلفن ها ممکن است شما یا شرکت شما را نیز بواسطه تماس هایی که گرفته می شود، در گیر موارد امنیتی، پلیسی کند که متاسفانه این اتفاق بسیار زیاد رخ می دهد فقط به این خاطر که نصب این سیستم ها توسط افراد غیر حرفه ای صورت می پذیرد.
اگر خود، متخصص الستیکس هستید حتما موارد و نکات زیر را در نظر بگیرید و اگر به عنوان یک کارفرما و یا علاقه مند این مطلب را میخوانید هرگز راه اندازی سیستم تلفنی خود را به اشخاص یا شرکت های غیر تخصصی ویپ نسپارید و حتما در مورد امنیت سرور جویا شوید.
اما نکات کلیدی زیر که می بایست همه این موارد را بر روی سرور استریسکی خود از قبیل الستیکس(Elastix)، واک(Vaak)، ایزو استریسک (AsteriskNow) و یا فری پی بی اکس(Freepbx) اعمال نمایید از این قرار است:
نکته اول: استفاده از IPTables لینوکس
اگر از ایزو استریسکی استفاده کنید به طور حتم روی لینوکس هستید ! فایروال لینوکس که به نام IPTables شناخته می شود بر روی اکثر لینوکس ها به صورت پیشفرض وجود دارد، وظیفه این سرویس حیاتی بستن پورت های شبکه برای همه آی پی های بیرونی و یا دسترسی دادن فقط به یک گروه آی پی خاص است، اگر الستیکس دارید منوی security درواقع همین IPTables لینوکس است پس کار شما برای تغییر rule ها ساده است، اما اگر ایزو های دیگر را دارید با نصب برنامه webmin کار با این سرویس را به صورت گرافیکی انجام دهید و اگر لینوکس کار حرفه ای هستید می توانید با کامند برای IPTables قانون بنویسید.
نکته مهم این است که بدانید چه پورت هایی را سیستم شما نیاز دارد تا از کار نیافتد.
الزامی:
– پروتکل SIP: پورت ۵۰۶۰ بر روی tcp و udp- پروتکل RTP: پورت ۱۰۰۰۰ تا ۲۰۰۰۰ بر روی udp
– پروتکل IAX2: پورت ۴۵۶۹ بر روی udp
اختیاری:
– دسترسی محیط وب: پورت ۴۴۳ بر روی tcp
– دسترسی SSH: پورت ۲۲ بر روی tcp
نکته دوم: تغییر پورتهای شبکه رایج
پورت های برنامه های معروف را تغییر دهید، این کار می تواند تا حد بسیاری شما را از دست سیستم های هک اتوماتیک خلاص کند، از پورت های معروف و مورد استفاده می توانید به موارد زیر اشاره کرد.
– http:80
– ssl:443
– ssh:22
فراموش نکنید وقتی آنها را تغییر می دهید بهتر است یک پورت ۴ رقمی و غیر آشنا انتخاب کنید، مثلا پورت ۲۲ را به ۲۲۲۲ تغییر ندهید !
نکته سوم: استفاده از NAT
NAT دوست شماست ! از آن حتما استفاده کنید، یعنی سرور خود را برای دسترسی به اینترنت، پشت NAT قرار دهید یا به عبارتی دسترسی از روی اینترنت به سرور شما مستقیم نباشد و از یک واسط استفاده شود، البته فراموش نکتید وقتی سرور پشت NAT قرار می گیرد باید مراقب ملاحظات پروتکل SIP نیز باشید.
نکته چهارم: استفاده از Fail2Ban
برنامه Fail2Ban برای جلوگیری از هک کاربر و رمز یک سیستم بواسطه تست صحیح و خطا تولید شده است، با سرویس ها و برنامه های مختلفی کار می کند، لاگ آنها را خوانده و در صورتی که ببینید کسی در حال سعی برای یافتن رمز یک کاربر است آی پی آدرس فرد را تا مدت زمان دلخواه شما بواسطه IPTables مسدود می کنید. در دل این برنامه الگوریتم خواندن لاگ های استریسک ۱۱ نیز وجود دارد و نیاز زیادی به تغییرات نیست، Fail2Ban خیال شما را از این بابت راحت می کند، این برنامه را از این سایت بگیرید.
نکته پنجم: اجازه ندهید داخلی شما از روی هر آی پی آدرسی رجیستر شود
اگر در استریسک (الستیکس، فری پی بی اکس) یک داخلی بسازید، یکی از پارامتر های آن permit و دیگری deny است، که می توانید یک آی پی خاص و یا یک محدوده آدرس تعیین نمایید تا فقط در صورتی که داخلی از روی این آی پی ها درخواست رجیستر شدن ارسال کرد استریسک مجوز آن را بدهد.
با این کار اگر داخلی و رمز آن به سرقت برود دیگر کسی از آی پی آدرس های غیر مجاز، نمی تواند با آن داخلی رجیستر شود، فرمت وارد کردن آی پی آدرس ها به شکل زیر است:
permit=/
deny=/
نکته ششم: از Outbound های خود محافظت کنید.
می دانید Outbound ها در واقع راه های خروج از سیستم به سمت یک مخابرات و یا سرویس دهند های اینترنتی هستند، مقاصدی که برای ارسال تمای آنها هزینه زیادی پرداخت می کنید، در واقع بخش نگران کننده هک شدن سرور شما همین قسمت است، تمام تلاش را می کنیم تا یک هکر به مسیر های رو به بیرون سیستم تلفنی ما درسترسی پیدا نکند.
در یک سیستم استریسکی بخصوص سیستم هایی که از Freepbx استفاده می کنند، شما در حین تعریف یک Outbound Route می توانید مواردی را درنظر بگیرید که کار یک هکر را سخت تر کند به عنوان مثال:
۱. برای Outbound Route های خود رمز بگذارید.
۲. Outbound Route های خود را فقط برای افراد محدودی قابل استفاده کنید، این کار بواسطه کاراکتر / در Dial Pattern نویسی امکان پذیر است.
۳. Outbound Route های خود را فقط برای یک بازه زمانی خاص فعال کنید، این امکان بواسطه Time Group استریسک امکان پذیر است. نیازی نیست مسیر تماس های بین الملل (۰۰) شرکت شما در شب نیز که کسی در محل کار نیست فعال باشد!
نکته هفتم: استفاده از رمز های عبور خفن !
بابت کلمه خفن ببخشید ! می خواستم از کلمه قوی استفاده کنم ولی دیدم معمولا کسی به این نکته دقت نمی کنه خواستم تاکید بیشتری کرده باشم، شما با همین نکته بسیار ساده جلوی بسیاری از هکر های Bot (اتوماتیک) را می گیرید، به همین سادگی، فقط هنگام تعریف رمز روی اعصاب خود مسلط باشید !
یک رمز قوی تا این لحظه یعنی سال ۲۰۱۵ یک کلمه ترکیبی از عدد، حروف (کوچک و بزرگ)، نشانه و با طول حداقل ۱۲ کاراکتر است، اگر فکر می کنید سخت است کافی است آن را با کلماتی بسازید که در ذهن شما می ماند و برای انتخاب رمز بعدی از همین الگوریتم استفاده نمایید، مثلا من می خواهم برای داخلی های استریسک خود رمز بگذارم.
داخلی ۱۱۰۱ رمز: GoRbEYeChAgH@!1101
داخلی ۱۱۰۲ رمز: GoRbEYeChAgH@!1102
داخلی ۱۱۰۳ رمز: GoRbEYeChAgH@!1103
می بینید، حفظ کردن همه رمز ها ساده است حتی اگر ۱۰۰۰ تا داخلی بسازم درحالی که رمز من بسیار پیچیده است.
نکته هشتم: تعداد مکالمات همزمان امکان پذیر را کاهش دهید.
در الستیکس ۲.۵ یا بهتره بگویم روی استریسک ۱۱ این امکان وجود دارد که شما به راحتی تعداد مکالماتی که یک داخلی به طور همزمان می تواند انجام دهد را محدود نمایید، شاید یک داخلی اگر روی یک گوشی ۴ خطه هم باشد باز به بیش از ۴ امکان تماس به بیرون در آن واحد نیاز نداشته باشد خود هنگام تعریف داخلی کافی است گزینه Outbound Concurrency Limit را با عدد دلخواه پر کنید.
همین طور در بحث ترانک های نیز می توانید در گزینه Maximum Channels تعدا مکالمات همزمان امکان پذیر روی ترانک را محدود کنید که این گزینه هم کمک می کند در صورتی که هک می شوید ضرر زیادی نکنید.
نکته نهم: لاگ های خود را همیشه بررسی کنید.
خوشبختانه روی استریسک ۱۱ که الستیکس ۲.۵ نیز از همین نسخه استفاده می کند، یک نوع لاگ برای امنیت Security در نظر گرفته شده است که در صورت بروز مشکلات امنیتی در استریسک و لاگ فایل جزئیات آن با تگ Security درج می گردد.
خوب حتما می دانید مسیر لاگ های استریسک در پوشه : /var/log/asterisk است.
اما نکته این جاست که این نوع لاگ به طور پیش فرض در الستیکس غیر فعال است و ما باید آن را فعال کنید، برای این منظور راه کار زیر را پیروی کنید:
۱. فایل /etc/asterisk/logger_logfiles_custom.conf را جهت ویرایش باز کنید (می توانید از Winscp استفاده کنید)
۲. خط زیر را به فایل اضافه نمایید.
security => security
۳. حال شما در پوشه /var/log/asterisk یک فایل جدید خواهید داشت به نام security که لاگ های امنیتی شما را نگهداری می کند.
نکته دهم: استفاده از فایر وال
همیشه سرور ویپ خود را پشت یک فایروال قوی و حرفه ای بگذارید، تمام نکات بالا را انجام دادیم اما یک فایروال خارج از سیستم می تواند امنیت ما را تضمین کند، این فایروال باید برای ترافیک ویپ، حملات ویپ و نکات مهم در این تکنولوژی تنظیم شود، پس علاوه بر فایروال به یک متخصص امنیت و آشنا به ویپ نیاز دارید تا این محصول را برای شما به درستی تنظیم کند.
نکته یازدهم: امن کردن مکالمه با TLS/SRTP
۱۰ نکته قبلی برای مقابله با هکر ها بود، کسانی که دنبال نفوذ به سیستم و دزدیدن ترافیک هستند، اما هنوز صحبت های شما قابل شنود است و حتی اطلاعات مکالمه ممکن است به راحتی در اختیار افراد قرار گیرد، خوب پروتکل SIP همانند HTTP کاملا آشکار (Clear) است، شما بر روی استریسک با امکان TLS پیام های کنترلی را رمز گزاری می کنید و همچنین با استفاده از SRTP پیام های صوتی یا همان صوت را رمز گزاری می کنید که دیگر کسی امکان شنود مکالمه را نیز نداشته باشد.
کار شما برای راه اندازی TLS کمی زیاد خواهد بود، می توانید با مقاله داخل wiki استریسک این کار را انجام دهید، برای این مورد نیاز به Self Signed Certification است دقیقا مثل سایت های HTTPS.
اما راه اندازی SRTP راحت است، کافی است شما پس از ساخت داخلی دوباره وارد تنظیمات آن روی سرور بروید و گزینه Encryption را برابر Yes قرار دهید، البته از این لحظه به بعد IPPhone یا Softphone شما نیز باید با SRTP فعال شده اقدام به برقراری تماس کند.
و در آخر باید بدانید این نکات تنها بخشی از امنیت سرور را تامین می کند، شاید راه ساده و کاربردی استفاده از فایروال تخصصی SIP و ویپ باشد.
با سپاس
حامد کوه فلاح