Ortamımda son zamanlarda IPv6 tabanlı komşu keşfi saldırılarını daha çok görmeye başladım — özellikle erişim switchlerinde RA guard dağıtılmıyorsa bu durum daha yaygın. Saldırganlar router advertisement paketlerini sahte yaparak trafiği yönlendirebilir veya hizmet reddi yapabilir. RA guard ideal bir savunma olsa da, birçok eski veya bütçe dostu switch bu özelliği desteklemiyor. İşte tam burada MLD snooping devreye girer. Sadece çoklu yayın verimliliği için değil, düzgün yapılandırıldığında bilinen çoklu yayın gruplarına eşleşmeyen istenmeyen komşu bildirim ve router solicitation paketlerini de düşürebilir.
MLD snooping'ın ND güvenliğinde nasıl yardımcı olduğunu açıklayalım
MLD snooping, Multicast Listener Discovery raporlarını dinleyerek hangi portların IPv6 çoklu yayın trafiğine ihtiyacı olduğunu öğrenir. Varsayılan olarak, bilinen olmayan çoklu yayın paketlerini flood eder — ama bu davranışı değiştirebilirsiniz. Switchi kayıtsız çoklu yayın paketlerini düşürmek için yapılandırdığınızda, ff02::1 (düğümler) ve ff02::2 (routerlar) gibi link-local çoklu yayın adreslerine gönderilen istenmeyen ND paketleri de etkili bir şekilde engellenmiş olur. Eğer bu gruplara ilgi bildiren hiçbir host MLD üzerinden bildirim göndermiyorsa, switch paketi düşürür.
Bu, RA guard'ın tam bir替代品ı olmasa da, her erişim porta RA guard etkinleştiremediğiniz ağlarda pratik bir azaltma yöntemi olarak iş görür. Ben bu yöntemi Cisco Catalyst switchlerinde ve Linux köprülerinde kullanarak laboratuvar tabanlı ND sahteciliği testlerinin başarısız olmasını sağladım.
Cisco switchlerde MLD snooping'ı etkinleştirme
Cisco IOS üzerinde, MLD snooping'ı global olarak ve isteğe bağlı olarak VLAN bazında etkinleştirirsiniz. Daha sonra, switchi kayıtsız çoklu yayın trafiğini flood etmek yerine düşürmek için yapılandırırsınız.
Switch(config)# ipv6 mld snooping
Switch(config)# ipv6 mld snooping vlan 10
Switch(config)# ipv6 mld snooping vlan 10 robustness-variable 2
Switch(config-if)# ipv6 mld snooping immediate-leave
Kayıtsız çoklu yayın paketlerini düşürmek için (güvenlik açısından kritik):
Switch(config)# ipv6 mld snooping vlan 10 report-suppression
Switch(config)# no ipv6 mld snooping vlan 10 flood-unregistered
no flood-unregistered satırı burada kritik öneme sahiptir — bu komut, hiçbir host tarafından katılım bildirimi gönderilmemiş gruplara ait MLD trafiğini switchin düşürmesini söyler. Saldırgan tarafından üretilen RA/NA paketleri geçerli bir MLD raporu öncesinde gelmediği için bu paketler düşürülür.
Linux köprülerinde MLD snooping yapılandırması
Linux köprüleri kullanıyorsanız (örneğin Proxmox veya KVM ortamlarında), MLD snooping'ı sysfs veya köprü yardımcı programları üzerinden etkinleştirebilirsiniz. İlk olarak destek olup olmadığını kontrol edin:
# cat /sys/module/bridge/parameters/mld_snooping
1
1 döndürüyorsa özellik mevcuttur. Bir köprüde etkinleştirmek için:
# echo 1 > /sys/devices/virtual/net/br0/bridge/mld_snooping
# echo 1 > /sys/devices/virtual/net/br0/bridge/mld_snooping_querier
Kayıtsız çoklu yayın paketlerini düşürmek için (Cisco ile benzer):
# echo 0 > /sys/devices/virtual/net/br0/bridge/mld_snooping_multicast_router
Bu komut, çoklu yayın router port davranışını kayıtsız trafiği görmezden gelmeye ayarlar. brctl showstp br0 ile kontrol yapabilir ya da tcpdump -i br0 ip6 izleyerek sahte RA paketlerinin erişim portlarında artık görünmediğini doğrulayabilirsiniz.
İzleme ve doğrulama
Etkinleştirdikten sonra, scapy veya thc-ipv6 gibi bir araçla sahte RA paketleri göndererek testi yapın. tcpdump kullanarak bu paketlerin iletilmediğini onaylayın:
# tcpdump -i eth0 -vv ip6[40] = 134 and ip6[40] = 135
Switch loglarında veya köprü sayaçlarında düşüşleri izleyin. Cisco üzerinde şu komutları kontrol edin:
Switch# show ipv6 mld snooping vlan 10
Switch# show ipv6 mld snooping address vlan 10
Linux köprüsünde ise, multicast veritabanını izleyin:
# bridge mdb show dev br0
Sahte RA paketlerinin MDB'de görünmediği ve iletilmediği gözlemlenirse, azaltma etkili şekilde çalışıyor demektir.
Sınırlamalar ve en iyi uygulamalar
MLD snooping tek başına tüm ND saldırılarını durdurmaz — örneğin, paket bir şekilde bilinen bir gruba denk gelirse yönlendirme sahteciliği veya komşu önbellek flooding gibi saldırılara karşı koruma sağlamaz. Bu yüzden daima şunlarla birlikte kullanın:
- RA guard'ı destekleyen yerlerde (dağıtım/çekirdek katmanlarda)
- DHCPv6 guard veya güvenilir portlar
- Port güvenliği veya 802.1X ile zararlı cihazların erişimini sınırlama
ndp -anveyaip -6 neighile düzenli komşu keşfi izleme
Linux köprülerinde ARP güvenliği hakkında önceki yazımdaki benzer prensipler burada da geçerli: ideal araç mevcut değilse, katman katman güvenlik ekleyerek savunmayı güçlendirebilirsiniz. (Ayrıntılar için: [Linux Köprüsünde ebtables ile ARP Spoofing Korumasını Otomatikleştirme](https://furkanikkan.com/urun/linux-koprusunde-ebtables-ile-arp-spoofing-korumasini-otomatiklestirme-77))
Son düşünceler
Her switchte kurumsal düzeyde özellikler olmasa da, temel IPv6 ND koruması için MLD snooping'ı etkinleştirmek ve kayıtsız çoklu yayın paketlerini düşürmek düşük overhead'li, geniş desteğe sahip ve sahte RA saldırılarının büyük bir sınıfını engelleyen bir adımdır. Bu sexy olmayabilir ama sertleştirilmiş bir ağda bu küçük katmanlar birikir. Özellikle IPv6-only cihazınız veya çoklu yayın yoğun uygulamalarınız varsa önce laboratuvarda test etmenizi öneririm — ama bu yöntemi savunma içinde derinlik olarak göz ardı etmeyin.
Kapak görseli: Unknown · CC0 (Openverse / kamu malı) · https://www.rawpixel.com/image/6038427/photo-image-public-domain-technology-line
