درس هشتم- کار با Control plane و Access List

کار با Control plane

یکی دیگر از قسمت‌های مهم شبکه Control Plane است که به صورت مستقیم مربوط میشود به دستگاه‌های شبکه که باید بار کاری آنها بررسی و آنالیز شود تا با افزایش درخواست‌ها از دستگاه‎‌های مورد نظر مشکلات سخت‌افزاری برای آن پیش نیاید و اگر هم Control Plane از کار بیفتد هر دو قسمت Managemnet Plane و Data Palen از کار خواهد افتاد.

بررسی CoPP

CoPP یا Control plane policing به روش‌ها و سیاست‌های کنترلی برای حفظ Control Plane اشاره دارد که به صورت کلی بر روی Control Plane اعمال می‌شود.

ترافیک بیش از حد در روتر می‌تواند به مرور زمان بر عملکرد آن تاثیر بگذارد و به خاطر همین باید کارهایی را در رفع مشکل آن پیاده‌سازی کرد.

در زیر روش‌هایی را بررسی می‌کنیم که کارکرد آنها می‌تواند بر روی CPU اثر گذار باشد:

  • Access control list (ACL) logging : زمانی که از Access List در سی۵است‌های کاری خود استفاده می‌کنید، هر عملی که با این لیست‌ها انجام شود یک Log در دستگاه ثبت خواهد شد که همین موضوع بار CPU را افزایش می‌دهد.
  • IP options : پردازش تمام بسته‌های IP با جزئیات آن
  • Fragmentation : همانطور که می‌دانید هر بسته‌ی IP در صورت نیاز باید تکه تکه شود و این کار باز هم به CPU نیاز دارد.
  • Time-To-Live (TTL) expiry: بسته‎‌های ICMP که زمانی کمتر یا مساوی یک دارند نیاز به پردازش CPU دارند
  • ICMP unreachables : بسته‌هایی که در هنگام مسیریابی غیر قابل دسترس هستند تووسط CPU پردازش می‌شوند
  • Traffi c requiring an ARP request : مقصدی که ورودی پروتکل ARP برای آنها وجود ندارد باید پردازش شود.
  • Non-IP traffic : تمام ترافیک‌های غیر IP توسط CPU پردازش می‌شوند.

traffic : به ترافیک‌هایی گفته می‌شود که توسط خود روتر پردازش ‌می‌شود، اگر از دستور Show IP cef استفاده کنید، در شکل روبرو این دستور اجرا شده است و در قسمت Next Hop اگر کلمه‌ی receive را مشاهده کردید به این معنا است که ترافیک توسط خود روتر ایجاد و پردازش شده است.

 

برای اینکه از Access list استفاده کنید بهتر است از Access List پیشرفته استفاده کنید و نوع سرویس را مشخص کنید تا محدوده Access List محدود به سرویس خاصی شود و بیش از حد از CPU استفاده نکند، در زیر به طور کامل Access list را بررسی و دو مورد Standard و Extended را مورد بررسی قرار می‌دهیم.

کار با Access List

Access control List یا همان Access list برای ایجاد محدودیت و امنیت در شبکه کاربرد دارد، با استفاده از این سرویس می‌توانید بر روی پروتکل‌ها، کلاینت‌ها، سرور‌ها و هر چیزی که در شبکه در حال رد و بدل اطلاعات است محدودیت ایجاد کنید، روتر با استفاده از این لیست‌ها به تجزیه و تحلیل اطلاعات می‌پردازد.

Access List با استفاده از اطلاعات منبع و مقصد مانند شماره پورت، آدرس IP و… محدودیت مورد نظر خود را اعمال کند که در ادامه با این موضوعات کار خواهیم کرد.

این لیست شامل شرط‌هایی است که برای ان تعریف می‌کنیم و زمانی که بر روی یک پورت خاص اعمال شود محدودیت یا دسترسی به منابع خاص را خواهد داد که این موضوع بسیار می‌تواند به امنیت شبکه کمک کند.

با اجرا این سیاست‌ها در شبکه شما خود را به عنوان یک مدیر شبکه با امنیت بالا معرفی خواهید کرد.

در این قسمت لیستی از تعدیدات امنیتی را مشاهده می‌کنید که با استفاده از Access List کم خواهد شد:

  • IP address spoofing, inbound
  • IP address spoofing, outbound
  • Denial of service (DoS) TCP SYN attacks, blocking external attacks
  • DoS TCP SYN attacks, using TCP Intercept
  • DoS smurf attacks
  • Filtering ICMP messages, inbound
  • Filtering ICMP messages, outbound
  • Filtering traceroute

در کل دو نوع Access List در شبکه داریم که با شماره‌های مختلف مشخص شده‌اند.

  • Access List استاندارد با شماره‌های ۱ تا ۹۹ و ۱۳۰۰ تا ۱۹۹۹
  • Access List پیشرفته با شماره­های ۱۰۰ تا ۱۹۹ و ۲۰۰۰ تا ۲۶۹۹.

اگر وارد روتر شوید و دستور یر را اجرا کنید لیستی از access list ها را با شماره مشخص شده مشاهده می‌کنید:

R1(config)# access-list ?

<1-99> IP extended access list

<100-199> IP extended access list

<1100-1199> Extended 48-bit MAC address access list

<1300-1999> IP standard access list (expanded range)

<200-299> Protocol type-code access list

<2000-2699> IP extended access list (expanded range)

<700-799> 48-bit MAC address access list

compiled Enable IP access-list compilation

dynamic-extended Extend the dynamic ACL absolute timer

rate-limit Simple rate-limit specific access list

همانطور که در لیست بالا مشاهده می‌کنید، همه Access List ها با شماره مشخص شده‌اند که هر کدام برای اجرای محدودیت خاصی، کاربرد دارد، برای شروع Access List Standard را با هم بررسی می‌کنیم.

Access List استاندارد:

این نوع از Access List ها از شماره‌های ذکرشده در بالا استفاده می‌کنند و فقط ترافیک‌های مربوط به مبدأ را مورد بررسی قرار می‌دهند. با نحوه­ی کار این Access List آشنا می‌شویم.

Deny: این دستور در access List برای جلوگیری از دسترسی یک Node خاص به یک شبکه­ی دیگر است که بسیار پرکاربرد و خطرناک است، به دلیل اینکه با یک اشتباه، نصف یا کل شبکه از کار می‌افتد.

Permit: این دستور ضد دستور Deny است و برای دسترسی به شبکه کاربرد دارد.

در این مثال می‌خواهیم از دسترسی pc1 به Pc3 و Pc4 جلوگیری کنیم.

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

Router(config)#ip access-list standard dpc1

در قسمت اول باید access List را تعریف کنیم؛ هم می‌توانیم با نام و هم می‌توانیم با شماره تعریف کنیم که در این قسمت از نام dpc1 استفاده کردیم. شما می‌توانید هر اسم دیگری در این قسمت قرار دهید و یا از شماره استفاده کنید، اما همیشه سعی کنید از نام استفاده کنید که مدیریت آن آسان باشد.

Router(config-std-nacl)#deny 192.168.1.2 0.0.0.0

با این دستور، ip address مربوط به pc1 را Deny می‌کنیم. اگر توجه کنید در قسمت اول، دستور Deny و بعد، ip address مربوط بهpc1 و بعد از آن که مهم است از Wildcard Mask تأکیدی استفاده کردیم، یعنی استفاده از ۴ تا صفر که تأکید بر Deny کردن همین ip را دارد. اگر wild Card Mask را به صورت ۰.۰.۰.۲۵۵ وارد کنیم، یعنی تمام ip address ها در رنج ۱۹۲.۱۶۸.۱.۰ فیلتر شود، پس سعی کنید از Wild card Mask تأکیدی استفاده کنید.

Router(config-std-nacl)#permit any

بعد از Deny حتماً از Permit استفاده کنید، چون هر زمان که از Deny استفاده می‌کنید، بقیه­ی شبکه هم deny می‌شود و به خاطر همین از Permit Any استفاده می‌کنیم تا بقیه­ی شبکه اجازه­ی دسترسی داشته باشند.

بعد از تعریف کامل access List باید به روتر بگوییم که این فیلترینگ را روی کدام پورت انجام بدهد، پس وارد روتر می‌شویم. اگر توجه کنید می‌خواهیم دسترسی pc1 به pc3 و pc4 جلوگیری کنیم، پس باید در پورت Fa0/1 روتر دستور زیر را وارد کنیم:

Router(config)# int f0/1

Router(config-if)#ip access-group dpc1 out

به دستور توجه کنید،ip Access-group  را تعریف و بعد از آن، نام Access List که ایجاد کرده­ایم را وارد می‌کنیم.  گفتیم ترافیک این access List در زمان خروج از اینترفیس فیلتر شود. اگر به جای out، گزینه­ی in را انتخاب می­کردید، این بدان معنا بود که شما access List را برای شبکه­ی ۱۹۲.۱۶۸.۲.۰ نوشتید که این امر اشتباه است و این access list عمل نمی‌کند.

و حالا اگر ازpc1  به pc3 و pc4، Ping کنید، با پیام زیر مواجه می‌شوید:

PC>ping 192.168.2.3

Pinging 192.168.2.3 with 32 bytes of data:

Reply from 192.168.1.1: Destination host unreachable.

Reply from 192.168.1.1: Destination host unreachable.

Reply from 192.168.1.1: Destination host unreachable.

Reply from 192.168.1.1: Destination host unreachable.

و حالا اگر از طریق pc2 بخواهید pc3 و pc4 را Ping کنید، جواب خواهید گرفت.

PC>ping 192.168.2.3

Pinging 192.168.2.3 with 32 bytes of data:

Reply from 192.168.2.3: bytes=32 time=1ms TTL=127

Reply from 192.168.2.3: bytes=32 time=0ms TTL=127

Reply from 192.168.2.3: bytes=32 time=0ms TTL=127

Reply from 192.168.2.3: bytes=32 time=0ms TTL=127

Ping statistics for 192.168.2.3:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 0ms, Maximum = 1ms, Average = 0ms

برای قرار دادن توضیحات روی یک Access List، باید از دستور Remark استفاده کرد:

Router(config-std-nacl)# remark Access List Deny Pc1

برای مشاهده­ی این دستور باید وارد Running-config شوید تا این پیام را مشاهده کنید.

Router# show Running-Config

access-list 20 remark Access List Deny Pc1

Access List پیشرفته:

این نوع Access List از شماره‌های ۱۰۰ تا ۱۹۹ و ۲۰۰۰ تا ۲۶۹۹ تشکیل شده است و می‌تواند ترافیک مربوط به مبدأ و مقصد را مورد بررسی قرار دهد، حتی می‌توانید پروتکل‌ها یا برنامه‌های خاص را Deny یا Permit کنید.

مثال۵: در این مثال می‌خواهیم Telnet را روی روتر راه‌اندازی کنیم و accessList بنویسیم که از دسترسی Pc2 به Telnet جلوگیری کند.

وارد روتر می‌شویم و به صورت زیر عمل می‌کنیم:

Router(config)#ip access-list extended Dpc2tel

یک access List extended با نام Dpc2tel را ایجاد کردیم که شما می‌توانید به جای این نام از نام دلخواه یا از شماره‌های ذکرشده در قسمت قبل استفاده کنید.

Router(config-ext-nacl)# deny tcp 192.168.2.0 0.0.0.255 any eq 23

 در این قسمت برای Deny کردن pc2 برای جلوگیری از Telnet، باید از پروتکل Tcp و پورت ۲۳ که مربوط به Telnet است را Deny کنید. در زیر جدول مربوط به پروتکل‌ها و شماره­ی پورت‌ها مشخص شده است.

Router(config-ext-nacl)# deny tcp 192.168.2.0 0.0.0.255 any eq 23

چون در اینجا قرار است که Telnet را برایpc2  ببندیم، از پروتکل TCP طبق جدول و از پورت ۲۳ که مربوط به Telnet است، استفاده می‌کنیم، پس به این صورت بخوانیم که Deny کن، پروتکل TCP را برای شبکه­ی ۱۹۲.۱۶۸.۲.۰ با Wild Card mask، ۰.۰.۰.۲۵۵ و با پورت ۲۳ که مربوط به Telnet است.

نکته: بعد از این کار، تمام ترافیک مربوط به شبکه­ی ۱۹۲.۱۶۸.۲.۰ فیلتر می‌شود، به خاطر این باید از دستور زیر در آخر کار برای Permit دادن به بقیه­ی شبکه استفاده کرد.

Router(config-ext-nacl)#permit ip any any

با این کار، pc2 می‌تواند با روتر ارتباط داشته باشد و فقط پروتکل Telnet بسته شده است. اگر یادتان باشد در access List standard همه­ی ترافیک مربوط به یک دستگاه فیلتر می‌شد و حق دسترسی به هیچ عنوان نداشت، اما در accesslist Extended این چنین نیست و فقط pc2 نمی‌تواند Telnet کند، اما می‌تواند روتر را ping  کند.

در ادامه باید این access List را روی پورت روتر فعال کنیم:

Router(config-if)#ip access-group Dpc2tel in

پس این دستور به این صورت خوانده می‌شود که Ip access-group Dpc2tel را بر روی این پورت به صورت ورودی فعال کن، ورودی یعنی این­که Pc2 در حال ورود به روتر است. اگر از Pc2 به روتر Telnet کنیم، جواب نمی‌دهد.

PC>telnet 192.168.2.1

Trying 192.168.2.1 …

% Connection timed out; remote host not responding

اما اگر به روتر ping کنیم، جواب می‌گیریم:

PC>ping 192.168.2.1

Pinging 192.168.2.1 with 32 bytes of data:

Reply from 192.168.2.1: bytes=32 time=1ms TTL=255

Reply from 192.168.2.1: bytes=32 time=0ms TTL=255

Reply from 192.168.2.1: bytes=32 time=0ms TTL=255

Reply from 192.168.2.1: bytes=32 time=0ms TTL=255

Ping statistics for 192.168.2.1:

 Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 0ms, Maximum = 1ms, Average = 0ms

دستورShow access-lists :

این دستور، تعداد Access List های موجود در روتر را با جزئیات نمایش می‌دهد:

Router(config)#do sh ip access-list

Extended IP access list Dpc2tel

دوستان توجه داشته باشید که دستورات به صورت خلاصه‌شده وارد شده است و چون در مد Global هستیم، در اول دستور از do استفاده کردیم.

دستورshow access-list:

با این دستور می‌توانیم جزئیات یک access-list را مشاهده کنیم:

Router#show access-lists Dpc2tel

Extended IP access list Dpc2tel

    deny tcp 192.168.2.0 0.0.0.255 any eq telnet (24 match(es))

    permit ip any any (8 match(es))

در ادامه از access-List بسیار استفاده می‌کنیم و این دستور یک دستوراساسی در سیسکو است.

استفاده از Access-List در پورت مجازی VTY:

شما می‌توانید با تعریف یک ACCESS List و فعال کردن آن در پورت  Vtyبه یک ip اجازه­ی Telnet بدهید یا ندهید. برای انجام این کار به مثال زیر توجه کنید:

مانند شکل بالا، یک روتر و دو pc به صفحه اضافه و به هم متصل کنید و به پورت‌های مورد نظرip  دهید.

وارد روتر شوید و access-List زیر را وارد کنید:

Router(config)#ip access-list standard 10

Router(config-std-nacl)#permit 192.168.1.0 0.0.0.255

در دستورات بالا، یکaccess-list  استاندارد با شماره­ی ۱۰ تعریف کردیم و بعد از آن به شبکه­ی ۱۹۲.۱۶۸.۱.۰ اجازه دسترسی داد‌یم و زمانی که یک Permit برای یک شبکه تعریف می‌کنیم، بقیه­ی شبکه‌هاDeny  می‌شوند.

بعد از ایجاد Access-list، وارد پورتLine Vty  می‌شویم و telnet را روی پورت‌ها فعال می‌کنیم:

Router(config)#line vty 0 15

Router(config-line)#password 123

Router(config-line)#login

Router(config-line)#access-class 10 in

در دستور اول وارد پورت ۰ ۱۵  VTYمی‌شویم و بعد، رمز عبور را بر روی پورت‌ها قرار می‌دهیم، سپس با دستور login می­گوییم که در زمان telnet شدن، رمز عبور را درخواست کند و بعد از آن، با دستور access-class به این پورت می­گوییم که در زمان telnet شدن، فقط ip address هایی را قبول کن که access-list 10 می‌گوید.

بعد از اتمام کار، اگر از طریق pc1 به روتر telnet کنید، جواب می‌گیرید، اما از طریق pc2 این امکان وجود ندارد.

بررسی CPPr

CPPr یا Control plane protection به مانند CoPP است با این تفاوت که بر جزئیات کار تمرکز دارد و می‌توانید مشخص کنید چه ترافیکی بررسی شود در زیر سه زیر شاخه در باره این موضوع را مشاهده می‌کنید:

Host subinterface : نشان دهنده‌ی ترافیک‌های عبوری است که مقصد آن خود دستگاه مورد نظر است.

Transit subinterface : ترافیکی که از دستگاه خارج می‌شود و ربطی به خود دستگاه ندارد.

 CEF-Exception subinterface : مربوط به یک سری از ترافیک‌های به غیر از IP

 

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Scroll to Top