Linux Sistemlerde Güvenlik Duvarı Evrimi





Her yeni kernel, güvenlik duvarı yaratma ve yönetmede kullanılan araçlar için gelişmeler getiriyor.





Linux, evlerinde ağ kuranlardan, kendi ağlarını kuran firmalar ve ticari ürünlerinde içeren üretici firmalara kadar pek çok güvenlik duvarı inşa eden için seçilen bir işletim sistemi.

Her güvenlik cihazında olduğu gibi, bir Linux güvenlik duvarı kurduktan sonra arkanıza yaslanıp ilgisiz kalamazsınız. Güvenlik yamaları ve alarmlarını takip etmeli ve kernelinizi hep gözden geçirmeli ve güvenliği arttırmak ve saldırılardan korunmak için güncellemelisiniz.

Linux yıllar geçtikçe geliştiği gibi güvenlik duvarı yetenekleride gelişiyor. İlk Linux güvenlik duvarları paket-filtreleme kuralları yaratıp yönetmek için ipfwadmin aracını kullandı. Linux kernel 2.2 geçtiğimiz iki yılda 2.0`ın yerine geçtiğinden beri, ipchains`de ipfwadmin`in yerini aldı. Bu sene kernel 2.4`ün çıkmasıyla pek çok ticari güvenlik duvarında bulunan durumsal paket inceleme (stateful packet inspection) çözümü artık Linux`dada mevcut.

Linux ile güvenlik duvarı çözümünün 3 yüzü
Linux sistemlerdeki güvenlik duvarlarının en son 3 üretim sürümü Linux kernel`lerine (2.0,2.2,2.4 – Çift rakamlı Linux kernel minör sürüm numaraları kernel`in üretim amaçları için uygun olduğunu gösterir. Tek sayılı Linux kernel minör sürüm numaraları sadece deneysel ve geliştirme kullanımı için uygun olduğunu gösterir) karşılık gelen 3 farklı uygulaması vardır.

Tamamen olmasada 2.0 eskimeye başladı. Red Hat Linux 1999`da çıkan v5.2 sürümünden beri kernel 2.0`ı kullanmadı. Geçen sene, çoğu dağıtım kenerl 2.2 kullanıyordu ve 2.4 bu sene başlarında çıktı.

Değişen kernel sürümleri Linux güvenlik duvarı çözümü için kritik çünkü her yeni sürüm güvenlik duvarı yönetimi mekanızmasını değiştiriyor. Kernel 2.0`ın IP Firewall (IPFW) mekanızması için arabirim sağlayan ipfwadmin programı, kernel 2.2`de ipchains ile değiştirildi. Ve ipchains`in yerinide kernel 2.4`de iptables aldı.

IP paketleriyle uğraşmaktan Linux kernel sorumlu olsada, sistem yöneticisi kernel`e hangi paketleri geçireceğini, sessizce bloklayacağını yada gönderene bir hata mesajı ile bloklayacağını belirleyen kuralları yaratmalı. Tabiki bu klasik IP filtreleme güvenlik duvarı kurulumu: Güvenlik duvarı IP başlıklarını kontrol eder, değerlendirir ve filtre kuralları ile karşılaştırır.

Çoğu Linux kullanıcısı, ağ güvenlik araçları yapmada kullanan üretici firmalar dahil kernel 2.0 ile başladılar. Her yeni kernel sürümü gelişmeler ve önemli yeni özellikler getirsede, sistem yöneticileri genelde iyi çalışan Linux sistemleri güncellemeyi pek düşünmediler. Bu sebeple pek çok sistem hala kernel 2.0 çalıştırıyor çünkü işe yarıyor ve güncellemenin getireceği bozulmalar yada bölünmeler buna değmez. Ayrıca ağ güvenlik araçları kullanıcıları Linux kullandıklarını farkında bile olmayabilir yada güncelleyecek yeterlilikte olmayabilir.

Sky-NetWEB`de bir Unix sistem yöneticisi ve Bastille Linux Project`de (http://www.bastille-linux.org) koordinatör olan Jon Lasser`e göre kernel 2.0`ın ‘ipfwadmin BSD sistemlerinde mevcut olan araçların bir yansısı.’ 1997`de çıktığında kernel 2.0, Linux, BSD veya diğer Unix-tabanlı işletim sistemleri ile çalışan ağ sorumluları için mükemmel bir mükemmel bir seçim idi. IPFW için kuralları sıfırdan yazmak yerine bir sistem yöneticisi var olan BSD-tabanlı güvenlki duvarlarının kurallarını kullanabilirdi.

Ipfwadmin basit, düşük-ihtiyaç IP paket filtreleme gereksinimleri için uygun. Örnek ipfwadmin filtreleme kuralları pek çok yerde mevcut ve çoğu Linux sistem yöneticisi kolaylıkla paket filtreleme güvenlik duvarları inşa edebilirler. Ipfwadmin yüksek hızda internet bağlantıları olan ve evlerinde ağ kurmuş olanların çoğu tarafından kullanılmakta.

Kernel 2.2`nin 1999`da çıkmasıyla ipchains güvenlik duvarı çözümü için ileri atılmış bir adım olarak kabul edildi. Ek olarak ipfwadmin ile geriye uyumlu olmanın yanında, geliştirilmiş yazım, IP üzerindeki katmanlarda protokol testi ve wildcard arabirimlerde filtreleme desteği gibi yeni özellikler getirdi.

Linux Firewalls kitabının yazarı Robert Zeigler`e göre ‘ipchains optimizasyon ve filtreleme performansı konularında büyük kazanç olabilecek kullanıcı-tanımlı zincirler ekledi.’ ipchains`in dinamik olması ile ipfwadmin`den daha gelişmiş oluyor. Kurallar ‘chains’ adı verilen tablolar içinde (‘input’, ‘output’ ve ‘forward’) tutuluyor. Yeni kurallar güvenlik duvarı çalışırkan bu tabloların herbiri içinde en başa yada sona eklenebiliyor. Bu, güvenlik duvarı kurallarını günün belirli saatine göre değiştirme veya yeni bulunan tehditlere karşı koymayı mümkün kılıyor.

Ipchains`in diğer önemli bir özelliği ise ICMP alt-tip mesaj kodlarına erişebilmesi. Zeigler ‘Bu küçük birşey gibi görünebilir. Fakat bu sayede güvenlik duvarı sistemleri için önemli olan Type 3 hata kodları filtrelenebilir.’ diyor. (‘port unreachable error’ içeren bir ICMP pakedi saldırganların potansiyel olarak zayıf sistemleri bulabilmesine yardımcı oluyor).

Durumsuz Filtreleme ve Durumsal-Paket inceleme
Tekrar dizayn edilmesine karşın ipchains, ipfwadmin gibi hala bir IP paket filtreleme güvenlik duvarı. Paket filtreleleri kullanışlı fakat günümüzde pek çok enterprise-sınıfı güvenlik duvarı, daha kapsamlı bir yaklaşım olan durumsal-paket inceleme teknolojisini kullanır. Kernel 2.4 ve iptables arabirimi yeni bir mekanizma getirdi:
Netfilter, IPFW modülünün yerine geçen bir kernel modülü. IPFW gibi netfilter`da güvenlik duvarı kuralları ile bir pakete ne yapacağına karar verir. Fakat netfilter basit filtreleme yerine durumsal paket inceleme kullanır.
Bir durumsuz paket filtreleme güvenlik duvarı paketleri kabul eden, başlıklarını inceleyen ve sistem yöneticisi tarafından belirlenen kurallara göre pakedi geçirip geçirmeyeceğine karar veren bir güvenlik duvarıdır.

Her tip güvenlik duvarı için tipik yaklaşım kesin bir politika ile başlamaktır. Varsayılan olarak tüm paketlerin erişimi engellenmeli, ve sadece kurallarda izin verilmişse geçirilmelidir. Tipik olarak sadece belirli bazı TCP/IP başlıkları incelenir, böylece belirli IP adreslerinden veya portlarından gönderilen ve alınan paketlere izin verilir yada bloklanır.

Paket-filtreleme güvenlik duvarlarını ayarlamak zordur, sistem yöneticisinin güçlü bir TCP/IP ağları ve güvenlik bilgisi olmasını gerektirir. Düzgün yapılandırılmayan kurallar güvenlik açıkları ile sonuçlanabilir.

En tehlikelisi paket filtreleme kavramı bilgisinin eksikliğidir. Paket filtreleme güvenlik duvarları ‘durum bilgisini korumazlar’. Diğer bir deyişle, gelen yada giden paketlerin durum kayıtlarını tutmazlar. Buda bir pakedin geçerli görünebileceği fakat gerçekte bir saldırının parçası olabileceği anlamına gelir.

Örneğin, çoğu paket filtreleri içeriye gelen istenmeyen trafiği bloklarlar, fakat içerdeki bir hostun isteğine cevap olarak gelen bir pakete izin verilir. Eğer güvenlik duvarı dışarı giden isteklerin bir kaydını tutmuyorsa, bir paket filtresi, gerçek bir cevap ile bir saldırgan tarafından gerçek bir cevap gibi gösterilmek üzere değiştirilmiş pakedi birbirinden ayıramaz.

Durumsal paket filtreleme güvenlik duvarları IP başlık bilgisini ve paket içeriğini kontrol eder ve içerdeki host`ların haberleştiği dış hostların kaydını tutar. Örneğin bir UDP pakedi bir DNS isteğine cevap olarak geliyor göründüğünde durumsal-inceleme güvenlik duvarı bunu orjinal istekle karşılaştıracaktır. Eğer orjinal istek yoksa güvenlik duvarı pakedi bloklayacaktır.

Aynı şekilde, bir durumsal-inceleme güvenlik duvarı Web sunucusundan gelen paketlerin içerdeki bir makinadan yapılan isteğe karşılık olup olmadığınıda kontrol edebilir. Durumsuz-filtreleme güvenlik duvarları bu tip saldırıları algılayamazlar.

Netfilter IPFW`ye karşı
Eski IPFW ile Netfilter arasındaki en büyük fark Netfilter`ın durumsal-paket-inceleme içeriyor olması. Ve güvenlik duvarı kullanıcıları için büyük bir değişiklikde Netfilter`ın güvenlik duvarı kurallarının yönetimi için iptables kullanıyor olması. Sistem yöneticileri için iyi bir haber uyumluluk modülünün olması, böylece ipchains kuralları iptables ile kullanılabiliyor.

iptables ile ipchains arasında önemli farklar var. ipchains tarafından kullanılan kurallar zincirleri yerine, hedefi gösteren zincirleri içeren tablolar (tables) geldi. Hedef, bir güvenlik duvarı aksiyonunu temsil ediyor: bir pakedi reddet, yönlendir, kabul et veya logla. Tablolar ile, aynı paket için çoklu hedefler kullanabilirsiniz. Örneğin, bir pakedi loglayıp yönlendirebilir veya loglayıp reddedebilirsiniz.
Netfilter`daki bir diğer özellik ise Ağ adres çevriminin (Network Address Translation – NAT) gelişmiş kullanımı. IPFW`de olduğu gibi NAT`ı bir hedef olarak uygulamaktansa Netfilter hem gelen gemde giden NAT fonksiyonları ile daha iyi entegre olan yeni bir NAT modülü sağlıyor. Gelen NAT (Inbound NAT-INAT) tüm ağın tek bir IP adresini paylaşabilmesini sağlıyor, Gİden NAT (Destination NAT-DNAT) ağ içinden gelen paketleri direk hedefe değilde önce -örneğin proxy sunucuya- yönlendiriyor.

Netfilter ayrıca tek bir kaynaktan gelebilecek SYN paketlerinin sayısınıda sınırlayabiliyor. Böylece SYN-flood DoS saldırılarına karşı bir koruma sağlıyor. Paket filreleme güvenlik duvarlarını aşmak için bozuk TCP başlıkları kullanan gizli (stealth) taramaları (örneğin port tarama aracı nmap) algılayabiliyor.
Linux güvenlik duvarı kullanıcıları Netfilter`in durumsal-paket-inceleme fonksiyonlarını hevesle bekliyorlardı. Linux Firewalls yazarı Zeigler Netfilter ve iptables bu konudaki olumlu görüşlerini şöyle belirtiyor: ‘durum ve NAT modüllerinin sunduğu özellikler çok büyük bir kazanç ve herkes mümkün olduğunca çabuk geçiş yapacaktır.’ Fakat Zeigler aynı zamanda birde uyarıda bulunuyor: ‘Öğrenilmesi gereken çok şey var, bir iki günde yapmayı hayal etmeyin.’

Eskisini mi kullanacaksınız, yenisine mi geçecekmisiniz?
Geçtiğimiz yıllardaki yönetici fonksiyonlarının evrimini gözönünde bulundurursak, Linux güvenlik duvarları daha güvenli hale geldimi? Evet ve Hayır. Ever çünkü her yeni sürümle ve özellikle bug`lar düzeltildi. Hayır çünkü her yeni yazılım yeni riskleri ortaya çıkarır.
Case Western üniversitesi doktora yapan ve bir ağ güvenliği uzmanı olan Jose Nazario ‘Linux kernel`inin fixlediklerinden daha çok bug içerenler sunduğu uzun ve denenmiş bir tarihi vardır.’ diyor. ‘Birşeyi fixlemek isterken başka değerli bir şeyi bozuyor olmanız mümkün.’
Geçtiğimiz yıllarda Linux kernel modüllerinde birkaç ciddi güvenlik açığı bulundu. En son olarak Nisan ayında rapor edilen, Netfilter modülünün FTP trafiğini işlemesiyle ilgili olandı. FTP istemci ile sunucu arasında iki bağlantı seti gerektirdiğinden diğer protokollerden biraz farklı. Birincisi istemciden sunucuya kontrol bağlantısı, ikincisi sunucudan istemciye bilgi-transfer bağlantısı. (Tüm FTP bağlantıları bu şekilde çalışmayabilir fakat bu protokol tarafından orjinal metoddur).


Kaynak: Information Security Magazine
belgesi-345

Belgeci , 2422 belge yazmış

Cevap Gönderin