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.