ACL yazısında segmentler arasındaki trafiği L3 switch’te filtreledik. Ama o ACL’ler aynı VLAN içindeki trafiği görmez. Personel VLAN’ına takılan tek bir dizüstü bilgisayar, hiçbir L3 politikasına uğramadan aynı VLAN’daki her cihazla konuşabilir; ARP tablolarını zehirleyebilir, sahte DHCP sunucusu olabilir ya da switch’in MAC tablosunu doldurabilir.
Bunun nedeni basit: Ethernet ve ARP, aynı yayın alanındaki herkesin dürüst olduğunu varsayarak tasarlandı. Erişim katmanı güvenliği bu varsayımı switch üzerinde doğrulanabilir kurallara çevirmektir.
Bu yazıda her saldırıyı aynı sırayla ele alacağız: nasıl çalışır, nasıl fark edilir, nasıl engellenir, nasıl doğrulanır ve savunma yanlış kurulursa ağı nasıl bozabilir. Saldırı araçlarına ve sömürü komutlarına girmiyoruz; odak, switch konfigürasyonu ve savunma.
Senaryo
ACL yazısındaki kampüsü kullanmaya devam ediyoruz. Bu kez odak, personelin bağlandığı erişim switch’i.
| Öğe | Değer |
|---|---|
| Personel VLAN’ı | VLAN 20, 10.0.20.0/24, ağ geçidi 10.0.20.1 (core switch SVI) |
| DHCP sunucusu | 10.0.30.11 (sunucu VLAN’ı), core switch DHCP relay yapıyor |
| Erişim switch’i uplink | Port 48, core switch’e trunk (VLAN 10, 20, 30) |
| Personel bilgisayarı | Port 10, DHCP ile adres alıyor |
| Ağ yazıcısı | Port 12, sabit IP 10.0.20.50 |
| Saldırgan | VLAN 20’de herhangi bir erişim portu |
Yazıcı bilinçli olarak eklendi: sabit IP’li cihazlar, DHCP tabanlı savunmalar açıldığında en sık kesintiye uğrayan cihazlardır. Bunu ayrı bir bölümde inceleyeceğiz.
Saldırılar ve savunmalar: genel bakış
| Saldırı | Ana savunma | Dikkat |
|---|---|---|
| MAC flooding | Port security (MAC sınırı) | Diğer L2 saldırılarını tek başına durdurmaz |
| Sahte DHCP sunucusu | DHCP snooping | Güvenilir ve güvenilmeyen port ayrımı doğru yapılmalı |
| DHCP starvation | DHCP hız sınırı, port başına bağ sınırı, MAC sınırı | DHCP snooping tek başına yeterli değil |
| ARP spoofing | Dynamic ARP Inspection (DAI) | Sabit IP’li cihazlar için istisna gerekir |
| IP spoofing | IP Source Guard (Aruba’da IP source lockdown) | Sabit IP’li cihazlar için istisna gerekir |
| VLAN hopping | Erişim portlarını sabitlemek, trunk güvenliği | DTP Cisco’ya özgüdür |
| STP manipülasyonu | BPDU Guard ve Root Guard | İkisi birbirinin alternatifi değildir |
MAC flooding
Nasıl çalışır: Switch, hangi MAC adresinin hangi portta olduğunu MAC tablosunda tutar. Tablonun kapasitesi sınırlıdır. Saldırgan çok sayıda sahte kaynak MAC adresiyle çerçeve göndererek tabloyu doldurur. Tablo dolunca switch bilmediği hedeflere giden çerçeveleri VLAN’daki tüm portlara gönderir; saldırgan, başkalarına giden trafiği de görmeye başlar.
Nasıl fark edilir: Tek bir porttan çok sayıda MAC adresinin öğrenilmesi, MAC tablosu kapasitesine yaklaşılması, kullanıcı portlarında beklenmedik unicast taşkını.
Nasıl engellenir: Port security ile bir portta öğrenilebilecek MAC adresi sayısı sınırlanır. Sınır aşıldığında switch yeni kaynakların çerçevelerini düşürür, alarm üretir ya da portu kapatır (eylem üreticiye ve ayara göre değişir).
Nasıl doğrulanır: Port security durum komutları, portta öğrenilen MAC sayısı ve ihlal sayaçları.
Ağı nasıl bozabilir: Sınır gerçek kullanıma göre belirlenmelidir. Masaüstünde IP telefonun arkasına bağlı bir bilgisayar, sanal makine çalıştıran bir dizüstü ya da yerleştirme istasyonu tek porttan birden fazla MAC kullanır. İhlal eylemi “portu kapat” ise, sınırı yanlış belirlemek kullanıcıyı ağdan düşürür.
Port security MAC flooding’e karşı etkilidir ama ARP ya da DHCP saldırılarını durdurmaz; saldırgan tek bir MAC adresiyle de bu saldırıları yapabilir.
Sahte DHCP sunucusu ve DHCP snooping
Nasıl çalışır: İstemci DHCP isteğini yayınla gönderir; ilk yanıt veren sunucunun önerisini çoğu zaman kabul eder. VLAN’a bağlanan sahte bir DHCP sunucusu, istemcilere kendi adresini ağ geçidi ya da DNS sunucusu olarak dağıtabilir. Bu, trafiği saldırganın üzerinden geçirmenin en sessiz yollarından biridir. Kasıtsız sürümü de yaygındır: kullanıcının masasına getirdiği ev tipi bir router.
Nasıl fark edilir: İstemcilerin beklenmeyen bir aralıktan adres alması, ağ geçidi ya da DNS’in yanlış görünmesi, DHCP snooping açıksa güvenilmeyen portlarda düşürülen sunucu mesajı sayaçları.
Nasıl engellenir: DHCP snooping, portları güvenilir ve güvenilmeyen olarak ayırır. Gerçek DHCP sunucusuna giden yol (bizim senaryomuzda core switch’e bakan uplink) güvenilir yapılır; kullanıcı portları güvenilmeyen kalır. Güvenilmeyen portlardan gelen DHCP sunucu mesajları (OFFER, ACK, NAK) düşürülür. Snooping ayrıca başarılı DHCP alışverişlerinden bir bağ tablosu (MAC, IP, VLAN, port, kira süresi) oluşturur. Bu tablo DAI ve IP Source Guard’ın temelidir.
Nasıl doğrulanır: Bağ tablosunda istemcilerin doğru port ve VLAN ile göründüğünü, güvenilmeyen portlarda düşürülen sunucu mesajı sayaçlarını kontrol edin.
Ağı nasıl bozabilir: En sık hata, uplink’i güvenilir yapmayı unutmaktır: gerçek sunucunun yanıtları da düşer ve kimse adres alamaz. Birden fazla erişim switch’i zincirleme bağlıysa, gerçek sunucuya giden yoldaki her ara bağlantının güvenilir olması gerekir. Option 82 de bir başka tuzaktır: erişim switch’i DHCP isteklerine option 82 ekliyor ve relay yapan core switch bu bilgiyi beklemiyorsa istekler düşebilir. Option 82 davranışını relay ve sunucu tarafıyla uyumlu hâle getirin.
DHCP starvation
Nasıl çalışır: Saldırgan, her biri farklı bir istemci MAC adresi taşıyan çok sayıda DHCP isteğiyle havuzdaki tüm adresleri kiralar. Havuz tükenince gerçek istemciler adres alamaz. Saldırı çoğu zaman sahte DHCP sunucusuyla birlikte kullanılır: gerçek sunucu susturulur, istemciler sahte sunucuya yönelir.
Nasıl fark edilir: DHCP sunucusunda havuz doluluk alarmları, tek bir porttan gelen çok sayıda bağ kaydı, DHCP isteklerinde ani artış.
Nasıl engellenir: DHCP snooping’in güvenilir/güvenilmeyen port ayrımı bu saldırıyı tek başına durdurmaz; çünkü saldırganın gönderdiği mesajlar sunucu mesajı değil, normal istemci istekleridir. Cisco da DHCP snooping ile DHCP hız sınırını ayrı işlevler olarak ele alır. Etkili savunma birkaç katmanın birleşimidir:
- DHCP hız sınırı: Güvenilmeyen bir porttan saniyede kabul edilen DHCP paketi sayısını sınırlar.
- Port başına bağ veya kullanıcı sınırı: Bir porttan oluşturulabilecek DHCP bağ kaydı sayısını sınırlar (Aruba CX’te
max-bindings, Huawei’de kullanıcı sayısı sınırı). - CHADDR kontrolü: Ethernet başlığındaki kaynak MAC ile DHCP mesajının içindeki istemci donanım adresinin (CHADDR) eşleşmesini kontrol eder. Huawei bunu ayrı bir kontrol olarak sunar.
- Port security: Saldırgan çerçeve başlığında da farklı MAC’ler kullanıyorsa MAC sınırı bu isteklerin çoğunu keser.
Nasıl doğrulanır: Hız sınırı ve bağ sınırı ihlal sayaçları; DHCP sunucusunda havuz kullanımı.
Ağı nasıl bozabilir: Hız sınırını aşan bir port bazı platformlarda err-disable durumuna düşer. Sabah herkesin aynı anda açtığı bilgisayarlar ya da bir switch’in arkasındaki çok sayıda istemci için sınır çok düşük seçilirse, gerçek kullanıcılar kesintiye uğrar. Sınırı kullanıcı portları ve uplink için ayrı düşünün; uplink zaten güvenilir olduğu için genellikle sınırlanmaz.
ARP spoofing ve Dynamic ARP Inspection
Nasıl çalışır: ARP, bir IP adresinin hangi MAC adresinde olduğunu sorar ve gelen yanıta güvenir; kimin sorduğunu ya da yanıtın istenip istenmediğini doğrulamaz. Saldırgan, istemcilere “ağ geçidi 10.0.20.1 benim MAC adresimde” diyen sahte ARP mesajları gönderir. İstemcinin ağ geçidine gönderdiği trafik saldırgana gider; saldırgan trafiği gerçek ağ geçidine aktararak fark edilmeden araya girer (ortadaki adam).
Nasıl fark edilir: İstemcilerin ARP tablosunda ağ geçidinin MAC adresinin değişmesi, yinelenen IP uyarıları, DAI açıksa düşürülen ARP log’ları.
Nasıl engellenir: Dynamic ARP Inspection, güvenilmeyen portlardan gelen ARP mesajlarındaki IP–MAC eşleşmesini DHCP snooping bağ tablosuyla karşılaştırır. Saldırganın portunda 10.0.20.1 için bir bağ kaydı olmadığı için sahte ARP düşürülür. Uplink gibi diğer switch’lere ve ağ geçidine bakan portlar güvenilir yapılır.
Nasıl doğrulanır: DAI istatistikleri (iletilen ve düşürülen ARP sayıları) ve düşürme log’ları; bağ tablosunda istemcilerin varlığı.
Ağı nasıl bozabilir: Üç tipik durum:
- Sabit IP’li cihazlar: Yazıcının DHCP bağ kaydı yoktur; DAI açıldığında yazıcının ARP mesajları düşer ve kimse yazıcıya ulaşamaz. Çözümü aşağıda ayrı anlatıyoruz.
- Yanlış güven ayarı: Başka bir switch’e ya da ağ geçidine bakan port güvenilmeyen kalırsa, oradan gelen meşru ARP’ler bağ tablosunda olmadığı için düşer.
- Hız sınırı: Cisco’da DAI, güvenilmeyen portlarda ARP’yi varsayılan olarak saniyede 15 paketle sınırlar; aşılırsa port err-disable olur. Arkasında çok sayıda cihaz olan bir port (örneğin yönetilmeyen küçük bir switch) bu sınırı normal kullanımda aşabilir.
IP spoofing ve IP Source Guard
Nasıl çalışır: Saldırgan, paketlerinin kaynak IP adresini değiştirerek başka bir cihaz gibi davranır: bir ACL’deki izin satırından faydalanmak, iz bırakmamak ya da başka bir saldırıyı başka bir adresin üzerine yıkmak için.
Nasıl fark edilir: Bir porttan, o portta olmaması gereken kaynak adresleriyle trafik gelmesi; IP Source Guard açıksa düşürülen paket ve log’lar.
Nasıl engellenir: IP Source Guard, bir porttan gelen IP trafiğinin kaynak adresini (isteğe bağlı olarak MAC adresini de) bağ tablosuyla karşılaştırır. Bağ tablosunda o port ve VLAN için kaydı olmayan kaynak adresler düşürülür; DHCP mesajları adres alınabilsin diye geçirilir. HPE Aruba Networking CX’te aynı işlev IP source lockdown adıyla sunulur: kaynak IP, MAC, VLAN ve port bilgisi bağ tablosuyla eşleştirilir.
Nasıl doğrulanır: IP Source Guard / source lockdown durum komutları ve donanıma yazılmış bağ kayıtları.
Ağı nasıl bozabilir: DAI’deki gibi sabit IP’li cihazlar statik bağ tanımlanmadan ağdan düşer. Ayrıca IP Source Guard’ı uplink ya da trunk portlarında açmak, o porttan gelen bütün meşru trafiği keser; yalnızca uç cihaz portlarında kullanın.
VLAN hopping
VLAN hopping, saldırganın bağlı olduğu VLAN dışındaki bir VLAN’ın trafiğine ulaşmasıdır. İki klasik yöntemi var.
Switch spoofing: Saldırgan, bağlı olduğu porttan trunk müzakere mesajları göndererek portun trunk’a dönmesini sağlar ve tüm VLAN’lara erişir. Bu, Cisco’nun DTP (Dynamic Trunking Protocol) müzakeresine dayanır; DTP Cisco’ya özgüdür ve diğer üreticilerin ortak bir özelliği değildir. Hangi üretici kullanılırsa kullanılsın en güvenli yol, portun link tipini müzakereye bırakmadan açıkça tanımlamaktır; Huawei’de bu port link-type access ve port link-type trunk ile yapılır.
Çift etiket (double tagging): Saldırgan, trunk’ın native VLAN’ında bulunuyorsa iki 802.1Q etiketi taşıyan bir çerçeve gönderir. İlk switch dış etiketi (native VLAN) kaldırıp çerçeveyi trunk’tan etiketsiz yollar; karşı switch iç etiketi okuyup çerçeveyi hedef VLAN’a iletir. Saldırı tek yönlüdür ama hedef VLAN’a paket sokmaya yeter.
Nasıl fark edilir: Kullanıcı portlarının beklenmedik şekilde trunk moduna geçmesi, trunk listesinde olmaması gereken portlar.
Nasıl engellenir:
- Erişim portlarını sabitleyin. Kullanıcı portları açıkça access moduna alınır; Cisco’da DTP müzakeresi de kapatılır (
switchport nonegotiate). - Kullanılmayan trunk’ları kapatın, trunk’ları da sabit tanımlayın. Trunk olması gereken port müzakereyle değil, konfigürasyonla trunk olur.
- İzin verilen VLAN listesini daraltın. Trunk’tan yalnızca gereken VLAN’lar geçsin.
- Native VLAN’ı kullanıcı VLAN’larından ayırın. Native VLAN olarak hiçbir erişim portunda kullanılmayan bir VLAN seçin (bu yazıda 999). Platform destekliyorsa native VLAN trafiğini de etiketleyin.
Ağı nasıl bozabilir: Native VLAN değişikliği trunk’ın iki ucunda aynı anda yapılmazsa, native VLAN’da taşınan trafik (bazı ortamlarda yönetim ya da kontrol trafiği) kesilir. İzin verilen VLAN listesini daraltırken bir VLAN’ı unutmak da o VLAN’ın o switch’teki erişimini keser.
STP manipülasyonu: BPDU Guard ve Root Guard
Nasıl çalışır: Spanning Tree, BPDU mesajlarındaki önceliklere göre bir root bridge seçer ve topolojiyi buna göre kurar. Saldırgan ya da kullanıcının masasına getirdiği bir switch, daha üstün öncelikli BPDU’lar göndererek root bridge olmaya çalışabilir. Başarırsa trafik yolları değişir, trafik bu cihazın üzerinden akabilir ya da ağ sürekli topoloji değişikliğiyle sarsılır.
Nasıl fark edilir: Root bridge değişikliği log’ları, artan topoloji değişikliği sayaçları, erişim portlarında BPDU görülmesi.
Nasıl engellenir: İki ayrı koruma, iki ayrı yerde kullanılır:
- BPDU Guard, uç cihaz portlarını korur. Bu portlarda BPDU beklenmez; BPDU geldiği anda port kapatılır (err-disable). Kullanıcının getirdiği switch ya da hatalı bağlanmış bir kablo, topolojiyi etkilemeden önce devre dışı kalır.
- Root Guard, root bridge seçimini korur. Aşağı yöndeki switch’lere bakan, ama root’a giden yol olmaması gereken portlarda kullanılır. Bu porttan üstün bir BPDU gelirse port root-inconsistent (bloklu) duruma geçer; bağlantı kopmaz ama root seçimi değişmez. Üstün BPDU’lar kesildiğinde port kendiliğinden düzelir.
İkisi birbirinin alternatifi değildir. BPDU Guard “bu portta switch olmamalı” der; Root Guard “bu porttaki switch olabilir ama root olamaz” der. Erişim switch’inde kullanıcı portlarına BPDU Guard, core ya da distribution switch’te erişim switch’lerine bakan portlara Root Guard uygulanır.
Nasıl doğrulanır: Portların STP durumu, err-disable olmuş portlar, root-inconsistent durumdaki portlar ve root bridge’in beklenen switch olup olmadığı.
Ağı nasıl bozabilir: BPDU Guard’ı yanlışlıkla bir switch’e bakan porta uygulamak o bağlantıyı kapatır. Root Guard’ı root’a giden asıl yola (uplink’e) uygulamak, root’a ulaşan tek yolu bloklar.
Sabit IP’li cihazlar: yazıcı senaryosu
VLAN 20’deki personel bilgisayarı DHCP ile adres alıyor ve bağ tablosunda kaydı var. Yazıcı ise 10.0.20.50 adresiyle elle yapılandırılmış; DHCP alışverişi hiç olmadığı için bağ tablosunda kaydı yok.
DAI ve IP Source Guard açıldığında şunlar olur:
- DAI: Yazıcının ARP yanıtları ve duyuruları bağ tablosunda eşleşme bulamaz ve düşer. Diğer cihazlar yazıcının MAC adresini öğrenemez; yazdırma işleri zaman aşımına düşer.
- IP Source Guard: Yazıcının gönderdiği IP paketleri, kaynak adresi bağ tablosunda olmadığı için düşer.
Yazıcı “çalışıyor ama ulaşılamıyor” görünür; ön panelde IP adresi doğru, ping yanıtı yok. Üç çözüm var:
- DHCP rezervasyonu (önerilen): Yazıcıyı sabit IP yerine DHCP’ye alın ve sunucuda MAC adresine göre aynı adresi rezerve edin. Cihaz her zaman aynı adresi alır, bağ tablosunda da doğal olarak görünür.
- Statik bağ kaydı: Cihazın IP, MAC, VLAN ve port bilgisini switch’e elle tanımlayın. Huawei’de IP Source Guard statik
user-bindkaydını kullanır; Cisco’da IP Source Guard için statik kaynak bağı, DAI için ise ARP ACL ayrı ayrı tanımlanır; Aruba CX’te statik IP kaynak bağı kullanılır, Cisco’daki ARP ACL’ye karşılık gelen bir mekanizma yoktur. - Portu güvenilir yapmak: Yazıcı portunu DAI için güvenilir yapmak sorunu çözer ama o portu korumasız bırakır. Yalnızca geçici bir çözüm olarak düşünün.
Statik kayıtlar belgelenmeli ve cihaz değiştiğinde güncellenmelidir. Arıza nedeniyle değiştirilen bir yazıcının MAC adresi farklıdır ve eski kayıt yeni cihazı da engeller.
Konfigürasyon
Aşağıdaki örnekler yazının başında belirtilen sürümlerin resmî dokümantasyonundaki sözdizimine göre hazırlandı; laboratuvarda test edilmedi. Üreticilerin özellik kümeleri birebir aynı değildir; bir üreticide olan her kontrolün diğerinde aynı adla ya da aynı kapsamla bulunacağını varsaymayın. Önce laboratuvarda, sonra bir pilot VLAN’da deneyin.
Cisco IOS XE (Catalyst 9300)
Erişim switch’i:
ip dhcp snooping
ip dhcp snooping vlan 20
ip arp inspection vlan 20
!
interface GigabitEthernet1/0/48
description Uplink - core
switchport mode trunk
switchport trunk allowed vlan 10,20,30
switchport trunk native vlan 999
switchport nonegotiate
ip dhcp snooping trust
ip arp inspection trust
!
interface range GigabitEthernet1/0/1 - 40
switchport mode access
switchport access vlan 20
switchport nonegotiate
switchport port-security
switchport port-security maximum 2
switchport port-security violation restrict
spanning-tree portfast
spanning-tree bpduguard enable
ip dhcp snooping limit rate 15
ip verify source
!
! Sabit IP'li yazıcı (port 12)
arp access-list STATIK-CIHAZLAR
permit ip host 10.0.20.50 mac host 0011.2233.4455
ip arp inspection filter STATIK-CIHAZLAR vlan 20
ip source binding 0011.2233.4455 vlan 20 10.0.20.50 interface GigabitEthernet1/0/12
Core switch’te erişim switch’ine bakan port:
interface GigabitEthernet1/0/1
description Downlink - erisim switch
spanning-tree guard root
Notlar: Port security’nin varsayılan ihlal eylemi shutdown’dır; örnekte portu kapatmak yerine düşürüp log üreten restrict kullanıldı. DAI’nin güvenilmeyen portlardaki varsayılan ARP sınırı saniyede 15 pakettir ve aşıldığında port err-disable olur; errdisable recovery cause arp-inspection ile otomatik kurtarma açılabilir. ARP ACL’leri DHCP snooping kayıtlarından önce değerlendirilir. Root Guard, loop guard ile aynı portta birlikte kullanılamaz.
Huawei S serisi
Örnek V200R011C10 dokümantasyonuna göre yazıldı; güncel S serisi modellerin ve sürümlerin tamamını temsil etmez. Huawei’de IP Source Guard, “user-bind” adı verilen bağ tablosuyla çalışır; bu tablo DHCP snooping kayıtlarından ve statik user-bind kayıtlarından oluşur.
dhcp enable
dhcp snooping enable
stp bpdu-protection
#
vlan 20
dhcp snooping enable
#
interface GigabitEthernet0/0/48
description Uplink-core
port link-type trunk
port trunk allow-pass vlan 10 20 30
undo port trunk allow-pass vlan 1
port trunk pvid vlan 999
dhcp snooping trusted
#
interface GigabitEthernet0/0/10
port link-type access
port default vlan 20
stp edged-port enable
port-security enable
port-security max-mac-num 2
port-security protect-action restrict
ip source check user-bind enable
#
interface GigabitEthernet0/0/12
description Yazici-sabit-IP
port link-type access
port default vlan 20
stp edged-port enable
ip source check user-bind enable
#
user-bind static ip-address 10.0.20.50 vlan 20
stp bpdu-protection sistem genelinde açılır ve stp edged-port enable ile işaretlenmiş uç portlarda etkili olur. Root koruması core tarafında, erişim switch’ine bakan portta stp root-protection ile uygulanır. Port security’nin varsayılan eylemi restrict’tir ve port varsayılan olarak tek bir güvenli MAC öğrenir. IP Source Guard’ı burada VLAN genelinde değil, kullanıcı arayüzlerinde açtık; uplink’te açık olmadığı için uplink’ten gelen meşru trafik kontrol edilmez. Arayüz bazlı açıldığı için her kullanıcı portuna ayrı ayrı uygulanması gerekir; yazıcının bağlı olduğu port 12 de bu yüzden aynı kontrolü alır ve statik user-bind kaydıyla doğrulanır. Statik kayıt bu örnekte IP adresini VLAN’a bağlar; MAC adresi ve arayüzle daha sıkı bağlama için kendi sürümünüzün user-bind static komut referansına bakın.
Huawei’de ARP denetimi (DAI) de user-bind tablosuna dayanır. Komutunun hangi görünümde ve hangi parametrelerle kullanıldığı modele ve sürüme göre değiştiği için örneğe eklemedik; kendi sürümünüzün DAI yapılandırma bölümünü esas alın.
Huawei’de DHCP snooping, DHCP mesajlarının işlemciye gönderilme hızını sınırlayabilir, bir arayüzdeki DHCP istemcisi sayısını sınırlayabilir ve CHADDR kontrolü yapabilir. Bu kontrollerin komutları, açılabildiği görünümler ve varsayılan değerleri modele ve sürüme göre değiştiği için örneğe eklemedik; kendi sürümünüzün DHCP snooping saldırı savunma örneğini esas alın. Hız sınırını, aynı anda açılan istemcilerin normal DHCP trafiğini kesmeyecek şekilde seçin.
HPE Aruba Networking CX (AOS-CX 10.13)
AOS-CX’te ARP inspection VLAN seviyesinde açılır ve SVI gerektirmez; bütün arayüzler varsayılan olarak güvenilmeyendir. DAI, DHCPv4 snooping bağlarını ve statik IP bağlarını doğrulama kaynağı olarak kullanır. Cisco’daki ARP ACL mekanizması AOS-CX’te yoktur; sabit IP’li cihazlar statik kaynak bağıyla ya da DHCP rezervasyonuyla ele alınır. ARP inspection VLAN 20’de açık olduğu için yazıcının portu (1/1/12) da güvenilmeyen port olarak denetlenir; IP source lockdown ise arayüz bazlı olduğundan yazıcı portunda ayrıca açılır. Her iki kontrol de yazıcıyı statik ipv4 source-binding kaydıyla doğrular.
dhcpv4-snooping
!
vlan 20
dhcpv4-snooping
arp inspection
!
interface 1/1/48
description Uplink-core
no shutdown
vlan trunk native 999
vlan trunk allowed 10,20,30
dhcpv4-snooping trust
arp inspection trust
!
interface 1/1/10
no shutdown
vlan access 20
spanning-tree port-type admin-edge
spanning-tree bpdu-guard
ipv4 source-lockdown
!
interface 1/1/12
description Yazici-sabit-IP
no shutdown
vlan access 20
spanning-tree port-type admin-edge
spanning-tree bpdu-guard
ipv4 source-lockdown
!
ipv4 source-binding 20 10.0.20.50 00:11:22:33:44:55 1/1/12
Root Guard core tarafında spanning-tree root-guard ile uygulanır. DHCPv4 snooping için port başına bağ sınırı (max-bindings) da tanımlanabilir; sınıra ulaşan porttan gelen yeni istemci istekleri düşürülür. MAC sınırlamasını ise 802.1X ve MAC kimlik doğrulamasıyla birlikte NAC yazısında ele alacağız. Sistem genelindeki bağ kapasitesi DHCPv4 snooping, DHCPv6 snooping, ND snooping ve statik IP bağları arasında paylaşılır.
FortiSwitch (FortiLink ile FortiGate’ten yönetim)
FortiLink ile yönetilen switch’lerde DHCP snooping ve DAI, VLAN arayüzü ve yönetilen switch portları üzerinden FortiGate’te yapılandırılır. DAI için önce DHCP snooping açılmalıdır; DAI varsayılan olarak bütün VLAN’larda kapalıdır.
config system interface
edit "personel"
set switch-controller-dhcp-snooping enable
set switch-controller-arp-inspection enable
next
end
config switch-controller managed-switch
edit "<FortiSwitch seri no>"
config ports
edit "port48"
set dhcp-snooping trusted
set arp-inspection-trust trusted
next
edit "port10"
set edge-port enable
set stp-state enabled
set stp-bpdu-guard enabled
set stp-bpdu-guard-time 5
next
end
next
end
personel, VLAN 20’nin FortiGate üzerindeki arayüzüdür. Örnek FortiOS ve FortiSwitchOS 7.4 FortiLink dokümantasyonuna göre yazıldı. FortiSwitchOS 7.4.8 ile DHCP snooping, ARP inspection ve access VLAN’ların birlikte kullanımına ilişkin bir değişiklik belirtiliyor; 7.4.8 ve sonrasını kullanıyorsanız bu kombinasyonu devreye almadan önce o sürümün sürüm notlarını kontrol edin. BPDU Guard için portun edge port olması ve STP’nin açık olması gerekir; stp-bpdu-guard-time portun kaç dakika kapalı kalacağını belirler (0, elle açılana kadar kapalı demektir). Root Guard, downlink portlarında set stp-root-guard enabled ile uygulanır. IP Source Guard ve MAC sınırlaması FortiSwitch’te ayrı özelliklerdir; sürümünüzün dokümantasyonuna bakın.
Doğrulama ve sorun giderme
Doğrulama komutları
Cisco IOS XE:
show ip dhcp snooping
show ip dhcp snooping binding
show ip arp inspection statistics vlan 20
show ip arp inspection interfaces
show ip verify source
show port-security interface GigabitEthernet1/0/10
show interfaces status err-disabled
show spanning-tree inconsistentports
Huawei:
display dhcp snooping configuration
display dhcp snooping user-bind all
display dhcp static user-bind all
display stp brief
Aruba AOS-CX:
show dhcpv4-snooping
show dhcpv4-snooping binding
show dhcpv4-snooping statistics
show ipv4 source-binding
show ipv4 source-lockdown bindings
show spanning-tree interface 1/1/10
show capacities ip-bindings
FortiSwitch (FortiGate üzerinden):
diagnose switch-controller switch-info arp-inspection stats <FortiSwitch seri no>
Sorun giderme sırası
- Kimse adres alamıyor: Gerçek DHCP sunucusuna giden yoldaki bütün portların (uplink, switch’ler arası bağlantılar) DHCP snooping için güvenilir olduğunu kontrol edin. Ardından option 82 uyumunu kontrol edin.
- Bazı cihazlar adres alıyor ama ulaşılamıyor: Bağ tablosunda kayıtları var mı? Sabit IP’li cihazlar için statik kayıt ya da rezervasyon tanımlandı mı?
- Port kendiliğinden kapanıyor: Err-disable nedenine bakın: port security ihlali, DHCP hız sınırı, DAI hız sınırı ya da BPDU Guard. Neden, çözümün nerede olduğunu gösterir.
- Bir switch’in arkası tamamen kesildi: BPDU Guard ya da Root Guard yanlış porta mı uygulandı? Arada yönetilmeyen bir switch varsa DAI ve DHCP hız sınırları da aşılıyor olabilir.
- Değişiklikten sonra eski cihaz çalışmıyor: Statik bağ kaydındaki MAC adresi değişen donanımla güncellendi mi?
Bu özellikleri tek seferde bütün switch’lerde açmayın. Önce DHCP snooping’i açıp bağ tablosunun dolmasını bekleyin; tablo doğru görünüyorsa DAI ve IP Source Guard’ı bir pilot VLAN’da açın. Bağ tablosu kira süreleri boyunca dolar; snooping’i açtıktan hemen sonra DAI’yi açmak, henüz kaydı oluşmamış cihazları keser.
IPv6 hakkında bir not
Bu yazıdaki örnekler IPv4 içindir. DAI ve IPv4 IP Source Guard, IPv6’daki Neighbor Discovery saldırılarını (sahte Router Advertisement, sahte komşu duyuruları) önlemez. IPv6 için RA Guard, ND snooping ve DHCPv6 snooping gibi ayrı mekanizmalar gerekir; örneğin AOS-CX ND snooping ve RA Guard’ı ayrı özellikler olarak sunar. Ağda IPv6 açıkça kullanılmıyor olsa bile istemcilerin çoğu IPv6’yı varsayılan olarak açık tutar; bu yüzden IPv6 erişim katmanı güvenliği ayrı değerlendirilmelidir.
Sahada sık görülen hatalar
- Uplink’i güvenilir yapmayı unutmak: DHCP snooping açıldığı anda VLAN’daki herkes adres alamaz.
- DAI’yi snooping tablosu dolmadan açmak: Kaydı oluşmamış cihazların ARP’leri düşer.
- Sabit IP’li cihazları envanterden atlamak: Yazıcılar, kameralar, geçiş kontrol panelleri ve eski sunucular statik kayıt gerektirir.
- BPDU Guard ve Root Guard’ı karıştırmak: Biri uç portlar, diğeri aşağı yöndeki switch’lere bakan portlar içindir.
- Port security sınırını tek MAC’e göre ayarlamak: IP telefon arkasındaki bilgisayarlar ve sanal makineler ihlal üretir.
- Native VLAN’ı kullanıcı VLAN’ı olarak bırakmak: Çift etiket saldırısına kapı açar.
- “DHCP snooping açık, starvation da çözüldü” sanmak: Starvation için hız ve bağ sınırları ayrıca gerekir.
Üretici yaklaşımları
| Cisco IOS XE | Huawei VRP | Aruba AOS-CX | FortiSwitch (FortiLink) | |
|---|---|---|---|---|
| DHCP snooping | Global + VLAN, port trust | Global + VLAN/arayüz, dhcp snooping trusted |
Global + VLAN, port trust | VLAN arayüzü + port trust, FortiGate’ten |
| DHCP starvation | Port başına hız sınırı | Kullanıcı sayısı sınırı, CHADDR kontrolü | Port başına bağ sınırı (max-bindings) |
Sürüm dokümantasyonuna bakın |
| ARP doğrulama | DAI; statik cihazlar için ARP ACL | user-bind tablosuyla ARP kontrolü | ARP inspection; ARP ACL yok, statik IP bağı | DAI (önce DHCP snooping) |
| Kaynak IP doğrulama | IP Source Guard; statik kaynak bağı | user-bind tablosuyla IP kaynak kontrolü | IP source lockdown; statik kaynak bağı | Ayrı özellik |
| Trunk müzakeresi | DTP (Cisco’ya özgü) | Link tipi port link-type ile açıkça tanımlanır |
Trunk konfigürasyonla tanımlanır | Trunk konfigürasyonla tanımlanır |
| STP korumaları | BPDU Guard, Root Guard | BPDU koruması, root koruması | BPDU Guard, Root Guard | BPDU Guard (edge port), Root Guard |
Ortak fikir her üreticide aynı: switch, kullanıcı portundan gelen ve o porta ait olmaması gereken her şeyi (sunucu mesajını, başkasının ARP’sini, başkasının IP adresini, BPDU’yu) düşürür. Farklılık, bu kontrollerin adlarında, hangi tabloya dayandıklarında ve sabit IP’li cihazların nasıl ele alındığındadır.
Sonuç
L2 saldırılarının ortak noktası, aynı segmentteki cihazlara duyulan örtük güveni kullanmalarıdır. Savunmanın ortak noktası da bu güveni switch üzerinde doğrulanabilir kurallara çevirmektir: kim DHCP sunucusu olabilir, hangi IP hangi MAC’tedir, hangi portta switch olabilir.
Bu kuralların merkezinde DHCP snooping bağ tablosu durur. Tablo doğruysa DAI ve IP Source Guard doğru karar verir; tablo eksikse, örneğin sabit IP’li bir yazıcı unutulduysa, aynı savunmalar meşru trafiği keser. Bu yüzden devreye alma sırası (önce snooping, sonra doğrulama, sonra DAI ve IP Source Guard) en az konfigürasyonun kendisi kadar önemlidir.
Bu yazıdaki kontroller bir cihazın ağa bağlandıktan sonra ne yapabileceğini sınırlar. Bir cihazın ağa bağlanmadan önce kim olduğunu doğrulamak ise 802.1X ve NAC’ın işi; onu NAC yazısında ele alacağız.
Kaynaklar
- Cisco: Operate and Troubleshoot DHCP Snooping (Catalyst 9000)
- Cisco: FHS and SISF Configuration Guide, Dynamic ARP Inspection (IOS XE 17)
- Cisco: Security Configuration Guide, IOS XE 17.9 (Catalyst 9300), Configuring IP Source Guard
- Cisco: Security Configuration Guide, IOS XE 17.10 (Catalyst 9300), Port Security
- Cisco: Layer 2 Configuration Guide, IOS XE 17.16 (Catalyst 9300), Configuring Optional Spanning-Tree Features
- Huawei: S Series Switches Security Hardening Guide (V200), DHCP Security
- Huawei: Example for Configuring IPSG Based on the Static Binding Table (V200R011C10)
- Huawei: IPSG Troubleshooting, Checking Whether IP Packet Check Is Enabled
- Huawei: IPSG Troubleshooting, Check Binding Entries
- Huawei: What Is DHCP Snooping?
- Huawei: What Is Port Security?
- HPE Aruba Networking: AOS-CX 10.13 Hardening Guide
- HPE Aruba Networking: AOS-CX 10.13 IP Services Guide (6300, 6400)
- HPE Aruba Networking: ipv4 source-binding
- HPE Aruba Networking: AOS-CX 10.13 spanning-tree port-type
- HPE Aruba Networking: AOS-CX 10.13 DHCP Snooping Troubleshooting
- Fortinet: FortiSwitch 7.4.5 FortiLink Guide, Configuring Dynamic ARP Inspection
- Fortinet: FortiSwitch 7.4.4 FortiLink Guide, Configuring the DHCP Trust Setting
- Fortinet: FortiSwitch 7.4.2 FortiLink Guide, Configuring STP Settings