Güvenlik Duvarı (Firewall) Nedir?
Paket filtreleme mantığı, donanım ve yazılım güvenlik duvarı ayrımı.
Güvenlik duvarı (firewall), ağdan geçen her paketi bir kural listesine göre değerlendirip geçir ya da durdur kararı veren mekanizma. Bir cihaz olabilir, işletim sisteminin içindeki bir yazılım olabilir, modeminizin içindeki bir özellik olabilir. İşi hep aynı: karşılaştır, karar ver.
NAT ile sık karıştırılıyor. NAT adres çeviriyor, koruması bunun yan etkisi. Güvenlik duvarının ise tek işi karar vermek.
Bir paket duvara geldiğinde
Her paketin üzerinde duvarın bakabileceği birkaç alan var:
| Alan | Örnek |
|---|---|
| Kaynak adres | 203.0.113.45 |
| Hedef adres | 192.168.1.20 |
| Protokol | TCP / UDP / ICMP |
| Kaynak port | 51234 |
| Hedef port | 443 |
| Yön | Gelen ya da giden |
Duvar bu alanları kural listesiyle karşılaştırıyor. Kural "şu adresten, şu porta gelen TCP paketine izin ver" gibi bir cümle. Port kavramı bu yüzden duvarın dilinin merkezinde.
Kural sırası ve varsayılan politika
Kurallar yukarıdan aşağı okunuyor ve ilk eşleşen kural kazanıyor. Sonrakilere bakılmıyor. Bu yüzden sıra önemli:
| Sıra | Kural |
|---|---|
| 1 | Kurulmuş bağlantıların cevaplarına izin ver |
| 2 | Yerel ağdan yönetim arayüzüne izin ver |
| 3 | İnternetten 443 numaralı porta izin ver |
| 4 | Geri kalan her şeyi reddet |
Dördüncü satır varsayılan politika. İki yaklaşım var: "açıkça izin verilmeyen her şey yasak" ya da "açıkça yasaklanmayan her şey serbest". Gelen trafikte doğru olan birincisi; ev modemleri de böyle geliyor.
Tipik hata, geniş bir izin kuralını dar bir yasak kuralının üstüne koymak. Yasak kural hiç çalışmıyor, çünkü paket ona ulaşmadan izinle eşleşiyor.
Durumsuz ve durumlu filtreleme
Evdeki duvarın nasıl hem her şeyi engelleyip hem de siteleri açtığını bu ayrım açıklıyor.
- Durumsuz (stateless): her paketi tek başına değerlendiriyor, öncesini hatırlamıyor. Bir siteden gelen cevap paketi ile rastgele bir saldırı paketi onun için aynı. Cevapları geçirmek için geniş port aralıkları açmak gerekiyor.
- Durumlu (stateful): içeriden başlayan her bağlantıyı bir tabloya yazıyor. Dışarıdan gelen paket bu tablodaki bir bağlantının cevabıysa geçiyor, değilse kurala bakılıyor.
Bugün evde ve işletim sistemlerinde kullanılanların neredeyse tamamı durumlu. Sonuç: siz bir siteye bağlandığınızda cevabı gelir, ama kimse dışarıdan sizinle bağlantı başlatamaz. "Gelen her şeyi reddet" kuralı internete çıkmanızı bozmaz.
Aynı sebeple dışarıdan erişilmesi gereken bir servis için port yönlendirme ve duvar kuralı ayrıca gerekiyor.
Reddetmenin iki yolu
Yasaklanan paket için duvarın iki seçeneği var ve dışarıdan farklı görünüyorlar:
| Eylem | Ne yapıyor | Karşı taraf ne görüyor |
|---|---|---|
| DROP | Paketi sessizce atıyor | Cevap yok, bağlantı zaman aşımına düşüyor |
| REJECT | Reddedildi cevabı dönüyor | Hemen "bağlantı reddedildi" hatası |
Bu fark teşhiste işe yarıyor. Bir programın bağlanması uzun uzun bekleyip zaman aşımıyla bitiyorsa yolda paketi atan bir duvar var. Anında "reddedildi" diyorsa ya duvar reddediyor ya da o portta dinleyen bir servis yok. Tarama çıktılarındaki filtered ve closed ayrımı tam olarak bu; port taraması yazımızda ayrıntısı var.
Donanım, yazılım, uygulama
| Tür | Nerede | Neyi korur |
|---|---|---|
| Ağ (donanım) duvarı | Modem, router ya da ayrı cihaz | Arkasındaki bütün ağı |
| Cihaz (yazılım) duvarı | Windows, macOS, Linux içinde | Yalnızca o cihazı, aynı ağdaki diğerlerine karşı da |
| Uygulama duvarı | Web sunucusunun önünde | Bir siteyi, isteğin içeriğine bakarak |
"Donanım" ile "yazılım" arasındaki fark aslında kutu ile program farkı değil — modemin içindeki duvar da bir yazılım. Asıl fark nerede durduğu. Ağ duvarı dış dünyaya karşı koruyor ama ağın içindeki bir cihazdan gelen saldırıyı görmüyor; o trafik modeme hiç uğramıyor. Cihaz duvarı ise halka açık Wi-Fi gibi herkese açık bir ağda tek savunma.
Uygulama duvarı ise farklı bir seviyede çalışıyor: port ve adrese değil, isteğin içindeki metne bakıyor. Ev kullanıcısının karşılaşacağı bir şey değil; sitelerin önünde duruyor.
Evde kaç duvar var?
Çoğu evde farkında olmadan üç katman çalışıyor:
- Modemin duvarı. Gelen bağlantıları varsayılan olarak durduruyor.
- İşletim sisteminin duvarı. Windows ve macOS'ta açık geliyor; ağı "genel" olarak işaretlerseniz daha sıkı çalışıyor.
- Güvenlik yazılımının duvarı. Kurduysanız işletim sisteminin duvarının yerini alıyor ya da onun yanına ekleniyor.
Bir oyun ya da program bağlanamıyorsa üçünden birinde takılıyor olabilir. Windows tarafındaki kuralın nasıl ekleneceği Windows port açma yazımızda.
Güvenlik duvarı neyi yapmaz
- İzin verdiğiniz trafiği incelemez. 443 portu açıksa o porttan gelen saldırı da geçer. Riskin nasıl değerlendirileceği açık port riski yazısında.
- İçeriden başlayan bağlantıyı genellikle durdurmaz. Bilgisayara giren zararlı yazılım dışarıya bağlanır ve durumlu duvar cevabını da geçirir.
- Kimlik avını engellemez. Sahte bir siteye kendi isteğinizle bağlanıyorsunuz.
- IPv6'yı kendiliğinden kapsamaz. NAT'ın olmadığı IPv6'da duvar tek koruma; ayrıntısı IPv6 güvenlik duvarı yazısında.
Sıkça sorulan sorular
Güvenlik duvarı nedir?
Ağdan geçen her paketi kaynak, hedef, protokol ve port bilgisine göre bir kural listesiyle karşılaştırıp geçiren ya da durduran mekanizmadır.
Donanım ve yazılım güvenlik duvarı arasındaki fark nedir?
Asıl fark durduğu yerdir. Modemdeki ağ duvarı arkasındaki bütün ağı dış dünyaya karşı korur; işletim sistemindeki duvar yalnızca o cihazı korur ama aynı ağdaki diğer cihazlara karşı da çalışır.
Güvenlik duvarı her şeyi engelliyorsa siteler nasıl açılıyor?
Ev ve işletim sistemi duvarları durumludur: içeriden başlattığınız bağlantıyı hatırlar ve cevabını geçirir. Engellenen yalnızca dışarıdan başlatılan bağlantılardır.
Modemim varken Windows güvenlik duvarını kapatabilir miyim?
Önerilmez. Modemin duvarı aynı ağdaki başka bir cihazdan gelen trafiği görmez; halka açık bir ağa bağlandığınızda da cihazın kendi duvarı tek koruma olur.
Bağlantı zaman aşımına düşüyor, duvar mı engelliyor?
Muhtemelen. Paketi sessizce atan bir duvar zaman aşımı yaratır. Anında reddedildi hatası alıyorsanız ya duvar reddediyor ya da o portta çalışan bir servis yoktur.