NAT Türleri: Ağ Güvenliğinizi Optimize Etme Yolları

Ağ Adresi Dönüşümü (NAT), özel ağların internet ile iletişim kurmasını sağlayan ve sınırlı sayıdaki genel IP adreslerini koruyan temel bir ağ kavramıdır. Bu yazıda, dört ana NAT türünü ve bunları Linux’ta IPTables kullanarak nasıl uygulayacağımızı anlatacağım.

NAT Nedir?

Belirli uygulamalara dalmadan önce, NAT’ın ne yaptığını anlayalım. NAT’ı büyük bir ofis binasındaki bir resepsiyonist gibi düşünün. Bir resepsiyonistin tek bir bina adresi kullanarak birden fazla çalışan için gelen ve giden iletişimleri yönetmesi gibi, NAT da tek bir genel IP adresi kullanarak özel ağlar ile genel internet arasındaki ağ trafiğini yönetir.

Örneklerimiz için aşağıdaki ağ yapılandırmasını kullanalım:

EXTIF="WAN"
INTIF="LAN"
EXTERNAL_IP="1.1.1.1"
INTERNAL_IP="10.0.0.1"
PORT="8989"
ShellScript

NAT Türleri Nelerdir?

1. Tam NAT: Açık Kapı Politikası

Tam NAT, herkesin arayabileceği ve her zaman aynı masada çalan özel bir genel telefon uzantısına sahip olmak gibidir. Bir iç host NAT üzerinden bir eşleme oluşturduğunda, herhangi bir dış host bu eşlemeyi iç hosta ulaşmak için kullanabilir.

iptables -t nat -A POSTROUTING -o $EXTIF -p tcp --sport $PORT -j SNAT --to-source $EXTERNAL_IP
iptables -t nat -A POSTROUTING -o $EXTIF -p udp --sport $PORT -j SNAT --to-source $EXTERNAL_IP
iptables -t nat -A PREROUTING -i $EXTIF -p tcp --dport $PORT -j DNAT --to-destination $INTERNAL_IP
iptables -t nat -A PREROUTING -i $EXTIF -p udp --dport $PORT -j DNAT --to-destination $INTERNAL_IP
ShellScript

Burada önemli nokta, --sport $PORT ve --dport $PORT ile portları açıkça eşleştirmemizdir. Bu, daha basit uygulamalarda genellikle gözden kaçırılan bir ayrıntı olan uygun port eşlemesini sağlar.

2. Kısıtlı NAT: Geri Dönen Müşteri Politikası

Kısıtlı NAT’ı, sadece daha önce ziyaret etmiş kişilere hizmet veren bir kafeterya gibi düşünün. İç host dışarıdaki herhangi bir adrese paket gönderebilir, ancak sadece daha önce iletişim kurulmuş olan hostlar paket gönderebilir.

iptables -A INPUT -i $EXTIF -p tcp --dport $PORT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $EXTIF -p udp --dport $PORT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $EXTIF -p tcp --dport $PORT -m state --state NEW -j DROP
iptables -A INPUT -i $EXTIF -p udp --dport $PORT -m state --state NEW -j DROP
ShellScript

Buradaki durumu izlemek çok önemlidir – sadece daha önce iletişim kurulmuş hostların geri dönüş iletişimi kurabilmesini sağlar.

3. Port Kısıtlı NAT: Hassas Geri Dönüş Politikası

Port Kısıtlı NAT ek bir güvenlik katmanı ekler. Kafeterya benzetmemizi kullanırsak, müşteriler artık sadece daha önce ziyaret etmiş olması değil, aynı zamanda daha önce kullandıkları aynı tezgâhtan sipariş vermeleri gerekir. Bu, kurallarımıza kaynak port kontrolü ekleyerek uygulanır:

iptables -A INPUT -i $EXTIF -p tcp --sport $PORT --dport $PORT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $EXTIF -p udp --sport $PORT --dport $PORT -m state --state ESTABLISHED,RELATED -j ACCEPT
ShellScript

Kurallarımıza --sport $PORT ekledik, bu hem kaynak hem de hedef portların eşleşmesini sağlar.

4. Simetrik NAT: Dinamik Atama

Simetrik NAT, her müşteri için farklı bir kartvizite sahip olmak gibidir. Her bağlantı kendi benzersiz eşlemesine sahiptir, bu da onu en güvenli ancak bazı uygulamalar için potansiyel olarak en sorunlu hale getirir:

iptables -t nat -I POSTROUTING -s $INTERNAL_IP -o $EXTIF -j MASQUERADE
ShellScript

Bu basit kural, her bağlantı için maksimum izolasyonu sağlayan dinamik eşlemeler oluşturur.

Kontrol Edelim

NAT uygulamanızın sorunsuz çalışmasını sağlamak için şu yapılandırmayı göz önünde bulundurmanızı tavsiye ederim

  1. Bağlantı izlemeyi etkinleştirin bu kapalı olursa NAT düzgün bir biçimde çalışmayacaktır.
modprobe nf_conntrack
echo 1048576 > /proc/sys/net/netfilter/nf_conntrack_max
ShellScript
  1. NAT dönüşümlerinin izlenmesi
conntrack -L
iptables -t nat -L -v -n
ShellScript
  1. Kuralların kalıcı hale getirilmesi
netfilter-persistent save
ShellScript

Doğru NAT Türünü Nasıl Seçerim?

NAT türü seçiminiz, güvenlik ile işlevsellik arasında denge kurmalıdır:

  • Tam NAT en iyi uyumluluğu sağlar ancak en düşük güvenliği sunar.
  • Kısıtlı NAT çoğu uygulama için iyi bir denge sağlar.
  • Port Kısıtlı NAT, iyi uyumluluk sağlarken geliştirilmiş güvenlik sunar.
  • Simetrik NAT maksimum güvenlik sağlar ancak bazı uygulamaları bozabilir.

Farklı NAT türlerini uygulamak, ağ güvenliği ve işlevselliği için çok önemlidir. Her tür, kendi güvenlik ve erişilebilirlik dengesini sunar ve doğru olanı seçmek belirli ihtiyaçlarınıza bağlıdır. Uygulamanızı kapsamlı şekilde test etmeyi ve gereksinimlerinizi karşıladığından emin olmak için kontrollerinizi mutlaka yapın aksi durumda istenilmeyen sonuçlara sebep olabilir.

NAT’ın kapsamlı bir ağ güvenliği stratejisinin sadece bir parçası olduğunu hatırlatırım. Her zaman sağlam bir ağ altyapısı oluşturmak için uygun güvenlik duvarı ve erişim kontrolleriyle birleştirilmesi gerekir tek başına hiç bir zaman yeterli değildir.

Your Mastodon Instance