پوریا که در تیم امنیت مشغول به کار است لیستی از آیپیهای مختلف جهت تنظیم دسترسی کاربران تهیه کرده است. او اکنون از شما میخواهد اسکریپتی برای او بنویسید که با استفاده از آن بتواند عملیات مسدود یا آزاد سازی آیپیهای مختلف را به راحتی انجام دهد.
جزئیات پروژه
اسکریپت 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 را آپلود کنید.
ارسال پاسخ برای این سؤال