DHCP SNOOPING
Merhabalar forumda olmadığını gördüğüm konularda vakit buldukça yazmaya çalışıyorum .
Bu yazıda kısaca DHCP Snooping'den bahsedeceğiz.
Nedir bu DHCP Snooping ? Okuyunca sevimli bir şeye benziyor
Kısaca tarif etmek gerekirse ; bir ağa sahte bir DHCP server servisi çalıştıran makina koyun. DHCP isteklerine yanıt versin. Ve clienlere default-gateway olarak kendi ip adresini versin.
Üzerinde de proxy, sniffer, paket analyzer veya ufak bir routing çalışşın veya her ne ise . Clientlerin tüm trafikleri artık bu sahte DHCP server üzerinden geçecektir. Burada bir güvenlik ihlali oluşmaktadır.
DHCP snooping sayesinde gerçek DHCP server'lere ait portlar trusted olarak işaretlenerek bu soruna çözüm getirilebilmektedir.
Ayrıca DHCP snooping enable edildiğinde switchler hangi porttaki cliente hangi ip atanmış şeklinde bir veritabanı tutmaya başlarlar . Burada ise ip source guard devreye girerek alınan paketlerin source ip adreslerini bu veritabanındaki allowed olarak nitelendirilen ip adresleri ile mukayese edebilir. Allowed olarak bir eşleşme yoksa paket discard edilir.
Ip source guard DHCP snooping olmadanda çalışabilmektedir. DHCP server olmayan networklerde ip source guard'ı bu şekilde kullanabiliriz. Ip source guard'ı bir başka konuda anlatırız. Çokda lüzümlu bir şey değil zaten . DHCP snooping ile kullanırsanız CPU top yapar.
Nedir bu portlardaki trusted ve untrusted kavramı ?
Trusted kavramı ; Untrusted portlardan gelen DHCP istekleri yanlızca trusted portlara yönlendirilir. Bu durumda DHCP serverların bağlı olduğu portlar veya switch ortamında uplink portları trusted olmalıdır.
Trusted haricindeki portlar ise untrusted portlardır bu portlardan gelen DHCP repl paketleri discard edilir deyip kısaca kesip atalım.
DHCP Snooping Mekanizması Nasıl Çalışır ?
DHCP Snooping önce switch'de global olarak sonra bir vlan'da enable edilmelidir. Bu işlem yapılıp trusted portlar belirlenirse :
Untrusted portlardan birine bağlı bir client DHCP isteği gönderir. Switch bu isteği alır ve güvendiği, emin olduğu bir DHCP server'a isteği yollar . ( Ama güven ortamı nasıl oluştu ? Trusted olarak belirlenen port(lar) sayesinde oluştu.)
DHCP server'da ip adresini yollar işlem bu kadar sade ve basit.
Tabiki bu esnada switch hangi porttaki hangi mac adresli hosta ne kadar süre ile (lease) hangi vlandan hangi ip adresi atanmış binding type nedir bilgilerini bir veritabanında tutmaya başlar. Bu veritabanı ip DHCP Snooping Binding dosyasıdır ve aşağıdaki gibi bir formatı vardır. Bu dosyada sadece untrusted interface'lerin olduğundan emin olabilirsiniz.
Burada bir soru daha ? Burada bir trusted interface varsa ??? Sizce olabilir mi ? Soru-1
TYPE DHCP-SNOOPING
VERSION 1
BEGIN
10.10.10 5 0001.0001.0005 3EBE2881 Gi1/3 e5e1e733
1.1.10.1 6 0001.0001.0002 3EBE2881 Gi1/2 4b3486ec
1.11.1.2 3 0001.0001.0004 3EBE2881 Gi1/4 f0e02872
1.11.1.1 3 0001.0001.0003 3EBE2881 Gi1/5 ac41adf9
1.1.1.1 1 0001.0001.0001 3EBE2881 Gi1/7 34b3273e
Sırası ile :
ip vlan mac lease interface checksum..
Görüldüğü üzere lease time hexe formatta (3ebe2881) , mac/ip adresleri,interface bilgileri açıkça okunabilir .
Checksum vasıtası ile update işlemleri yapılır.. Kim ignore edilsin kim güncel vs ...
Sizce lease time out olursa ne olur ? Dikkatli okuyana Soru-2 ...
Artık sürekli güncel tutulan bir DHCP-SNOOPING binding veritabanımız da olduğuna göre switch hangi durumda DHCP paketlerine karşı nasıl bir tutum sergiler onlara bakalım .
- Untrusted bir porttan DHCP – OFFER/ACK/NAK/LEASEQUERY gibi paket alınırsa drop eder.
- Untrusted bir porttan alınan bir paketin source mac adresi binding table'daki kaydedilen ile aynı değilse DHCP isteğini drop eder.
- Bir DHCP – RELEASE veya DECLINE mesajı ( Broadcast) alınırsa , binding database'de mac adresi aranır. Alınan interface binding table'dekinden farklı ise msj drop edilir.
- 0.0.0.0 haricinde bir ip ile relay agent'a giden veya option 82 içerdiği halde untrusted porta yönlendirilen paketler drop edilir.
Şimdi yapılandırmaya biraz bakalım :
Önce global olarak DHCP Snooping'i enable edelim. Bu gerekli...
Kod:
S (config) # ip dhcp snooping
Sonra kullanılması istenen vlan'da enable edelim. Vlan range olarak buraya tanımlayabiliriz... Bu örnekte atıyorum vlan 5 olsun.
Kod:
S (config) # ip dhcp snooping vlan 5
Şimdi trusted portları belirleyelim. (Uplink portlar veya DHCP server'in irtibatlı olduğu port olabilir)
Kod:
S (config) # define interface-range Uplinks gig 0/1 - 2 S (config) # int range macro Uplinks S (config-if) # ip dhcp snooping trust
Tüm portlar default olarak untrusted olduğu için uplinkler haricindekiler untrusted olarak çalışmaya devam etmektedir.
Bu kısa yapılandırma ile DHCP istekleri sadece trusted portlara yönlendirilir.
Ancak bir nokta kaldı untrusted portlardan sürekli DHCP istekleri yağarsa ?
Bu tarz DHCP ataklarının önüne geçebilmek için saniye başına düşen DHCP paketlerini sınırlandırabilir. Bu limit aşılırsa port DHCP-rate-limit'ten dolayı err-disable state'e düşecektir. Untrusted portlarda bu limitin düşük ancak trusted portlarda yüksek tutulması gerektiğini unutmayalım. Bu limit 1 – 2048 arası bir değer olabilir.
Trusted port üzerinde 500'e limitledim :
Kod:
S (config-if) # ip dhcp snooping limit rate 500 ( saniyede 500 paket )
Untrusted üzerinde ise 5 yaptım :
Kod:
S (config-if) # ip dhcp snooping limit rate 5
Pekala şimdi trusted portta bu limit aşılırsa (mesela sabah herkes iş başı yapınca pc'leri açtı veya elektrik gitti geldi) ve bu sebeple port err-disable olursa ve benim networkteki hostlar DHCP ile ip alıyorsa ben burada kendi sonumu hazırlamış olurum. Ancak bununda çaresi var.
Hemen auto recover'i yapılandırıyorum :
Kod:
S (config) # errdisable recovery cause dhcp-rate-limit S (config) # errdisable recovery interval 35
Veya dhcp rate limit'i errdisable sebebi olmaktan çıkarıyorum (bunu evde yanlız denemeyin) :
Kod:
S (config) # no errdisable detect cause dhcp-rate-limit
Neredeyse bitti bir şey unuttuk oda option 82. Zaten default olarak enable durumda anlatmasak da olur ama biz yinede değinelim. Option 82 sayesinde switch untrusted portlardan gelen DHCp isteklerine işlem yapar . Gelen paketin option 82 hanesine kendi mac ve interface bilgisini ekleyip DHCP servera gitmek üzere paketi truested porttan yollar.
Burada DHCP server'da option 82 desteklemelidir. Destekliyorsa oda switche DHCP yanıtı ile dönüş yaparken option 82'yi doldurur. Bunu alan sw'de gerekli karşılaştırmayı yapar.
Yukarıdada söylediğimiz üzere default enable durumdadır. Sunucumuz 82 desteklemıyorsa ve bizde kapatmak istiyorsak :
Kod:
S (config)# no ip dhcp snooping information option
Configuration
I will use the following topology:SW1(config)#ip dhcp snooping
First you need to enable DHCP snooping globally.SW1(config)#no ip dhcp snooping information option
By default the switch will add option 82 to the DHCP discover message
before passing it along to the DHCP server. Some DHCP servers don’t
like this and will drop the packet. If you client doesn’t get an IP
address anymore after enabling DHCP snooping globally you should use
this command.SW1(config)#ip dhcp snooping vlan 1
Select the VLANs for which you want to use DHCP snooping.SW1(config)#interface fa0/2
SW1(config-if)#ip dhcp snooping trust
Once you enable DHCP snooping all interfaces by default are
untrusted. Make sure interfaces that lead to the DHCP server are
trusted.SW1(config)#interface fa0/1
SW1(config-if)#ip dhcp snooping limit rate 10
Optionally you can rate-limit the number of DHCP packets that the
interface can receive. I’ve set the fa0/1 interface so it can’t receive
more than 10 DHCP packets per second.SW1#show ip dhcp snooping
Switch DHCP snooping is enabled
DHCP snooping is configured on following VLANs:
1
DHCP snooping is operational on following VLANs:
1
DHCP snooping is configured on the following L3 Interfaces:
Insertion of option 82 is enabled
circuit-id format: vlan-mod-port
remote-id format: MAC
Option 82 on untrusted port is not allowed
Verification of hwaddr field is enabled
Verification of giaddr field is enabled
DHCP snooping trust/rate is configured on the following Interfaces:
Interface Trusted Rate limit (pps)
------------------------ ------- ----------------
FastEthernet0/1 no 10
FastEthernet0/2 yes unlimited
Use the show ip dhcp snooping command to verify your configuration.SW1#show ip dhcp snooping binding
MacAddress IpAddress Lease(sec) Type VLAN Interface
------------------ --------------- ---------- ------------- ---- --------------------
00:0C:29:28:5C:6C 192.168.1.1 85655 dhcp-snooping 1 FastEthernet0/1
Once your client receives an IP address from the legit DHCP server
you can see SW1 keeps track of the MAC to IP binding. DHCP offer
messages from the DHCP server on the untrusted interface will be
dropped. I hope this lesson has been useful for you to understand DHCP
snooping.hostname SW1
!
ip dhcp snooping vlan 1
no ip dhcp snooping information option
ip dhcp snooping
!
interface FastEthernet0/1
ip dhcp snooping limit rate 10
!
interface FastEthernet0/2
ip dhcp snooping trust
!
interface Vlan1
ip address dhcp
!
end
Hiç yorum yok:
Yorum Gönder