سلام دوست عزیز😃👋
لینکهای مفید برای شرکت در مسابقه:
در طول مسابقه، میتوانید سؤالات خود را از قسمت «سؤال بپرسید» مطرح کنید.
موفق باشید 😉✌
پوریا که در تیم امنیت مشغول به کار است لیستی از آیپیهای مختلف جهت تنظیم دسترسی کاربران تهیه کرده است. او اکنون از شما میخواهد اسکریپتی برای او بنویسید که با استفاده از آن بتواند عملیات مسدود یا آزاد سازی آیپیهای مختلف را به راحتی انجام دهد.
اسکریپت Ip_manager.sh
را مطابق توضیحات زیر پیادهسازی کنید:
./Ip_manager.sh command ip_list_filepath
یا Ip_manager.sh command IP
است. مثال:و یا :
اگر تعداد آرگومانهای ورودی اسکریپت کمتر از ۲ تا بود، اسکریپت باید عبارت 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
را آپلود کنید.