جعفر قنبری شوهانی
مهندس و مدرس زیرساخت و امنیت و مدیر ارشد وب سایت توسینسو

Reflexive ACL چیست؟ آموزش راه اندازی Reflexive ACL در سیسکو

در آموزش های قبلی با Access control list یا ACL آشنا شدیم و همچنین نحوی استفاده از Standard ACL و Extended ACL را فرا گرفتیم. حالا می خواهیم با یکی از انواع دیگر ACLها تحت عنوان Reflexive ACL آشنا شویم این ACL را می توان زیر مجموعه Extended ACL در نظر بگیرم. به لحاظ عملکرد شبیه Established ACL است اما عملکردی بهتری نسبت به آن دارد.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

به لحاظ مسائل امنیتی زمانی که شبکه را به یک شبکه دیگر مثل شبکه اینترنت متصل می کنیم باید روی ترافیک ورودی کنترل دقیق داشته باشیم و برای این کنترل نیاز است که برای هر سرویس مورد نیاز ACL بنویسم حالا اتصال به شبکه اینترنت را در نظر بگیرد که دارای سرویس های مختلف و فراوان است و برای استفاده ، برای پروتکل های مختلف مثل http ، https ، ftp ، smtp و ... باید ACL استفاده کنیم باتوجه به تعداد زیاد این سرویس ها استفاده از این ACL مشکل می باشد.

Reflexive ACL این کنترل ترافیک را خیلی ساده تر و کامل تر انجام می دهد. عملکرد Reflexive ACL به این صورت است که فقط به ترافیکی اجازه ورود به شبکه را می دهد که از داخل شبکه درخواست آن شده است. یعنی ترافیک هنگام ورود به شبکه کنترل می شوند و اگر از داخل شبکه برای آن درخواست شده باشد اجازه ورود به شبکه را پیدا می کند در غیر این صورت ترافیک Drop می شود.

Reflexive ACL کنترل ترافیک را براساس بیت های ACK و RST و آیتم هایی مانند آدرس مبدا و مقصد و شماره انجام می دهد. Reflexive ACL را می توان Stateful در نظر می گیرند چون می تواند انواع مختلف ترافیک را برای ما کنترل کند.

  • نکته : Reflexive ACL برخلاف Established ACL می تواند ترافیک انواع پروتکل ها را کنترل کند.
  • نکته : برای کنترل کامل و دقیق ترافیک باید از فایروال استفاده شود فایروال stateful است و برای اینکار ساخته شده است و می تواند تمام پروتکل ها را کنترل کند و علاوه بر آن امکانات فراوان دیگری را نیز برای ما فراهم می کند.

تفاوت Reflexive ACL و Established ACL

در حالت established بسته های TCP براساس بیت های ACK و RST قیلتر می شوند ( بیت های ACK و RST اگر استفاده شده باشند نشان دهنده این است که اولین بسته Session نیست و به یک Session برقرا شده تعلق دارد) اما Reflexive ACL به صورت دقیق تر فیلترینگ را برای ما انجام می دهد به طور مثال علاوه بر ACK و RST ، آیتم هایی مانند آدرس مبدا و مقصد و شماره پورت چک می شود که باعث می شود هکر فرصت کمتری برای حمله داشته باشد. علاوه بر موارد فوق ، established فقط توانایی کار با بسته های TCP را دارد و باقی ترافیک ها را نمی تواند بررسی کند اما Reflexive ACL توانایی کنترل انواع ترافیک را دارد.

نحوی استفاده از Reflexive ACL

به تصویر زیر توجه کنید:

وب سایت توسینسو

در این شبکه می خواهیم فقط ترافیکی که از شبکه internal درخواست می شود از شبکه اینترنت وارد شبکه ما شود.

در ابتدا یک access list با نام outgoing می نویسیم که تمام ترافیک tcp را شناسایی می کند. این ترافیکی است که از شبکه قرار است خارج شود و ترافیک بازگشتی آن باید اجازه عبور پیدا کند:

router(config)# ip access-list extended outgoing
router(config-ext-nacl)# permit tcp any any reflect tcp-traffic

سپس یک access list با نام incoming می نویسیم و آنرا به access list قبلی مرتبط می کنیم که از اطلاعات آن استفاده کند:

router(config)# ip access-list extended incoming
router(config-ext-nacl)# evaluate tcp-traffic

سپس روی اینترفیس مورد نظر در جهت خروجی آن ، access list اول را که ترافیک TCP را شناسایی می کند اختصاص می دهیم و در جهت ورودی ، access list دوم که حاوی اطلاعاتی است که به ترافیک ورودی اجازه عبور می دهد را اختصاص می دهیم:

router(config)# interface Serial0/0
router(config-if)# ip address 192.168.100.1 255.255.255.0
router(config-if)# ip access-group incoming in
router(config-if)# ip accesss-group outgoing out

به این صورت تنها ترافیکی اجازه ورود به شبکه را پیدا می کند که از داخل شبکه برای آن درخواست شده باشد.

ایجاد محیط DMZ با استفاده از Reflexive ACL

به تصویر زیر توجه کنید:

وب سایت توسینسو

در شبکه بالا می خواهیم از اینترنت و DMZ فقط ترافیکی اجازه عبور ورود به شبکه داخلی را داشته باشند که برای آن درخواست شده باشد. همچنین از اینترنت فقط ترافیک مربوط به وب (آدرس وب سرور 172.16.1.2) و ترافیک درخواستی از DMZ ، اجازه ورود به شبکه DMZ را داشته باشد.

برای اینکار از دستورات زیر استفاده می کنیم:

router(config)# ip access-list extended incoming
router(config-ext-nacl)# permit tcp any any reflect tcp-traffic
router(config)# ip access-list extended outgoing
router(config-ext-nacl)# permit tcp any host 172.16.1.2 eq www
router(config-ext-nacl)# evaluate tcp-traffic
router(config)# interface FastEthernet0/0
router(config-if)# ip access-group incoming in
router(config-if)# ip accesss-group outgoing out
router(config)# interface FastEthernet0/1
router(config-if)# ip access-group incoming in
router(config-if)# ip accesss-group outgoing out

جعفر قنبری شوهانی
جعفر قنبری شوهانی

مهندس و مدرس زیرساخت و امنیت و مدیر ارشد وب سایت توسینسو

جعفر قنبری شوهانی ، مهندس و مدرس شبکه ، آشنایی من با شبکه برمی گرده به سال 1382 که دوره NT و Novel رو گذروندم و الان بیشتر از 10 ساله سابقه اجرایی در سطح Enterprise (بانک ها ، موسسه مالی ، ادارات دولتی ، سرویس پروایدر) را دارم و در حال حاضر به عنوان مهندس شبکه در شرکت توزیع برق مشهد و به عنوان مدیر ارشد و مدرس شبکه در سایت ToSinSo مشغول به کار هستم. در اکثرا حوزه های شبکه کار کردم و تجربه دارم اما تخصص اصلیم رو در حوزه زیرساخت و امنیت اون میدونم

نظرات