به طور پیش فرض دستگاههای شبکه اطلاعات جدول مسیریابی را به دیگر همسایههای ارسال میکنند و احراز هویتی هم بین آنها انجام میشود اما این احراز هویت به صورت Clear Text است و اطلاعات در مسیر قابل مشاهده است و به همین طریق مهاجمان میتوانند آدرسهای جعلی خود را در شبکه تبلیغ کنند، برای جلوگیری از این خطر باید احراز هویت را بین دو روتر یا روترها با استفاده از الگوریتم MD5 ایجاد کنیم تا امنیت کار بسیار افزایش پیدا کند و رمزهای که ایجاد میکنیم به صورت Hash شده باشند.
فعالسازی تأیید اعتبار در به روزرسانی مسیریابی در OSPF
برای اینکه تایید اعتبار را در OSPF راهاندازی کنیم یک مثال را به طور کامل با هم بررسی میکنیم تا کل کار را متوجه شوید.
پروتکل OSPF(Open Shortest Patch First) یک پروتکل آزاد است و مختص شرکت خاصی نیست و توسط سازمان IETF در سال ۱۹۸۸ نوشته شده است، مانند Eigrp نیست که فقط در روترهای سیسکو قابل اجرا باشد، بلکه در تمام روترهای شرکتهای مختلف کاربرد دارد.
پس اگر شما در شبکههای خود از روترهای مختلف با برندهای مختلف استفاده کنید، نمیتوانید روی آنها Eigrp اجرا کنید، بلکه فقط باید پروتکلOSPF یا RIP روی آنها run کنید تا بتوانند باهم دیگر ارتباط برقرار کنند.
این پروتکل از مجموعه پروتکلهای Link state است و زیرمجموعهی پروتکلهای IGPs است، یعنی داخل یک AS کار میکنند.
الگوریتمی که در این پروتکل استفاده میشود، Dijkstra است که شبکه را به صورت یک درخت بدون دور در نظر میگیرد.
Ospf از جدولی به نام Link-satate Dtabase استفاده میکند که کل اطلاعات شبکه یا نقشهی شبکه را برای انتخاب کوتاهترین مسیر در خود ذخیره میکند و برای به دست آوردن کوتاهترین مسیر از الگوریتمی به نام SPF استفاده میکند و بعد از پیدا شدن مسیر، آن را در جدول دیگری به نام Routing Table ذخیره میکند.
OSPF برای ارسال آپدیت از بستههایی به نام (Link-state Advertisement) LSA استفاده میکند که اطلاعات جدول خود را به نام Link-state Database به روترهای دیگر ارسال میکند.
در مثال زیر، نحوهی راهاندازی پروتکل OSPF را بررسی و امنیت را در آن اجرا میکنیم.
نکته: در مورد OSPF در کتاب آموزشی CCNA R& S که بنده آن را به نگارش در آوردم توضیحات کاملی دادم که میتوانید آن را از وب سایت بنده دریافت کنید.
چهار روتر را به لیست اضافه کنید و به صورت زیر به هم متصل کنید، و طبق جدول آدرس IP را در Interface های آن وارد کنید.
LoopBack | E0/1 | E0/0 | |
۱۵۰.۱.۱.۱/۲۴ | ——– | ۱۷۲.۱۶.۱.۱/۲۴ | R1 |
۱۵۰.۱.۲.۲/۲۴ | ۱۷۲.۱۶.۲.۱/۲۴ | ۱۷۲.۱۶.۱.۲/۲۴ | R2 |
۱۵۰.۱.۳.۳/۲۴ | ۱۷۲.۱۶.۲.۲/۲۴ | ۱۷۲.۱۶.۳.۱/۲۴ | R3 |
۱۵۰.۱.۴.۴/۲۴ | ۱۷۲.۱۶.۴.۱/۲۴ | ۱۷۲.۱۶.۳.۲/۲۴ | R4 |
۱۵۰.۱.۵.۵/۲۴ | ۱۷۲.۱۶.۴.۲/۲۴ | ——- | R5 |
بعد از تخصیص IP ها در روتر باید پروتکل OSPF را راهاندازی کنیم:
روتر R1 :
Router(config)#router ospf 20
تعریف Router OSPF 20 که ۲۰ یک شمارهی شناسایی برای این پروتکل است که تأثیری در روند کار ندارد، اما باید تعریف شود.
Router(config-router)#router-id 150.1.1.1
در این قسمت باید RID روتر را تعریف کنید که این IP مربوط به اینترفیس LoopBack است، پس بعد از ورود به پروتکل OSPF در درجهی اول RID را تعریف کنید.
Router(config-router)#network 172.16.1.1 0.0.0.0 area 2
در این قسمت Network های مربوط به روتر را تعریف میکنیم و میگوییم که در کدام area قرار دارد، مثلاً در این قسمت، اینترفیس Fa0/0 روتر R1 در Area2 قرار دارد. در تعریف Network، اول خود Ip و بعد،Wild Card MASk مربوط به آن را وارد میکنیم که همانطور که در مطالب قبلی کتاب گفتیم، سعی کنید به جای Wild Card Mask از چهار صفر استفاده کنید (۰.۰.۰.۰).
در بقیهی روترها هم همین کار را انجام دهید:
روتر R2:
Router(config)#router ospf 10
Router(config-router)#router-id 150.1.2.2
Router(config-router)#network 172.16.1.2 0.0.0.0 area 2
Router(config-router)#network 172.16.2.1 0.0.0.0 area 0
روتر R3:
Router(config)#router ospf 10
Router(config-router)#router-id 150.1.3.3
Router(config-router)#net 172.16.2.2 0.0.0.0 area 0
Router(config-router)#net 172.16.3.1 0.0.0.0 area 0
روتر R4:
Router(config)#router ospf 30
Router(config-router)#router-id 150.1.4.4
Router(config-router)#net 172.16.3.2 0.0.0.0 area 0
Router(config-router)#net 172.16.4.1 0.0.0.0 area 1
روتر R5:
Router(config)#router ospf 30
Router(config-router)#router-id 150.1.5.5
Router(config-router)#net 172.16.4.2 0.0.0.0 area 1
در این قسمت، از طریق فرمان Show Ip Route، نگاهی به جدول روتینگ روتر R1 میکنیم و این دستور را در مد Privileged وارد میکنیم:
R1#show ip route
Codes: L – local, C – connected, S – static, R – RIP, M – mobile, B – BGP
D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area
N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
E1 – OSPF external type 1, E2 – OSPF external type 2
i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2
ia – IS-IS inter area, * – candidate default, U – per-user static route
o – ODR, P – periodic downloaded static route, + – replicated route
Gateway of last resort is not set
۱۵۰.۱.۰.۰/۱۶ is variably subnetted, 2 subnets, 2 masks
C ۱۵۰.۱.۱.۰/۲۴ is directly connected, Loopback0
L ۱۵۰.۱.۱.۱/۳۲ is directly connected, Loopback0
۱۷۲.۱۶.۰.۰/۱۶ is variably subnetted, 5 subnets, 2 masks
C ۱۷۲.۱۶.۱.۰/۲۴ is directly connected, Ethernet0/0
L ۱۷۲.۱۶.۱.۱/۳۲ is directly connected, Ethernet0/0
O IA ۱۷۲.۱۶.۲.۰/۲۴ [۱۱۰/۲۰] via 172.16.1.2, 00:03:26, Ethernet0/0
O IA ۱۷۲.۱۶.۳.۰/۲۴ [۱۱۰/۳۰] via 172.16.1.2, 00:02:29, Ethernet0/0
O IA ۱۷۲.۱۶.۴.۰/۲۴ [۱۱۰/۴۰] via 172.16.1.2, 00:01:20, Ethernet0/0
همانطور که مشاهده میکنید، Network هایی که از طریق OSPF یاد گرفته است به صورت O IA نمایش داده است که O IA، بیانگر OSPF inter area است و نشاندهندهی این است که این شبکهها را از Area دیگری غیر از area خود یاد گرفته است و اگر یک روتر در area خود چیزی یاد بگیرد، آن را با حرف O ثبت میکند.
در این تصویر گروتکلهای OSPF را در تصویر مشاهده میکنید، اگر یکی از آنها را انتخاب کنید در قسمت Open Shortest path First و قسمت OSPF Header گزینهی Auth Type برابر Null قرار گرفته که نشان دهنده این است که هیچ گونه امنیتی در این پروتکل لحاظ نشده و مهاجم به راحتی میتواند روتر خود را به عنوان یک همسایه جدید به Area مورد نظر اعلام کند و کل جدول مسیریابی را تغییر دهد، برای حل این مشکل باید دستورات امنیتی را بین دو یا چند روتر که در یک یا چند Area هستند اعمال کنیم.
برای مثال میخواهیم امنیت را بین روتر R1 و R2 برقرار کنیم که برای این کار باید به صورت زیر عمل کنید:
روتر R1 :
وارد Interface که در Area1 قرار دارد شوید و دستور زیر را وارد کنید:
R1(config-if)#int e0/0
فعال کردن الگوریتم message-digest با دستور زیر:
R1(config-if)#ip ospf authentication message-digest
در دستور زیر عدد یک میتواند بین ۱ تا ۶۵۵۳۵ متغیر باشد که در اینجا عدد یک را انتخاب میکنیم و توجه کنید در روتر روبرو هم باید همین عدد را انتخاب کنید، بعد از ان الگوریتم MD5 و بعد یک رمز عبور پیچیده برای ان در نظر بگیرید.
R1(config-if)#ip ospf message-digest-key 1 md5 Test@12345
بعد از اجرای دستور بالا وارد OSPF شوید و دستور زیر را وارد کنید:
R1(config-if)#router ospf 20
R1(config-router)#area 1 authentication message-digest
بعد از اجرای کامل دستورات پیغام زیر را در صفحه مشاهده خواهید کرد که به این نکته اشاره دارد که ارتباط با روتر ۱۵۰.۱.۲.۲ که همان روتر R2 است قطع شده و دلیل آن هم این است که در R1 الگوریتم و رمز عبور را فعال کردید ولی در روتر R2 انجام ندادید.
*Dec ۸ ۰۷:۳۳:۵۲.۱۷۵: %OSPF-5-ADJCHG: Process 20, Nbr 150.1.2.2 on Ethernet0/0 from FULL to DOWN, Neighbor Down: Dead timer expired
روتر R2 :
در روتر R2 هم دستورات زیر را وارد کنید:
R2(config-router)#int e0/0
R2(config-if)#ip ospf authentication message-digest
R2(config-if)#ip ospf message-digest-key 1 md5 Test@12345
R2(config-router)#router ospf 10
R2(config-router)#area 1 authentication message-digest
بعد از فعال کردن رمز دوباره ارتباط بین R1 و R2 را با استفاده از نرمافزار WireShark ارتباط آنها را بررسی میکنیم.
همانطور که در شکل زیر مشاهده میکنید قسمت OSPF Header به صورت کامل تغییر کرده است و به صورت کامل رمزنگاری شده است، کلمه Auth Crypt در شکل تایید کنندهی این موضوع است.
فعالسازی امنیت در پروتکل EIGRP
یکی از محبوبترین پروتکلها در دنیای امروز است و فقط روی دستگاههای سیسکو کاربرد دارد، یعنی اینکه این پروتکل ساخت سیسکو است و فقط روی ادوات سیسکو کار میکند، یکی از پرسرعتترین پروتکلها است که سرعت convergence یا هماهنگی بسیار بالایی دارد.
برای فعالسازی امنیت در EIGRP باید دستورات زیر را در روتر وارد کنید:
در دستور زیر یک نام برای دسته کلید خود در نظر بگیرید:
R1(config)#key chain profile_key
بعد یک ID برای ان مشخص کنید:
R1(config-keychain)#key 2122
بعد باید رمز عبور را وارد کنید که در ادامه از دسته کلیدی که استفاده کردیم و ایم رمز داخل آن قرار دارد میتوانیم استفاده کنیم.
R1(config-keychain-key)#key-string Test@12345
در ادامه وارد Interface مورد نظر شوید و دستورات زیر را وارد کنید:
R1(config-keychain-key)#interface fast0/0
در دستور زیر عدد ۲۰۰ مربوط به AS پروتکل EIGRP است که روترها برای ارتباط باید از یک شمارهی مشخص استفاده کنند.
R1(config-if)#ip authentication mode eigrp 200 md5
در دستور زیر profile_key همان key chain یا دسته کلیدی است که در بالا تعریف کردیم
R1(config-if)#ip authentication key-chain eigrp 200 profile_key
شما باید دقیقاً همین دستورات را در روتر یا روترهای دیگر وارد کنید تا بتوانند به صورت امن با هم در ارتباط باشند.
امنیت در پروتکل RIP
این پروتکل یکی از محبوبترین پروتکلهای روتینگ و یکی از قدیمیترین آنها هم است. این پروتکل زیرمجموعهی پروتکلهای Distance Vector است و یک پروتکل IGPs است و در داخل یک AS(Autonomous System) کار میکند، در این قسمت میخواهیم امنیت را در این پروتکل به اجرا درآوریم، فقط به این نکته توجه کنید که راهاندازی امنیت فقط در ورژن ۲ پروتکل RIP پشتیبانی میشود و در ورژن ۱ این امکان وجود ندارد.
در کل تایید اعتبار به دو صورت Plaintext و MD5 در RIP صورت میگیرد که در ورژن ۲ این پروتکل به صورت پیشفرض Plaintext فعال میشود ولی این نوع تایید اعتبار بسیار ضعیف و قابل مشاهده توسط مهاجمان است که باید MD5 را هم فعال کنید که برای این کار باید به صورت زیر عمل کنید.
در دستور زیر یک نام برای دسته کلید خود در نظر بگیرید:
R1(config)#key chain profile_key
بعد یک ID برای ان مشخص کنید:
R1(config-keychain)#key 2122
بعد باید رمز عبور را وارد کنید:
R1(config-keychain-key)#key-string Test@12345
در ادامه وارد Interface مورد نظر شوید و دستورات زیر را وارد کنید:
R1(config-keychain-key)#interface fast0/0
در دستور زیر عدد احراز هویت MD5 را فعال میکنیم:
R1(config-if)#ip rip authentication mode md5
در دستور زیر profile_key همان key chain یا دسته کلیدی است که در بالا تعریف کردیم و رمز را به آن متصل کردیم:
R1(config-if)#ip rip authentication key-chain profile_key
شما باید دقیقاً همین دستورات را در روتر یا روترهای دیگر وارد کنید تا در هنگام استفاده از پروتکل RIP به صورت کاملاً امن این کار صورت پذیرد.