İletişim

Güvenlik Duvarı (Firewall) Nedir?

Kısa tanım

Güvenlik duvarı (firewall), bir ağa veya sunucuya giren ve oradan çıkan trafiği önceden tanımlı kurallara göre izin veren ya da engelleyen donanım veya yazılımdır. Kurallar genellikle kaynak ve hedef IP adresi, port ve protokol üzerinden yazılır. Temel amacı, yalnızca gerçekten gereken servislerin erişilebilir olmasını sağlayıp geri kalan her şeyi varsayılan olarak kapatmaktır.

Diğer adları: Firewall, ağ güvenlik duvarı, network firewall, paket filtresi

Gelen paketleri port, kaynak ve eylem sütunlarından oluşan kurallarla süzen ve varsayılan olarak reddeden güvenlik duvarı kural tablosu

Kural tablosu: kim, nereye, hangi porttan?

Bir güvenlik duvarı, ağ paketlerini bir kural listesine göre değerlendirir. Klasik kurallar paketin kaynak IP adresine, hedef IP adresine, hedef portuna ve protokolüne (TCP, UDP, ICMP) bakar: “Herkes 443 numaralı TCP portuna gelebilir”, “22 numaralı SSH portuna yalnızca ofisin IP adresi gelebilir”, “Geri kalan her şey reddedilir.” Çoğu araçta kurallar yukarıdan aşağıya okunur ve paketle eşleşen ilk kural uygulanır.

İyi bir yapılandırmanın temel ilkesi varsayılan olarak reddetmektir: önce her şey kapatılır, sonra yalnızca gereken servisler açılır. Bu, en az yetki ilkesinin ağ katmanındaki karşılığıdır. Tersine yaklaşım, yani her şeyi açıp bilinen kötüleri kapatmak, unutulan bir test servisinin veya yanlışlıkla dışarıya açılan bir veritabanının internetten erişilebilir kalmasına yol açar.

Türleri

  • Durumsuz paket filtresi: Her paketi bağımsız değerlendirir. Hızlıdır ama bir yanıtın, içeriden başlatılmış bir bağlantıya ait olup olmadığını bilemez.
  • Durum takipli (stateful) güvenlik duvarı: Açık bağlantıların tablosunu tutar. İçeriden başlatılan bir bağlantının yanıtlarına otomatik izin verir, dışarıdan gelen beklenmedik paketleri reddeder. Bugün varsayılan yaklaşım budur.
  • Yeni nesil güvenlik duvarı (NGFW): Port ve adresin ötesinde uygulama türünü tanıyabilen, saldırı tespit ve önleme gibi özellikler ekleyen kurumsal cihaz ve servislerdir.
  • Sunucu üzerindeki güvenlik duvarı: Linux'ta nftables/iptables ve bunların üzerinde çalışan ufw veya firewalld gibi araçlar. Bulut sağlayıcılarda bunun yerine veya yanında “security group” gibi sağlayıcı seviyesinde kurallar bulunur.

Bir VPS için mantıklı başlangıç

Web sitesi çalıştıran tipik bir VPS'te dışarıya açık olması gereken portlar çoğu zaman yalnızca HTTP (80), HTTPS (443) ve kısıtlı erişimli SSH'tır. Ubuntu'daki ufw ile bu şöyle ifade edilir:

ufw default deny incoming
ufw default allow outgoing
ufw allow from 203.0.113.10 to any port 22 proto tcp   # SSH yalnızca bu IP'den
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

Kuralları etkinleştirmeden önce SSH erişiminizin izinli olduğundan emin olun; aksi halde sunucuya bağlantınız kesilebilir. Veritabanı, Redis ve uygulama sunucusunun iç portları (ör. 3000) dışarıya hiç açılmamalı, mümkünse yalnızca 127.0.0.1 üzerinde dinlemelidir; trafik önlerindeki bir reverse proxy üzerinden gelmelidir.

Sık yapılan bir hata Docker ile ilgilidir: Docker'ın resmi belgelerine göre yayınlanan (publish edilen) konteyner portlarının trafiği, ufw kurallarına ulaşmadan yönlendirilir. ufw'de kapalı görünen bir port, Docker ile yayınlanmışsa dışarıdan erişilebilir olabilir. Bu yüzden konteyner portlarını yalnızca 127.0.0.1'e bağlamak ve dışarıdan bir port taramasıyla gerçek durumu doğrulamak gerekir.

Çıkış trafiği de önemlidir

Çoğu yapılandırma yalnızca gelen trafiğe odaklanır. Oysa giden trafiği kısıtlamak, bir sunucu ele geçirildiğinde saldırganın dışarıya veri taşımasını ve uzaktaki bir komut sunucusuyla konuşmasını zorlaştırır. Kullanıcının verdiği adreslere istek atan servislerde, iç ağ adreslerine giden trafiği engelleyen çıkış kuralları SSRF açıklarının etkisini de sınırlar.

Güvenlik duvarının göremedikleri

Ağ güvenlik duvarı bir isteğin hangi porta geldiğini bilir, içinde ne olduğunu bilmez. 443 numaralı port herkese açık olduğu sürece, o porttan gelen bir SQL enjeksiyonu veya XSS denemesi kurallara takılmadan uygulamaya ulaşır. HTTP isteklerinin içeriğini inceleyen katman web uygulama güvenlik duvarıdır (WAF). Benzer şekilde, sunucunun bağlantı kapasitesini aşan hacimli bir DDoS saldırısı, paketler sunucuya ulaşmadan önce, sağlayıcı ya da CDN seviyesinde karşılanmalıdır; sunucudaki güvenlik duvarı tek başına bu yükü taşıyamaz.

İlgili terimler

← Sözlüğe dön