Access-List’ler (erişim listeleri) ağ trafiğinin kontrolünü sağlar. Oluşturulan kurallar ile hangi trafiğin geçeceğinin, hangisinin geçemeyeceği gibi kontroller sağlanır.
Standart ACL’lelerde liste için 1-99 arası numara verilebilir. Standart access listlerde sadece kaynak IP adresine bakılır. (access-list 5 permit 192.168.1.0 0.0.0.255)
Genişletilmiş ACL’lerde liste için 100-199 arası numara verilebilir. Listede hem kaynak hem de hedef IP adresine bakılır. (access-list 111 permit tcp 192.168.1.0 0.0.0.255 any eq 80)
192.168.1.0 ağından herhangi bir 80 portuna (web portu) izin verir. TCP ve UDP için kullanılabilir.
Numaralı ACL’lerde kural içine başka şeyler eklemek için çalışan ACL önce durdurulup sonra eklenecek şeyler eklenir. Onun için güvenlik açığı oluşturur.
İsimli ACL kullanımı : ALC listesinde numara değil isim kullanılır.
ip access-list standart NO_ACCESS deny host 192.168.10.10 (192.168.10.10′ u engeller)
- Standart ACL’ler hedefe yakın olan cihazda yazılır.
- Extended ACL ise kaynağa yakın olan cihaza yazılır.
- Eğer ACL yazıldıysa tüm ağlar için yazılmalıdır. Bir ağ için engelleme veya izin için liste oluşturulduğunda, varsayılan olarak liste dışında olan tüm ağlar engel listesine takılır. Bu yüzden access list oluşturulduğunda tüm ağlar için de liste yapılmalıdır.
Standart Access List (Standart Erişim Listesi)
Yukarıdaki gibi bir ağımız olduğunu varsayalım. 192.168.1.0’lı ağdan sadece 192.168.1.5 IP numaralı bilgisayarın diğer ağdaki bilgisayara ulaşmasını istiyorum.
Öncelikle bilgisayarlar ve routerda gerekli ayarların yapılması gerek. Her iki ağ da aynı routera bağlı olduğu için, interfaceleri tanımlamak iki ağ arasında haberleşme kurulması sağlayacaktır. Herhangi bir routing yazılmasına gerek yok.
Router1 interface yapılandırması;
Router1(config)#interface gigabitEthernet 0/0
Router1(config-if)#ip address 192.168.1.1 255.255.255.0
Router1(config-if)#no shutdown
Router1(config-if)#exit
Router1(config)#interface gigabitEthernet 0/1
Router1(config-if)#ip address 192.168.2.1 255.255.255.0
Router1(config-if)#no shutdown
PC1 ve PC2’den herhangi bir problem olmadan ping atabilmem lazım.
Her iki bilgisayardan da problemsiz bir şekilde PC3’e eriştim. Şimdi PC1’in erişip PC3’ün erişemeyeceği şekilde yapılandırma yapacağız.
Gerekli ayarları routerda yapacağız.
Router1(config)#access-list 5 permit 192.168.1.5
Bu komut ile şunu yapmış oldum: 5 nolu bir liste oluşturdum ve bunda 192.168.1.5 adresinin izinli olduğunu belirttim. Liste numarasına 1-99 arasında istenilen numarayı verebiliriz.
Şimdi sadece 192.168.1.5 IP adresine sahip bilgisayarın erişim izninin olup, ağdaki diğer bilgisayarların erişimini engellemek istiyorum.
Router1(config)#access-list 6 deny 192.168.1.0 0.0.0.255
Bu komut ile şunu yapmış oldum: 192.168.1.0 ağındaki tüm hostların erişimini engelle. Bunu yapmak için ise 0.0.0.255 wildcard maskı ile yapmış oldum.
Yapılan ayarların router tarafından yorumlanması için ilgili arayüze access-listin tanımlanması gerek.
Verilen örnekte Router1’in gigabitEthernet 0/0 interfacesini kullanmamız gerecek.
Router1(config)#interface gigabitEthernet 0/0
Router1(config-if)#ip access-group 5 in (ACL 5’in giriş yönünde uygulanmasını seçtik. Eğer böyle yapmamış olsaydık hostlardan gelen paketler routerda işlenecekti ve sonra erişim/engelleme yapılacaktı. Bu da ekstra bir trafik oluşturacaktı. ACL’yi giriş interfacenini giriş yönünde uygulayarak ekstra trafiğin önüne geçmiş olduk.
Şimdi iki bilgisayardan da 192.168.2.5 bilgisayarına erişim var mı yok mu görelim.
ACL öncesi ve sonrasını kırmızı çizgi ile ayırdım. Çizginin üst tarafı ACL öncesini, alt tarafı ise ACL sonrasını gösteriyor.
PC1’e baktığımız zaman erişimde herhangi bir problem yok.
Pc2’ye baktığımız zaman ise ACL öncesi erişim sağlandığını, ACL sonrası ise erişimin sağlanamadığını görüyoruz.
NOT :Yapılan bu listede işlemler hiyerarşik düzende yorumlanır. Bu yüzden dikkatli bir şekilde listeyi hazırlamak gerekir. Ben önce 192.168.1.5 adresine izin verip sonra 192.168.1.0 ağındaki tüm hostları engellediğim için 192.168.1.5 hostu erişimde herhangi bir problem yaşamadı. Ama önce ağdaki tüm hostları engelleyip sonra 192.168.1.5 hostuna erişim izni vermiş olsaydım, 192.168.1.0 hostu da erişemeyecekti.
Extended Access List (Geliştirilmiş Erişim Listesi)
Bu kategorideki listeler numara olarak 100-199 arası numara alabilirler. Extended Access Listler, Standart Access Listlere göre göre daha esnek ve daha detaylı kontrol listesi oluşturmaya yarar. Standart ACL’lerde izin verme ya da engelleme işlemi tüm servisleri kapsıyordu. Ancak Extended ACL’lerde izin verilen ve engellenen servisler seçilebilir. Örneğin, bir hostun internete ulaşmasına izin verip FTP’ye ulaşmasını engelleyebiliriz. Bunu bir örnek ile yapalım.
Yukarıdaki gibi bir ağımız olsun. 192.168.2.10 IP adresine sahip bilgisayarın hem WEB hem de FTP servislerine erişmesine izin vereceğiz. Fakat, 192.168.2.11 IP adresine sahip bilgisayarın sadece WEB’e erişimine izin vereceğiz.
Router ve PC’lerdeki ayarlamalara değinmeyeceğim.
Şu anki durumda PC1 ve PC2, Server1’in açık olan tüm servislerine ulaşabilir.
Her iki bilgisayarda da FTP ve ping denemesi yaptım ve ikisinde de erişimde problem yaşamadım.
Router1(config)#access-list 150 permit tcp host 192.168.2.10 host 192.168.10.10 eq ftp
Accesss list 150 yazarak 150 numarayı vermiş oldum. Ardından hangi protokol ile bağlanacağımı seçtim (tcp)
Tek kaynak ve tak hedef olduğu için host komutu ile bunları belirttim.
eq (eşittir) yazarak servisi belirttim(FTP) . Burada ister servis ismi yazılarak istersek de servisin port numarası yazarak yapabiliriz.
Şimdi 192.168.2.0 ağındaki tüm FTP erişimi kapatacağım.
Router1(config)#access-list 150 deny tcp 192.168.2.0 0.0.0.255 host 192.168.10.10 eq 21 (21 yerine ftp yazabiliriz)
Bu yapılandırma ile 192.168.2.0 ağından hiçbir hostun 192.168.10.10 adresindeki FTP servisine bağlanmamasını sağlamış olduk. Tabii ilk önce 192.168.2.10 adresine izin verdiğimiz için o host bu kuraldan etkilenmeyecektir.
ACL yazdığımızda tüm servisler default olarak kapatılır. Bu yüzden şu an iki bilgisayar da (PC1’in FTP’ye ulaşabilmesi dışında) hiçbir servise ulaşamaz.
PC2 hostundan hiçbir servise erişemezken, PC1 hostumdan sadece FTP’ye erişebiliyorum.
Router1(config)#access-list 150 permit icmp any any
Bu komut ile ICMP(Internet Control Message Protocol)’ye tüm kaynaklar ve hedefler için izin vermiş olduk
Böylece tüm hostlar engel belirtilmediği sürece servis erişimleri sağlayabilecek.
Named Access List (İsimli Erişim Listesi) konusuna aşağıdaki bağlantıdan ulaşabilirsiniz.
acl kullanmak gerçekten de gerekli mi ? engelleme / izin verme işlemleri firewall ile de yapılmıyor mu?
Merhaba,
eğer ortamda firewall varsa ACL kullanmaya gerek yok ama yine de topolojinin durumuna göre FW’den önce ACL yapmak gerekebilir.
peki hocam yapımızda firewall da var. ama biz yinede ACL’de yaptık. Kural çakışması durumunda firewall daki kural mı ACL’deki kural mı geçerli ? Teşekkürler.
Hocam merhaba,
istemci ilk önce hangi cihaza geliyorsa ondaki kuraldan etkilenir.
Bu acl switchlerdede kullanılıyor orada ki kullanıma nedenini ve yöntemini açıklayabilir misiniz?