| Yazan: Hayrullah Kolukisaoglu,
Tarih: 15-11-2007 16:38
|
Okunma Sayısı : 1763  |
Beğenilme : 3 |
 Merhaba arkadaslar. Bu makalemizde Cisco SDM kullanarak Cisco IOS Firewall Basic ve Advenced konfigürasyonunun nasil yapabilecegimiz hakkinda bilgiler vermeye çalisacagim. Cisco IOS Router, ilgili konfigürasyonlar yapildiginda basit anlamda da olsa bir Firewall olarak kullanilabilir.
Bu nokta da karşımıza iki farklı IOS Firewall teknolojisi çıkmaktadır. 1. Packet Filtering 2. Stateful Packet Inspection Paket filtreleme en eski ve en yaygın kullanılan yöntemdir. Bu yöntem paketlerin kaynak – hedef ip adresleri, port numaraları gibi bilgileri doğrultusunda,o paketlere izin veilip verilmeyeceğine karar verilmesi şeklinde, genellikle 3. katman çalışan bir cihaz üzerinde uygulanır. Bu tarz uygulamalara örnek olarak Access Control Listeleri verilebilir. Access-List’ler hem Routerlar hem de Firewall’lar için son derece kullanışlıdır fakat dinamik port kullanan uygulamalar noktasında zayıf olduğu söylenebilir. Peki CBAC bildiğimiz access listlerden farklı olarak ne yapar ? CBAC ile biz incelemek istediğimiz protokolü ve bu protokolün hangi interface’de hangi yönde (in | out) inceleneceğini belirleriz. Sadece belirli bir grup protokol CBAC tarafında incelenebilir. Router’ımıza gelen ve bizim CBAC ile incelenmesini istediğimiz paketler, inbound bir access-list uygulanmışsa, sadece bu access-listi geçtikten sonra incelenirler. Yani Router önce access-list’i sonra CBAC ile tanımlanmış rule’ları inceler.  Örneğin şekilde bilgisayarımızdan internetteki farklı serverlara gönderilmiş TCP ve UDP istekleri var. Burada Router üzerinde ya geri dönüş trafiğine access-list’ler ile statik olarak izin vermeliyiz ya da dinamik bir çözüm bulmalıyız. CBAC inside interface’imizden Router’a gelen paketleri, eğer statik bir access-list tarafından bloklanmamışlarsa, inceler ve bu paketlere cevap olarak dönecek paketlere izin veren geçici access listleri dinamik olarak oluşturur. Yani CBAC dışarıdan içeriye gelen TCP veya UDP trafiğinine sadece oturum iç networkümüzden başlatılmışsa izin verir, bunun dışında ki paketlere izin vermez. CBAC’in TCP ve UDP trafiğini nasıl takip ettiğini anlamak için dilerseniz bu iki tür trafiğin nasıl başlayıp devam ettiğini inceleyelim. Şekil basit bir şekilde TCP Three-Way-Handshake’i anlatmaktadır. 10.0.0.11’den çıkan ilk paket random bir Sequence numarası ve TCP SYN flag’ı set edilmiş şekilde gönderilir. Bu paketi alan 172.30.0.50 ip adresli bilgisayar diğer taraftan gelen Sequence numarasını bir artırarak Ack alanına yazar ve kendi Sequence numarasını random üreterek ve ayrıca TCP SYN – ACK flag’ını set ederek gönderir. 10.0.0.11’den çıkan üçüncü paket ise oturumun tamamlandığını göstermektedir. Three-Way-Handshake tamamlandıktan sonra Router Sequence numaralarını izleyerek oturumları takip edebilecektir.  TCP ile UDP arasındaki fark ise UDP’ nin TCP gibi Sequence numaraları ile izlenemeyecek olmasıdır. TCP Three-Way-Handshake ya da benzeri bir çalışma UDP içerisinde yoktur.Burada 10.0.0.11’ den gelen ilk UDP paketine Router tarafından izin verildikten sonra Router üzerinde şekilde bilgiler tutulur. Bu bilgiler arasından UDP port numaralarına göre izleme işlemi gerçekleştirilir ve UDP cevapları takip edilir. UDP için belirlenen idle timeout süresi dolduğunda Router üzerindeki bu bilgiler silinir. CBAC’in nasıl çalıştığını isterseniz bir örnek içinde tekrar inceleyelim; Bir bilgisayarın Router üzerinden geçerek, örneğin internetteki bir server üzerinden http oturumu açtığını varsayalım.  Bu durumda CBAC; 1. Trafiği inceler, 2. 12.1.1.1 ‘den 10.1.1.4’ e bu oturum için gelecek cevaplara, dinamik bir access-list oluştururarak izin verir. 3. Oturum boyunca trafiği incelemeye devam eder ve bu uygulamaya özel atakları farkederse oturumu sonlandırır, 4. Oturum kullanıcı tarafından bitirildiğinde dinamik olarak oluşturduğu access-list’i kaldırır. CBAC komut satırından kısaca aşağıdaki gibi konfigüre edilebilir; Önce CBAC için rule’lar oluşturulur ve sonra interface altında bu rule’ ların çalıştırılması sağlanır. Router(config)#ip inspect name inspection-name protocol Router(config)#interface interface Router(config-if)# ip inspect inspection-name in|out Biz bu makale boyunca CBAC’in SDM kullanarak nasıl konfigüre edileceğini ve daha sonra nasıl izleneceğini örnek bir topoloji içerisinde incelemeye çalışacağız. Topolojimiz aşağıdaki gibi olacak. Burada sadece uygulamayı gösterebilmek için evimde kullandığım basit ADSL modemin arkasına bir Router bağladım ve Router üzerindeki NAT ve Default konfigürasyonları ile internete çıkışını sağladım.  SDM ile Router’a bağlandığımızda aşağıdaki ekran ile karşılaşacağız.  SDM ana menüsü bize kullandığımız Router ile bilgiler verir. SDM ile henüz yeni tanışanlar için sitede daha önce yayınlanan Cisco SDM Kuruluş Adımları ve Önemli Noktalar adlı makaleyi incelemesini öneririm. SDM kurulumu ile ilgili önemli ipuçlarını bu makalede bulabilirsiniz. Ana Menü üzerinden Configure’e tıkladığımız zaman hemen sağ tarafta SDM ile yapabileceğimiz konfigürasyonlar bir liste olarak karşımıza çıkıyor olacak. Buradan Firewall and ACL kısmına geldiğimizde aşağıdaki gibi bir pencere ile karşılaşacağız.  Firewall and ACL menüsü iki kısımdan oluşmaktadır; Basic Firewall ve Advenced Firewall. Bu ikisi arasında yapılandırma yönünden herhangi bir fark yoktur. Advanced Firewal bize DMZ konfigürasyonuda sağlar. Advanced Firewall ile DMZ konfigürasyonunu daha sonra başka bir makalede inceleyeceğiz. Bu makalede iki interface ile Basic Firewall konfigürasyonu üzerinde duracağız. Zaten seçili olarak gelen Basic Firewall konfigürasyonu için Launch the selected task’a basarak devam ediyoruz. Burada karşımıza çıkan pencere kurulum boyunca bize yardımcı olacak sihirbazın ilk adımıdır ve işlem basamakları hakkında kısaca bize bilgiler vermektedir.  Neler yapacağımızı gördükten sonra Next’e basarak yolumuza devam ediyoruz.  Burada SDM Firewall Wizard bizde Inside ve Outside interfaceleri belirlememizi istiyor. İlgili interfaceleri belirledikten sonra Next’e basarak devam ediyoruz ve Router’a gönderilecek olan konfigürasyon dosyasını görüyoruz.  Bu konfigürasyonların uygulanması için Finish’e basmamız yeterli.  Bizim adımıza SDM Firewall Wizard tarafından üretilen 49 komut Router’a gönderiliyor.  Komutları gönderdikten sonra Edit Firewall Policy / ACL tabından uygulanan komutların bir arayüz ile görebiliyoruz. ;stersek burada bazı değişikliklerde yapabiliriz. Monitor tabına geldiğimizde aktif olan sessionları Real-Time olarak görebiliriz.  Komut satırından monitoring işlemlerine devam edilebilir. Şahsen SDM kullanımının güvenlik açığı olduğunu düşündüğüm için konfigürasyonlarda kullansam bile sürekli HTTP servisinin açık kalmasını tercih etmem. Bu sebeple komut satırından da nasıl monitoring yapılacağını bir kaç örnek komut ile göstermeye çalışacağım.  “Show ip inspect sessions” komutu ile aktif oturumları görebilirken “Show ip inspect statistics” komutu ile istatistiki bilgiler alabiliriz. Son olarak “Show ip inspect interfaces” komutu ile ilgili interface’deki konfigürasyonları görebiliriz.
SDM kullanarak yaptığımız bu basit konfigürasyondan sonra komut satırına geçerek bazı özel konfigürasyonları da göstermek istiyorum. Komut satırı her zaman bana daha yakın gelmiştir. Firewall üzerinde olup biteni izlemek ve bunlar mümkünse bir log server üzerinde tutmak istersek öncelikle bu logları, uyarıları açmamız gerekir. Sadece konfigürasyonu göstermek için 192.168.254.253 adresli bir log server olduğunu varsayarsak konfigürasyon şu şekilde olacaktır.  CBAC ile TCT SYN atakları gibi ataklar da eklenebilir. Cisco IOS Firewall default olarak bir TCP oturumunun başlatıldıktan sonra Established duruma gelmesi için 30 saniye bekler ve 30 saniyenin sonunda oturumu kapatır. Bu süre istenirse değiştirilebilir. TCP oturumu bittikten sonra beklenen sürede finwait-time ile değiştirilebilir. Tabi ki bu tek başına bir Dos atağını önlemek için yeterli olmayacaktır. Dos ataklarına örnek olarak Half-Open oturumları verebiliriz. Half-Open demek oturum bir istek ile başlatılmış fakat established duruma geçmemiş yani TCP three-way handshake tamamlanmamış demektir. UDP için ise Firewall’ın geri dönüş trafiği algılamadığı anlamına gelir. Bu noktada kullanabileceiğimi iki komut var; Router(config)#ip inspect max-incomplete high number Router(config)#ip inspect max-incomplete low number Burada belirleyebileceğimiz High ve Low değerler, Firewall’ın Half-Open olarak algıladığı oturum sayısı hangi değere ulaştığında oturumların drop edilmeye başlanacağını (High) ve hangi değere kadar (Low) drop edilmeye devam edileceğini göstermektedir. Default değerler ise High için 500 ve Low için 400’ dür.  Bu noktada istenirse 1 dakikalık süre içinde değerler belirlenebilir;  TCP ve UDP trafiği için idle-time süreside belirlenebilir. Bir TCP oturumu için idle-time süresi default olarak 1 saat, UDP için 30 saniyedir. ,  Belirtilen süreler boyunca Firewall bir oturumda herhangi bir aktivite tespit etmemiş ise bu oturumları drop edecektir.
Evet arkadaşlar bu makalemizde Cisco SDM kullanarak IOS Firewall yapılandırması üzerinde durduk. Bu noktada ilk yaptığımız temel konfigürasyonu SDM’in bizlere sunduğu Firewall Wizard yardımıyla tamamlak ve debamında komut satırından bazı düzenlemelere yaptık. IOS Firewall’ın ikinci bölümünde URL Filtering ve Java Applet Filtering’den bahsedeceğiz. Umarım faydalı olmuştur, herkese iyi çalışmalar.
|
teşekkürler
Yazan:: emre () Tarih: 10-04-2008 12:16