DHCP Snooping

       Salam dostlar. Bu məqalədə Layer 2 təhlükəsizlik funksionallıqlarından biri olan DHCP Snooping haqqında danışacam. DHCP snooping şəbəkədə DHCP hücumlarının qarşısını almaq üçün switchlərdə quraşdırılır. Tipik DHCP hücum ssenarilərindən bəzilərinə nəzər yetirməklə DHCP snoopingin nə qədər faydalı funksiya olduğunu daha yaxşı başa düşmək olar.

       Bunlardan biri “DHCP Starvation Attack” adlanır. Deyək ki, şəbəkəniz /24-lə təyin olunmuş hər hansı subnet üzərindədir. Bu şəbəkədə DHCP ilə maksimum 254 ip paylaya bilərsiz. Bu tipli hücumda kimsə şəbəkəyə DHCP Client-İD hissəsində yalançı MAC adreslər olan sayısız DHCP sorğuları (DHCP DİSCOVER paketləri) göndərir. DHCP hər sorğuya ip hovuzundan bir ip təyin etməklə cavab verir və tez bir zamanda sizin şəbəkənizdə ip çatışmazlığı yaranır. Nəticədə real istifadəçilər şəbəkəyə qoşula bilmir. Bu tipli hücumun qarşısını Port Security ilə portlara maksimum MAC limiti təyin etməklə qismən almaq mümkündür. Lakin daha bacarıqlı haker eyni MAC adres istifadə edərək sadəcə DHCP DİSCOVER paketlərinin “chaddr” sahəsində MAC adresləri dəyişməklə məqsədinə nail ola bilər.

       DHCP Spoofing Attack – şəbəkəyə saxta DHCP server yerləşdirməklə (məs. hər hansı istifadəçi porta default DHCP aktiv olunmuş Access Point qoşa bilər) istifadəçilərə yanlış DHCP informasiya (İP adres, subnet mask, DNS server, Default gateway və s.) paylamaqdır. Məsələn, haker default gatewayi-i öz ip adresi təyin edərək, bütün trafiki özünə yönləndirə və özündən də transparent kimi yenidən real gateway üzərindən çıxarda bilər. Bununla o paket sniffer proqramları ilə konfidensial məlumatları ələ keçirə bilər. Digər halda, DNS server adresini dəyişərək DNS sorğularını istədiyi serverə yönləndirə bilər və s.

       DHCP Snooping bu tip hücumların qarşısını almaq üçün təyin olunub.

       Gəlin DHCP snoopingin işləmə prinsipinə nəzər salaq. Öncə bilmək lazımdır ki, DHCP snooping trusted (etibarlı) və untrusted (etibarsız) port məntiqi ilə işləyir. Trusted portlar switchin əsl DHCP server yerləşən portlarıdır, qalan bütün portlar isə untrusted port olur – DHCP serverdən başqa qalan bütün serverlər, istifadəçilər və s. untrusted portda olmalıdır. Default olaraq switchdə DHCP snooping aktiv olunanda bütün portlar untrusted port olur. Switch untrusted portlardan yalnız klient paketlərini )DHCP DISCOVER, DHCP REQUEST, DHCP DECLINE, DHCP RELEASE( qəbul edir. DHCP server paketləri isə ( DHCP OFFER, DHCP ACK, DHCP NACK, DHCP LEASE QUERY) yalnız trusted portlardan qəbul olunur, hansı ki, əsl DHCP server yerləşir.

       DHCP snooping aktiv edildikdən sonra switch untrusted portlarından daxil olan DHCP paketlərini analiz etməyə başlayır və snooping bazası yaradır. Snooping bazasına DHCP klientin İP adresi, mac adresi, qoşulduğu portu, vlanı və ip-nin icarə müddəti (lease duration) daxildir. Bu məlumatlar əsasında switch bazada olan mac adreslə başqa portdan DHCP klient paketi (məs. DHCP RELEASE) qəbul edərsə, paketi rədd edəcək. Məsələn, bu DHCP snooping cədvəlinə nəzər yetirək:

 

Access_switch#show ip dhcp snooping binding

MacAddress IpAddress Lease(sec) Type VLAN Interface

—————— ————— ———- ————- —- ——————–

D8:9D:67:D3:11:72 10.3.3.11 80350 dhcp-snooping 3 GigabitEthernet0/2

Total number of bindings: 1

 

       Gördüyümüz kimi 10.3.3.1 ip ünvanı 3-cü vlan və Gi0/2 portuna bağlıdır. Məsələn, əgər Gi0/1 portundan bu ip ünvanla DHCP serverə DHCP RELEASE, və ya DHCP DECLINE mesajı göndərilərsə, switch gələn paketi DHCP snooping cədvəli ilə müqayisə edəcək və uyğun gəlmədiyinə görə paketi rədd edəcək. Bu funksiya saxta DHCP klient sorğularının qarşısını almaq üçündür.

       Qeyd edim ki, snooping cədvəldə trusted portlardan gələn informasiya saxlanılmır, yalnız untrusted portlardan gələn informasiya saxlanılır.

       Şəkil 1-ə nəzər salaq. Gördüyümüz kimi DHCP Snooping aktiv olunan switchdə əsl DHCP serverə baxan port trusted, qalan access portlar isə untrusted portlardır. PC1 şəbəkəyə qoşulub və İP almaq üçün DHCP serverə müraciət edir – DHCP DISCOVER paketi göndərir. Şəbəkədə iki dənə DHCP server olduğundan hər ikisi DHCP OFFER paketi ilə cavab verir. Biz əmin olmalıyıq ki, DHCP OFFER paketi düzgün – əsl DHCP server yerləşən portdan gəlir. DHCP snooping aktivləşdirilərsə, saxta DHCP server untrusted portdan cavab verə bilməyəcək, paketlər drop olacaq.

a

       DHCP snoopinglə bağlı digər önəmli məsələ “DHCP Option 82”-dir. “Option 82” DHCP serverə klient haqqında əlavə informasiya vermək üçün əsasən DHCP Relay mühitində, Metro Ethernet şəbəkələrində, və ya böyük Enterprise şəbəkələrdə istifadə olunur. “DHCP Option 82” vasitəsilə DHCP server klientlərin səciyyəvi xüsusiyyətlərinə görə daha konkret İP hovuzundan ip paylaya bilir. Mən bu məqalədə “Option 82” haqqında əlavə informasiya verməyəcəm. Sadəcə DHCP snoopinglə bağlı qeyd olunmalı məsələlərə nəzər salacağıq.

       Məlumat üçün qeyd edim ki, DHCP server ona gələn DHCP sorğu paketlərinin içində olan GİADDR ( Gateway IP adres) sahəsinə baxaraq hansı hovuzdan İP paylayacağını təyin edir. Əgər DHCP serverlə klientlər eyni şəbəkədə (flat network) yerləşərsə, GİADDR sahəsinin dəyəri “0” olur və DHCP server sorğu gələn interfeysinin olduğu şəbəkədən İP paylayır.

       DHCP serverlə klientlər fərqli şəbəkələrdə olarsa, aydındır ki, DHCP broadcast paketini digər şəbəkəyə ötürmək üçün arada “relay” funksiyasını görən Layer 3 avadanlıq (L3 switch və ya router) olmalıdır. Bu DHCP relay avadanlıq GİADDR sahəsində dəyəri dəyişərək sorğunu qəbul etdiyi interfeysinin İP adresini yazır. DHCP server də bu İP-yə uyğun hovuzdan həmin şəbəkə üçün İP paylayır.

       Bilmək lazımdır ki, DHCP snooping aktivləşdiriləndə Cisco switchlər DHCP paketlərə “Option 82”-ni daxil edir və GİADDR dəyərini “0” seçir. Susmaya görə DHCP Relay və ya DHCP server kimi işləyən Cisco routerları GİADDR dəyəri “0” olan paketləri rədd edir. DHCP Snooping aktivləşdirilən switchlər isə untrusted portlardan “Option 82” daxil edilmiş paketləri, və ya GİADDR dəyəri “0” olmayan DHCP paketləri gələndə rədd edir. Bu problemin qarşısını almaq üçün DHCP Snooping aktivləşdirilən switchno ip dhcp snooping information option əmrini icra etmək lazımdır. Əgər yenə də DHCP Snooping aktivləşdirilən switchlərin “Option 82”-ni paketlərə əlavə etməsini istəyirsizsə, onda alternativ olaraq upstream switchlərdə ip dhcp snooping information option allow-untrusted əmrini, Cisco DHCP relay avadanlıqda isə ip dhcp relay information trust-all əmrini icra etmək lazımdır. DHCP relay avdanlıqda hər hansı konkret port üçün isə  ip dhcp relay information trusted  əmrini icra edə bilərsiz. 

İndi isə kiçik bir laboratoriya ilə öyrəndiklərimizi testdən keçirək. Mən test üçün aşağıdakı avadanlıqlardan istifadə edəcəm:

1 ədəd Cisco 3560 switch – DHCP relay

1 ədəd Cisco 2960 switch – DHCP server

1 ədəd Cisco 2960G switch – Access switch

1 ədəd noutbuk – PC1

Şəkil 2-yə diqqət edək.
Capture

Bizə lazım olan ilkin konfiqurasiyalar:

Access_switch#show running-config interface vlan 3

interface Vlan3

ip address 10.3.3.1 255.255.255.0

 

DHCP_Relay#show running-config interface vlan 3

interface Vlan3

ip address 10.3.3.3 255.255.255.0

ip helper-address 10.2.2.1

end

 

DHCP_Server#show running-config | begin dhcp

ip dhcp excluded-address 10.3.3.1 10.3.3.10

ip dhcp pool VLAN3

network 10.3.3.0 255.255.255.0

default-router 10.3.3.3

DHCP_Server#show running-config interface vlan 2

interface Vlan2

ip address 10.2.2.1 255.255.255.0

end

       Access switchdə DHCP snoopingin konfiqurasiyası:

Access_switch(config)#ip dhcp snooping

Access_switch(config)#ip dhcp snooping vlan 3

Access_switch(config)#ip dhcp snooping database flash:snoop.text

Access_switch(config)#int g0/2

Access_switch(config-if)#ip dhcp snooping limit rate 100

Access_switch(config)#interface g0/20

Access_switch(config-if)#ip dhcp snooping trust

ip dhcp snooping – DHCP snoopingi qlobal olaraq aktivləşdirir.

ip dhcp snooping vlan – DHCP snoopingi vlanda aktivləşdirir.

ip dhcp snooping database – Bu əmr DHCP snooping bazasını yaddaşda saxlamaq üçün istifadə olunur. Switch sönəndə snooping bazası itir. İşə düşəndən sonra yenidən bazanı yığmaq məcburiyyətindədir ki, bu da müəyyən qədər vaxt aparır. Bu əmr icra olunarsa, switch yenidən işə düşəndə bazanı yaddaşdan oxuyur və həmçinin yeni informasiyanı əlavə olaraq yaddaşa yazır. Mən bu testdə baza faylını flash yaddaşda saxlayıram.

ip dhcp snooping trust – Portu trusted port kimi quraşdırır.

ip dhcp snooping limit rate <1-2048> DHCP paketlərinə limit (pps – saniyədə daxil olan paketlərin miqdarı) təyin etmək üçün istifadə olunur.

ip dhcp snooping binding <H.H.H> <1-4094><A.B.C.D><interface> expiry <1-4294967295>  – DHCP Snooping bazasına statik informasiya əlavə etmək üçün istifadə olunur.

       PC1-i şəbəkəyə qoşuruq ki, DHCP serverdən İP alsın. DHCP serverdə debug ip dhcp server packet əmrini icra edib nəticəyə baxırıq:

DHCP_Server#debug ip dhcp server packet

*Mar 1 01:07:32.444: DHCPD: Reload workspace interface Vlan3 tableid 0.

*Mar 1 01:07:32.444: DHCPD: tableid for 10.3.3.3 on Vlan3 is 0

*Mar 1 01:07:32.444: DHCPD: client’s VPN is .

*Mar 1 01:07:32.444: DHCPD: inconsistent relay information.

*Mar 1 01:07:32.444: DHCPD: relay information option exists, but giaddr is zero.

       Gördüyünüz kimi DHCP server GİADDR dəyəri “0” olduğuna görə paketi rədd etdi. Bunun üçün Access switchdə no ip dhcp snooping information option əmrini icra edib yenidən dhcp serverdə nəticəyə baxırıq:

DHCP_Server#show ip dhcp binding

Bindings from all pools not associated with VRF:

IP address Client-ID/ Lease expiration Type

Hardware address/

User name

10.3.3.11 01d8.9d67.d311.72 Mar 02 1993 09:49 AM Automatic

       Gördüyümüz kimi PC1 İP aldı. Access switchdə DHCP snoopingin nəticələrini yoxlayaq:

Access_switch#show ip dhcp snooping binding

MacAddress IpAddress Lease(sec) Type VLAN Interface

—————— ————— ———- ————- —- ——————–

D8:9D:67:D3:11:72 10.3.3.11 86365 dhcp-snooping 3 GigabitEthernet0/2

Total number of bindings: 1

Gördüyümüz kimi, DHCP snooping cədvəlində PC1 görünür.

Digər yoxlama əmrləri:

Show ip dhcp snooping

Show ip dhcp snooping statistics

Show ip dhcp snooping database

Debug ip dhcp snooping {mac-address | agent | event | packet}

       Son olaraq qeyd edək ki, DHCP snooping Control Plane təhlükəsizliyidir. DAI (Dynamic ARP Inspection) və IPSG (IP Source Guard) funksiyaları ilə DHCP snooping bazasından istifadə edərək həmçinin Data Plane təhlükəsizliyini də təmin etmək mümkündür. Onlar haqqında isə gələcək məqalələrdə danışarıq inşallah.
Hələlik.

Səs: +130. Bəyənilsin Zəifdir

Şərhlər ( 5 )

  1. Orxan bəy,

    Option 82 çox gözəl izahat vermisiniz. Dəyərli məqalədir.

     

    Uğurlar

    Rizvan Bayramov

  2. Təşəkkürlər, imkan olduğu qədər geniş yazmağa çalışıram.

  3. Təşəkkürlər

    sayını artırın

  4. Təşəkkürlər.Əla məqaləydi

  5. Super məqalədi

Şərh yazın