Güvenlik Duvarı Kavramları
Önceki Internet'e Bağlanırken Gerekenler: Firewall ve Proxy Sonraki
Güvenlik Duvarı Kavramları
Tabya (Bastion Host)
İdealde, ağınızdaki güvenlik, ağ seviyesinde ve ağdaki her bir makinada uygulanır. Pratikte ise, bu ya yapılamamakta ya da ihtiyaç duyulan kimi protokollerin güvenlikten yoksun olduğu bilinse dahi kullanılmaktadır. Böyle durumlarda güvenlik duvarı, içeride birbirlerine güvenen, az korumalı makinaların olduğu bir ağla, dış dünya arasına yerleştirilir ve aradaki fiziksel bağlantı yalnızca güvenlik duvarı tarafından sağlanır. Dolayısıyla içerideki ağa girmek isteyen her kötü niyetli dış saldırı, önce özel olarak korumalı tasarlanmış güvenlik duvarı makinasını bertaraf etmek zorundadır. Bu makinaya "kale", "nöbetçi kale" anlamına gelen tabya[52] (bastion host) da denir. Tabyamız, fiziksel olarak iki farklı ağa bağlıdır: iç ağ (Intranet) ve dış ağ (Internet). Tabya iki özelliğe sahiptir:
  • Yüksek güvenliğe sahip olmalıdır -- yani bu makinaya izinsiz erişim son derece zor hale getirilmelidir.
  • İki (bazen üç) fiziksel ağ bağlantısına sahip olmalı ve bu farklı ağlar arasındaki iletişimin nasıl yapılacağına dair karar verebilmelidir.
Şekil 13.1. İç ağ ile dış ağ arasında güvenlik duvarı
  • Yüksek güvenliğe sahip olmalıdır -- yani bu makinaya izinsiz erişim son derece zor hale getirilmelidir.
  • İki (bazen üç) fiziksel ağ bağlantısına sahip olmalı ve bu farklı ağlar arasındaki iletişimin nasıl yapılacağına dair karar verebilmelidir.
Şekil 13.2. İç ağ ile dış ağ arasında güvenlik duvarı
Ağ Adres Çevrimi (NAT), Maskeleme
Günümüzde iç ağların hemen hepsi tahsisli olmayan IP numaraları (10.0.0.0, 192.168.0.0 vs.) kullanmaktadır. Bu IP numaraları Internet üzerindeki yönlendiriciler (router) tarafından bilinmez. Dolayısıyla bu ağlardan Internet'deki herhangi bir makinaya bir erişim olduğu zaman Internet'deki makina bu ağa nasıl geri döneceğini bilmez ve pratikte iletişim yapılamaz. Güvenlik duvarı ise, dinamik veya statik olarak Internet'de bilinen ve kendisine yönlendirme yapılabilen bir IP numarasına sahiptir. İç ağdaki makinalara erişim sağlayabilmek için güvenlik duvarı, kendisine iç ağdan gelen her paketin kaynak adresini kendi adresi olarak değiştirir. Kendisine Internet'den gelen paketlerin de hedef adresini iç ağdaki ilgili makinanın adresi olarak değiştirir ve bu yolla iç ağdaki makinaların Internet üzerindeki makinalarla haberleşmesini sağlar. Bu işleme IP IP Maskelemesi (Masquerade) veya Ağ Adres Çevrimi (NAT - Network Address Translation) denir.
NAT yapıldığı zaman, oluşan trafiğin Internet'den görüldüğü hali, Internet'de bulunan tek bir makinanın (tabyamız) bazı Internet alışverişleri yaptığıdır. Internet'e, bu makinanın arkasındaki ağın büyüklüğü, bu ağdaki makinaların cinsi, sayısı, ağın yapısı vs. hakkında herhangi bir bilgi gitmez. Dolayısıyla NAT, yalnızca tahsissiz ağlardan Internet'e erişimi sağlamakla kalmaz, ağınızdaki makinalar hakkında bilgi edinilmesini (ve dolayısıyla size karşı yapılabilecek saldırıları) zorlaştırır.
Paket Filtreleme
Yukarıda bahsedilen önlemler (güvenlik duvarının tek fiziksel bağlantı olması, NAT uygulanması) ağınıza belli bir miktar güvenlik sağlar, fakat esas güvenlik, paket filtreleme yöntemlerinden gelir. Bu yöntemler, güvenlik duvarından geçen her IP paketine bakılması ve ancak belli şartlara uyarsa geçişine izin verilmesi şeklinde uygulanır.
Örneğin:
  • İç ağınızdan kimsenin Internet'de ICQ kullanmasını istemiyorsunuz.
  • Dışarıdan içeriye hiç kimsenin telnet yapabilmesini istemiyorsunuz.
Bu hedefleri gerçekleştirmek için paket filtreleme yöntemleri kullanacaksınız. Paket filtreleme, güvenlik duvarının her fiziksel bağlantısı üzerinde ayrı ayrı ve yöne bağlı (dışarıya çıkışa izin ver, fakat içeriye girişe izin verme) olarak uygulanabilir.
Paket filtrelemede özellikle yapmanız gereken minimum, dışarıdan gelip de kaynağını içerisi gibi gösteren (IP spoofing - IP aldatmacası) paketleri ve devam etmekte olan bir trafiğin parçası imiş gibi gelen paketleri (IP fragments) filtrelemek ve bunların geçişine izin vermemektir. Çoğu saldırı, bu şekilde başlar.
Bu minimumu sağladıktan sonra, dışarıdan içeriye yapılmasına izin verdiğiniz erişimleri (telnet yapsınlar mı?, ping yapabilsinler mi?) ve içeriden dışarıya yapılmasına izin verdiğiniz erişimleri (kullanıcılarınız dışarıya telnet yapabilsin mi? Web'e erişsinler mi? ICQ yapabilsinler mi?) belirlemeniz ve güvenlik duvarı üzerindeki filtre protokollerinizi buna göre oluşturmanız gerekir.
Dinamik (Stateful) Filtreleme
Eskiden filtreleme yöntemleri ağırlıklı olarak statikti -- yani genel olarak ağınıza ICQ paketlerinin girmesine izin verip vermeme kararı söz konusu idi. 2.4 Çekirdeği ve bizim aşağıda örneğini verdiğimiz iptables uygulaması ile birlikte dinamik filtreleme Linux üzerinde kullanılabilir hale geldi. Aradaki fark, paketin sırf protokolüne bakarak karar vermek yerine, güvenlik duvarının bir bağlantıyı hangi tarafın başlattığını takip etmesi ve çift yönlü paket geçişlerine buna göre karar vermesidir. Yani bir telnet bağlantısında her iki taraftan da paketler gelir ve gider. Fakat dinamik filtreleme ile, bir telnet bağlantısı iç ağınızdan başlatılmışsa izin verir, başlangıç istemi dış ağdan gelmişse reddedebilirsiniz. Dinamik filtreleme özelliği olmayan güvenlik duvarlarını kullanmanızı önermiyoruz. 2.4 çekirdeği ve iptables uygulaması olan her Linux üzerinde dinamik filtreleme yapabilirsiniz. iptables kullanımı hakkında daha ayrıntılı bilgiyi Iptables'ın Basit Kullanımı belgesinde bulabilirsiniz.
Bazı Internet Servislerinin İç Ağdan Verilmesi
Ağınızda Internet'den erişimi olması gereken web, posta gibi sunucular bulunabilir. Bu sunuculara erişimi iki yoldan vermeniz mümkündür:
  • Silahsızlandırılmış bölge uygulaması (DMZ - Demilitarized Zone)
  • İç ağınızda bu servislere doğrudan filtreleme yaparak.
Silahsızlandırılmış bölge (DMZ - DeMilitarized Zone)
DMZ, güvenlik duvarı tarafından daha az korunan, daha fazla erişime izin verilen bir bölgedir. Güvenlik duvarına üçüncü bir ağ çıkışı eklenmesi ve Internet'e servis verecek olan makinaların buraya konulması ile oluşturulur. Örneğin DMZ'deki makinalara NAT uygulanmayabilir, tahsisli IP numaralarına sahip olabilirler. Güvenlik duvarı, telnet, ssh gibi kimi protokollerin buraya erişimini filtreleyerek DMZ bölgesindeki makinalara güvenlik sağlar. Dikkat edilecek nokta, DMZ'de bulunan makinaların daha fazla erişime (ve dolayısıyla saldırıya) açık olmasıdır. Buradaki makinalar dikkatli kurulmalı, güvenliğe aykırı protokoller vs. burada yer almamalıdır.
Şekil 13.3. Silahsızlandırılmış bölge (DMZ)
Doğrudan Filtreleme
DMZ oluşturmak için ek ekipman ve IP numarası gerekir. Güvenlik duvarında üçüncü bir ağ birimi, ayrı bir switch, daha fazla adette tahsisli IP numarası ve iç ağınızda başka herhangi bir görev görmeyecek olan sunucu makinalar gerekir. Eldeki imkanlar buna yetişmeyebilir. Böyle durumlarda, güvenlik duvarınızdaki filtreleme politikasını değiştirerek iç ağınızdaki kimi makinalara dışarıdan sınırlı erişim imkanı verebilirsiniz. Örneğin güvenlik duvarınız ağınızın genelinde dışarıdan gelen SMTP (posta) protokolünü filtrelerken, sadece posta sunucunuza dışarıdan SMTP protokolü erişimini verebilir. NAT ile birleştirileceğinden, bu dışarıdan bakıldığı zaman sanki güvenlik duvarınız posta sunuculuğu yapıyormuş izlenimini verir.
Vekil (Proxy)
Proxy'nin kelime anlamı vekil'dir. Yukarıdaki yöntemlerin hepsi, belli kurallara bağlı olarak Internet'deki bir makina ile iç ağdaki bir makina arasında doğrudan alışverişe izin verir. Vekil uygulamaları ise, bu doğrudan alışverişin arasına girer. Dolayısıyla protokol bazlı herhangi bir saldırı, vekil sunucuya yönelik gerçekleşir, iç ağdaki makinayı etkilemez. Örneğin bir http (web) vekili, iç ağdan dışarıya giden bütün web isteklerini toplar. Bu istekleri kendisi yapar, gelen sonuçları iç ağa dağıtır. Örneğin eğer web protokolü yolu ile istemci makinanın bazı bilgilerinin alınması veya bir saldırı yapılması söz konusu olur ise, bundan etkilenen sadece web vekili makina olur, iç ağda web erişiminde bulunan her makina değil.
Güvenlik amacı ile proxy kullanımı, uygulama temelli güvenlik duvarı (application level firewall) olarak adlandırılır.
Vekillerin Başka Kullanımları
  • Güvenlik amaçlı - yukarıda bahsedilmiştir.
  • İzin amaçlı - İç ağınızdan bazı servislere kimin erişebileceğini belirlemekte, izin politikası uygulamakta kullanılırlar.
  • Performans amaçlı - Pek çok istemci aynı istekte bulunuyorsa, bunların bir defaya indirgenmesini sağlayarak hem sunucu makinanın üzerindeki yükü, hem de kullanılan bağlantı yükünü hafifletirler.
Vekil sunucular, en fazla kullanılan örneği olan Web Vekili (Squid) üzerinde daha ayrıntılı olarak aşağıda anlatılmıştır.


[52] Tabya, sözlük anlamı olarak, "ayrı olarak yapılmış ve silahlarla güçlendirilmiş istihkam"dır. Güvenlik duvarının kurulacağı makina için bu terimin uygun olacağını düşündüm. Bu tabya şüphesiz, caydırıcı silahlarla teçhiz edilmiş olacak :-)
Önceki Üst Ana Başlık Sonraki
Giriş Başlangıç Güvenlik Duvarı - Satın Almak, Kendiniz Yapmak?
Bir Linux Kitaplığı Sayfası