وقتی از Asterisk به عنوان سوییچ نرم افزاری (SoftSwitch ) برای انتقال ترافیک VoiceOverIP سازمان استفاده می کنید و هزینه زیادی برای ترافیک داخلی و بین الملل پرداخت می کنید ، امنیت Asterisk بیشتر اهمیت پیدا می کند . همیشه هکر هایی در سازمان یا بیرون آن وجود دارند که به دنبال Asterisk های ناامنی هستند که بتوانند به آن نفوذ کرده و در کمتر از چند دقیقه یک صورت حساب میلیونی به شما هدیه بدهند .
در اینجا نمی خواهیم مکانیزم های امنیتی ممکن و موجود را برای امن کردن یک سرور در شبکه بیان کنیم بلکه به طور خاص نکاتی در استفاده از فایروال پیش فرض لینوکس به عنوان اولین مرحله از چرخه تامین امنیت این سرویس را بررسی می کنیم .
مسدود کردن دسترسی به سرور برای همه بجز کاربران معتبر:
اگز از Asterisk فقط برای سرویس دهی به کاربران سازمان خودتان ، یک رنجه آی پی یا شبکه استفاده می کنید و نیازی به دسترسی به سرور توسط تمامی کاربران ( مثلا برای ارائه یک سرویس تلفن بین الملل عمومی ) ندارید اولین گام مسدود کردن تمامی ترافیک عبوری برای تمامی کاربران است . این مرحله را به صورت Locally برروی سرور Asterisk انجام دهید چون ارتباط خود شما نیز قطع خواهد شد .
iptables -P INPUT DROP
اکنون تمامی ترافیک ورودی به سرور شما مسدود شده است . در این مرحله به آی پی ، رنجه آی پی یا شبکه ای که می خواهیم با سرور ما تبادل ترافیک داشته باشند را اجازه دسترسی می دهیم . به عنوان مثال:
iptables -I INPUT -s 173.194.32.104 -j ACCEPT
یا برای یک رنجه شبکه :
iptables -I INPUT -i eth1 -s 192.168.1.0/24 -j ACCEPT
از دستور بالا زمانی که شما چندین کارت شبکه دارید و شبکه مورد اعتماد شما به یکی از کارت شبکه ها متصل است نیز می توانید استفاده کنید .
مسدود کردن دسترسی به اتصال های SIP :
برای مسدود کردن دسترسی یک آی پی به پورت SIP :
iptables -A INPUT -p TCP -s 192.168.16.1 --dport 5060 -j DROP
اگر از علامت تعجب قبل از آدرس آی پی استفاده کنید دسترسی تمامی آی پی به پورت SIP بجز آی پی مورد نظر مسدود خواهد شد .
iptables -A INPUT -p TCP -s ! 192.168.16.1 --dport 5060 -j DROP
البته مسدود کردن دسترسی به یک پورت خاص برای یک آی پی مطمئنا روش مناسبی برای جلوگیری از نفوذ نخواهد بود و دسترسی به صورت کامل باید مسدود شود .
DROP در برابر REJECT
نکته ای که باید در مسدود کردن دسترسی ها در IPtables مورد توجه قرار بدهیم DROP کردن پکت ها و نه REJECT کردن آنها است
در واقع استفاده از REJECT ، هکر را از اینکه پکت های او REJECT شده مطلع می کند و در پویش توپولوژی شبکه کمک خواهد کرد .
موضوعات مشابه: