NAT(Network Address Translation) firewall mantığına çok
benzer. Zaten Firewall’ın bir parçası olarak DMZ veya local server’lar için
kullanılır. Daha fazlasını öğrenmek isteyenler için devamında...
Network Address Translation
Bilindiği gibi herhangi bir görevdeki server’ın Internet üzerinden
herhangi bir istemci tarafına cevap verebilmesi için real (internet üzerinde
geçerli) bir ip adresi bulunmak zorundadır ve bu adresin aynı subnet üzerinde
olması gerekir.
Birçok kurum local ip kullanmaktadır. Router ve ihtiyacı
olan ISP tarafındaki ayarları yaptıktan sonra, içerdeki diğer makinalarını
internet’e çıkarmak isterler. Bu local adresler 10.0.0.0/8, 172.16.0.0/12 ve 192.168.0.0/16
olabilirler fakat bu adreslerin internet üzerinde gerçek bir rolü bulunmaz ki
zaten dünyada bu ip leri kullanan binlerce makina vardır. Buna bildiğimiz
anlamda INTRANET denir.
Bu kombinasyon 192.168/16 ağı 192.168.0.0 ve mask
255.255.0.0 ile aynı anlama gelir. Aynı zamanda 192.168.1/24 ağı 192.168.1.0 ve
mask 255.255.255.0 ile aynı manadadır. Netmask larla ilgili onlarca
konbinasyon gerçekleştirebilir ama standardı 2 bit ve çarpanları olarak artar. Şöyleki ; 2-4-8-16-32-64-128 bit
Bu durumda kullanılabilecek masklar şöyle sıralanabilir. 192.168.1.0
network unu ele alırsak ;
2 bit için. Mask 255.255.255.254
------------------------------------
Network : 192.168.1.0 Broadcast : 192.168.1.1
Böyle bir durumda kullanabileceğiniz ip yoktur. Ama 2 bitten başlar.
4 bit için Mask 255.255.255.252
-----------------------------------
Network : 192.168.1.0 Broadcast: 192.168.1.3 Kullanılabilir
ip ler 192.168.1.1-2
Network : 192.168.1.4 Broadcast: 192.168.1.7 Kullanılabilir
ip ler 192.168.1.5-6
---------->>>>>
8 bit için Mask 255.255.255.248
----------------------------------
Network : 192.168.1.0 Broadcast:192.168.1.7 Kullanılabilir ip ler192.168.1.1-2-3-4-5-6
Network : 192.168.1.8 Broadcast: 192.168.1.15
Kullanılabilir ip ler 192.168.1.9-10-11-12-13-14-15
Network : 192.168.1.16 Broadcast: 192.168.1.23 Kullanılabilir ip ler
---------->>>>>
128 bit için Mask 255.255.255.128
-------------------------------------
Network : 192.168.1.0 Broadcast: 192.168.1.127
Network : 192.168.1.128 Broadcast: 192.168.1.255
192.168.1.17-18-19-20-21-22
Bunlar haricindeki netmask lar standart değildir ve problemler
yarattıklarını görürsünüz. Anlaşıldığı gibi Network ve Broadcast adreslerini
masklarin 0000 0001 0010 0100 1000 gibi uğraşınca anlamlı gelecek suit
bitleri kullanır. Bu konunun detayına inmek isterseniz TCP/IP yi en baştan
karıştırmanızı tavsiye ederim çünkü ondalık sayılar gibi bitlerden
oluşmuşlardır. Fazla karıştırmak istemiyorum açıkçası... Ama ağınızda
kullanabileceğiniz standart masklar bunlardan ibarettir.
Netmask lar hakkında da kısaca bilgi verdikten sonra tekrar NAT’ı
anlatmaya devam edelim.
Nat dışarı çıkan paketlerin kaynak ipsini alır ve bunu real bir ip’ye
dönüştürür. Gelen paketler için real hedef ip, local bir ip’ye dönüştürülür.
Yani gerçek bir ip , local bir ip’ye dönüştürülerek bir route yapılandırılmış
olur. Böylelikle NAT ile illegal kullandığımız bir local ip yi internete gerçek
bir adresmiş gibi göstererek basit bir
network çözümü olarak kullanabiliriz. Böylelikle illegal(local ip) tanımlı
server’ımızını firewall’ın tüm kurallarından yararlanmasını sağayabiliriz.
NAT’ın birkaç türevi bulunmaktadır. Bu yapı işletim sisteminden(aix,linux,vs)
linux bazlı komutlar için de farklılık gösterir az da olsa. Linux altında
tavsiye edeceğim IPNATADM işimizi kesinlikle görecektir ki bu denenmiş ve şu an çalışmaktadır bile.
Nat Çeşitleri
Map to Map
Birebir illegal ip kaynağını real(gerçek) bir ip miş
gibi göstermektir. Bu yöntemle tek bir real ip tek bir local ip ye birebir dönüştürülür
ve bu esnada bir port kısıtlaması yapılmadığı takdirde 65536 port için de
geçerli bir dönüşüm gerçekleşecektir.
NAPT (Network Address Port Translation)
Bu yöntemde Map to Map gibi fakat port bazlı
kullanılır. Yani tüm portlar yerine belirlenen bir illegal ip’nin belirli bir
portunu real bir ip’nin belirlenen bir portuna dönüştürür. Bu tavsiye edeceğim
bir yöntemdir ki bu portları çoğaltmanız mümkün. Yani real ip için birçok portu
dönüştürebilirsiniz. Böylelikle küçük bir firewall uygularsınız.
Many to One
Bu yöntemlede masquerading tarzı bir port forwarding
uygulaması yaparsınız. Yani belirli bir real ip üzerinden tüm local ip’lerinizi
internet üzerinde gezinmelerini sağlayabilirsiniz. Bu tür bir işlemin masquerading
den farkı local ip'lerin dönüşeceüi ip'nin firewall'unkinden farklı olmasıdır.
Böylelikte ortalıkta boş, ne pinglenen , ne tracesroute ile çözebildiğiniz bir
ip sunuculara girip çıkmaktadır. Firewall'ınızı bu tür işlere karıştırmamak en
mantıklı olanıdır.