برای طرح سوال و دسترسی به آموزش ها سورس کدهای بیشتر به مجموعه xstack و یا به کانال ما در تلگرام کانال ما در تلگرام بپویندید.

TTL Security در پروتکل مسیریابی BGP

چند وقته برروی امنیت پروتکل BGP کار میکردم . خوب با یک مکانیزم امنیتی و کامند در IOS میخواهیم آشنا شویم. دستور زیر

neighbor Neighbor-Address ttl-security hops Hop-Count

یک مکانیزم امنیتی بسیار سبک و راحت می باشد که session ایجاد شده بین peer های BGP را از حملات CPU-utilization محافظت می کند. درIPv4 از فیلد TTL و در  IPv6 از Hop Limit برای جلوگیری از این دسته حملات استفاده می شود. برای مثال می توان حملات DOS را نام برد که سعی می کند تا بخشی از شبکه را از کار بیندازد با پکت IP که در هدر آن Source,Destination جعلی وجود دارد. این مکانیزم امنیتی بدین صورت عمل می کند که پکت های دریافتی بایستی مقدار TTL آن مساوی و یا بزرگتر از مقدار تعیین شده توسط کانفیگ انجام شده برروی روتر باشد. وقتی پکت از فاصله یک Hop دریافت می شود مقدار TTL برابر ۲۵۵ و اگر فاصله ۲Hop باشد مقدار این فیلد ۲۵۴ خواهد بود. در واقع در این دستور حداکثر تعداد Hop بین دو peer از eBGP را مشخص می کنیم.

این ویژگی می بایست در هر روتر درون AS کانفیگ گردد. نشست BGP تنها در برابر ترافیک Incoming محافظت می شود و تاثیری در ترافیک خروجی از روتر نخواهد داشت. وقتی این کانفیگ برروی روتر صورت گیرد BGP تنها نشست هایی را آغاز می کند و یا  Alive نگه میدارد که دارای شرایط تعیین شده در کانفیگ باشد.

اگر پکتی با مقدار TTL کمتر دریافت گردد Discard خواهد شد و پیام ICMP هم ایجاد نخواهد کرد چون پاسخ به پکت جعلی نیازی نیست. برای حداکثر تاثیر این مکانیزم می بایست به شدت مقدار hop-count را کم دهیم و درواقع دقیقا همان تعداد Hop بین شبکه داخلی و خارجی قرار دهیم.

TTL Security تنها در این پروتکل نیست بلکه میتوان آن را در OSPF هم مورد استفاده قرار داد. با استفاده از دستور زیر در مد کانفیگ اینترفیس میتوان این ویژگی را برروی آن فعال نمود:

ip ospf ttl-security [hops hop-count| disable]

 

البته این دستور محدودیت هایی نیز دارد:

  1. برای iBGP پشتیبانی نمی شود.
  2. برای peer هایی که بصورت ebgp-multihop کافیگ شده است نمی تواند اجرا نمود. این دو کامند با هم ناسازگار هستند و برای نشست های eBGP تنها یکی از این دو بایستی کانفیگ گردد. اگر سعی کنید این دو را باهم برروی یک peer کانفیگ کنید با پیغام خطا مواجه خواهید شد.
  3. اگر یک روتر از شبکه مورد حمله قرار گرفته باشدو در دست نفوذگر قرار گیرد، این دستور تاثیری نخواهد داشت.

در دستور زیر Hop-Count را برای یک peer که بطور مستقیم به روترمان متصل است برابر ۲ قرار داده ایم دلیل آن این است که BGP تنها پکت های که مقدار TTL آن برابر و یا بزرگتر از ۲۵۳ یعنی ۲۵۳ و یا ۲۵۴ باشد را قبول می کند و اگر به غیر از این مقدار باشند Discard خواهد شد.

neighbor 10.1.1.1 ttl-security hops 2

خروجی زیر از کامند show ip bgp neighbors می باشد که neighbor های ۱۰.۱.۱.۱ را مشاهده می کنیم و همچنین TTL Security نیز برای آن فعال شده است و مقدار آن ۲ است که در خط ۷۷ میتوانید گزارشی از این مکانیزم امنیتی را ببینید.

Router# show ip bgp neighbors 10.1.1.1

BGP neighbor is 10.1.1.1,  remote AS 100, internal link

  BGP version 4, remote router ID 10.2.2.22

  BGP state = Established, up for 00:59:21

  Last read 00:00:21, hold time is 180, keepalive interval is 60 seconds

  Neighbor capabilities:

    Route refresh: advertised and received(new)

    Address family IPv4 Unicast: advertised and received

  Message statistics:

    InQ depth is 0

    OutQ depth is 0

                         Sent       Rcvd

    Opens:                  2          2

    Notifications:          0          0

    Updates:                0          0

    Keepalives:           226        227

    Route Refresh:          0          0

    Total:                228        229

  Default minimum time between advertisement runs is 5 seconds

 For address family: IPv4 Unicast

  BGP table version 1, neighbor version 1/0

  Output queue sizes : 0 self, 0 replicated

  Index 1, Offset 0, Mask 0x2

  Member of update-group 1

                                 Sent       Rcvd

  Prefix activity:               ----       ----

    Prefixes Current:               0          0

    Prefixes Total:                 0          0

    Implicit Withdraw:              0          0

    Explicit Withdraw:              0          0

    Used as bestpath:             n/a          0

    Used as multipath:            n/a          0

                                   Outbound    Inbound

  Local Policy Denied Prefixes:    --------    -------

    Total:                                0          0

  Number of NLRIs in the update sent: max 0, min 0

  Connections established 2; dropped 1

  Last reset 00:59:50, due to User reset

  External BGP neighbor may be up to 2 hops away.

Connection state is ESTAB, I/O status: 1, unread input bytes: 0

Local host: 10.2.2.22, Local port: 179

Foreign host: 10.1.1.1, Foreign port: 11001

Enqueued packets for retransmit: 0, input: 0  mis-ordered: 0 (0 bytes)

Event Timers (current time is 0xCC28EC):

Timer          Starts    Wakeups            Next

Retrans            63          0             0x0

TimeWait            0          0             0x0

AckHold            62         50             0x0

SendWnd             0          0             0x0

KeepAlive           0          0             0x0

GiveUp              0          0             0x0

PmtuAger            0          0             0x0

DeadWait            0          0             0x0

iss:  712702676  snduna:  712703881  sndnxt:  712703881     sndwnd:  15180

irs: 2255946817  rcvnxt: 2255948041  rcvwnd:      15161  delrcvwnd:   1223

SRTT: 300 ms, RTTO: 607 ms, RTV: 3 ms, KRTT: 0 ms

minRTT: 0 ms, maxRTT: 300 ms, ACK hold: 200 ms

Flags: passive open, nagle, gen tcbs

Datagrams (max data segment is 1460 bytes):

Rcvd: 76 (out of order: 0), with data: 63, total data bytes: 1223

Sent: 113 (retransmit: 0, fastretransmit: 0), with data: 62, total data bytes: 4

 

برای مطالعات بیشتر هم می تونید RFC3682 رو بخونید.

 

موفق باشید.

 

قطره ای از دریای بیکران IT
نوشته ایجاد شد 18

یک دیدگاه در “TTL Security در پروتکل مسیریابی BGP

  1. سلام،
    در صورت امکان،روش مسیریابی رو توی مواردی که از ساب نتینگ استفاده میشه رو هم بگو دوست عزیز.

دیدگاهتان را بنویسید

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

نوشته های مرتبط

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

بازگشت به بالا