صادق شعبانی
کارشناس ارشد سیسکو

آموزش راه اندازی Root Guard در سویچ سیسکو

در سری سناریو های سیسکو امروز می خواهیم به آموزش راه اندازی Root Guard بپردازیم. ابتدا سناریو را تشریح می کنیم و روش حل مسئله را باز می کنیم و با هم این سناریو را انجام می دهیم : در این LAB می خواهیم در خصوص فیچر root guard یا همان محافظت از سوئیچ روت صحبت کنیم .قبلا" در این ویدیو و همچنین این مقاله که در خصوص stp security بود ، مباحث امنیتی مرتبط با stp را یادگرفتیم ، در همان مقاله مرتبط صحبت از attack شد که به man in the middle attack هم معروف است.می توانید به این مقاله از مهندس شوهانی که در همین خصوص است نیز مراجعه نمائید.حالا قصد داریم این فیچر امنیتی را در این lab پیاده سازی نمائیم.

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

در سناریو بالا سوئیچ IOU1 در نقش سوئیچ روت است که ما از طریق کامند زیر آن را سوئیچ ROOT BRIDGE تعیین کرده ایم :

IOU1(config)#spanning-tree vlan 1 root primary 
IOU1(config)#
IOU1(config)#
IOU1#

IOU1#show spanning-tree 

VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    24577
             Address     aabb.cc00.0600
             This bridge is the root
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    24577  (priority 24576 sys-id-ext 1)
             Address     aabb.cc00.0600
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 15 

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Et0/0               Desg FWD 100       128.1    Shr 
Et0/1               Desg FWD 100       128.2    Shr 
Et0/2               Desg FWD 100       128.3    Shr


همچنین سوئیچ IOU2 هم بعنوان BACKUP سوئیچ روت در نظر گرفته شده است .

IOU2(config)#SPANning-tree VLAN 1 ROOT SECondary 
IOU2(config)#
IOU2#

IOU2#SHOW SPANning-tree 

VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    24577
             Address     aabb.cc00.0600
             Cost        100
             Port        3 (Ethernet0/2)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    28673  (priority 28672 sys-id-ext 1)
             Address     aabb.cc00.0500
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 15


همانطور که می بینید مقدار PRIORITY سوئیچ روت برابر با 24XXX و در سوئیچ BACKUP مقدار PR برابر با 28XXX است.در این سناریو ما انتظار داریم سوئیچ روت را روی پورت های RP و یا BLOCK ببنیم .ما هیچوقت انتظار نداریم سوئیچ روت را روی پورت هایی که برای کلاینت ها در نظر گرفته شده و یا سایر پورت های سوئیچ ببینیم.از آنجا که انتخابات سوئیچ ها بصورت کاملا" رقابتی است ممکن است شخصی ، یک سوئیچ بهترین BID و به عبارت دقیق تر بهترین PRIORITY و مثلا" سوئیچ با PRIORITY 0 وارد سازمان کرده و سوئیچ خودش را به سوئیچ ACCESS متصل کند.

در این هنگام ، چون در بین تمام سوئیچ ها فقط یک سوئیچ میتواند روت باشدو سوئیچ روت ، سوئیچی با بهترین BID است ، سوئیچ ATTACKER بعنوان روت در نظر گرفته شده و ترافیک شبکه از آن عبور خواهد کرد.ما قصد داریم با کانفیگ این فیچر ، اعلام کنیم در سمت سوئیچ IOU3 ، سوئیچ روت فقط باید روی پورت های ROOT PORT و BLOCK PORT باید دیده شود.یعنی نباید سوئیچ روت ، روی پورتهای سمت کلاینت که در دسترس است دیده شود.

IOU3(config)#INTerface RANGe ETHernet 1/0-1
IOU3(config-if-range)#SPANning-tree GUArd Root 
IOU3(config-if-range)#
*Dec 23 06:27:56.907: %SPANTREE-2-ROOTGUARD_CONFIG_CHANGE: Root guard enabled on port Ethernet1/0.
*Dec 23 06:27:56.919: %SPANTREE-2-ROOTGUARD_CONFIG_CHANGE: Root guard enabled on port Ethernet1/1.
IOU3(config-if-range)#


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

IOU3#DEBug SPANning-tree EVents 
Spanning Tree event debugging is on
IOU3#

سوئیچ IOU8 دارای PR 0 است

IOU8(config)#SPANning-tree VLAN 1 PRiority 0

IOU8#
IOU8#SHOW SPANning-tree 

VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    1
             Address     aabb.cc00.0800
             This bridge is the root
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    1      (priority 0 sys-id-ext 1)
             Address     aabb.cc00.0800
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 300


حالا سوئیچ IOU8 را وارد بازی می کنیم :

2

Attacker سویئچ خود را به پورتی که برای کلاینت در نظر گرفته شده بود ، متصل کرد.اگر به سوئیج IOU3 برگردیم یک LOG را مرتبا" دریافت می کنیم

IOU3#
*Dec 23 06:32:47.975: STP: VLAN0001 heard root     1-aabb.cc00.0800 on Et1/0
*Dec 23 06:32:47.975:     supersedes 24577-aabb.cc00.0600
*Dec 23 06:32:47.975: %SPANTREE-2-ROOTGUARD_BLOCK: Root guard blocking port Ethernet1/0 on VLAN0001.
IOU3#
*Dec 23 06:32:47.975: STP: VLAN0001 sent Topology Change Notice on Et0/0
*Dec 23 06:32:47.975: STP[1]: Generating TC trap for port Ethernet1/0
*Dec 23 06:32:47.975: STP: VLAN0001 Et1/0 -> blocking
*Dec 23 06:32:48.975: STP: VLAN0001 heard root     1-aabb.cc00.0800 on Et1/0
*Dec 23 06:32:48.975:     supersedes 24577-aabb.cc00.0600
IOU3#
*Dec 23 06:32:50.983: STP: VLAN0001 heard root     1-aabb.cc00.0800 on Et1/0
*Dec 23 06:32:50.983:     supersedes 24577-aabb.cc00.0600

بخاطر همین ، من کلا" کامند DEBUG را غیر فعال کردم

IOU3#no DEBug SPANning-tree EVents 
Spanning Tree event debugging is off
IOU3#


خب ، LOG می گفت روی پورت ETH1.0 مک روت را شنیده است اما باز برای اینکه موضوع روشن شود :

3
MAC SWITCH ROOT BRIDGE (IOU1) = aabb.cc00.0600
MAC SWITCH ATTACKER (IOU8) = aabb.cc00.0800

حالا یکبار دیگر به log نگاه کنیم :

*Dec 23 06:32:50.983: STP: VLAN0001 heard root     1-aabb.cc00.0800 on Et1/0
*Dec 23 06:32:50.983:     supersedes 24577-aabb.cc00.0600


می بینیم که در خط اول BID سوئیچ attacker که pr 1 و مک aabb.cc00.0800 دارد را نوشته است که روی پورت eth 1/0 شنیده شده است اما در خط دوم مک سوئیچ روت را supersede کرده به این مفهوم کرده که این BID سوئیچ روت بر BID های سوئیچ های دیگر ( حتی اگر آنها بهترین BID را هم داشته باشند ) ، ارجحیت دارد .اگر از کامند زیر استفاده کنیم:

IOU3#SHOW SPanning-tree INCONsistentports 

Name                 Interface              Inconsistency
-------------------- ---------------------- ------------------
VLAN0001             Ethernet1/0            Root Inconsistent

Number of inconsistent ports (segments) in the system : 1

IOU3#

می بینیم که پورت Ethernet1/0 در وضعیت Root Inconsistent قرار گرفته است. تا زمانی که ارتباط سوئیچ ATTACKER با سوئیچ IOU3 برقرار است و ادعای روت بودن کند و BPDU بهتر بفرستد در این وضعیت باقی می ماند.توجه کنید ، این فیچر الزاما" با خود BPDU مشکلی ندارد بلکه با دریافت BPDU بهتر روی پورت هایی که این فیچر روی آنها فعال شده است ، مشکل دارد.مجددا" من کامند DEBUG را فعال کرده و ارتباط سوئیچ ATTACKER را قطع خواهم کرد.

4
IOU3#DEBug SPAnning-tree EVents 
Spanning Tree event debugging is on
IOU3#

قبل از قطع ارتباط

IOU3#
*Dec 23 06:55:55.831: STP: VLAN0001 heard root     1-aabb.cc00.0800 on Et1/0
*Dec 23 06:55:55.831:     supersedes 24577-aabb.cc00.0600
IOU3#

پس از قطع ارتباط

IOU3#
*Dec 23 06:56:15.839: %SPANTREE-2-ROOTGUARD_UNBLOCK: Root guard unblocking port Ethernet1/0 on VLAN0001.
IOU3#
*Dec 23 06:56:15.839: STP: VLAN0001 Et1/0 -> listening
IOU3#
*Dec 23 06:56:30.843: STP: VLAN0001 Et1/0 -> learning
IOU3#
*Dec 23 06:56:45.847: STP[1]: Generating TC trap for port Ethernet1/0
*Dec 23 06:56:45.847: STP: VLAN0001 sent Topology Change Notice on Et0/0
*Dec 23 06:56:45.847: STP: VLAN0001 Et1/0 -> forwarding
IOU3#

همانطور که می بینید چون روی پورت مربوطه دیگر BPDU بهتر دریافت نشد ، پورت ETH1.0 از وضعیت Root Inconsistent خارج و نهایتا" FORWARD شد.

IOU3#SHOW SPANning-tree INCONsistentports 

Name                 Interface              Inconsistency
-------------------- ---------------------- ------------------

Number of inconsistent ports (segments) in the system : 0

IOU3#



صادق شعبانی
صادق شعبانی

کارشناس ارشد سیسکو

صادق شعبانی ( هکر قانونمند ، مهندس مایکروسافت ، کارشناس ارشد سیسکو ) : انسانی که کنار میکشه هیچوقت پیروز نمیشه و انسانی که پیروز میشه هیچوقت کنار نمی کشه.

نظرات