ASA, cisco, güvenlik, IOS, ipucu, network

Cisco ASA Güvenlik Duvarı Üzerinde Erişim Kontrol Listesi (ACL)

Cisco ASA Güvenlik Duvarı Üzerinde Erişim Kontrol Listesi (ACL)

 

1. Genel Bakış

 

Erişim Kontrol Listesi (ACL), Cisco ASA’ın temel özelliklerinden biridir. Cisco ASA güvenlik duvarınız üzerinden ağ trafik akışını filtrelemek ve belirli bir trafiğin ağınıza giriş veya çıkışını önler.

Bu yazıda, giren ve çıkan trafiği denetim altında tutmanız ve ağınızı korumanız için erişim kontrol listesini (ACL) nasıl yapılandıracağınız anlatılacaktır.

2. Başlarken

 

a. GNS3 VM üzerinde Cisco ASA çalıştırdığınızı ve

b. Cisco ASA’da güvenlik seviyeleri hakkında bilginiz olduğunu varsayıyoruz.

 

3. (ACL) Erişim Kontrol Listesi Genel Kavramı

 

Erişim Kontrol Listesi (ACL), bir kaynaktan gelerek bir hedefe doğru giden trafiğe izin vermek veya bunları engellemek için kullanılır. Bu trafik, Cisco ASA cihazın giriş ve çıkış arayüzlerinde olur. ACL’yi bir arayüze uygularken, cihaza “In” giriş yönünde mi, yoksa “Out” çıkış yönünde mi olup olmadığını seçmemiz gerekir. “In” veya “Out” terimlerinin anlaşılması, Cisco ASA firewall cihazında erişim kontrol listesini doğru bir biçimde çalıştırabilmek için gerçekten önemlidir.

İki noktayı hatırlamamız gerekiyor:

  • In” arayüze giren trafiği anlatır.
  • Out” arayüzden çıkan trafiği anlatır.

 

 

Erişim kontrol listesi (ACL) herhangi bir arayüzde uygulandığında, uygulanan ACL’de izin verildiği belirtilmedikçe, tüm trafik engellenir. Dolayısıyla, yüksek güvenlik seviyesi olan arayüzden, düşük güvenlik seviyeli arayüze erişemezsiniz.

Erişim kontrol listesinin ifade sıralaması çok önemlidir. Cisco ASA, her erişim kontrol listesini yukarıdan aşağıya okur ve trafiğe izin verilip verilmeyeceğine karar verir.

İyi bir deneyim kazanana kadar güvenlik seviyesi düşük olan arayüzde uygulamanız ya da hedef arayüze yakın bir noktada uygulamanız yerinde olacaktır.

4. (ACL) Erişim Kontrol Listesi Komut Sözdizimi

 

Erişim kontrol listesi oluşturmak için aşağıda komut söz diziminden bahsedilmiştir.

 

access-list access_list_name extended {deny | permit} {tcp | udp } source-IP destination-IP destination-port.

  • access_list_name: Erişim kontrol listesini tanımlamak için verilen ad. Bu ad, erişim kontrol listesini bir arayüze uygularken kullanılır.
  • source-IP: Trafiği oluşturan IP adresi veya ağ.
  • destination-IP: Kaynak IP adresinin ulaşacağı IP adresi ya da ağ
  • destination-port: Kaynak IP adresinin erişeceği port numarası

Örneğin: 10.10.10.2 IP adresinden, 10.10.20.2 IP adresine SSH ile erişim sağlanmasına izin veren  “inside-access-dmz” isimli bir erişim listesi oluşturalım.

 

access-list inside-access-dmz extended permit tcp host 10.10.10.2 host 10.10.20.2 eq ssh

5. (ACL) Erişim Kontrol Listesi Adımları

Aşağıdaki şemada erişim kontrol listesinin(ACL) çalışma adımları gösterilmiştir.

 

 

Adım1: Trafiğin bir arayüze giriş mi, çıkış mı olduğuna karar verilir.

Adım2: “In” veya “Out” olduğuna karar verildikten sonra, artık kaynak ve hedef adresin nerede olduğunu bilmeniz gereklidir.

Adım3: Eğer giriş yönünde uygulanacağına karar verilirse, erişim kontrol listesini “In” olarak bir arayüze uygularız. Çıkış yönünde uygulanacağına karar verilirse, erişim kontrol listesini “Out” olarak bir arayüze uygularız.

Bir arayüze bir erişim kontrol listesi(ACL) uygulamak için “access-group” komutunu kullanıyoruz ve aşağıda bunun örneği bulunmakta.

 

access-group access_list_name {in | out} interface interface_name

 

  • access_list_name: Uygulamak istediğini erişim kontrol listesinin adı.
  • interface_name: Erişim kontrol listesinin uygulanacağı arayüzün adı.

 

Örnek: “inside-access-dmz” isimli erişim kontrol listesini  “dmz” arayüzünden “Out” yönünde uygulayalım.

 

access-group inside-access-dmz out interface dmz

6. (ACL) Erişim Kontrol Listesi Örneği

 

Cisco ASA Güvenlik duvarı cihazımızı test etmek için GNS üzerinde yukarıda bahsettiğimiz lab’ı kurmaya çalışalım.

Senaryomuzda iki ayrı ağ var, biri 10.10.10.0/24 olan iç ağ ve diğeri de 10.10.20.0/24 olan “dmz” (DeMilitarized Zone- silahlardan arındırılmış bölge). R2, Telnet, SSH, HTTP ve HTTPS servislerinin çalıştığı sunucuların olduğu bölge, R1 ise ona ulaşmaya çalışan bilgisayarın olduğu ağ. Şimdi R1 ağının R2 ağındaki her bir servise ulaşabildiği bir erişim kontrol listesi yazalım.

 

 

Erişim kontrol listesi testine başlamadan önce cihazımızı aşağıdaki gibi yapılandıralım. R1 cihazında IP yapılandırmasını yapalım.

 

#int f0/0
   no sh
  ip add 10.10.10.2 255.255.255.0
  ip route 0.0.0.0 0.0.0.0 10.10.10.1

 

Cisco ASA cihazımızda her iki arayüze IP adresi ataması yaptıktan sonra, “inside” yani iç ağımızda güvenlik seviyesi,  cihaz tarafından 100 değeri ile otomatik olarak belirlenmiş olur. “DMZ” arayüzünde bu değeri bizim 50 olarak belirlememiz ve ayrıca global politikayı da icmp ve ping’e izin verecek şekilde yapılandırmamız gerekiyor.

 

# int g0/0
    no sh
    ip add 10.10.10.1 255.255.255.0
    nameif inside
# int g0/1
    no sh
    ip add 10.10.20.1 255.255.255.0
    nameif dmz
    security-level 50
# policy-map global_policy
   class inspection_default
     inspect icmp
     inspect icmp error

 

R2’de IP adresini ve varsayılan ağ geçidini yapılandıralım.

 

#int f0/0
   no sh
   ip add 10.10.20.2 255.255.255.0
   ip route 0.0.0.0 0.0.0.0 10.10.20.1

 

Telnet erişimini yapılandırın, böylece 23 portuna erişilebilir.

 

#username netadmin privilege 15 secret 111
#enable secret 222
#line vty 0 15
  login local
#aaa new-model

 

SSH erişimini yapılandırın, böylece 22 portuna erişilebilir.

 

#ip domain-name www.tanergunal.com.tr
#crypto key generate rsa
#ip ssh version 2

 

HTTP erişimini yapılandırın, böylece 80 portuna erişilebilir.

 

#ip http server

 

HTTPS erişimini yapılandırın, böylece 443 portuna erişilebilir.

 

#ip http secure-serve

 

R1’den R2 üzerindeki tüm servislere erişim sağlayabiliyoruz, çünkü “inside” arayüzündeki güvenlik seviyesi, “dmz” arayüzünden daha yüksek.

R1’den R2’yi pingleyelim. Ping sonucu başarılı olacaktır.

 

 

Şimdi 23 ve 22 portlarında telnet deneyelim. R2’de 23 ve 22’nin açık olduğunu görüyoruz.

 

 

80 ve 443 portlarında telnet deneyelim. R2’de 80 ve 443’ün açık olduğunu görüyoruz.

 

 

Şimdi, yukarıda bahsedilen teorimizi test etmek için bir erişim listesi oluşturalım. Aşağıdaki komutlarda, R1’den R2’ye icmp paketlerinin geçişine izin vermek için bir “inside-access-dmz” adında erişim listesi oluşturuyoruz. “inside-access-dmz” isimli bu erişim listesi, “dmz” arayüzünde “Out” yani çıkış yönünde olarak uygulanır.

Paketin “dmz” arayüzünden çıkışı, “Out” yani çıkış yönünde uygulanması anlamındadır. Yani, hedef R2, kaynak R1’dir.

 

#access-list inside-access-dmz extended permit icmp host 10.10.10.2 host 10.10.20.2
#access-group inside-access-dmz out interface dmz

 

R1’den R2’ye ping sonucunu başarılı görüyoruz.

 

 

Varsayılan olarak erişim listesi reddetme ifadesine sahiptir, bu yüzden R2’deki hizmetlere erişim sağlanamamakta.

 

 

R2’deki tüm hizmetlere erişebilmek için trafiğin “dmz” arayüzünden geçmesine tek tek izin vermeliyiz.

 

access-list inside-access-dmz extended permit tcp host 10.10.10.2 host 10.10.20.2 eq ssh
access-list inside-access-dmz extended permit tcp host 10.10.10.2 host 10.10.20.2 eq telnet
access-list inside-access-dmz extended permit tcp host 10.10.10.2 host 10.10.20.2 eq www
access-list inside-access-dmz extended permit tcp host 10.10.10.2 host 10.10.20.2 eq https

 

Şimdi yeniden 23 ve 22 portlarından telnet deniyoruz. Aşağıdaki gibi başarılı olduğunu görebiliriz.

 

 

Şimdi yeniden 80 ve 443 portlarından telnet deniyoruz. Aşağıdaki gibi başarılı olduğunu görebiliriz.

 

 

Erişim kontrol listelerinin doğrulamasını ve hata denetimini 3 temel show komutu ile yapabiliriz.

 

#sh run access-list
#sh run access-group
#sh access-list

 

7. (ACL) Erişim Kontrol Listesi Yapılandırmasının Doğrulanması

 

Aşağıdaki komutlar, erişim kontrol listesi yapılandırmanızı doğrulamanızda yardımcı olacaktır.

 

# sh run access-list acl_name
# sh access-list acl_name
# sh run access-group

8. Sonuç

 

Artık ağınızı güvenli tutmak için Erişim Kontrol Listesi’ni (ACL) yapılandırabiliyorsunuz. Örneğimiz umarım bilgilendirici olmuştur. Soru veya öneriniz olursa, yorumlarınızı aşağıda yazabilirsiniz.

 

 

Bir cevap yazın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d blogcu bunu beğendi: