Firewall nedir, çeşitleri nelerdir ve nerelerde kullanılır?
Bu flood’da Firewall
çeşitlerini ve nerelerde hangi amaçlarla kullanıldıklarını anlacağım.
Firewall
kendisine verilen kurallar dahilinde üzerinde çalıştığı cihaza gelen ve cihazdan giden paketleri inceleyerek bu paketlerin geçmesine izin veren, bloklayan, istenirse loglayan ve alarm üreten yazılımdır. Farklı ağlar (örneğin bir şirketin ağı ile internet) arasındaki trafiği kontrol etmek üzere çalışan Firewall
'lar genellikle kendilerine özel bir donanım üzerinde çalışırlar. Bu donanım üzerinde Firewall
'un işlevleri için özelleştirilen devreler bulunur. Bu devreler ilgili fonksiyonları gerçekleştirerek yükü ana işlemci üzerinden alırlar.
Yukarıda anlatılan ve kendine özel donanımı olan Firewall
'ların yanında ek fonksiyon olarak Firewall
hizmeti sunan ve Host-based
olarak adlandırılan Firewall
'lar da bulunmaktadır. Bunların en bilinen örneği her işletim sisteminde bulunan dahili Firewall
'dur.
Aşağıdaki ekran görüntüsünde macOS
işletim sistemi için Firewall
ayarlarının yapılabileceği pencere verilmiştir. Windows'ta da benzer bir arayüz vardır. Tahmin edeceğiniz üzere Linux'ta bulunan Firewall
'a başka bir flood'da özel olarak değineceğiz.
Evlerimizde bulunan ADSL Modem
'ler, Wireless Router
ve NAT
özelliklerine ek olarak Firewall
da bulundururlar. Firewall
ev ağımıza internet üzerinden gelen istenmeyen trafikleri engellemek için kullanılmakta dolayısıyla ev ağına dahil olan cihazları korumaktadırlar.
Aşağıdaki ekran görüntüsünde kendi evimdeki ADSL Modem
'in fabrika ayarları ile hizmet sağlayıcının verdiği public IP'den de yönetici arayüzüne erişim izni verdiği görülmektedir. Modem şifreleri genelde fabrika ayarlarında kaldığı için burada ciddi bir güvenlik zaafiyeti vardır.
Modem üzerinde bulunan basit Firewall
yardımıyla modemin yönetici arayüzüne sadece ağ içinden yani 192.168.1.1
'den erişime izin vererek belirtilen bu zaafiyet önlenebilir. Bunun için benim modemimin Firewall
'unda aşağıdakine benzer bir ayar yapılması gerekti.
Önceki bir flood’da anlatılan NAT
aslında IPv4 sayısındaki azalmaya karşı ortaya çıkmış olsa da hemen bütün Firewall
'lar NAT
özelliğini arkalarında
bulunan sunucu IP'lerini dış dünyadan gizlemek için kullanırlar. https://medium.com/@gokhansengun/a2c8b6291de8
Firewall
'lar ağ paketlerini kaynak, hedef IP adresi, port ve protokole (TCP, UDP, IP, vb) göre filtreleyebilir. Önceki flood'lardan hatırlanacağı üzere istemciler bir sunucuya erişirken işletim sisteminden Ephemeral Port Range
adı verilen yüksek portlardan (49152 - 65536)
bir port alarak karşıdaki sunucu ile bağlantıya geçerler. İlkel Firewall
'lar istemcinin HTTP
, SMTP
, vb servislere erişebilmesi için istemciye Ephemeral Port
'tan gelen trafiğe izin verirler. Böylece sunucu istemciye Ephemeral Port
üzerinden cevap gönderebilir.
Gelişmiş versiyonlarda (Stateful Firewall
) ise Firewall
, istemcinin sunucuya yaptığı isteğin paketinden hangi Ephemeral Port
'tan istek yapıldığını çözümler ve sadece istek yapılan IP ve porttan geri dönüşlere izin verir, bütün Ephemeral Port
'ları korumasız bırakmaz.
Yukarıda bahsedilen paket bazlı inceleme yapan Firewall
'lara ek olarak protokol seviyesinde inceleme yapabilen ve uygulama seviyesinde çalışan Application Firewall
'lar da vardır. Application Firewall
'lar sayesinde hizmet vermek üzere açık bırakılan portlardan (örn HTTP 80) sızma girişimleri önlenebilir. Gelen paket bütünüyle incelenerek paketin ilgili porttan (örn 80) beklenen trafiğe uygun bir paket (örn HTTP) olup olmadığı belirlenir ve protokole uygun olmayan paketler Firewall
arkasındaki sunuculara geçirilmeden bloklanır.
Son olarak, Web Application Firewall - WAF
adındaki özelleşmiş Firewall
, web uygulamaları ve uygulama sunucularının güvenliğini sağlamakta kullanılır. Bu yazılımlar uygulamaya gelen/giden trafiği inceleyerek isteklerde SQL Injection
, vb bir atak olup olmadığını tespit eder. Atak tespit edilirse istek uygulama sunucusuna gönderilmeden bloklanır. Gelişmiş WAF
cihazları bir uygulamaya aynı IP'den gelen normal sayının üzerinde
trafiği tespit ederek trafiği ilgili sunucuya yönlendirmeden önce Captcha
, vb testlere tabi tutar ve sunucuları korur.