| Yazan: Hayrullah Kolukisaoglu,
Tarih: 30-09-2007 02:27
|
Okunma Sayısı : 1280  |
Beğenilme : 1 |
Merhaba arkadaslar. Bildiginiz gibi Cisco IOS Routerlar üzerinde paket filtreleme islemleri bir kaç farkli sekilde yapilabilmektedir. Bunlardan en çok bilinen ve kullanilan Access Contol Listeleridir diyebiliriz. Bu makalemizde Access Contol Listlerinin çalisma mantigi, çesitleri ve konfigürasyonu üzerinde bilgiler vermeye çalisacagiz. Makalemiz bir kaç bölümden olusacak. Daha sonraki bölümlerde Access Control Listelerinin gelismis özelliklerini inceleyecegiz.
Makale boyunca Access Control Listelerini kisaca ACL olarak adlandiracagim. ACL’leri kisaca Routera gelen veya giden trafigin Layer 3 (Kaynak ve Hedef Ip adresler) ve Layer 4 (Kaynak ve Hedef Transport protokolleri ve Port numaralari) bilgilerine bakarak, bizler tarafindan siniflandirilmasina ve gerekirse filtrelenmesine olanak saglana bir tooldur seklinde tanimlayabiliriz. Bu noktada ACL’leri iki asamada çalisir hale getirdigimizi söyleyebiliriz.
1. ACL satirlarinin olusturulmasi 2. Router interface’ine yön belirterek uygulanmasi
ACL Satirlari ifadesi üzerinde durmak gerekir. ACL’ler aslinda bir çok satirdan olusabilen bir tanimlamalar bütünüdür. Bu satirlar ile ilgili olarak ilk bilmemiz ve unutmamazi gereken nokta, satirlarinda Router tarafindan yukaridan asagiya kontrol ediliyor olmasidir. Dolayisiyla satirlar olusturulurken özelden genele dogru gidilmelidir.
Bir baska unutulmamasi gereken kuralda ACL satirlari olusturuldak sonra Implicit Deny kurali dedigimiz bir kuralin devreye girdigidir. Satirlardan hiç biriyle match etmeyen paketler deny olarak kabul edilir. Bunu Router tarafindan olusturulan görünmez bir ACL satiri olarak düsünebiliriz.
Interface’e uygulanmis bir ACL’i anlatirken kullandigimiz bir örnege bu makale içerisinde de yer verirsek bu konunun daha iyi anlasilacagini düsünüyorum.
Eline bir liste verdigimiz bir trafik polisinin, önünden geçen arabalari elindeki listeyi yukaridan asagiya kontrol ederek durdurmasini veya devam etmesine izin vermesini istiyoruz. Polisten istedigimiz elindeki listeye bakarak Toyota Marka arabalardan sadece siyah olanlarin geçmesini,diger renklerin geçmemesini, diger marka arabalardan ise bütün kirmizi arabalarin geçmesini, digerlerinin kalmasini istiyoruz. Trafik polisinin elindeki liste asagidaki gibi olsun;
1. Kirmizi arabalar geçsin 2. Toyota marka arabalar siyah arabalar geçsin 3. Hiçbir araba geçmesin
Trafik polisimizin önüne Toyota Marka kirmizi bir araba geldigini düsünelim. Bu durumda polisimiz elindeki listeyi kontrol edecek ve ilk satirda “ Kirmizi arabalar geçsin” gibi bir kural tanimli oldugu için bu arabanin geçmesine izin verecek ve devam eden satirlara artik kararini verdigi için bakmayacaktir. Burda hata polisin degil, kurallarin tanimli oldugu listeyi polisin eline veren kisinindir diyebiliriz. Aslinda bu liste su sekilde düzenlenmeliydi.
1. Siyah Toyota marka arabalar geçsin 2. Toyota marka arabalar geçmesin 3. Kirmizi arabalar geçsin 4. Hiçbir araba geçmesin
Simdi ayni araba geldiginde ilk satira bakicak ve elindeki listede tanimli olmadigi için ikinci satira geçecek, ikinci satirda Toyota marka arabalar geçmesin dedigi için bu arabanin geçmesini izin vermeyecektir. Toyota disinda kirmizi renkli bir araba geldiginde ilk iki satirda tam olrak match etme olmadigi için polisimiz üçüncü satira bakacak ve geçmesine izin verecektir. Siyah Toyota veya Kirmizi olmayan bir araba geldiginde ise arabanin geçmesine izin verilmeyecektir.
Buradaki Polis Router, elindeki liste ise bizim olusturdugumuz ACL’dir. ACL’ler iki ayri sekilde siniflandirilabilirler.
1. Standart ACL 2. Extended ACL
Ya da;
1. Isimli ACL 2. Numarali ACL
Ilk önce numarali ACL’ler üzerinde durmaya çalisacagiz. Routerlar üzerinde konfigürasyon yapilirken bir ACL’in standart yada extended oldugu bilgisi numara ile belirlenir. Bu numaralar asagidaki gibidir;

Standart ACL’lerde sadace kaynak ip adreslerine göre kriterler belirlenebilirken Extended ACL’lerde kaynak – hedef ip adresleri, kaynak-hedef port numaralari ve Layer 3 – 4’te kullanilan protokollere göre kriterler belirlenebilir. ACL’lerin nasil olusturuldugu ile ilgili olarak Router üzerinden alacagim Screen Shotlar ile açiklamalar yapmaya çalisacagim. Bu sayede daha iyi anlasilacagini düsünüyorum.

Router Global Configuration modunda access-list komutu ile ACL konfigürasyonu yapilabilir. Burada numara belirterek ACL’in standartmi yoksa extended mi oldugunu belirleriz. Ilk önce standart ACL konfigürasyonuna bakacagiz.

Standar ACL için 10 numarayi seçip devam ettigimizde karsimiz iki opsiyon çikiyor; Permit ve Deny. Buradaki Remark seçenegi ACL’ler için bazi açiklamalar girmemizi saglayan bir opsiyondur. örnek olmasi açisinda biz Permit yazip devam ediyoruz. Standar ACL içerisinde sadece kaynak ip adresi belirlendigini daha önce söylemistik. Burada tek bir ip adresi söz konusu ise “ host 192.168.1.2 ” dibi bir ifade kullanilabilecegi gibi bütün ip adreslerini seçmek istiyorsak “ any ” kullanabiliriz.

Ben burada bütün bir networkü belirlemek için yukaridaki gibi bir ifade kullandim. Buradaki Wild Card Mask Subnet Maskin tam tersi gibidir diyebiliriz. Ama açiklamak gerekirse Routerin, binary durumda ip adresindeki 0’a karsilik gelen kisimlarin mutlaka kontrol etmesini, 1’e gelen kisimlarin ise dikkate alinmamasini saglar. Bu örnegi asagidaki gibi degistirerek Show komutlarini incelemek istiyorum.


Show access-lists komutu ile ACL’imizi görüntüledigimizde satirlarin basinda 10 ve 20 seklinde numaralar görüyoruz. Bunlar sira numarasi olarak düsünülebilir. Router tarafindan otomatik olarak belirlenir ve numarali ACL’lerde bizler tarafindan degistirilemez. Isimli ACL’lerde ise bazi müdahalelerde bulunabiliriz. Buna daha sonra deginecegiz.
Aslinda burada sunuda tekrar hatirlatmakta fayda var. Burada görünmeyen bir üçüncü satir oldugunuda düsünebiliriz ki bu satirda “30 deny any” seklindedir ve Router tarafindan olusturulmustur.
Router üzerinde ACL’lerin çalismasi için bir ikinci isleminde ACL’i belirleyecegimiz bir interface ile bagdastirmaktir. Buda asagidaki sekilde yapilabilir;

In ve Out. ACL uygulamalarinda en çok karistirilan noktalardan biridir. Burada referans noktamiz Router ve paketlerin kaynak ip adresleridir. Routera gelen ip paketleri için “in”, Routerdan ayrilan ip paketleri için “out” kullanilacaktir.

ACL interface’e uygulandiktan sonra Show access-lists komutu ile tekrar baktigimizda ACL satirlarimiz match eden paketleride görebiliyoruz.

Bu durumda sahsi bir önerimi paylasmak isterim. Roiuter tarafindan zaten olusturulan “deny any” satirini hatirliyorsunuzdur. Burada eger bu satirida biz eklersek, match eden paket sayilarinida görme sansisa sahip oluruz.

ACL’i kaldirmak oldukça kolaydir. “ No access-list 10 ” dedigimizde bütün satirlariyla birlikte kalkar. Yani satir satir kaldirma sansimiz, dolayisiyla araya satir ekleme sansimiz yoktur. Isimli ACL’lerde ise satirlari tek baslarina kaldirabilir yada araya satir ekleyebiliriz.
Birçok satirdan olusmus numarali bir ACL üzerinde degisiklik yapmak için yapilmasi gereken önce ACL’i bir notepad’a kopyalamak, degisiklikleri burada yapip Router’a geri göndermek olmalidir. Aksi takdirde bütün satirlarin yeniden yazilmasi gerekecektir.
(Not: Standar ACL’ler mümkün oldugu kadar hedef ip adresine, Extended ACL’ler mükün oldugu kadar kaynak ip adresine yakin interfacelere uygulanmalidir.)
Simdi Extended bir ACL’i ayni sekilde adim adim olusturarak konfigürasyonu görelim. Burada testlerimizi asagidaki topoloji üzerinden yapacagiz;

R1 Router’i benim ACL olusturacagim ve testleri yapacagim Router, R2 Router’i ise hedef Routerimiz olup HTTP Server servisi açik ve erisilebilir durumda.

Ilk olarak bulundugum bilgisayar üzerinde R2 Routerina HTTP ile ulasilmasini engelleyecegim. Bu bilgisayarin ip adresi disinda kalanlar için izin verecegim.

Deny’dan sonra soru isareti koydugumuzda hangi protokolleri kullanabilecegimizi görebiliyoruz. Bizim buradaki amacimi HTTP trafigi ile ilgili kriterler belirlemek oldugu için TCP’yi seçecegiz.

Kaynak ip adresini belirledikten sonra hedef ip adresini belirleyebiliriz ya da kaynak port numarasi belirleyebiliriz.
Port numaralari ile çalisirken bir çok opsiyonumuz oldugunuda görebiliyoruz. "Eq" ile bizim belirttigimiz port numarasina esit olan, "neq" esit olmayan, "lt" ile daha küçük port numaralrina, "gt" ile daha büyük port numaralarina sahip olan paketleri seçebiliriz. Ardisil olan port numaralari için ise "range" opsiyonunu kullanmamiz mümkün. Fakat bilgisayarlar hedef herhangi bir porta giderken kendi çikis numaralarini random olarak seçerler. Dolayisiyla biz burada kaynak port yerine sadece hedef portu hedef ip adresinden sonra belirleyecegiz. 
Simdi bunun disinda kalan ip adreslerini izin verip ACL’imizi Router interfaceine uygulayacagiz.

Show komutu ile akan trafikten match edenleri görebiliriz.

Son olarak isimli ACL’ler üzerinde duracagiz. Yine adim adim bu konfigürasyonlarin nasil yapilacagini inceleyecegiz. Numarali standart ve extended ACL konfigürasyonundan sonra isimli ACL’lerin anlasilmasi çok daha kolay olacaktir.
Az önce numarali extended ACL ile yaptigimiz HTTP trafigi filtrelenmesini isimli ACL ile yapmaya çalisarak konfigürasyonu anlamaya çalisacagiz. Isimli ACL’ler “ ip access-list ” komutu ile baslar.

IP access-list komutundan sonra ACL’in standart mi yoksa extended mi oldugunu yazarak belirliyoruz ve ACL’ bir isim atiyoruz. Burada öneri olarak ACL yada isim atamasi yagtigimiz diger konfigürasyonlarda isimleri büyük harfle yazmak gerektigini söyleyebiliriz. Zira bu sekilde yazdigimiz isimleri konfigürasyonu incelerken daha rahat algilayabiliriz.

Dikkat ederseniz bundan sonraki kisim numarali ACL’ler ile ayni. Burada ek olarak ayni ip adresinden çikan ICMP paketlerinide yasaklayip Show access-list konutunu inceledigimizde asagidaki gibi bilgileri görebiliyoruz.

Burada da 10,20,30 gibi sira numaralarini görebiliyoruz. Isimli ACL’ler ile bu numaralar ile ilgili konfigürasyonlar yapabilecegimizi söylemistim. örnegin ayni ip adresinden çikan telnet isteklerinide kapatmak istersek asagidaki gibi bir ekleme yapabiliriz.

Istersen 10’ar 10’ar artan sira numaralarinin bu durumunu daha fazla esneklik katmak amacaiyla degistirebiliriz.

Interface’e uygulanmasi numarali ACL’ler ile ayni sekildedir.

Telnet trafiginin engellenmesi için özel bir ACL kullaniminda da bahsetmekte fayda var. Bir ACL vty line’ina access-class komutu ile uygulandiginda o ACL’de belirlenen ip adresleri Routera telnet ile baglanabilir.

ACL’ler ile ilgili makale içerisinde de degindigimiz önemli noktalar üzerinden bir kere daha geçerek makalemizi burada sonlandiracagiz.
1. Implicit Deny kurali; Bir ACL olusturuldugunda, bu ACL satirlarindan hiçbiriyle match etmeyen paketler Deny olarak kabul edilir. 2. ACL satirlari yukaridan asagiya dogru incelenir. 3. Daha spesifik olan ACL satirlari daha yukarida olmalidir. 4. ACL’in interface’e uygulanmasi noktasinda yön (in ya da out) dikkat ile belirlenmelidir. 5. Numarali ACL’ler üzerinde düzenleme direkt olarak yapilamaz. Ancak ACL’i tamamiyla kaldirip yeniden yazarak degisiklik yapabiliriz. Bu sebep ile ACL2in notepad’e alinmasi faydali olabilir. 6. Extenden ACL’ler mümkün oldugu kadar kaynaga yakin olmalidir. 7. Standar ACL’ler mümkün oldugu kadar hedefe yakin olmalidir.
Evet arkadaslar bu makalemizde ACL’ler üzerinde durmaya çalistik. Router üzerinde paket filtrelemede kullandigimiz ACL’lerin genel olarak nasil konfigüre edildigini adim adim ögrendigimiz bu makalenin devaminda ACL’lerin gelismis özelliklerini incelemeye baslayacagiz. Bu noktada bu makalenin sonrakiler için iyi bir hazirlik asamasi oldugunu düsünüyorum.
Herkese iyi çalismalar.
Hayrullah Kolukisaoglu
İlgili Diğer Makaleler
Cisco IOS Paket Filtreleme 2 Cisco IOS Paket Filtreleme 3
|
ACL
Yazan:: Hakan () Tarih: 22-02-2008 13:16