- Cisco Access Control Lists -
Günümüz IT dünyasında, güvenliğin artık ne kadar önemli bir konu haline geldiği artık tartışılmaz bir konudur.Bir kaç sene öncesine kadar sistemlerin erişilebilirliği ve çalışmasının devamlılığı birinci konu iken bu konuda büyük adımlar atılmış,internetin ve özelliklede broadband’in yaygınlaşmasıyla da kurumlar dışarıdan gelen saldırılarla mücadele etmek ve kendilerini korumak gibi ağır ve sorumluluk isteyen bir meseleyle baş etmek durumdadırlar. Ve tabii ki Bilgi İşlem departmanının cefakar çalışanları, siz başta olmak üzere bu meselelerle boğuşursunuz .Aslında networkünüz hem içeriden hem de dışarıdan tehdit altındadır
Aslında networkler hem içeriden hemde dışarıdan tehdit altındadır. Dış networklerden gelen kötü niyetli birisi, eğer biraz becerikli ve şanslı ise sistemlerinize sızması, bilgilerinizi çalması ya da zarar vermesi hiçte zor değildir. Öte yandan meraklı ve tedbirsiz kullanıcılarınızın, ulaşmaması gereken kaynaklara ulaşması, kullanmaması gereken protokolleri ve programları (örneğin msn, kazaa gibi) kullanması, sistemlerinize isteyerek ya da istemeden zarar verebilir. Olayın bir diğer yönüde gerekli yada gereksiz her tür trafiğin routerlarınız üzerinden geçerek, zaten sınırlı olan bandwidthinizi dibe indirmesidir. Peki tüm bu sorunların altından nasıl kalkacağız? Cevap basit: Access Control List’lerle…
Access Control List ya da Türkçesiyle erişim denetimi listeleri, ağınızdaki network trafiğinin gidişatını ve biçimini yönetmek için kullanılan bir Cisco özelliğidir. Örneğin 192.168.3.2 ip adresli bir host, 172.16.2.2 ip adresine sahip bir servera ulaşamasın istiyoruz. Ya da 10.10.10.0/24 networkünden hiçbir host, 192.16.4.2 ip adresli FTP sunucusuna erişerek FTP hizmetinden yararlanamasın gibi kuralları Cisco ACLler ile belirleyebiliyoruz.
ACL’ler spesifik bir IP, subnet ya da tüm networkün başka bir IP, subnet veya belli bir IP ye erişimini kontrol eder. Bunun yanı sıra ftp, http, smtp gibi network hizmetlerine erişimide denetleyebilir. Aslında ACLler bir çeşit firewalldur desek pekde yanlış olmaz.
ACL ler 2 ana kategori altında 4 e ayrılabilir;
- Standard ve Extended ACL’ler.
- Numbered ve Named ACL’ler
Standard ACL’ler size sınırlı seviyede denetim sağlama izni tanır. Standard ACL ler bir IP adresi, belirli bir blol veya bütün bir subnetin, networkteki hangi IPler yada subnetlere erişeceğinin denetimini yapabilir. İzin verebileceğiniz subnet A,B,C sınıfı IP networkleri gibi subnetmask ı sabit yada VLSM, CIDR gibi yöntemlerle alt ağlara parçalanmış bir subnette olabilir.
Extended ACL ise standard ACL in yapabildiği şeylere ek olarak, kullanacağınız yada yasaklayacağınız protokolleri belirlemenize olanak tanır. Bunu yaparken port numarası ya da protokolün adını kullanmanıza olanak sağlayabilir. Örnek vermek gerekirse, 80 numaralı portu tanımlayarak http hizmetini tanımlamış oluruz.
Ayrıca birde “named access-list” ler vardır. Named listlerin, standard ve extended listlere göre bir takım avantajları vardır. Bunlardan birincisi standard listlerdeki 99, extended listlerdeki 100′den fazla access list oluşturabilme sınırını aşar. Named listler, standard ve extended listlerdeki gibi tüm kuralı değilde, kural içinde spesifik satırların silinmesine olanak tanır. Bir diğer farkta named listlerin global bir komut olmasıdır.
Named listlerin kullanımı diğer tip ACL lerle hemen hemen aynıdır. Aslında named listler, access list kullanımını kolaylaştırmak için tanımlanmıştır desek daha doğru demiş oluruz. Bunu bir karşılaştırma ile görebilirsiniz;
access-list 100 deny tcp 10.0.0.0 0.255.255.255 162.4.3.2 0.0.255.255 eq 80
demek named access listlerin dilinde ;
ip access-list extended deny 10.0.0.0 0.255.255.255 host 162.4.3.2 eq www
demekle aynı şeydir…
NOT: Hangi tip ACL i kullanırsanız kullanın, gerçekleştirilebilecek 2 eylem vardır ; Permit ve Deny…
ACL’ler aslında birer kurallar dizisidir. ACL yazarken bir kuralın permit mi yoksa deny kuralımı olduğunu daha ilk satırlarda belirleriz. Zaten birazdan ACL yazarken bunu daha iyi anlayacaksınız. ACL, firewall mantığına benzer bir şekilde çalışır.
WILDCARD MASKLER
ACLler ile çalışırken, belirlediğiniz kuralların hangi ölçekte etkili olacağını belirlemeniz gerekir. Bu ölçeği belirlemek için “Wildcard Mask” adı verilen özel maskeler kullanılır. Wildcard masklar subnet masklara benzerler.
Wildcardların subnet maskların tam tersi olacak biçimde yazılır. Subnet masklardaki 1′lerin yerini 0′lar, 0′ların yerini ise 1′ler alır.
Örneğin;
Standard 255.255.255.0 C class bir subnet maskın, wildcard karşılığı 0.0.0.255 dir.
255.0.0.0 A class bir subnet maskın, wilcard karşılığı 0.255.255.255dir.
Yukarıda bahsedildiği gibi mantık, subnet bitlerinin tersinin alınmasıdır. Konuyu biraz daha açarsak: 11111111.11111111.00000000.00000000 binary sayılarının karşılığı 255.255.0.0 dır. Bunu wildcarda çevirmek için 1′ler ve 0′ları tersine çevirelim, 00000000.00000000.11111111.11111111 = 0.0.255.255 e denk gelir.
Kolay değilmi? Şimdi daha karışık bir örnek verelim:
255.255.255.240 subnet maskının, wildcard karşılığını bulalım. İşe ilk önce subnet maskın binary karşılığını bularak başlayalım;
11111111.11111111.11111111.11110000 = 255.255.255.240 Bitleri tersine çevirip wildcard karşılığını bulalım:
00000000.00000000.00000000.00001111 = 0.0.0.15 = Wildcard mask. Başka bir örnek verelim.
255.255.128.0 subnetmaskının wildcard karşılığını bulalım. Yine işe önce subnetmaskın binary karşılığını bularak başlayalım:
11111111.11111111.1000000.00000000 = 255.255.128.0. Bitleri tersine çevirirsek :
00000000.00000000.01111111.11111111 = 0.0.127.255 = Wildcard mask.. Evet gerçektende basit değilmi ?
Özel Wildcard Masklar
Yukarıda yazdığımız ve örneklerle çoğaltabileceğimiz wildcard masklar dışında iki wildcard türü vardır. Bunlar 0.0.0.0 ve 255.255.255.255 dir.
0.0.0.0 : Ağdaki sadece bir IP adresini belirtmek için kullanılır. Örneğin, 192.168.20.21 IP adresli host gibi. Named listlerde “host” olarak ifade edilir.
255.255.255.255 : Ne olursa olsun tüm hostlar için geçerli olsun demektir. Routerınıza gelen yada routerınızdan giden tüm trafiği etkiler. Genelde ACLlerde son kural olarak yazılır. Named listlerde “any” olarak ifade edilir.
Aşağıdaki liste ile bir dizi hazır Wildcard Mask örneği listelenmektedir. Böylelikle sık kullanılan Subnet maskler için Wildcard mask karşılığını bulabileceksiniz.
| Subnet Mask | Wildcard Mask |
| 255.0.0.0 | 0.0.0.255 |
| 255.255.0.0 | 0.0.255.255 |
| 255.255.255.0 | 0.0.0.255 |
| 255.255.255.128 | 0.0.0.127 |
| 255.255.255.64 | 0.0.0.191 |
| 255.255.240.0 | 0.0.15.255 |
| 255.255.255.192 | 0.0.0.63 |
Bu kadar teoriden sonra artık kurallarımızı oluşturmaya başlayalım, değilmi??
ACL kurallarını ve bunları uygulamayı öğrenmek için, gerçekte hayatta karşınıza çıkması muhtemel bir senaryo seçmeye özen gösterdim. Senaryomuzda networkümüzdeki SQL servera dışarıdan erişimi yasaklayacağız, web, ftp serverlara trafiği kontrol edecek, telnet portunu kapatacağız. İlk önce topolojimizi bir gözden geçirelim ;
Network 2 departmandan oluşuyor: İnsan kaynakları ve Muhasebe. Biri Web server diğeri SQL server olmak üzere iki serverımız var. Network subnetlenerek 2 parçaya ayrılmış ve bu iki departman ayrı Vlanlara üye olsun. Vlanlar Cisco Catalyst 2950 switch üzerinde ve bu switchte Cisco 2600 serisi bir routerın fast ethernet portuna bağlı. Routerda Serial interface’den Frame Relay ile internete ulaşsın (Şekil 1).

Şekil 1 – ACL kurallarını uygulayacağımız networkün genel topolojisi.
Senaryo 1: Firmamızın insan kaynakları departmanı, sadece lokaldeki ve internetteki web sayfalarını görüntüleyebilmesi ve e-posta alıp göndermesini, bunun dışındaki trafiğin akışını engellemek istiyoruz.
Muhasebe departmanımız için ise lokal ve internetteki web sayfalarını görüntülemesi, Muhasebe uygulamalarını çalıştırmak için SQL servera bağlanması yeterli. Bunun dışında tüm trafik engellenmeli.
Router>enable
Router>password:*******
Router#config t
Router(config)#access-list 100 permit tcp 192.168.1.128 0.0.0.127 any eq 80
Router(config)#access-list 100 permit tcp 192.168.1.128 0.0.0.127 any eq 1433
Router(config)#access-list 100 permit tcp 192.168.1.0 0.0.0.127 any eq 80
Router(config)#access-list 100 permit tcp 192.168.1.0 0.0.0.127 any eq 110
Router(config)#access-list 100 permit tcp 192.168.1.0 0.0.0.127 any eq 25
Router(config)#access-list 100 deny ip any any
Böylelikle ACL i oluşturduk. Fakat ACL yazmak tek başına yeterli değildir. ACLi router üzerindeki doğru interfacelere uygulamak gereklidir. Local bağlantılarımız Fast Ethernet interface fa0/0 ve remote bağlantılarda serial 0/0 üzerinden sağlandığından, bunu interfacelere tek tek uygulamamız gerekiyor.Yapmamız gereken şey basit:
Router(config)#int fa0/0
Router(config-if)#ip access-group 100 in
Router(config-if)#exit
Router#copy running-config startup-config
Yukarıdaki komutlada kurallarımızı ve router konfigürasyonumuzu kaydederiz. İşte bu kadar basit! Yoksa karışık mı geldi? İsterseniz daha basit birşeyler yapalım:
Görevler: Muhasebe departmanının dış dünyayla ilişkisini tamamen keselim!
Router(config)#access-list 1 deny 192.168.1.0 0.0.0.127
Router(config)#int fa0/0
Router(config-if)#ip access-group 1 in
Router(config-if)#end
Router#copy running-config startup-config
Artık muhasebe departmanı netwokünde kimse routerdan bir yere çıkış yapamayacak.
Burada kullanılan komutları ve ek parametreleri tek tek inceleyelim;
Access-list (access list oluşturmak için kulandığımız komut)
1|99 (standard access listler için kullanılan list aralığı)
100|199 (extended access listler için kullanılan aralık)
deny|permit (Bu kuralın bir permit mi yoksa deny kuralı mı olacağına karar vermemiz gerekir)
192.168.1.1 (kaynak IP adresi/network)
0.0.0.255 (kaynak wildcardmask)
172.16.0.0 (hedef Network/IP)
0.0.255.255 (hedef wildcardmask)
eq ( Eşitlik)
1-65535 (eşitlikte gösterilen yasaklanacak yada izin verilecek olan port)
Bazı Önemli noktalar:
- Standard ve extended IP listlerin ayrıca extended aralıkları vardır, bunlar standard IP list için extended aralık 1300-1999, extended IP listler için extended aralık 2000-2699 arasıdır.
- Hedef eğer 0.0.0.0 yani tüm aralığı kapsıyor ise “any” ifadesi kullanılabilir. 255.255.255.255 yani bir host u ifade ediyorsa “host” ifadesi kullanılabilir.
- Port numarası yerine http, www, telnet, icmp protokol isimleri de kullanılabilir.
Şimdi isterseniz daha karmaşık bir örnek üzerinde çalışalım. İlk önce ağ topolojimizi gözden geçirelim:

Şekil-2 ACL imizi uygulayacağımız network topolojisi
Görevler: Görevimiz ise bu sefer 10.1.1.0/24 networkündeki Bilgi Teknolojileri departmanı çalışanlarını, lokal ve remote olarak her türlü protokole ve erişim sahip olacak, muhasebe departmanı sadece SQL servera erişebilecek, Insan Kaynakları ise WWW, FTP, antibiotics online POP3 ve SMTP hizmetlerini kullanabilecek, SQL e yasaklı olacak şekilde bir ACL oluşturmak. İlk önce router1e konsoldan bağlanarak işe başlayalım.
Router1>enable
Router1>password: ******
Route1r#configure terminal
Router1(config)#access-list 102 permit tcp 192.168.1.0 0.0.0.127 any eq 21
Router1(config)#access-list 102 permit tcp 192.168.1.0 0.0.0.127 any eq 25
Router1(config)#access-list 102 permit tcp 192.168.1.0 0.0.0.127 any eq 80
Router1(config)#access-list 102 permit tcp 192.168.1.0 0.0.0.127 any eq 110
Router1(config)#access-list 102 permit tcp 192.168.1.128 0.0.0.127 host 192.168.1.11 eq 1433
Router1(config)#access-list 102 deny ip any any
Router1(config)#int fa0/0
Router1(config-if#)ip access-group 102 in
Router1(config-if)#exit
Router1#copy running-config startup-config
Router2 deki konfigürasyon ise;
Router2(config)#access-list 103 permit ip any any
Router2(config)#int fa0/1
Router2(config-if)#ip access-group 103 in
Router2(config-if)#exit
Router2#copy running-config startup-config
Şeklinde olmalıdır
NOT: ACLlerin yerleşimi konusunda bir kısıtlama olmamakla beraber Cisco, Extended ACLleri kaynağa yakın yerleştirmenizi önerir. Böylelikle gereksiz trafik ağ üzerinde dolaşmayacak, bandwidth daha efektif kullanılacak ve daha güvenli bir ağ ortamı sağlanacaktır.
İşte bitti…
Artık departmanlarımız arası trafik daha güvenli ve gereksiz trafikten arındırılmış durumda..
En son olarak Access listleri silmek ve görüntülemek için kullanılan komutları inceleyelim.
no access-list 102 : 102 numaralı extended acl i kaldırır.
no ip access-group 102 : belirlenen interfaceden 102 numaralı acl i kaldırır.
show ip access-lists : tüm acl leri görüntüler.
show ip interfaces e0: e0 interface indeki acl leri görüntüler.
Özetle
Bu yazımda sizlere elimden geldiğince Cisco ACLlerden bahsetmeye çalıştım. Cisco ACLler, networkünüzün IP trafiğini biçimlendirmek, gereksiz trafiği engellemek, gereksiz protokollerin çalışmasını engelleyerek güvenli bir ağ iletişimi sağlamak ve band genişliğinizi mümkün olduğunca efektif kullanmanıza olanak veren bir Cisco özelliğidir. Hem yerel ağınızın erişim denetimini hemde uzak ağlardan size gelen trafiğin biçimini ACLler ile belirleyebilirsiniz. Bir diğer makalemde görüşene kadar hepinize iyi günler dilerim.
Özgür KOLUKISA
MCSE + CCNA
