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"
ShellScriptNAT 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
ShellScriptBurada ö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
ShellScriptBuradaki 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
ShellScriptKuralları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
ShellScriptBu 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
- 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- NAT dönüşümlerinin izlenmesi
conntrack -L
iptables -t nat -L -v -n
ShellScript- Kuralların kalıcı hale getirilmesi
netfilter-persistent save
ShellScriptDoğ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.