Firewall Nedir?
Ateş duvarları ağın içinden veya dışından gelen yetkisiz erişimleri
engelleyen, süzen ve izin denetimi sağlayan yazılımlar veya
donanımlardır. Ateş duvarlarını yazılımsal, donanımsal veya her ikisinin
de bir arada oldugu gruplara ayırabiliriz. Aslına bakarsanız donanımsal
olanların üstünde de bir çeşit gömülü yazılım (firmware), BIOS vs ismi
altında yazılımlar çalışmaktadır.
Ateş duvarı deyince sadece bizi dışarıdan gelen saldırılara karşı
koruyan birşey düşünmemek gerekir. Gelişmiş ateş duvarları bunların
dışında NAT (Ağ Adres Çevrimi), VPN (Virtual Private Networking - Sanal Özel Ağ) gibi teknolojileri de bize sunarlar. Fakat şimdilik bu konulara girmeyeceğiz.
Koruma sağlamak için çeşitli ateş duvarı tipleri/teknolojileri vardır. Bunlardan en çok kullanılanları şunlardır;
Uygulama Katmanlı Ateş Duvarı - Application Level Firewall
Bu tip ateş duvarları içeri veya dışarı gidecek OSI modelinde uygulama
(application) katmanında çalışan belli iletişim kurallarına bakarlar
(OSI modeli ağ ortamında bilgisayarların birbirleriyle haberleşirken
kullandıkları yedi katmanlı bir standarttır). Programcılar ve ağ
cihazlarını üreten firmalar bu standarta uyarak ürünleri bize sunarlar.
İsteseler uymazlar da ama o zamanda standart dışında kalacakları için
yaptıkları bir işe yaramayacaktır. OSI modelini daha fazla uzatmayalım.
Başka bir makalede yedi katmanı da detaylı anlatırım. Konumuza dönelim.
FTP,HTTP,SMTP,POP3,IMAP,TELNET,FINGER,DNS.... Uygulama katmanında
çalışan iletişim kurallarından bazılarıdır.
Uygulama Katmanlı Ateş Duvarı - Application Level Firewall, Devam
İç ağdaki (LAN) bir kişi Internet Epxlorer'ı açtı
"[Linkleri görebilmek için üye olun veya giriş yapın.] yazdı giriş tuşuna bastı diyelim. Yazılım dış
ağdaki (Internet) sunucuya bağlanmak isteyecektir ve 80 numaralı portu
hedef olarak gösterecektir. Bu paket ateş duvarına geldiğinde tamam iyi güzel
paket 80 numaralı porta gidiyor ama içinde HTTP var mı yok mu ona
bakar. Varsa HTTP'nin içinde istemediğim bir şey var mı yok mu ona da
bakabilir.
İstemciler bunu yapabilmek için bir yazılım kullanırlar. Bu yazılımda IP
paketi içerisine kendisi ile ilgili bilgiyi yerleştirir. Bu sefer
yönlendirici bölümünde bahsettiğimiz gibi IP başlığına değil de uygulama
başlığına (application header) koyar. Ateş duvarı da IP paketini açar
bakar ve bu başlık ile ilgilenir (Bütün ateş duvarları paketleri açıp
içlerine bakarlar. Sadece baktıkları yerler veya kullandıkları
teknolojiler farklılık gösterir). Bu tip ateş duvarlarını MSN'yi
dışarıya engellemek için kullanılabiliriz.
Katman İletişim Kuralları ve Yapılan İşler
7.Uygulama (Application) HTTP, DNS, FTP, TFTP, BOOTP, SNMP, POP3, SMTP, MIME, NFS, FINGER, TELNET, SMB
6.Sunum (Presentation) Şifreleme varsa burada gerçekleşir.
5.Oturum (Session) NetBIOS, Names Pipes, Mail Slots, RPC
4.Taşıma TCP, ARP, RARP, SPX, NWLink, NetBIOS, NetBEUI
3.Ağ IP, IPX (Yönlendiriciler burası ile ilgilenir)
2.Veri Bağlantısı Mantıksal bağlantı kontrolu : 802.1,802.2
Media Access Control(MAC) : 802.3CSMA/CD (Ethernet) 802.5 Token Ring
1.Fiziksel IEEE 802,IEEE 802.2,ISDN
Burada siz MSN'de A harfine bastınız diyelim. Dünyanın her yerinde
yediden bire kadar olan sıra izlenir. Bire gelindiğinde A harfiniz artık
elektriğe dönüşmüştür ve karşı tarafa gönderilir. Karşı taraf da birden
yediye kadar olan sırayı izler ve karşısında A harfini (uygulama
katmanında) görür. Her katman bir üst veya alt katman ile ilgilenir. İki
üstü ile ilgilenmez. Bir sıra izlenmelidir. İletişim kuralları
(protocol) ve yapılan işlemler sadece örnek olsun diye yazılmıştır.
Bunların dışında daha pek çok işlem ve iletişim kuralı vardır.
Paket Süzen Ateş Duvarı (Packet Filtering Firewall)
Bu tip ateş duvarları IP iletişim kuralını (protocol), IP adresini ve
port numarasını denetleyen eden bizim tarafımızdan belirlenen bazı
kurallar (rule) içerirler. O yüzden ayarlarını çok iyi yapmamız
gerekmektedir. Diğer türlere nazaran daha zahmetlidir. Bu tip ateş
duvarları paketlerin uygulama olup olmadığıyla değil ağ tarafı ile
ilgilenirler. IP paketini açıp IP başlığına yani kaynak (source) hedef
(target), iletişim kuralı, port vs bakarlar.
Bunun bir kötü tarafı vardır. Örneğin ağ sunucunuz var diyelim. Her şeyi
engelleyip sadece web trafiğini açarsınız. Buraya kadar her şey güzel.
Herkes web sunucunuza erişiyor. Başka hiçbir şey yapamıyorlar ama sizin
web sunucunuza saldıran da erişiyor gezinti yapan da. Bunu ayırt
edebilmesi için IDS (Intrusion Detection System - Saldırı Denetleme
Sistemi) veya IPS (Intrusion Prevention System - Saldırı Önleme Sistemi)
özelliginin olması gerekir. Paket süzen ateş duvarları bu farkı
algılayamazlar. Ayrıca bu tip ateş duvarları stateful packet inspection
(ip paket denetleme) yapamazlar. Yani paketlerin gerçekten istenilen
iletişim kuralı (protocol), port ve ip den gelip gelmediğini
anlayamazlar. Biraz daha açmak gerekirse paketin daha önceden kurulmuş
bir bağlantıdan mı geldiğini anlayamazlar. Eklediğimiz kural ne diyorsa
ona bakarlar. Yani bu tip ateş duvarına "sadece dışardan gelen paketlere
izin ver ama bağlantı daha öncedenkurulmuş olsun" diyemiyoruz.
Bu biraz kafa karıştırıcı olabilir. Burada şunu anlamamız gerekiyor.
Mesela A ve B makinası TCP bağlantısı kurduğunda üç yollu el sıkışma
(3-way handshake) diye bir işlem gerçekleşir. Basit olarak anlatacak
olursak, bu işlemde A makinası B makinasına (1)SYN paketi gönderir. B
makinası karşılık olarak (2)SYN/ACK gönderir. Ondan sonra A makinası
B'ye (3)ACK paketi gönderir ve bağlantı kurulmuş olur. Siz
bilgisayarınızda başlat/çalıştır a "cmd" yazıp komut isteminde "netstat
-an" yazarsanız gördüğünüz "ESTABLISHED" bağlantılar bu işlemin
gerçekleştigini göstermektedir. Daha fazla ayrıntıya girmek istemiyorum.
Sonuç olarak herhangi bir A makinası böyle bir işlem olmadan paket
süzen bir ateş duvarının zaafından yararlanabilir. Mesela saldıran biri
durmadan SYN gönderebilir. IP yanıltma (spoofing) yapabilir.
Durum Denetlemeli Ateş Duvarı (Stateful Firewall)
Bunlar paket süzen ateş duvarları gibilerdir ama daha akıllılardır.
90'larda Checkpoint firması tarafından geliştirilmiştir. Zamanla bir
standart haline gelmiştir. OSI modelinde ağ katmanına ve iletim
katmanına bakarlar (bazen tüm paketi daha iyi incelemek için üst
katmanlara da bakarlar).
Örnek verecek olursak yine bir ağ sunucunuz var diyelim. Siz kural
eklersiniz ve kullanıcılar sunucuya bağlanır. Bu noktada bu tip ateş
duvarları gelen isteğin gerçekten bağlantı kurulacak IP olup olmadığına,
iletişim kuralına, kaynak ve hedef portlarına bakarlar. Ondan sonra üç
yollu el sıkışma (3-way handshake) gerçekleşir ve bağlantı kurulur.
Mesela saldırgan yanıltma (spoofing) yapıyorsa (yani kendi ip adresini,
iletişim kuralını veya portunu olması gerektiğinden farklı gösteriyorsa)
bunu anlarlar ve karşı tarafa SYN/ACK göndermezler ve paket karşı
tarafa herhangi bir bilgi göndermeden
düşürülür (Drop). Bu olmasa ne olurki diyeceksiniz. Mesela eğer böyle
bir şey olmazsa saldırgan on binlerce yanıltıcı paket gönderip sizin ağ
sunucunuzu gelecek gerçek SYN paketlerine SYN/ACK gönderemez hale
getirebilir. Sonuç olarak kimse sunucuya erişemez.
Yine de bu ateş duvarları hala iyi ve kötü trafiği algılayamazlar. IDS
veya IPS gereklidir. Bu noktada IDS veya IPS'inde tabiri caizse kul
yapımı olduğunu belirtmek gerekiyor. Yani bunlar bilmedikleri kötü
trafik için bişey yapamazlar. Bazı firmalar kendi IDS veya IPS
sistemlerinin akıllı olduklarını ve bilinmeyen saldırılara karşı önlem
alabildiklerini iddia etseler de ne kadar başarılı olduğu konusunda
şüphe duymak gerekir. IDS/IPS demişken ateş duvarı ile ilgili bir
teknoloji daha var. Buna da Deep Packet Inspection(Derin Paket İnceleme)
diyoruz. Bu IDS/IPS ile tümleşik çalışan bir teknolojidir. Şimdilik bu
konuya değinmeyeceğiz. Durum denetimi yapan (Stateful) ateş duvarına
tanıdık bir örnek verecek olursak Windows'umuzun o basit ateş duvarı bu
türdendir.
Ateş duvarları ağın içinden veya dışından gelen yetkisiz erişimleri
engelleyen, süzen ve izin denetimi sağlayan yazılımlar veya
donanımlardır. Ateş duvarlarını yazılımsal, donanımsal veya her ikisinin
de bir arada oldugu gruplara ayırabiliriz. Aslına bakarsanız donanımsal
olanların üstünde de bir çeşit gömülü yazılım (firmware), BIOS vs ismi
altında yazılımlar çalışmaktadır.
Ateş duvarı deyince sadece bizi dışarıdan gelen saldırılara karşı
koruyan birşey düşünmemek gerekir. Gelişmiş ateş duvarları bunların
dışında NAT (Ağ Adres Çevrimi), VPN (Virtual Private Networking - Sanal Özel Ağ) gibi teknolojileri de bize sunarlar. Fakat şimdilik bu konulara girmeyeceğiz.
Koruma sağlamak için çeşitli ateş duvarı tipleri/teknolojileri vardır. Bunlardan en çok kullanılanları şunlardır;
Uygulama Katmanlı Ateş Duvarı - Application Level Firewall
Bu tip ateş duvarları içeri veya dışarı gidecek OSI modelinde uygulama
(application) katmanında çalışan belli iletişim kurallarına bakarlar
(OSI modeli ağ ortamında bilgisayarların birbirleriyle haberleşirken
kullandıkları yedi katmanlı bir standarttır). Programcılar ve ağ
cihazlarını üreten firmalar bu standarta uyarak ürünleri bize sunarlar.
İsteseler uymazlar da ama o zamanda standart dışında kalacakları için
yaptıkları bir işe yaramayacaktır. OSI modelini daha fazla uzatmayalım.
Başka bir makalede yedi katmanı da detaylı anlatırım. Konumuza dönelim.
FTP,HTTP,SMTP,POP3,IMAP,TELNET,FINGER,DNS.... Uygulama katmanında
çalışan iletişim kurallarından bazılarıdır.
Uygulama Katmanlı Ateş Duvarı - Application Level Firewall, Devam
İç ağdaki (LAN) bir kişi Internet Epxlorer'ı açtı
"[Linkleri görebilmek için üye olun veya giriş yapın.] yazdı giriş tuşuna bastı diyelim. Yazılım dış
ağdaki (Internet) sunucuya bağlanmak isteyecektir ve 80 numaralı portu
hedef olarak gösterecektir. Bu paket ateş duvarına geldiğinde tamam iyi güzel
paket 80 numaralı porta gidiyor ama içinde HTTP var mı yok mu ona
bakar. Varsa HTTP'nin içinde istemediğim bir şey var mı yok mu ona da
bakabilir.
İstemciler bunu yapabilmek için bir yazılım kullanırlar. Bu yazılımda IP
paketi içerisine kendisi ile ilgili bilgiyi yerleştirir. Bu sefer
yönlendirici bölümünde bahsettiğimiz gibi IP başlığına değil de uygulama
başlığına (application header) koyar. Ateş duvarı da IP paketini açar
bakar ve bu başlık ile ilgilenir (Bütün ateş duvarları paketleri açıp
içlerine bakarlar. Sadece baktıkları yerler veya kullandıkları
teknolojiler farklılık gösterir). Bu tip ateş duvarlarını MSN'yi
dışarıya engellemek için kullanılabiliriz.
Katman İletişim Kuralları ve Yapılan İşler
7.Uygulama (Application) HTTP, DNS, FTP, TFTP, BOOTP, SNMP, POP3, SMTP, MIME, NFS, FINGER, TELNET, SMB
6.Sunum (Presentation) Şifreleme varsa burada gerçekleşir.
5.Oturum (Session) NetBIOS, Names Pipes, Mail Slots, RPC
4.Taşıma TCP, ARP, RARP, SPX, NWLink, NetBIOS, NetBEUI
3.Ağ IP, IPX (Yönlendiriciler burası ile ilgilenir)
2.Veri Bağlantısı Mantıksal bağlantı kontrolu : 802.1,802.2
Media Access Control(MAC) : 802.3CSMA/CD (Ethernet) 802.5 Token Ring
1.Fiziksel IEEE 802,IEEE 802.2,ISDN
Burada siz MSN'de A harfine bastınız diyelim. Dünyanın her yerinde
yediden bire kadar olan sıra izlenir. Bire gelindiğinde A harfiniz artık
elektriğe dönüşmüştür ve karşı tarafa gönderilir. Karşı taraf da birden
yediye kadar olan sırayı izler ve karşısında A harfini (uygulama
katmanında) görür. Her katman bir üst veya alt katman ile ilgilenir. İki
üstü ile ilgilenmez. Bir sıra izlenmelidir. İletişim kuralları
(protocol) ve yapılan işlemler sadece örnek olsun diye yazılmıştır.
Bunların dışında daha pek çok işlem ve iletişim kuralı vardır.
Paket Süzen Ateş Duvarı (Packet Filtering Firewall)
Bu tip ateş duvarları IP iletişim kuralını (protocol), IP adresini ve
port numarasını denetleyen eden bizim tarafımızdan belirlenen bazı
kurallar (rule) içerirler. O yüzden ayarlarını çok iyi yapmamız
gerekmektedir. Diğer türlere nazaran daha zahmetlidir. Bu tip ateş
duvarları paketlerin uygulama olup olmadığıyla değil ağ tarafı ile
ilgilenirler. IP paketini açıp IP başlığına yani kaynak (source) hedef
(target), iletişim kuralı, port vs bakarlar.
Bunun bir kötü tarafı vardır. Örneğin ağ sunucunuz var diyelim. Her şeyi
engelleyip sadece web trafiğini açarsınız. Buraya kadar her şey güzel.
Herkes web sunucunuza erişiyor. Başka hiçbir şey yapamıyorlar ama sizin
web sunucunuza saldıran da erişiyor gezinti yapan da. Bunu ayırt
edebilmesi için IDS (Intrusion Detection System - Saldırı Denetleme
Sistemi) veya IPS (Intrusion Prevention System - Saldırı Önleme Sistemi)
özelliginin olması gerekir. Paket süzen ateş duvarları bu farkı
algılayamazlar. Ayrıca bu tip ateş duvarları stateful packet inspection
(ip paket denetleme) yapamazlar. Yani paketlerin gerçekten istenilen
iletişim kuralı (protocol), port ve ip den gelip gelmediğini
anlayamazlar. Biraz daha açmak gerekirse paketin daha önceden kurulmuş
bir bağlantıdan mı geldiğini anlayamazlar. Eklediğimiz kural ne diyorsa
ona bakarlar. Yani bu tip ateş duvarına "sadece dışardan gelen paketlere
izin ver ama bağlantı daha öncedenkurulmuş olsun" diyemiyoruz.
Bu biraz kafa karıştırıcı olabilir. Burada şunu anlamamız gerekiyor.
Mesela A ve B makinası TCP bağlantısı kurduğunda üç yollu el sıkışma
(3-way handshake) diye bir işlem gerçekleşir. Basit olarak anlatacak
olursak, bu işlemde A makinası B makinasına (1)SYN paketi gönderir. B
makinası karşılık olarak (2)SYN/ACK gönderir. Ondan sonra A makinası
B'ye (3)ACK paketi gönderir ve bağlantı kurulmuş olur. Siz
bilgisayarınızda başlat/çalıştır a "cmd" yazıp komut isteminde "netstat
-an" yazarsanız gördüğünüz "ESTABLISHED" bağlantılar bu işlemin
gerçekleştigini göstermektedir. Daha fazla ayrıntıya girmek istemiyorum.
Sonuç olarak herhangi bir A makinası böyle bir işlem olmadan paket
süzen bir ateş duvarının zaafından yararlanabilir. Mesela saldıran biri
durmadan SYN gönderebilir. IP yanıltma (spoofing) yapabilir.
Durum Denetlemeli Ateş Duvarı (Stateful Firewall)
Bunlar paket süzen ateş duvarları gibilerdir ama daha akıllılardır.
90'larda Checkpoint firması tarafından geliştirilmiştir. Zamanla bir
standart haline gelmiştir. OSI modelinde ağ katmanına ve iletim
katmanına bakarlar (bazen tüm paketi daha iyi incelemek için üst
katmanlara da bakarlar).
Örnek verecek olursak yine bir ağ sunucunuz var diyelim. Siz kural
eklersiniz ve kullanıcılar sunucuya bağlanır. Bu noktada bu tip ateş
duvarları gelen isteğin gerçekten bağlantı kurulacak IP olup olmadığına,
iletişim kuralına, kaynak ve hedef portlarına bakarlar. Ondan sonra üç
yollu el sıkışma (3-way handshake) gerçekleşir ve bağlantı kurulur.
Mesela saldırgan yanıltma (spoofing) yapıyorsa (yani kendi ip adresini,
iletişim kuralını veya portunu olması gerektiğinden farklı gösteriyorsa)
bunu anlarlar ve karşı tarafa SYN/ACK göndermezler ve paket karşı
tarafa herhangi bir bilgi göndermeden
düşürülür (Drop). Bu olmasa ne olurki diyeceksiniz. Mesela eğer böyle
bir şey olmazsa saldırgan on binlerce yanıltıcı paket gönderip sizin ağ
sunucunuzu gelecek gerçek SYN paketlerine SYN/ACK gönderemez hale
getirebilir. Sonuç olarak kimse sunucuya erişemez.
Yine de bu ateş duvarları hala iyi ve kötü trafiği algılayamazlar. IDS
veya IPS gereklidir. Bu noktada IDS veya IPS'inde tabiri caizse kul
yapımı olduğunu belirtmek gerekiyor. Yani bunlar bilmedikleri kötü
trafik için bişey yapamazlar. Bazı firmalar kendi IDS veya IPS
sistemlerinin akıllı olduklarını ve bilinmeyen saldırılara karşı önlem
alabildiklerini iddia etseler de ne kadar başarılı olduğu konusunda
şüphe duymak gerekir. IDS/IPS demişken ateş duvarı ile ilgili bir
teknoloji daha var. Buna da Deep Packet Inspection(Derin Paket İnceleme)
diyoruz. Bu IDS/IPS ile tümleşik çalışan bir teknolojidir. Şimdilik bu
konuya değinmeyeceğiz. Durum denetimi yapan (Stateful) ateş duvarına
tanıdık bir örnek verecek olursak Windows'umuzun o basit ateş duvarı bu
türdendir.