ACL (Access Control List)

Hızla büyüyen ve yenileşen network dünyasında unutulmaması gereken en önemli konulardan biri güvenlik tehlikelerine karşı alınması gereken önlemlerdir.Networkler arası iletişimin kontrol altına alınması, ideal network ortamının yaratılması, gereksiz ve güvenlik açığı olan protokollerin filtrelenmesi konusunda Firewall çözümlerine ihtiyaç duyarız. Sektörde yazılımsal veya donanımsal olarak geniş bir yelpazeye sahip olan firewall ürünlerini kullanarak bu tür işlemleri yapabileceğimiz gibi mevcut topolojimiz içerisinde var olan ve farklı networkler arasında iletişimi sağlamayı esas alan Router’larımızın basic firewall özelliğini kullanarak’ta yapabilmekteyiz. Topoloji içerisinde yer alan mevcut Router’lar üzerinde erişim listeleri ile paket filtreleme işlemlerini yaparak güvenlik seviyesini arttırabilir ve standart filtrelemeler için ek maliyeti ortadan kaldırabilmekteyiz.

ACL farklı networkler arasında iletişim kurmamızı sağlayan Router (yönlendirici) üzerine gelen ya da giden iletişim trafiğini kaynak ip bazında ya da port bazında filtreleme yapabilmemizi sağlayan kontrol mekanizmasıdır. ACL’ler kaynak ip’ye göre filtreleme yapabilmekle beraber gelişmiş listeleri kullanarak hedef ip, port numarası protokol bazında filtreleme işlemleri yapabilmekteyiz.

ACL’ler protokol, yön ya da port temelli olarak tanımlanmalıdır. Bir arabirim üzerindeki trafik akışını kontrol etmek için arabirim üzerinde çalışır durumdaki her bir protokol için bir ACL tanımlanmalıdır. ACL’ler trafiği arabirim üzerinde, tek bir yönde ve tek zamanda kontrol ederler. Her farklı yön için ayrı ayrı bir ACL oluşturulmalıdır; giriş trafiği için bir tane, çıkış trafiği için bir tane. Sonuç itibarıyla her bir arabirim çok sayıda protokole ve tanımlanmış yöne sahip olabilir. Erişim listeleri oluşturmanın temel nedenleri aşağıdaki gibidir.

1. Ağ trafiğini sınırlamak ve ağ performansını artırmak. Örneğin ACL’ler video trafiğini sınırlamak suretiyle ağdaki yükü büyük ölçüde azaltır ve neticede ağ performansını artırır.

2. Trafik akışı kontrolünü sağlamaktır.

3. Ağ erişiminde temel bir güvenlik düzeyi sağlamak. ACL’leri bir host’un ağın bir kısmına erişmesine izin verebilir ve diğer bir host’un aynı bölgeye erişimini engelleyebilir.

4. Yönlendirici arabirimlerinde hangi tip trafiğe yol verileceği ya da bloke edileceğine karar verir.

5. Bir yöneticiye, bir istemcinin ağa hangi alanda erişebileceğini kontrol etmek iznini verir.

ACL’NİN OLUŞTURULMASI

Standart, uzatılmış, IPX, Apple Talk ve başka diğerlerini de içeren çok farklı tiplerde ACL’ler vardır. Bir yönlendirici üzerinde ACL’leri konfigüre ederken her ACL kendisine atanan bir rakamla kendine özerk tanımlanmalıdır. Bu rakam, oluşturulan erişim listesinin tipini tanımlar.

ACL tipleri ve numaraları

Access Kontrol List’lerin Genel Yazım Biçimi

Router(config)# access-list ACL_# permit|deny koşul

Genel bir ACL tanımlama adımı bu şekildedir. Özellikle 1–99 ve 1300–1999 arası kullanılan numaralar tablo da görüldüğü gibi standart erişim listelerini tanılamada kullanılır. Bu adımdaki koşul yönlendirici tarafından kabul veya red işlemi yürütüldüğünde paketlerin içeriklerinin nelere göre eşleme yapılması gerektiğini yönlendiriciye söyler.

Router(config-if)# ip access-group ACL_# in|out

ACL’ler bir ya da daha fazla arabirime atanabilir ve access-group (erişim-küme) komutu kullanılarak giriş ve çıkış trafiğini filtreleyebilir. İn ve out parametresi yönlendirici arabirimine giriş ve çıkış trafiğini simgeler.

Router(config)# access-list 2 deny 192.168.1.2

Router(config)# access-list 2 permit 192.168.1.0 0.0.0.255

Router(config)# access-list 2 deny 192.168.0.0 0.0.255.255

Router(config)# interface serial 0

Router(config-if)# ip access-group 2 in

Access-group komutu arabirim yapılandırmasına iletilir. Bir giriş ya da çıkış arabirimine herhangi bir ACL atandığında konumlandırma özelleştirilmelidir. Filtreleme yönü içeri ya da dışarı giden paketleri kontrol için ayarlanabilir. ACL’nin giriş trafiği mi yoksa çıkış trafiğine mi adreslenmiş olduğunu saptarken ağ yöneticisi yönlendiricinin içinden gelen arabirimlere göz atma gereği duyabilir. Bu çok önemli bir düşüncedir. Bir arabirimden gelen trafik giriş erişim listesince, arabirimden çıkan trafik de çıkış erişim listesince filtrelenir. Numaralandırılmış bir ACL oluşturulduktan sonra bir arabirime ataması yapılmalıdır. Numaralandırılmış ACL bildirimleri içeren bir ACL değiştirilecekse içindeki tüm bildirimler no access-list / liste no komutu kullanılarak silinmelidir.

Router(config)# no access-list 2

Erişim listeleri oluşturulurken ve uygulanırken şu temel kurallar takip edilmelidir:

1.Protokol ve yön temelli bir erişim listesi olmalıdır.

2. Standart erişim listesi alıcı adresine en yakın olmalıdır.

3. Genişletilmiş listesi kaynağa en yakın olmalıdır.

4. Giriş ve çıkış arabirim referansları yönlendiricinin içinden sanki “porta bakıyormuş” gibi kullanılmalıdır.

5. Bildirimler, bir eşleme gerçekleşene kadar listenin en başından en sona kadar ardışık olarak gerçekleşecektir. Eğer eşleşme olmaz ise paket reddedilecektir.

6. Erişim listesinin sonunda gizli bir ret olacaktır. Bu normal olarak yapılandırma listelemesinde ekranda görüntülenmez.

7.Erişim listesi girişleri özelden genele bir sıra içinde filtrelenmelidir. Önce özel hostlar reddedilmeli ve sonrada gruplar ya da genel filtrelemeler gelmelidir.

8. Eşleşme koşulu ilk önce incelenir. İzin ya da ret sadece eşleşme doğru ise incelenir.

9. Erişim listesinin sonuna daima yeni satırlar eklenir. No access-list x komutu tüm listeyi silecektir. Numaralandırılmış bir ACL’si seçerek silme ya da ekleme mümkün değildir.

10. Bir erişim listesi silinirken dikkatli olunmalıdır. Eğer erişim listesi bir ürünün arabirimine uygulanır ve silinirse ROS’un sürümüne bağlı olarak arabirime default (varsayılan) bir ret uygulanır ve dolayısıyla tüm sistem durur.

11 Çıkış filtrelemesi yerel yönlendiriciden kaynaklanan trafiği etkilemez.

Wildcard Mask(Joker maske)

Wildcard mask, dört sekizliğe bölünmüş bir 32 bittir. Wildcard mask bir IP adresi ile eşleşir. Maskedeki sıfır ve birler, IP adres bitleriyle nasıl haberleşeceğini tanımlamak için kullanılır. Wildcard maskelemesi terimi tıpkı bir arama işleminde tüm karakterler yerine kullanılabilen joker karakterler mantığında olup ACL’ nin mask-bit eşleşmesi için bir tür takma addır (nickname). Wilcard Mask’ların alt ağ maskeleriyle işlevsel bir ilişkisi yoktur. Onlar farklı amaçlar ve farklı kurallar doğrultusunda kullanılır. Alt ağ maskeleri IP adresinin sol tarafından başlar ve host alanından ödünç bitler almak suretiyle ağda genişlemek için sağ tarafa doğru ilerler. Wilcard Mask’ları, adrese bağlı olarak kaynaklara erişimi kabul ya da red eden bireysel veya grup IP adreslerini filtrelemek için tasarlanmıştır. Wilcard Mask’larının alt ağ maskeleriyle nasıl ilişkilendirilip çalıştırılacağını düşünmek sadece kafa karıştır. Wilcard Mask ile alt ağ maskesi arasındaki tek benzerlik her ikisinin de otuz iki bit uzunlukta olması ve maskelemede sıfır ve birleri kullanıyor olmasıdır. Diğer bir açıdan, Wilcard Mask’ta ki sıfır ve birler, alt ağ maskesindekilerden çok farklıdır. Bu karışıklığı gidermek için, grafikte Wilcard Mask’ta ki 1’lerin yerine X’ler konmuştur. Bu maskeleme 0.0.255.255 olarak yazılabilirdi. Buradaki sıfırın anlamı, kontrol edilecek değerlere izin vermek, X’lerin (yani 1’lerin) anlamı ise karşılaştırılan değerlerin bloklanmasıdır.

Wilcard Mask eşleme

Wilcard Mask işleminde, erişim listesi bildiriminde yer alan ip adresi kendisine uygulanmış bir Wilcard Mask’a sahiptir. Bu, bir paketin ACL tarafından işleme konup konmayacağını görmede ve karşılaştırmada kullanılacak bir değer üretir ya da bir sonraki bildirimi kontrol amacıyla gönderir. ACL işleminin ikinci kısmı, belli bir ACL bildirimince kontrol edilmiş olan herhangi bir IP adresinin bildirim tarafından ona uygulanacak olan wilcard mask’ın alınmasıdır. IP adresinin ve wilcard maskesinin sonucu ACL’nin değerini eşlemede eşit olmalıdır. Bu işlem çizimde gösterilmiştir.

wilcard mask örneği

ACL’lerde kullanılan iki özel anahtar sözcük vardır. Bunlar; any ve host seçenekleridir. Basit şekliyle, any seçeneği IP adresi için 0.0.0.0 in yerini, wilcard için de 255.255.255.255’in yerini tutar. Bu seçenek, karşılaştırılmış olan herhangi bir adresi eşleştirecektir. Host seçeneği, 0.0.0.0 maskesinin yerini tutar. Bu maske, ACL adresinin tüm bitlerine ve paket adresinin eşleşmiş olmasına gerek duyar. Bu seçenek tek bir adresi eşleştirecektir.

Router(config)# access-list 2 permit 0.0.0.0 255.255.255.255

Yukarıdaki adım yerine

Router(config)# access-list 2 permit any yazılabilir.

Router(config)# access-list 2 permit 192.168.1.2 0.0.0.0

Komut adımı yerine de aşağıdaki adım yazılabilir

Router(config)# access-list 2 permit host 192.168.1.2

Yönlendirici üzerinde ACL’lerin yerleşimini ve içeriğini doğrulamak için pek çok show komutu vardır. Show access-list komutu yönlendirici üzerindeki tüm ACL’lerin içeriğini görüntüler.

ACL Türleri

Standart ACL

Standart ACL’ler yönlendirilmiş IP paketlerinin kaynak adresini kontrol ederler. Ağa, alt ağa ve host adreslerine bağlı olarak tamamen protokol için karşılaştırma izin ya da red ile sonuçlanacaktır. Örneğin, F0/0’dan gelen paketler kaynak adresi ve protokolü için kontrol edilecektir. Eğer izin verilmişse paketler yönlendiricide doğru bir çıkış arabirimine yönlendirilecektir. Eğer izin verilmemişse daha giriş arabirimindeyken düşeceklerdir.

Standart Erişim Listelerinin Genel Yazım Biçimi

Access-list [liste numarası] [permit | deny] [IP adresi] [wilcard]

Liste numarası: ACL numarası 1’den 99 ve 1300 den 1999’a kadar olabilir.

Permit | deny:Her ikisi de olabilir. Permit belirttiğiniz ip adresini, bir eşleme girişini içerir.

IP adresi: Bir IP adresi, belirlenmiş kuralları içeren IP adreslerini eşlemede ve kararlaştırmada kullanılır.

Wilcard:İsteğe bağlı olarak kullanılan wilcard eşlemede bir IP adresindeki bitlerin değerlerini (0/1) kontrol eder.

Router(config)# access-list 1 permit 192.168.1.1

Router(config)# access-list 1 deny 192.168.1.2

Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255

Router(config)# access-list 1 deny any

Router(config)# interface serial 0

Router(config-if)# ip access-group 1 in

Bu örnekte ACL’nin en başında bulunan permit işlemi düzenli bir şekilde yürütüldüğünde IP paketinde kaynak adresin 192.168.1.1 olmalıdır. Eğer değilse yönlendirici ikinci adıma geçecektir. ACL’nin ikinci satırı deny işlemi yürütüldüğünde IP paketinde kaynak adres 192.168.1.2 olmalı, değilse yönlendirici üçüncü satıra geçecek. ACL deki üçüncü satırda permit işlemi yürütüldüğünde IP paketinde kaynak adres 192.168.1.0 ile 192.168.1.255 arasında olmalıdır. Değilse dördüncü satıra geçecektir. Dördüncü satır genelde gerekli değildir, çünkü bütün IP paketlerini düşürecektir. Bu adıma her ACL’nin sonunda gizli olarak belirtilen bir red işlemi olmadığı sürece ihtiyacınız yok demektir. Yukarıdaki ACL örneğinde son iki komut serial0’ dan arabirime gelen trafiği ACL#1’de aktifleştirecektir. Aslında aşağıdaki gibi yazılmış olması gerekirdi.

Router(config)# access-list 1 deny 192.168.1.2

Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255

Router(config)# interface serial 0

Router(config-if)# ip access-group 1’in

Bu düzenleme listeniz dört satır olacak ve iki satır düşmüş olacaktır. Bu da yönlendiricinizin performansını artıracaktır.

Genişletilmiş (Extended) Erişim Denetim Listeleri

Genişletilmiş ACL’ler, geniş bir kontrol aralığı sağladığı için standart ACL’lerden daha sık kullanılırlar. Genişletilmiş ACL’ler port numaraları ve protokolleri de kontrol edebileceği gibi paketin kaynağını ve alıcı adresini de kontrol eder. Bu, ACL’nin neyi kontrol edeceğini tanımlama konusunda büyük bir esneklik sağlar. Erişim izni ya da reddi verilen paketler, protokol tipi ve port adresinin yani sıra, paketin nereden çıktığı ve nereye yollandığına dayalıdır. Genişletilmiş bir ACL, Fa0/0’dan özel bir S0/0 adresine yapılacak olan mail trafiğine dosya transferi ve web tarayıcı reddi olma koşuyla izin verir. Paketler göz ardı edildiğinde, bazı protokoller göndericiye alıcı adresine ulaşılamadığını bildiren bir yankı paket yollar. Tek bir ACL için, birden çok bildirim düzenlenebilir. Bu bildirimlerin her biri, bildirimi aynı ACL’ ye ilintilendirmek için aynı erişim listesi numarası içermelidir. Gerektiği ölçüde koşul bildirimlerinin sayısı artabilir, bu sayıyı sınırlayan sadece yönlendiricinin kullanılabilir belleğidir. Doğal olarak bildirimlerin artırılması ACL’nin yönetimini ve anlaşılmasını daha bir zorlaştıracaktır.

Genişletilmiş Erişim Listelerinin Genel Biçimi

Şimdi genişletilmiş erişim listelerinin tipik olarak kullanımlarının genel biçimini tanımlayalım. Genişletilmiş erişim listeleri aşağıdaki biçimi alır:

Access-list [liste numarası] [permit | deny] [protokol] [kaynak belirtme] [hedefbelirtme] [protokol niteleme] [logging]

Liste numarası:Erişim liste numarası 100’den 199’a ve 2000’den 2699’a kadar olabilir.

Permit | deny:Her ikisi de olabilir. Permit belirttiğiniz ip adresini bir eşleme girişini içerir.

Protokol belirtme: Paket protokolüdür. Burası, IP,TCP,EDP veya ICMP ve diğer IP protokollerinden biri olabilir. Bununla birlikte İP protokol numarası da olabilir.

Kaynak belirtme: [Ip adresi] [wilcard] [port numarası belirtme (sadece UDP ve TCP için kullanılır)] biçiminde belirtilir.

Hedef belirtme:[Ip adresi] [wilcard] [port numarası belirtme (sadece UDP ve TCP için kullanılır)] biçiminde belirtilir.

IP adresi Bir IP adresini eşlemek için kullanılır.

Joker maske: İsteğe bağlı olarak kullanılan wilcard eşlemede bir IP adresindeki bitlerin değerlerini 0/1) kontrol eder.

Port numarası belirtme: İsteğe bağlı belirtme, port için bir dizi numaralara karar verir.

Protokol niteleme: İsteğe bağlı belirtme, protokol numaralarına daha fazla özellik tanımlar.

Logging (Kayıtlama): Logging anahtar kelimesi. Erişim liste girişlerinin eşlendiğinde paket bilgilerini hepsini kayıt altına alır.

Genişletilmiş ACL bildirimlerin için yazım formatı oldukça uzun olabilir ve çoğu kez terminal ekranını hepten kaplayabilir. Wilcard da komutlarda host ve anahtar sözcüklerinin kullanımında seçenekler içerir. Genişletilmiş ACL bildiriminin sonunda, opsiyonel TCP ya da UDP port numaralarının özelleştiği bir alandan kazanılan ilave bir kesinlik vardır.

Operatörler TCP ve UDP ile birlikte kaynak ve hedefi veya her ikisinin numara ve ismini açıkça belirtebilirsiniz. Yapılandırmada operatör kullandığınız takdirde eşlemede açıkça belirtmiş olursunuz. Operatörler yönlendiriciye port numaralarında veya numaralarda nasıl eşleme yapacağınızı söyler. Aşağıdaki tabloda operatörlerin açıklamalarını görebilirsiniz. Bu operatörler sadece TCP ve UDP bağlantılarda uygulanabilir. Diğerleri kullanmaz.

TCP ve UDP operatörleri

Genişletilmiş ACL konfigürasyonu;

Router(config)# access-list 100 permit udp any host 172.16.1.1 eq dns log

Router(config)# access-list 100 permit tcp 172.17.0.0 0.0.255.255 host 172.16.1.2 eq telnet log

Router(config)# access-list 100 deny ip any any log

Router(config)# interface ethernet 0

Router(config-if)# ip access-group 100 in

Bu örnekteki amaç ağdan gelen trafiği sınırlamaktır. Bir dahili DNS sunucusuna (172.16.1.1) herhangi bir kaynak cihaz tarafından gönderilen DNS sorgusuna izin verecektir. 0.0.0.0 wilcard kaldırılmış ve host anahtar kelimesi IP adresinin önüne konmuştur. Bu adımda diğer bir eşlemde log’dur. İkinci adımda 172.17.0.0/16 ağındaki herhangi bir cihaza hedef cihaz 172.16.1.2 ise izin verecektir. Aslında üçüncü adıma gerek yoktur çünkü önceki adımda bütün trafik eşlemesi kabul (permit) edilmediğinden düşecektir. Bununla birlikte ne düşürüldüğünü bilmek istiyorsanız, örnekte yapıldığı gibi, log parametresi ile yapılandırma yapmanız gerekmektedir. Yapılandırmanın en son kısmında ACL ethernet0 üzerinde sınırlama yapacaktır.

Örneğin 192.168.1.100 bilgisayarının 212.1.1.8 bilgisayarına 80. porttan erişmemesini, aynı bilgisayara 25. porttan erişebilmesini, diğer bilgisayarlar için herhangi bir kısıtlama olmamasını istiyoruz (Söz konusu portlar TCP’de çalışır). Bu durumda komut satırına;

Router(config)#access-list 101 deny tcp host 192.168.1.100 host 212.1.1.8 eq 80

Router(config)#access-list 101 permit tcp host 192.168.1.100 host 212.1.1.8 eq 25

Router(config)#access-list 101 permit ip any any

Router(config)# interface ethernet 0

Router(config-if)# ip access-group 101 in

yazılmalıdır.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir