پوریا که در تیم امنیت مشغول به کار است لیستی از آیپیهای مختلف جهت تنظیم دسترسی کاربران تهیه کرده است. او اکنون از شما میخواهد اسکریپتی برای او بنویسید که با استفاده از آن بتواند عملیات مسدود یا آزاد سازی آیپیهای مختلف را به راحتی انجام دهد.
جزئیات پروژه
اسکریپت Ip_manager.sh
را مطابق توضیحات زیر پیادهسازی کنید:
- نحوهی اجرای اسکریپت بهصورت
./Ip_manager.sh command ip_list_filepath
یاIp_manager.sh command IP
است. مثال:
./Ip_manager.sh block ./ip_lists/sample.txt
و یا :
./Ip_manager.sh block 104.28.193.140
-
اگر تعداد آرگومانهای ورودی اسکریپت کمتر از ۲ تا بود، اسکریپت باید عبارت
not enough arguments
را چاپ کند و متوقف شود. -
اگر مقدار
command
برابر باblock
یاunblock
نبود، اسکریپت باید عبارتinvalid command
را چاپ کند و متوقف شود. -
اگر فایلی که مسیر آن بهعنوان آرگومان دوم وارد میشود وجود نداشت و یا آیپی وارد شده معتبر نبود، اسکریپت باید عبارت
File does not exist or invalid IP
را چاپ کند و متوقف شود. -
اگر مقدار
command
برابر باblock
باشد و آدرس یک فایل وارد شود، اسکریپت باید لیست بازههای آیپی موجود در فایل را دریافت کند و درخواستهای ورودی مربوط به این آیپیها را بهازای همهی پروتکلها و پورتهاDROP
کند. اگر rule مربوط بهACCEPT
کردن این درخواستها از قبل موجود بود، اسکریپت باید آنها را حذف کند. -
اگر مقدار
command
برابر باblock
باشد و یک آیپی وارد شود، اسکریپت باید درخواستهای ورودی مربوط به این آیپی را بهازای همهی پروتکلها و پورتهاDROP
کند. اگر rule مربوط بهACCEPT
کردن این درخواستها از قبل موجود بود، اسکریپت باید آنها را حذف کند. -
اگر مقدار
command
برابر باunblock
باشد و آدرس یک فایل وارد شود، اسکریپت باید لیست بازههای آیپی موجود در فایل را دریافت کند و درخواستهای ورودی مربوط به این آیپیها را بهازای همهی پروتکلها و پورتهاACCEPT
کند. اگر rule مربوط بهDROP
کردن این درخواستها از قبل موجود بود، اسکریپت باید آنها را حذف کند. -
اگر مقدار
command
برابر باunblock
باشد و و یک آیپی وارد شود، اسکریپت باید درخواستهای ورودی مربوط به این آیپی را بهازای همهی پروتکلها و پورتهاACCEPT
کند. اگر rule مربوط بهDROP
کردن این درخواستها از قبل موجود بود، اسکریپت باید آنها را حذف کند. -
آیپی ورودی میتواند به صورت
104.28.193.140
یا یک بازه مانند95.170.192.0/19
باشد.
نکات
- عملیات مسدودسازی و آزادسازی درخواستها باید با استفاده از
iptables
انجام شود. - داوری این سؤال کمی بیشتر از سایر سؤالات طول میکشد.
- تضمین میشود که هیچ rule ای خارج از اسکریپت اضافه نمیشود.
نحوه ارسال
پس از پیادهسازی موارد خواستهشده، فایل Ip_manager.sh
را آپلود کنید.
ارسال پاسخ برای این سؤال