پروازی بر دنیای امنیت شبکه (قسمت سیزدهم) – Zone-Based Firewalls(بخش دوم)

با سلام و عرض خسته نباشید دوباره خدمت نتورک‌بازهای عزیز؛ در ادامه قسمت قبلی از این سری آموزشی با ادامه ی مبحث ZBF یا همان Zone-Based Firewallها در خدمت شما هستیم.با من همراه شوید... ;)

Putting the Pieces Together



سیسکو از زبانی که به آن Cisco Common Classification Policy Language یا به اختصار C3PL میگویند برای پیاده‌سازی پالیسی، استفاده میکند؛ این روال دارای سه جزء میباشد:

  • ـ Class mapها: از این Class mapها برای شناسایی ترافیک استفاده میشود؛ مثل ترافیک‌هایی که میبایستی Inspect شوند. ترافیک درحال عبور میتوانند بر اساس لایه‌های 3 الی 7ـه مدل OSI، مقایسه و Match شوند(application-based matching).ـ Class mapها میتوانند دارای چند بخش برای Matching باشند؛ یک Class map میتواند مشخص کند که تمامی موارد داخل یک لیست میبایستی Match شوند تا Matchـه کُلی صورت بگیرد(که به این حالت Match-all condition میگویند) ویا اینکه میتواند مشخص کند که هرکدام از موارد داخل یک لیست Matchشوند، به عنوان Matchـه کلی مورد قبول میباشند(که به این حالت Match-any condition میگویند). یک Class Mapـه تعریف‌شده توسط سیستم(که به آن Class-default میگویند) میتواند برای تمامی ترافیک‌هایی که با هیچکدام از موارد کانفیگ‌شده توسط ادمین Matchنشده‌اند ، استفاده گردد.
  • ـ Policy mapها: Policy mapها ، تمامی actionهایی هستند که میبایستی بروی traffic اجرا شوند؛ از Actionهای مهمی که میتوانند توسط Policy mapها اجرا شوند، میتوان Inspect(اجرای Stateful inspection)،ـ Pass(اجازه‌ی عبور ترافیک یا همان Permit، بدون نیاز به انجام Inspection)،ـ Drop و Log را نام برد.
  • ـ Service Policyها: میتوان گفت که Service policyها جایی هستند که شما پالیسی‌هایتان را بروی یک Zone-pair اعمال(Apply) میکنید.

اگر یک Policy-map دارای چندین Action باشد، از بالا به پایین پردازش میشود و Actionهایش را بروی ترافیک‌هایی که با Class-mapها Match میشوند انجام میدهد؛ اگر یک قسمت‌خاص از Policy-mapـه ما Match شود، Actionـه مربوط به‌آن انجام میشود و اگر ترافیک Match نشود، پکت با بخشِ بعدیِ Policy-map مقایسه میشود.اگر ترافیک با هیچکدام از بخش‌ها Match نشود، Actionـه تعریف‌شده‌ی پیشفرض اعمال میشود. برای ترافیکی که درحال تلاش برای initialing بین دو Zone میباشد(یعنی از یک Zone شروع میشود و به سمت دیوایسی در Zoneـه دیگری میرود)، پالیسیِ پیشفرضِ تعریف‌شده Deny میباشد.(البته در اینجا یک استثنا وجود دارد، ترافیکی که به ویا از Zoneـه Self-zone ارسال میشود، بصورت پیش‌فرض Allow میباشد). در ادامه ، Actionهای Policy-mapهارا بررسی میکنیم:

  • ـ Inspect(اجازه عبور ترافیک و Inspect کردن ترافیک بصورت Stateful): این مورد میبایستی در سَمتی پیاده‌سازی شود که کاربران اقدام به برقراری ارتباط با سَمت دیگر فایروال میکنند و انتظار دریافت Reply(بازگشت ترافیک) را دارند.
  • ـ Pass(اجازه عبور ترافیک و عدم نیاز به ثبت رکورد در Stateful Database): این مورد برای زمان‌هایی که ترافیک نیازی به بازگشت ندارد ویا پروتکل موردنظر ما از Inspection پشتیبانی نمیکند مفید میباشد.
  • ـ Drop(رد کردن و Deny کردن پکت): زمانی که نمیخواهید ترافیکی عبور داشته باشد ، میبایستی از این Action استفاده کنید.
  • ـ Log(لاگ برداری از پکت‌ها): اگر میخواهید از پکتهایی که Drop میشوند Logتهیه کنید ، میتوانید از این Option استفاده کنید.

Service Policies

یک Service Policy بروی یک Zone-pair اعمال(Apply) میشود؛ یک zone-pair نشان‌دهنده‌ی یک جریان ترافیکی بین 2 Zone میباشد. یک Zone-pairـه خاص فقط میتواند یک عدد Service Policyـه Assignشده داشته‌باشد، زیرا Zone-pair یکطرفه میباشد و Policy-map بروی یک Zone-pair و بروی ترافیکی که از یک Zone شروع به Initialشدن میکند و به سمت Zoneـه دیگری میرود، اعمال میشود. درحالت معمولی، وقتی که یک روتر پکتی را دریافت میکند، تصمیم مربوط به Routing را میگیرد و پکت را در مسیر مربوط به خودش فوروارد میکند؛ اما اگر ZBF روی روتر کانفیگ شده باشد، ممکن است بر اساس Stateful table و پالیسی‌هایی که پیاده‌سازی شده‌اند، روتر پکت را Forward نکند. جدول زیر نمایش‌دهنده‌ی جریان‌های ترافیکی مرسومی است که عموما بین Interfaceهای Zoneهای گوناگون مسیریابی میشوند(بر اساس کانفیگ‌های انجام شده).

این جدول موردی خوبی برای حفظ کردن و یادگیری میباشد و در اکثر اوقات در Troubleshootingـه ZBF به‌شما کمک میکند. (در جدول زیر، ورودی به معنی پکتی است که درحال واردشدن به یک Interfaceـه روتر میباشد و خروجی به معنی پکتی است که درحال خارج شدن از یک Interfaceـه روتر میباشد)

اگر Zone-pairـی وجود داشته‌باشد که در بین دو Zoneـه آن، ترافیک درحال عبور میباشد و پالیسی‌ به آن Zone-pair اعمال نشده‌باشد، رفتار پیشفرض این‌است که ترافیک را Drop کند(مثل زمانی که هیچ Zone-pairـی وجود ندارد).

قبل از آنکه ادامه دهیم، میخوام Configurationـی رو بهتون نشون بدم که دارای موارد زیر است:

  • ـ Zoneها
  • اینترفیس‌هایی که عضو Zoneها هستند.
  • ـ Class map هایی که ترافیک را شناسایی میکنند.
  • ـ Policy map هایی که از Class mapها برای تشخیص ترافیک استفاده میکنند و Actionـه مخصوص به هرکدام را اعمال میکنند.
  • ـ Zone-pair ها، که نشان دهنده‌ی جریان یکطرفه ترافیکی میباشند که از طریق یک دیوایس در یک Zone شروع میشوند و به سمت یک اینترفیس دیگر در یک Zoneـه دیگر Route میشوند.
  • ـ Service-map ها، که در موارد Zone-pairها به Policy-mapها کمک میکنند.

حالا که با تمامی موارد آشنا هستید، حالا میخواهم با کامندهای مربوط به موارد فوق آشنا شوید و پالیسی‌ای را پیاده‌سازی کنیم تا به کاربران Inside اجازه دسترسی به Internet را بدهیم(دقیقا همانند عکسی که در قسمت قبلی شرح دادیم):

با استفاده از این پالیسی، Stateful inspection را برای ترافیک های Telnet و ICMP که قصد خروج از Inside و رفتن به Internet را دارند، پیاده‌سازی کردیم.

The Self-Zone

ترافیک‌های که مستقیما به خود روتر ارسال میشوند و ترافیک‌هایی که از خود روتر ارسال میشوند(یعنی مربوط به خود روتر میباشند، نه یک Zoneـه خاص)، همگی مربوط به Self-zone میباشند؛ در این مفهوم، اینکه کدام Interface برای استفاده‌ی Self-zone درنظر گرفته‌شده است مهم نمی‌باشد. بصورت پیشفرض تمامی ترافیک های که به Self-zone می‌آیند ویا از Self-zone خارج میشوند، Allow شده مباشند، اما اگر به هردلیلی قصد داشتید که پالیسی مربوط به Self-zone را تغییر دهید، کافی است به همان صورته قبل یک Zone-pair ایجاد کنید و یک Policy به آن Assign کنید. در جدول زیر، انواع رفتار Self-zone، نمایش داده‌شده است:

با توجه به ذات Self-zone، اگر یک Zone-pair ایجاد شود ولی هیچ پالیسی‌ای بهش Apply نشود، بصورت پیشفرض  تمامی ترافیک Forward میشود(که همانطور که گفتیم، این Zone، ذات متفاوتی نسبت به Zoneهای دستی‌ای که ایجاد میکنیم دارد)؛ وقتی که یک zone-pair را کانفیگ میکنید که مربوط به Self-zone میباشد، میبایستی حواستان باشد که ترافیک مربوط به Management را Allow کنید و از قطع شدن دسترسی خودتان جلوگیری کنید.

با تشکر از شما که تا اینجا همراه من بودید ;)

موفق باشید.