Network

Layer 2 Mac Access Control List Yazma

Bu yazımızda Layer 2’de hükümdarlığını süren Mac Adresleri ile Layer 2 Access Control List yazmayı konuşuyor olacağız. İsimlendirme karşınıza Mac Access Control List, Layer 2 Access Control List ve Ethernet Access Control List olarak çıkabilir. Layer 3 üzerinde IP bazlı Access Control List (ACL) yazımındaki teferruat burada olmayacaktır. Layer 2 katmanında da ek güvenlik sağlamak için biçilmiş kaftandır.

Access Control List yazma kısmındaki giriş bilgileri ve bazı tanım ve sınırlamalar cihazlara göre ufak değişiklikler gösterse de genel bir bilgi verecek olursak. Öncelikle yaz yazabildiğin kadar gibi bir bolluk söz konusu değil tabi ki belli bir sınırlama var kural yazımında ama bu rakamlar ihtiyaçları çok rahat karşıladığı için sıkıntı olmuyor. Bu rakamların konulma sebebi de performans kaybını önlemek içindir. Bunlardan bahsedecek olursak;

– Bir Line card üzerinde max. 256 Access List (ACL) yazılabilir. Bu sayı router’larda 256’yı geçebilir. Bu sayı değişkenlik gösterebiliyor tam olarak öğrenmek için cihaz özelliklere bakarak bulabiliriz.

– 1 Access List (ACL) içerinde max. 16  Access Control Enrty (ACE) yani Access Control girdisi girebiliriz. İlerleyen kısımlarda bu ACE’nin tam olarak hangi kısım olduğundan bahsedeceğiz.

Son olarak da Layer 3 bazlı Access List’ler de yapabildiğimiz gibi Layer 2 tarafında da “permit” ve “deny” filtreleme seçeneklerimiz mevcuttur fakat Layer 3 tarafındaki kural genişliği yoktur diyerek bitiriyorum giriş kısmını.

Yavaş yavaş konfigürasyon kısmına geçebiliriz. Öncelikle alttaki gibi PuTTY ile standart ayarlarla cihazımızın konsoluna erişiyoruz. Bu kısımda farklı olabilecek kısım sizin COM portunuzun numarası olabilir. Kontrol edip kendi COM portu numaranızı girebilirsiniz.

clip_image002

 

Öncelikle benim test cihazım Dell PowerConnect 5524 komut satırı Cisco ile benzerlik gösterse de tamamıyla aynı değildir. Ama mantık hemen hemen aynı olduğu için diğer markalara ait cihazlarda da ufak ufak farklılıklar olacaktır.

“Enable” ve “Configure terminal” ile Global Configuration Mod’a geçiyoruz.

clip_image004

Öncelikle Kuralımıza bir isim vereceğiz. Bu kısım için komut satırı;

Console (config)# mac access-list extended ACL_KURAL_ADI

clip_image006

Kuralımıza isim verdik şimdi yukarıda bahsi geçen ACE’leri (Access Control Girdisi) oluşturalım.

Bu ACE’lerin cihazlarda markadan markaya oluşturulmasında ufak farklılıklar mevcuttur. Dell tarafında bunun yapısı alttaki gibidir.

Permit | Deny {any | {Kaynak Mac – Kaynak Wildcard}} {any | {Hedef Mac – Hedef Wildcard}} [Vlan vlan-id]

Yukarıdaki kısımı kısaca açıklamak gerekirse öncelikle permit (izin ver) yada deny (engelle) ile başlayacağız. Bunu oluşturacağımız kurala göre bizim belirlememiz gerekiyor. Sonra kural yazmak istediğimiz makinenin mac adresini ve bu mac adres için bir wildcard mask girmemiz gerekiyor. Daha sonra hedef mac adresimiz ve onun wildcard’ı yapıda vlan yoksa burada kural bitiyor. Yapıda vlan varsa, kuralda hangi vlan için olduğunu belirtiyoruz.

Burada çoğu kısım anlaşılıyor ama wilcard mask kısmında biraz soru işareti olabiliyor. Bu Subnet Mask’ın tümleyeni gibi düşünebilirsiniz. Bildiğiniz gibi hesaplamalar bitlerle oluyor. Subnet mask’da 0 olan bitler Wilcard Mask’da 1 olur. Bu yüzden tümleyeni deriz. Aslında ikisi de aynı şeyi ifade edebilir. Ama bazı protokollerde wilcard mask kullanıyoruz.

Burada biz 00:00:00:00:00:00 wilcard mask’ını kullanacağız. Bu bir aralığı değilde sadece belirttiğimiz mac adresi’ni belirtir. Yani ip tarafından örnek verecek olursak bizim (255.255.255.255) diyerek sadece o ip diye belirttiğimiz mask adresine karşılık geliyor.  Peki wildcard mask’ın 00:00:00:00:00:FF olduğunu varsayarsak mac adresin en son oktet’i (xx:xx:xx:xx:xx:XX Büyük yazılan XX kısmı) 00’dan başlayıp FF’e kadar olan mac adresi aralığını belirtmiş oluruz. Yine kolay anlaşılmsı için ip kısmından örnek verecek olursam (255.255.255.0 gibi bir mask adresini kullandığımızda 254 tane ip adresimizin olduğu gibi düşünebiliriz)

Şimdi tekrar config kısmına dönelim ve ilk ACE’mizi oluşturalım.

Bu kuraldaki amacımız; 44:44:44:44:44:44 mac adresli makina 55:55:55:55:55:55 mac adresli makinaya erişebilsin olsun. Diğer makinaların hiç biri erişemesin olsun. Bu kural komut satırında uzun yer kapladığı için uzun olan kısım konsolda sol tarafta kaybolduğu için ekran görüntüsü almadım. Fakat komut alttaki gibidir.

console(config-mac-al)#  permit 44:44:44:44:44:44 00:00:00:00:00:00 55:55:55:55:55:55 00:00:00:00:00:00

Geri kalan diğer mac adreslere bu erişimi kapatmak içinde bu komuttan sonra;

clip_image008

console(config-mac-al)#  deny any any  komutunu yazmamız yeterli olacaktır. Bu komutu açıklayacak olursak “deny” yani engelle neyi ? “any” bütün kaynak bilgisayarların “any”  bütün hedef bilgisayarlara erişimine izin verme oluyor. Cihaz kuralları yukarıdan okumaya başladığı için 44:44:44:44:44:44 mac adresine verdiğimiz izin üstte olduğu için ona erişim izni verecektir. Firewall’daki kural sıralaması mantığı gibi yani üstteki kural alttakini ezer. Yani biz alttaki komutu üstteki ile yer değiştirirsek ilk kuralda herkesi engellediğimiz için bizim permit kuralına bakmayacaktır bile cihaz.

Aynı komutlarda “permit” ve “deny” kısımlarını da değiştirirsek. Yani alt kısımdaki gibi bir konfig girersek bu kez yalnızca 44:44:44:44:44:44 mac adresli cihazın 55:55:55:55:55:55 mac adresli cihaza erişimini engellemiş. Geri kalanlara izin vermiş oluyoruz.

console(config-mac-al)#  deny  44:44:44:44:44:44 00:00:00:00:00:00 55:55:55:55:55:55 00:00:00:00:00:00

console(config-mac-al)#  permit any any 

Yapımızda Vlan mevcut olduğunu varsayarsak bu örneğimizde de bir vlandaki cihazlarla iletişime geçmesi için sadece 1 makinamıza izin verelim. Mesela; sadece 44:44:44:44:44:44 mac adresli cihazımız vlan 10 üzerinde herhangi bir cihazla iletişim kurabilir. Fakat diğer cihazlar bu durum için engellenmiştir. İsterseniz “any” şeklinde tüm cihazlar diye bir genelleme yapmayıp sadece bir mac adresi veya bir mac adresi aralığında belirtebiliriz.

clip_image010

console(config-mac-al)#  permit 44:44:44:44:44:44 00:00:00:00:00:00 any vlan 10

console(config-mac-al)#  deny any any 

Buraya kadar kural yazma üzerine konuştuk. Peki, bu yazdığımız kurallar şuan geçerlimi? Geçerli ise cihazın tüm interface’leri üzerinde mi geçerli o kısma gelelim.

Öncelikle yazdığımız kurallar şuan geçerli değil. Çünkü bu kuralları bir interface’e atamadık. Bu atama işlemi interface’in giriş mi yoksa çıkış trafiğine mi ekleyeceğimize karar veriyoruz. Burada interface’den çıkan trafik için yalnızca oluşturduğumuz Access Control List’i atayabiliriz. Ama interface’e giren trafik için hem oluşturduğumuz Access control list’i hem de belli başlı protokollere izin verme veya engelleme işlemi yapabiliriz. Bu protokollerin hangileri olduğunu da açıklayacağız. Şimdi yazdığımız bir Access control list’i interface’lere atama işlemini yapalım.

Gigabitethernet 0/1 interface’inin çıkış trafiğine oluşturduğumuz ACL’i atayalım.

console(config)# interface gigabitethernet 0/1 komutu ile interface içerisine girdik.

console(config-if)# service-acl output komutundan sonra “?” ile çıkış trafiğine ne atayabileceğimizi görüyoruz. Yukarıda bahsettiğimiz gibi sadece oluşturduğumuz ACL’i atayabiliyoruz.

console(config-if)# service-acl output ACL_KURAL_ADI

clip_image012

Böylece gigabit ethernet 0/1 olan interface’imizden çıkan trafik uyguladığımız bu Access control list’e göre geçecektir. Diğer interface’lere bir kural uygulamadığımız için onlar normal bir şekilde işleyişlerine devam edeceklerdir.

Şimdi bir interface’imizin giriş trafiğine de bir ACL atayalım. Yukarıda giriş trafiğinde daha çok seçenek olduğundan bahsetmiştik. Bunlardan da bahsediyor olalım.

console(config)# interface gigabitethernet 0/12

console(config-if)# service-acl input komutundan sonra “?” ile giriş trafiğine ne gibi kurallar atayabileceğimizi görüyoruz.

clip_image014

Yukarıda da göründüğü gibi Ciscoya özel bütün protokolleri, cdp, vtp, dtp, udld, pagp, sstp ve bizim oluşturduğumuz ACL’leri interface giriş trafiğinde engelleyebiliyoruz. Önceden de belirttiğimiz gibi çıkış trafiğinden daha geniş seçenekler mevcut. Bu protokollerin neler yaptığını ne işe yaradığını tek tek açıklamak konumuz dışına çıkacaktır ama araştırma yapacaklar için tam adlarını yazalım.

CDP =>    Cisco Discovery Protocol

VTP =>     Vlan Trunking Protocol

DTP =>     Dynamic Trunking Protocol

UDLD =>  Unidiectional Link Detection

PAGP =>  Port Aggregation Protocol

Yukarıda belirttiğimiz seçenekleri giriş trafiği için girerek belirttiğimiz interface için giriş trafiğini kontrol edebiliriz.

Örnekleri çoklamak mümkün önemli olan mantığını kavramak zira farklı firmaları geçtim aynı firmanın farklı cihazlarında bile bazen komut satırı ufak değişiklikler göstermektedir. Yukarıda da belirttiğim gibi bu makalemizde Dell Powerconnect 5524 ürününü kullandık.

Bu makalemizde Layer 2 Access List yazımını anlatmaya çalıştık. Bir başka makalemizde görüşünceye kadar. Subnet’imiz Çözümpark , ping’imiz daim olması dileğiyle…

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu