توسعه فايروالها براي IPv6
آدرسهاي جديد مبتني بر IPv6 روي اينترنت و به تبع آن شبكههاي گسترده سازمانها، تجهيزات امنيتي مانند فايروالها، دستگاههاي UTM و IPS را تحتتأثير قرار خواهند داد و مديران شبكه و كارشناسان امنيتي سازمانها ناگزيز به توسعه سياستهاي امنيتي خود و تغيير رفتار و عملكرد اين دستگاهها در برابر اين بستههاي داراي فرمت جديد هستند. «آيا بايد با آدرسهاي IPv6 همانطوري رفتار كرد كه تا قبل از اين با آدرسهاي IPv4 رفتار ميشد؟ آيا براي بستههاي IPv6 بايد قانون (Rule) و خطمشي (Policy) جديد و متفاوتي تعريف كرد؟ آيا ميتوان يك قانون را براي هر دو نسخه IP اعمال كرد؟ فايروالهاي كنوني چه قابليتها و ظرفيتهايي براي مواجه شدن با آدرسهاي جديد دارند؟ چه روشهايي براي مديريت قوانين و خطمشيهاي متفاوت IPv4 و IPv6 روي فايروالها وجود دارد؟»
در مقاله پيشرو، تلاش بر اين است تا بدون وارد شدن به جزئيات و پيچيدگيهاي اين موضوع، يک راهنماي كلي براي توسعه فايروالها و مديريت IPv6 در آينده ارائه دهيم و انواع روشهاي موجود را همراه با مزايا و معايب آنها موشكافي كنيم.پشتيباني از IPv6
در حال حاضر، بيشتر فايروالهاي امروزي براساس IPv4 كار ميكنند و خط مشيهاي آنها براي بستههايي تنظيم شده است که براي مبداء و مقصد شبكه از فرمت IPv4 استفاده ميکنند. در حالي كه فايروالهاي ساختهشده در چند سال اخير قابليت پشتيباني از فرمت بستههاي IPv6 را دارند و مديران امنيتي سيستمها ميتوانند فايروالها را با خطمشيهاي مبتني بر IPv6 پيكربندي کنند. در اين مدت، خطمشيها براي IPv4 و IPv6 در کنار يکديگر روي فايروالها پيكربندي ميشده است كه هزينه سنگيني دارد و از نظر زماني و منطقي نيز توصيه نميشود. در نهايت، فايروالها بايد به سويي بروند كه بتوان خطمشيهاي متمركز و در بردارنده هر دو فرمت IPv4 و IPv6 را برايشان تعريف كرد يا به سادگي با استفاده از آبجکتهايي که هر دو خواص IPv4 و IPv6 را دارند،آنها را پيکربندي کرد.
براي استفاده از IPv6 و تعريف خطمشيهاي مرتبط با اين نسخه از پروتكل IP در شبكه و اينترنت، بايد به يك موضوع توجه كرد و آن ظرفيتهاي فايروال شما براي تعميم به IPv6 است. بيشتر فايروالهاي امروزي قابليت ******** بستههاي IPv6 را دارند و بيشتر شركتهاي سازنده فايروالها اين قابليت را در محصولات خود قرار ميدهند. با وجود اين، بايد بررسي كنيد كه اين قابليت براي فايروال شما فعال است يا خير. بسياري از UTMها، IPSها، نرمافزارهاي امنيتي و برنامههاي ******** محتوا از IPv6 پشتيباني ميكنند. اگر فايروال شما از ظرفيتهاي IPv6 پشتيباني نميكند و شركت سازنده اين فايروال نيز هيچ برنامهاي براي توسعه فايروالهاي خود يا افزودن اين قابليت به محصولات قبلي ندارد، ناچار هستيد يك فايروال جديد تهيه كنيد. در هنگام انتخاب و خريد يك فايروال با قابليت پشتيباني از IPv6 دقت كنيد كه ويژگيهايي مانند توسعه سرآيند بستهها، مديريت هوشمند بستهها و فريمها، PMTUD (م Path MTU Discovery)، ******** مجزاي پيغامهاي ICMPv6 و ترافيك چندگانه را داشته باشد.
تعريف قوانين و خطمشيهاي IPv6
قبل از تعريف قوانين و خطمشيهاي جديد مبتني بر IPv6 براي فايروال، بايد اين موضوع را بررسي كنيد كه در پشت صحنه شبكه، فايروال فعلي شما چگونه بستهها را كنترل و مديريت ميكند. در فايروالها چندين خطمشي براي رويارويي با بستهها و درخواستهاي جديد ميتوان تعريف كرد. بيشتر فايروالها ازسيستم First-Match استفاده ميکنند. در اين سيستم، بسته اطلاعات با قوانين موجود در خطمشي سيستم مطابقت داده ميشود و نخستين قانوني که کاملاً با بسته مورد نظر مطابقت داشته باشد، تعيينکننده عملياتي است که فايروال روي بسته انجام ميدهد. دليل استفاده از خطمشي First-Match اين است كه به راحتي قابل فهم و اشكالزدايي است. وقتي يك فايروال روي اين خطمشي تعريف شود، در درخواستهاي بعدي اگر انطباق كامل ميان قانون ايجاد شده و درخواست مورد نظر وجود نداشته باشد، قانون آخر خط مشي اجرا ميشود که به طور معمول منجر به بلوکشدن بسته در شبکه خواهد شد. فايروالهاي زيادي مانند Cisco ASA، Cisco Router Access-Lists، Juniper SRX/SSG، Check Point، Fortinet، IPtables/IP6tables و IPfirewall از خطمشي بالا استفاده ميكنند. خطمشي بعدي كه برخي از فايروالها روي آن تنظيم شدهاند، Last-Match است (در اين روش عملياتي که روي يك بسته يا درخواست انجام ميشود براساس آخرين قانوني خواهد بود که کاملاً با بسته منطبق باشد) كه تا حدود زيادي يك سياست گيجكننده و سختگيرانه است و پيچيدگيهاي خاص خودش را دارد. از جمله فايروالهايي كه از خطمشي Last-Match استفاده ميكنند، ميتوان به (PF) م OpenBSD Packet Filter و IPFilter اشاره کرد. البته بايد به اين نكته نيز توجه كرد كه در فايروالهايي مانند PF با استفاده از يك دستور ميتوان خطمشي Last-Match را به خطمشي First-Match تبديل کرد. به هر حال، پيش از شروع تعريف قوانين و خطمشيهاي فايروال براي IPv6، بايد رفتار فايروال با درخواستهاي جديد را پيشبيني و مشخص كنيد.
گام بعدي، ارزيابي كلي از قانونها و خطمشيهاي IPv6 است كه ميخواهيد براي فايروال تعريف كنيد. برخي از مديران سيستم متناسب با تغييرات شبكه، كاربران و گروهها و برحسب نياز، به تدريج قانونهاي جديدي را به فايروال اضافه ميكنند. در اين صورت، ممكن است چندين سال طول بكشد تا يك بسته خطمشي كامل مبتني بر IPv6 تهيه كنيد. شما نياز داريد كه به صورت متمركز تمام قانونها و خطمشيهاي لازم را قبل از راهاندازي فايروال تعريفكنيد و اجازه ندهيد كه اين عملياتها مشمول مرور زمان شوند.توصيه ميشود براي نامگذاري قانونهاي جديد متناسب با IPv6 از عبارتهايي مانند «-v6» و «-6» در ابتدا يا انتهاي هر قانون استفاده كنيد تا در آينده بتوانيد به سرعت قانونهاي مرتبط با نسخه ششم پروتكل IP را تشخيص دهيد. براي IPv4 نيز ميتوانيد از همين شيوه استفاده كنيد و به ابتدا يا انتهاي هر قانون عبارتهاي «-v4» و «-4» را اضافه كنيد. در اين صورت در يك فايروال به راحتي ميتوان قانونهاي مرتبط با هر نسخه IP را تشخيصداد و در آينده تغييرات و اصلاحات لازم را اعمال كرد. به طور كلي دو روش براي تعريف قوانين وجود دارد. در روش نخست ميتوانيم قانونهاي IPv4 و IPv6 را در گروههايي مجزا تعريف كنيم. در روش دوم قانونها به صورت تركيبي در يك گروه تعريف ميشوند. در ادامه، هر دو روش را به همراه مزايا، معايب و نمونه فايروالهايي كه از اين روشها استفاده ميكنند، مرور ميكنيم.
تعريف قوانين جداگانه
در فايروالهاي امروزي خطمشيهاي IPv4 و IPv6 از يكديگر مجزا هستند. براي نمونه در فايروال Cisco ASA از دو دستور جداگانه «ip access-list» و «ipv6 access-list» براي تعريف خطمشيها استفاده ميشود و با دستور «access-group» خطمشيهاي access-list مرتبط با IPv4 و IPv6 روي رابط كاربري يا ترافيك شبكه اعمال ميشوند. شكل1 نمونهاي از تعريف خطمشيهاي جداگانه براي IPv4 و IPv6 را نشان ميدهد. در اين حالت يکآبجكت متعلق به IPv4 يا IPv6 است و هيچ آبجكتي براي هر دو نسخه IP استفاده نميشود كه در آينده باعث ايجاد پيچيدگي شده و مدير شبکه را مجبور به اعمال تغييرات گستردهاي در فايروال کند. مزيت ديگر چنين روشي اعمال تغييرها و سياستهاي جديد به شکلي ساده و سريع و گروهي براي قانونها و خطمشيهاي IPv6 است. خيلي سريع ميتوان دسترسيها و مجوزها را براي يك هاست خاص، مشاهده كرد و بعد تصميم گرفت که اين هاست خاص روي IPv6 چه وضعيتي داشته باشد. در هنگام تعريف قانونها نيز دقت داشته باشيد كه هر دو سري خطمشيهاي IPv4 و IPv6 روي «First-Match» تنظيم شده باشند. بزرگترين مشکل تعريف جداگانه قانونها در دو گروه، به دوبارهكاري براي اعمال سياستهاي امنيتي جديد نياز است. زيرا مجبور هستيد يك سياست جديد را يك بار براي قانونهاي IPv4 و بار ديگر براي قانونهاي IPv6 تعريف كنيد. در اين شرايط، نياز داريد كه به خاطر بسپاريد كه يك سياست جديد را همواره براي هر دو گروه و به صورت يکسان تعريف كنيد. مشكل جايي بروز ميكند كه شما فراموش كنيد يك سياست جديد را براي گروه IPv6 تعريف كنيد اما آن را براي گروه IPv4 تعريف كرده باشيد. در اين حالت، مشکليابي و برطرف کردن آن نيز دشوار ميشود و روي سرور همواره با بلوكهشدن بستههاي IPv6 مواجه ميشويد. تعريف قوانين تركيبي
برخلاف روش نخست كه قانونهاي IPv4 و IPv6 در دو گروه مجزا تعريف ميشوند، برخي از فايروالها از يك خطمشي تركيبي براي IPv4 و IPv6 استفاده ميكنند اما قانونهاي دسترسي را با آدرسهاي مجزا تعريف ميكنند. فايروالهاي Check Point و Palo Alto Network از اين روش استفاده ميكنند. شكل 2 نمونهاي از تعريف قانونهاي جداگانه IPv4 و IPv6 در يك گروه يكسان است. همانطور كه مشخص است، قانونهاي مرتبط با هر نسخه IP را ميتوان از روي آدرسهاي مبداء و مقصد تشخيص داد. قانون شماره يك متعلق به IPv4 است. قانونهاي شماره دو و سه متعلق به IPv6 هستند. قانون شماره چهار و پنج به صورت تركيبي روي هر دو نسخه IPv4 و IPv6 عمل ميکنند. بنابراين، در اين روش ميتوان يك خطمشي را به صورت همزمان براي هر دو قانون IPv4 و IPv6 تعريف كرد و مديريت قانونها بسيار ساده خواهد شد. به عنوان مثال، شما ميدانيد كه يك تغيير را بايد روي كدام قانون اعمال كنيد. اگر فقط مختص IPv6 است، قانونهاي متعلق به اين نسخه را انتخاب ميكنيد. اگر متعلق به IPv4 باشد، قانونهاي متعلق به آن را انتخاب ميكنيد و اگر بايد به هر دو نسخه اعمال شود، به سراغ قانونهاي تركيبي ميرويد. اين روش به شما اطمينان ميدهد كه يك رويه دسترسي و مجوز يكساني را براي تمام نسخهها روي فايروال اعمال كردهايد. همچنين ميتوانيد گروهي به نام Host-1 بسازيد که ترکيبي از هر دو آدرس V4-Host-1 و V6-Host-1 باشد. در اين صورت هر قانوني که به اين گروه اعمال شود، هر دو فرمت IPv4 و IPv6 را در بر خواهد گرفت. به هر حال، در اين روش براي افزودن يك قانون جديد به فايروال نيازي به دادن مجوز جديد نداريد. اگر ميخواهيد از اين روش براي تعريف قانونها و خطمشيهاي فايروال استفاده كنيد، در نظر داشته باشيد كه مشكل زماني بروز ميكند كه بخواهيد براي يك قانون تركيبي IPv4 و IPv6 دسترسيهاي جداگانهاي تعريف كنيد. به عنوان مثال نميتوانيد روي قانونهاي تركيبي، بستههاي IPv6 را محدود اما بستههاي IPv4 را تأييد كنيد. به هر حال، در فايروالهاي مبتني بر ASIC مانند Fortinet و Palo Alto Networks پردازشهاي مربوط به IPv4 و IPv6 با سرعت يکساني انجام خواهد شد.
آينده فايروالها
در اين مقاله گفتيم كه اگر ميخواهيد فايروال خود را براي آدرسهاي IPv6 توسعه دهيد، نياز داريد كه در ابتدا تصميم بگيريد چگونه ميخواهيد خطمشيهاي آدرسهاي IPv6 را روي فايروال اعمال كنيد، چگونه ميخواهيد قانونهاي IPv6 را تعريف كنيد و قانونهاي موجود روي IPv4 را به نسخه جديد تعميم دهيد. خيلي مهم است كه شما قبل از تعريف تعداد خيلي زيادي قانون كه ممكن است سازماندهي فايروال شما را نيز مختل كنند، ديد و تسلطكاملي به محدوديتها و مشكلات پيش رو داشته باشيد و روشهاي مختلف موجود را ارزيابي كنيد تا با يك نقشه توسعه دقيق و با كمترين پيچيدگي يا مشكلات بعدي، کار را شروع كنيد. شما با يك تصميم درست ميتوانيد طرحي را براي سيسال آينده شبكه خود ترسيم كنيد. به نظر ميرسد با گذشت زمان شركتهاي سازنده فايروال بتوانند قابليتهايي ايجاد كنند كه يك آبجكت به صورت همزمان متعلق به دو خطمشي جداگانه باشد و بتوان براي آن دو آدرس جداگانه IPv4 و IPv6 تعريف كرد. زيرا نزديك به ده سال يا بيشتر مجبور خواهيم بود كه از دو پروتكل اينترنت به صورت همزمان استفاده كنيم در حالي كه نميتوانيم مدام ميان IPv4 و IPv6 تفاوت قائل شويم و براي هريك به صورت جداگانه قانونها و خطمشيهايي را تعريف كنيم و مواظب باشيم كه دسترسيهاي يكساني براي هر دو نسخه تعريف شود. اميدواريم كه در آينده مديران سيستم كار سادهاي براي تعيين ويژگيها و مجوزهاي آدرسهاي IPv4 و IPv6 پيشرو داشته باشند و مجموعهاي از ويژگيهاي كامل براي پوششدادن انواع دسترسيها به نسخههاي مختلف IP به فايروالها افزوده شود.