Sophos Firewall’da NAT kuralı adresleri ve portları değiştirir, trafiğe izin vermez. İçerideki bir web sunucusunu internete açmak için hem bir DNAT kuralı hem de ona uyan bir firewall kuralı yazmanız gerekir. Biri eksikse yayınlama çalışmaz. Bu yazı kural türlerini, alanları ve en sık takıldığımız noktaları anlatıyor.
NAT kuralı ile firewall kuralı arasındaki fark nedir?
NAT kuralları Rules and policies > NAT rules altında, firewall kuralları ise Rules and policies > Firewall rules altında durur. İki tablo ayrı çalışır ve her biri yukarıdan aşağı okunur. Sophos’un yardım sayfasına göre ilk eşleşen kural uygulanır, sonrakilere bakılmaz. Bu yüzden özel bir kuralı genel bir kuralın altına koyarsanız hiç devreye girmez.
NAT kuralı “bu trafiğin adresini şöyle çevir” der. Trafiğin geçip geçmeyeceğine firewall kuralı karar verir. Bir NAT kuralı yazıp firewall kuralı yazmazsanız yayınladığınız servis dışarıdan görünmez.
SNAT ve MASQ ne işe yarar?
İç ağdaki cihazların internete tek bir genel IP ile çıkmasını SNAT sağlar. Translated source alanına MASQ seçtiğinizde kaynak adres, trafiğin çıktığı arayüzün IP’sine çevrilir. Sophos Firewall’da bu iş için “Default SNAT IPv4” adında hazır bir kural gelir. Yardım sayfası bu kuralı silmek yerine kapatmanızı öneriyor, çünkü WAN arayüzü oluşturulduğunda ya da güncellendiğinde kural yeniden eklenir.
Birden fazla genel IP’niz varsa translated source olarak belirli bir adres ya da aralık verebilirsiniz. Aralık verdiğinizde firewall sıradaki boş adresi atar, iç cihazla genel IP arasında birebir eşleme olmaz. Belirli bir iç sunucunun hep aynı genel IP ile çıkması gerekiyorsa tek adres yazın.
DNAT ile iç sunucu nasıl yayınlanır?
DNAT, dışarıdan gelen isteği iç ağdaki sunucuya yönlendirir. Sophos’un dokümantasyonundaki örnek kural şu alanlarla kurulur:
- Original source: Any
- Original destination: Sunucunun genel IP adresi
- Translated destination: Sunucunun iç IP adresi
- Original service ve Translated service: Dışarıdan gelen port ve sunucunun dinlediği port
- Inbound interface: İnternet hattının bağlı olduğu WAN arayüzü
- Outbound interface: Any
Servis alanlarını farklı doldurursanız port yönlendirme (PAT) yapmış olursunuz. Dışarıya 8888 açıp içeride 4444’e iletmek gibi. Protokol aynı kalmak zorunda, TCP olarak gelen istek TCP olarak iletilir. Birden fazla servis ya da Any seçtiyseniz translated service alanı Original olmalı.
Aynı genel IP üzerinden HTTPS yayınlayacaksanız dikkat edin. Yönetim konsolu varsayılan olarak 4444, kullanıcı portalı 443 portunu kullanır. Çakışma varsa ya firewall’un portunu ya da sunucunun portunu değiştirmeniz gerekir. Web sunucuları için ayrıca WAF ile yayınlama seçeneğini değerlendirin.
DNAT için firewall kuralı nasıl yazılır?
Burada en çok hata yapılan nokta bu. Sophos Firewall önce eşleşen DNAT kuralını bulur, ardından çevrilmiş (iç) adresin bölgesini firewall kuralındaki hedef bölge olarak kullanır. Sunucu DMZ’deyse hedef bölge DMZ olur, kuralda hedef ağ olarak yine genel IP yazılır. Sophos’un örneğindeki firewall kuralı şöyle:
- Kaynak bölge WAN, kaynak ağ Any
- Hedef bölge sunucunun bulunduğu bölge (örnekte DMZ)
- Hedef ağ sunucunun genel IP adresi
- Servis olarak hem orijinal hem çevrilmiş port
Hedef bölgeyi WAN bırakırsanız kural eşleşmez. Servis alanını Any bırakmak da gereğinden geniş bir yayınlama demek, mutlaka daraltın. Yayınlanan sunucu için IPS ve diğer koruma özelliklerini aynı kuralda açmayı unutmayın. IPS ayarları için IPS politikası rehberine bakabilirsiniz.
Loopback ve reflexive kural ne zaman gerekir?
İki seçenek DNAT kuralı oluştururken işaretlenir ve ikisi de yalnızca DNAT için vardır.
Loopback kuralı, iç ağdaki bir kullanıcının sunucuya genel IP ya da alan adıyla ulaşmasını sağlar. Sophos’a göre bu kuralda original source Any, translated source MASQ olmalı ve translated destination Original’dan farklı olmalı. İç ağdaki çalışanların portal.sirket.com adresiyle içerideki sunucuya ulaştığı durum buna örnektir. Alternatif olarak iç DNS’te aynı ada iç IP’yi döndürebilirsiniz. Bu yöntemde loopback gerekmez.
Reflexive kural, DNAT kuralının aynadaki görüntüsü olan bir SNAT kuralıdır. Sunucu dışarıya kendi başına bağlantı açtığında kaynak adresin yayınlanan genel IP olarak görünmesini sağlar. Sophos’un tanımına göre özgün kuralın eşleşme ölçütlerini tersine çevirir. Örneğin bir mail sunucusunun giden bağlantılarında PTR kaydıyla uyumlu IP’yi kullanması gerekiyorsa işe yarar.
Her iki kural özgün kuraldan bağımsız çalışır. DNAT kuralını sonradan değiştirir ya da silerseniz bu kurallar otomatik güncellenmez, elle düzeltmeniz gerekir.
Linked NAT kuralı nedir, ne zaman kullanılır?
Firewall kuralı oluştururken “linked NAT rule” seçeneği ile NAT kuralı aynı ekrandan oluşturulur. Bu kural NAT tablosunda görünür ve yalnızca bağlı olduğu firewall kuralının trafiğine uygulanır. Kullanıcı ya da zamanlama gibi firewall kuralı ölçütlerine bağlı SNAT gerekiyorsa tek yol budur. Linked NAT kuralı yalnızca SNAT içindir, DNAT için kullanılamaz. Üstte aynı trafikle eşleşen başka bir NAT kuralı varsa onun ayarı geçerli olur. Sophos, genel bir kural çoğu zaman aynı trafiği kapsadığı için yeni linked kural yerine ayrı NAT kuralı yazmayı öneriyor.
Birden fazla sunucuya dağıtım ve health check
Translated destination alanına birden fazla sunucu yazarsanız yük dağıtımı yöntemini seçersiniz. Sophos’un sunduğu yöntemler round robin, first alive, random, sticky IP ve one-to-one. Sticky IP, kaynak ve hedef IP’ye göre aynı istemciyi hep aynı sunucuya gönderir. One-to-one’da iki listedeki adres sayısının eşit olması gerekir.
Health check açık değilse firewall bütün sunucuları ayakta sayar ve çöken sunucuya paket göndermeye devam eder. ICMP ya da TCP yoklaması, port, aralık, zaman aşımı ve deneme sayısı ayarlanabilir. First alive yönteminde health check zorunlu olarak uygulanır.
En sık yapılan hatalar
- NAT kuralını yazıp firewall kuralını yazmamak ya da hedef bölgeyi yanlış seçmek.
- Hazır “Default SNAT IPv4” kuralını yanlışlıkla silmek, iç ağın internete çıkışı kesilir.
- Test için var olan bir oturumu denemek. NAT kararı bağlantının ilk paketinde verilir, kuralı değiştirdikten sonra yeni bağlantı açın.
- Yayınlamayı yalnızca iç ağdan test etmek. Loopback kuralı olmadan iç ağdan genel IP’ye bağlanmak çoğu zaman başarısız olur, bu da dışarıdan çalıştığını göstermez. Mutlaka mobil hat gibi dış bir ağdan deneyin.
- Kural sırasını kontrol etmemek. Log Viewer’da bağlantının hangi kural numarasına takıldığına bakın.
Lisans gerekir mi?
NAT kuralları Sophos Firewall’un temel yönlendirme özelliğidir, bu yazıda kullandığımız yardım sayfalarında ayrı bir lisans kalemi olarak geçmiyor. Yayınlanan sunucuyu IPS, web koruması ve sandbox ile korumak ise abonelik paketine bağlı. Paketlerin farkını lisans paketleri yazımızda bulabilirsiniz. Mevcut lisansınızı yeniletmek için lisans yenileme sayfasını kullanın, yeni bir cihaz ya da kurulum desteği için teklif alın. Ürün detayı için Sophos Firewall sayfasına bakabilirsiniz.
Sık sorulan sorular
NAT kuralı yazdım ama dışarıdan erişilmiyor, nereye bakmalıyım? Önce firewall kuralının hedef bölgesinin sunucunun bulunduğu bölge olduğunu doğrulayın. Sonra kural sırasını ve Log Viewer’daki kural numarasını kontrol edin. Sunucunun varsayılan ağ geçidinin Sophos Firewall olması da gerekir, yoksa dönüş trafiği başka yola gider.
Loopback kuralı mı, iç DNS mi kullanmalıyım? İkisi de iç kullanıcının genel adresle sunucuya ulaşmasını sağlar. İç DNS’te aynı ada iç IP döndürmek daha sade bir çözümdür. DNS’i değiştiremiyorsanız loopback kuralı kullanın.
Aynı genel IP’den birden fazla sunucu yayınlayabilir miyim? Evet, farklı portlar ya da farklı genel IP’ler üzerinden. Aynı portu aynı IP’de iki ayrı sunucuya yönlendiremezsiniz, bunun için yük dağıtımı gibi tek bir DNAT kuralı gerekir.
Default SNAT kuralını silebilir miyim? Sophos silmek yerine kapatmanızı öneriyor. Kapattığınızda iç ağın internete çıkışını sağlayacak başka bir NAT kuralı yazdığınızdan emin olun.