Layer 2 Saldırıları Nedir? ARP Spoofing, DHCP Snooping, VLAN Hopping ve Switch Güvenliği

Aynı VLAN içindeki saldırılar ve erişim katmanındaki savunmaları: MAC flooding, sahte DHCP, DHCP starvation, ARP spoofing, IP spoofing, VLAN hopping ve STP manipülasyonu. Cisco, Huawei, Aruba CX ve FortiSwitch örnekleriyle.

Cisco Catalyst 9300 IOS XE 17.9
Resmi dokümana göre
Huawei S serisi V200R011C10
Resmi dokümana göre
HPE Aruba Networking CX 6300 AOS-CX 10.13
Resmi dokümana göre
FortiSwitch (FortiLink) FortiOS / FortiSwitchOS 7.4
Resmi dokümana göre

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.

Core switch ağ geçidi 10.0.20.1 · relay DHCP sunucusu 10.0.30.11 port 48 · trunk 10, 20, 30 güvenilir port Erişim switch'i VLAN 20 · 10.0.20.0/24 Personel PC port 10 · DHCP Yazıcı port 12 · 10.0.20.50 Saldırgan herhangi bir port
Yazı boyunca kullanılan erişim switch'i. Core'a bakan port 48 güvenilir; kullanıcı portları güvenilmeyen. Yazıcı sabit IP'li olduğu için DHCP tabanlı savunmalarda ayrı ele alınıyor.

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.

PORT SECURITY YOK MAC TABLOSU 00:1a:2b:3c:4d:5e port 10 8e:11:52:07:a3:01 port 9 8e:11:52:07:a3:02 port 9 ··· binlerce sahte MAC DOLU Bilinmeyen hedef → tüm portlara taşar Saldırgan başkalarının trafiğini görür PORT SECURITY · SINIR 2 MAC TABLOSU 00:1a:2b:3c:4d:5e port 10 8e:11:52:07:a3:01 port 9 8e:11:52:07:a3:02 port 9 8e:11:52:07:a3:03 ✕ sınır Sınır aşılınca düşür, alarm üret ya da portu kapat Tablo dolmaz, taşma olmaz
MAC tablosu dolunca switch hub gibi davranır. Port security, bir portun öğrenebileceği MAC sayısını sınırlayarak tablonun tek bir porttan doldurulmasını engeller. Sınır, telefon arkasındaki PC gibi meşru çoklu MAC kullanımına göre seçilmelidir.

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.

Personel PC 10.0.20.21 · port 10 Erişim switch'i DAI · VLAN 20 Ağ geçidi 10.0.20.1 · uplink güvenilir port Saldırgan 10.0.20.66 · port 9 sahte ARP: "10.0.20.1 = saldırganın MAC'i" DHCP SNOOPING BAĞ TABLOSU 10.0.20.21 · PC · port 10 10.0.20.66 · saldırgan · port 9 10.0.20.1 · port 9 → kayıt yok ✕ düşürülür PC'nin ARP tablosu zehirlenmez
DAI, güvenilmeyen porttan gelen her ARP'yi DHCP snooping bağ tablosuyla karşılaştırır. Saldırgan kendi portunda 10.0.20.1 adına konuşamaz; sahte ARP personel bilgisayarına hiç ulaşmaz.

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.

Gerçek DHCP sunucusu uplink · güvenilir port Sahte DHCP sunucusu güvenilmeyen port DHCP snooping bağ tablosu MAC · IP · VLAN · port · kira OFFER / ACK → kayıt eklenir ✕ OFFER düşürülür Statik bağ kaydı yazıcı 10.0.20.50 Dynamic ARP Inspection ARP'deki IP–MAC doğru mu? IP Source Guard kaynak IP bu porta ait mi?
DHCP snooping yalnızca sahte sunucuyu durdurmaz; DAI ve IP Source Guard'ın dayandığı bağ tablosunu da oluşturur. Tablo yanlış ya da eksikse bu iki savunma da yanlış karar verir. Sabit IP'li cihazlar tabloya statik kayıtla girer.

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.

Saldırgan VLAN 1 (native) Switch A native VLAN 1 Switch B hedef VLAN 20 trunk 1 · Saldırgan iki etiketli çerçeve gönderir dış: VLAN 1 iç: VLAN 20 veri 2 · Switch A native etiketi kaldırır, trunk'tan yollar VLAN 20 veri 3 · Switch B kalan etiketi okur ve iletir veri → VLAN 20
Çift etiket saldırısı, saldırganın trunk'ın native VLAN'ında olmasına dayanır. Native VLAN'ı hiçbir erişim portunda kullanılmayan bir VLAN'a (bu yazıda 999) almak bu ön koşulu ortadan kaldırır.

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.

Core switch root bridge Erişim switch'i 1 uplink → core Erişim switch'i 2 uplink → core Root Guard Root Guard BPDU Guard BPDU Guard PC BPDU yok Getirilen switch BPDU → err-disable PC BPDU yok
Yeşil noktalar korumanın uygulandığı portları gösterir. Root Guard core'da, erişim switch'lerine bakan portlarda; BPDU Guard erişim switch'lerinde, kullanıcı portlarında. Erişim switch'lerinin core'a bakan uplink'lerine ikisi de uygulanmaz.

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:

  1. 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.
  2. Statik bağ kaydı: Cihazın IP, MAC, VLAN ve port bilgisini switch’e elle tanımlayın. Huawei’de IP Source Guard statik user-bind kaydı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.
  3. 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.

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ı

  1. 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.
  2. 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ı?
  3. 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.
  4. 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.
  5. 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

#l2-guvenlik#dhcp-snooping#dai#ip-source-guard#stp

Kemal Keleş

Network & Security Engineer · CCNA · HCSA · NSE 3

Switching, routing, firewall ve kampüs ağlarında presales ve saha deneyimimi, teknik araştırmalarımı ve üretici dokümantasyonlarını bir araya getirerek pratik, üreticiden bağımsız içerikler hazırlıyorum.

Aynı konudan