Pages

Blogger tarafından desteklenmektedir.

23 Haziran 2012 Cumartesi

Cisco Switchler ile STP Security


LAN Security makalelerimizin bu bölümünde STP’nin zayıf noktalarından bahsedeceğiz. Cisco Switchler üzerinde default olarak çalışan ve local networklerimizde loop oluşmasını önleyen STP (Spanning Tree Ptotocol)’in açıklarından faydalnılarak networkümüze zarar verilmesini önlemek için bir dizi önlemler almamız gerekecektir.

Bu önmelernden birincisi, Portfast enable edilen portlar için BPDU paketlerini filtrelemek ya da engellemek olacaktır. Hatırlayacağınız gibi PortFast, hostların bağlı olduğu portlarda çalıştırılan ve host portlarının STP için gereken state’leri es geçerek hemen up olmasını sağlayan bir özelliktir. Bir switch portunun, host bağlı olmak kaydıyla, STP’yi çalıştırmadan up olması güzel bir olaydır. 

Fakat bu porttan BPDU mesajı alacak olursa STP topolojimiz tamamıyla bozulabilecektir ve belki de looplar oluşmasına sebep olabilecektir. Bu portlara gelebilecek BPDU mesajları iki şekilde engellenebilir.


1. BPDU Guard
2. BPDU Filter

BPDU Guarda, hem global konfigürasyon modunda hem de interface konfigürasyon modunda enable edilebilir. Global konfigürasyon modunda enable edildiğinde bütün portfast enable edilen portlarda aktif hala gelecektir. BPDU Guard’ın enable edildiği bir porta BPDU mesajı gelirse bu port error-disabled duruma gelecektir.
BPDU Guard konfigürasyonuna geçmeden önce, portfast’in nasıl enable edilebileceğini göstermek istiyorum.

Dikkat ederseniz PortFast’i enable ettiğim zaman Cisco IOS ciddi bir uyarının arkasından komutu çalıştırdı. Dolayısıyla PortFast enable edilirken dikat edilmeli ve BPDU Guard gibi BPDU Filter gibi önlemler alınmalıdır. Şimdi interface konfigürasyon modunda BPDU Guard’ın nasıl enable edilebileceğine bakalım.
BPDU Guard enable edildikten sonra, bu porttan bir BPDU mesajı alınacak olursa aşağıdaki gibi bir console mesajı alınır ve port kapanır.
Portun durumu aşağıdaki komut ilede görülebilir. Hatırlayacağınız gibi bu portu tekrar aktif hale getirmek için, interface konfigürasyon modunda önce “shutdown” sonra “no shutdown” komutları çalıştırılmalıdır. Veya daha önce Port Security makalesinde bahsettiğimiz “err-disabled recovery” enable edilerek, dinamik olarak portun tekrar up hale gelmesi sağlanabilir.
BPDU Filter’da aynı şekilde hem Global konfigürasyon modunda hem de interface konfigürasyon modunda enable edilebilir. Fakat BPDU Filter’ın her iki enable edilme şeklinde çalışması birbirinden farklıdır.
Global olarak enable edildiğinde;

1. Interface bazlı BPDU Filter enable edilmemiş PortFast portlarında BPDU Filter’ı enable eder.
2. Portlardan BPDU mesajı alırsa, Portun PortFast özelliği disable edilir, BPDUFilter özelliği disable edilir ve BPDU mesajları alınıp gönderilmeye başlanır.
3. Açılış sırasında port 10 tane BPDU mesajı gönderir ve bu sırada BPDU mesajı alınırsa, PortFast ve BPDU Filter özellikleri disable edilir.
Interface bazlı enable edildiğinde;
1. Bütün BPDU mesajları ignore edilir,
2. Herhangi bir BPDU mesajı gönderilmez.
BPDU Filter global konfigürasyon modunda aşağıdaki gibi enable edilebilir.
Interface konfigürayon modunda BPDU Filter enable edilmek istenirse aşağıdaki komut kullanılmalıdır.
STP için önemli olan noktalardan biriside Root Bridge’dir. Root Bridge Bridge ID ile seçilir ve root olmayan diğer bridge’ler Root Bridge birden fazla path ile erişebiliyorsa, bu pathlerden en kısa olanını (cost değerlerine bakarak) seçer be diğer portu blockinf duruma sokar. Konumuz STP olmadığı için bu konuyla ilgili detaya girmiyorum fakat STP bilgisi yeterli olmayan arkadaşlar sitede daha önce yayınlanan STP makalesinden yardım alabilirler.
Bizim için bu noktada önemli olan Root Bridge’in durumudur. İyi dizayn edilmiş bir networkte Root Bridge bütün hostlara en iyi yolu sunacak bir noktada olmalıdır. Yol seçiminde temel kriter Root Bridge olacağı için, örneğin Access layer switchi olarak kullanılan bir switchin Root olması durumunda, çok daha yoğun bir trafiği akıtan Backbone vir switchin portlarından biri blocking durumda olabilecektir. Örnek bir topoloji üzerinde bakarsah daha faydalı olacaktır.

Senaryomuz gereği A switchine bağlı portların birinde, diğer bütün kullanıcıların farklı zamanlarda data gönderdikleri bir server olsun. Bu durumda root Bridge olarak atanması iyi bir çözüm olacaktır. Çünki Root Bridge’in bütün portları her zaman iletim durumunda olacaktır. (Root Bridge seçiminde, Bridge priority değerlerini değiştirerek aktif rol oynayabiliriz.)





Bu network düzgün bir şekilde çalışırken C Switchine, başka bir switchin, bizim kontrolümüz dışında bağlandığını düşünelim. Hemen dipnot olarak söyleneyebilirim ki , gerçekten switch kullanmak yerine bu şekilde bir saldırı bazı toollar ile birlikte de yapılabilir. Saldırıyı yapan kişi, eğer daha küçük bir Bridge ID’ye sahip switch gibi hareket ederse, D Switchi root Bridge olacaktır. STP sürekli networkü izler ve topolojide bir değişiklik olduğu zaman, yeni topolojiye göre portlarının durumunu düzenler. Bu durumda D Switchi artık root Bridge olacağı için B Switchi üzerindeki A’ya bağlantıyı sağlayan port, belkide blockin duruma geçecektir ve yoğun bir trafik akışı olan A switchine olan yollardan birisi kapanmış olacaktır. Cisco switchler üzerinde yapılabilecek Root Guard konfigürasyonu ile, herhangi bir porta bağlanan bir cihazın root olması, hangi Bridge ID’ ye sahip olursa olsun engellenebilir.




0 yorum:

Yorum Gönder