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
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.
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.
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.
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.
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.
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