UYGULAMALAR ve ORNEKLER
Gerekenler
Oncelikle bir firewall ve aynı subnet’te bulunan ve kullanılmayan bos real(gercek) iplere ihtiyacınız var. Bir tek real ip uzerinden birkac tane local makinıza server bazında map to map translate yapamazsınız. 2. gerekli sey ise client'larınız tabiki. Hepsi bu. Bundan sonrası inanın cok basit.
Oncelikle bir firewall ve aynı subnet’te bulunan ve kullanılmayan bos real(gercek) iplere ihtiyacınız var. Bir tek real ip uzerinden birkac tane local makinıza server bazında map to map translate yapamazsınız. 2. gerekli sey ise client'larınız tabiki. Hepsi bu. Bundan sonrası inanın cok basit.
IPNATADM ve Paremetreleri
Kullanımı :
ipnatadm -I komut [secenekler] (input NAT)
ipnatadm -O komut [secenekler] (output NAT)
ipnatadm -F (Onceden yaratılmıs tum kurallar siler. Flush.)
ipnatadm -h (yardimci konfigurasyon gorunulenir.)
Komutları:
-i Yeni bir rule eklemek.(Insert Rule)
-a Varolan bir rule eklemeler yapar (Append Rule)
-d Bir rule siler (Delete Rule)
-l Varolan koyulmus kuralları listeler. (List rules)
Secenekler:
-Y id numarası
-P Protokol tcp,udp,icmp veya hepsi
-S adres[/mask] [port ....] (Kaynak(source) tarafi icin)
-D adres[/mask] [port] (Hedef(destination) tarafi icin)
-M adres[/mask] [port] (Yeni kaynak adresi ve/veya Port)
-N adres[/mask] [port] (Yeni hedef adresi ve/veya Port)
-V Network kartının adresi. Bu Hardware adresi anlamına geliyor.
-W Network kartının ismi. Bu eth0 , eth1 , ppp0 , wan olabilir.
-X [roro|byte|conn] (Virtual Server kuralı)
-w Numara agırlıgı (dogrusu hic kullanmadım)
-t Zamanaşımı(timeout). Belirlediginiz sure icinde paket alısverisi olmazsa istemci ve sunucu arasındaki baglantı kopacaktır.
Bu paremetreyi kullanmanız performansınızı iyi yonde etkileyecektir. Bir zamanasimi belirlemenizi oneririm.
-b bidirectional kural. Boylece yeni kaynak ve hedef adresi icin rule tanımlamadan sadece -S ve -M paretmetreleriyle donusum yapılır.
-s NAT'ı atla(skip nat). Belirli paketleri donusturmeme.
-n Adres ve portların rasyonel bazda ekran cikislari.
-o Belirtilen paketler icin kernel logunu kapatır.
-v ne yaptıgınızı gorme modu(Verbose mode). BUNU HERZAMAN KULLANIN....! Ne yaptıgızı herzaman gorun...
Many to One
Bu klasik bir nat uygulamasıdır. Local agınızdaki butun makinaları masq mantıgına benzer bir sekilde real bir ip uzerinden internette dolasımını saglar. Tum makinaların NAT ile belirttiginiz real ip ile local iplere donusturulmesi saglanır.
Kullanımı :
ipnatadm -I komut [secenekler] (input NAT)
ipnatadm -O komut [secenekler] (output NAT)
ipnatadm -F (Onceden yaratılmıs tum kurallar siler. Flush.)
ipnatadm -h (yardimci konfigurasyon gorunulenir.)
Komutları:
-i Yeni bir rule eklemek.(Insert Rule)
-a Varolan bir rule eklemeler yapar (Append Rule)
-d Bir rule siler (Delete Rule)
-l Varolan koyulmus kuralları listeler. (List rules)
Secenekler:
-Y id numarası
-P Protokol tcp,udp,icmp veya hepsi
-S adres[/mask] [port ....] (Kaynak(source) tarafi icin)
-D adres[/mask] [port] (Hedef(destination) tarafi icin)
-M adres[/mask] [port] (Yeni kaynak adresi ve/veya Port)
-N adres[/mask] [port] (Yeni hedef adresi ve/veya Port)
-V Network kartının adresi. Bu Hardware adresi anlamına geliyor.
-W Network kartının ismi. Bu eth0 , eth1 , ppp0 , wan olabilir.
-X [roro|byte|conn] (Virtual Server kuralı)
-w Numara agırlıgı (dogrusu hic kullanmadım)
-t Zamanaşımı(timeout). Belirlediginiz sure icinde paket alısverisi olmazsa istemci ve sunucu arasındaki baglantı kopacaktır.
Bu paremetreyi kullanmanız performansınızı iyi yonde etkileyecektir. Bir zamanasimi belirlemenizi oneririm.
-b bidirectional kural. Boylece yeni kaynak ve hedef adresi icin rule tanımlamadan sadece -S ve -M paretmetreleriyle donusum yapılır.
-s NAT'ı atla(skip nat). Belirli paketleri donusturmeme.
-n Adres ve portların rasyonel bazda ekran cikislari.
-o Belirtilen paketler icin kernel logunu kapatır.
-v ne yaptıgınızı gorme modu(Verbose mode). BUNU HERZAMAN KULLANIN....! Ne yaptıgızı herzaman gorun...
Many to One
Bu klasik bir nat uygulamasıdır. Local agınızdaki butun makinaları masq mantıgına benzer bir sekilde real bir ip uzerinden internette dolasımını saglar. Tum makinaların NAT ile belirttiginiz real ip ile local iplere donusturulmesi saglanır.
veya
ipnatadm –I –i –b –D 212.23.13.0/24 –N 192.168.1.0/24
Yukaridaki iki kural 212.23.13.0 Networkundeki tum ipleri(254 ip eder) , local kullanıcılarınız icin ihtiyac duyuldugunda bos olanı kullanarak internet cıkısını saglar. Bu iki kural da birbirnin aynısıdır. Bidirectional (-b) kullanıldıgında hedef(destination) , kaynak(source) , ag(network) kurallarını ayrı ayrı belirtmenize gerek yok. Sadece Source(kaynak) ve –M paremetresini kullanmanız yeterli. Tavsiyem –b paremetresini kullanmanız olucaktır. –b kullanılmadıgı tatirde 2 kural belirtmeniz gerekir buda –M –N –S –D yapılarıdır. Bunu tek bir real ip lede gerceklestirebilirsniz. Yani sınırlı sayıda ipniz varsa tum client'larınızı tek bir real ip uzerinden cikartabilirsiniz asagidaki kuralla ;
ipnatadm -O -i -b -S 212.23.13.44/32 -M 192.168.1.0/24
Boylelikle tum clientler internette 212.23.13.44 olarak gozukeceklerdir. Burda masquerading'i tercih etmemenizin iyi tarafını bir kez daha soylemek istiyorum. Firewall'ınız isin icine girmiyor. Baskalarının firewall'dan mumkun oldugu kadar az haberdar olması gerekir. Masquerading'i biraz daha performans sagladıgı icin terchi edebilirsiniz ama inanın bu fark buyutulecek kadar degil. Zaten ilk baglantı sırasında bir performans dusuklugu hissedeceksiniz.
Network Address Port Translation (NAPT)
ipnatadm –v –O –i –D 192.168.1.10/32 80 –N 212.23.23.1/32 8888
ipnatadm –v –O –i –S 212.23.23.1/32 8888 –N 192.168.1.10/32 80
veya
ipnatadm –v –O –i –D 192.168.1.10/32 80 –N 212.23.23.1/32 80
ipnatadm –v –O –i –S 212.23.23.1/32 80 –N 192.168.1.10/32 80
Komutları ile local makinanın 80. portunu real ip'nin 8888. portuna translate etmis oldugumu gosterir. Boylelikle sanki o real ip'nin 8888. portundan servis yapiyormus gibi olur sunucu. Yanıltıcı ha....? Bunu 80. porta karsılık 80. port da yapabilirsiniz.(ikinci ornek) Karar sizin ama en guzeli bu elbetteki.
Iki Network Aynı Subneti paylasiyorsaBunu en guzel cizecegim sekil uzerinde gosterebilirim sanırım.(cizdigim tablonun cirkinligi icin ozur)
+-------------+ +-------------+ +-------------+
| Net A | 10.1.2.0 eth0 | NAT | eth1 10.1.3.0 | Net B |
| 10.1.1.0 | ----------------------- | Router |--------------------------- | 10.1.1.0 |
+-------------+ +-------------+ +-------------+
Route Tablosu
Net A(local): 10.1.1.0 10.1.2.0 eth0 Net B(local) : 10.1.1.0
Net B : 10.1.3.0 10.1.3.0 eth1 Net A : 10.1.2.0
Sanırım boyle bir kombinasyon oluyor. Iki aynı network kullanılan iki sube diyebiliriz bunlara ve biz onların ag yapisni degistirmeden araya bir Nat router koyup(linux) isimizi hallebiliyoruz. Hemen aklıma gelmisken soyleyeyim bazıları boyle bir yapinin henuz beta anlamda kullanılmasi gerektigini soyluyorlar. Evet boyle bir agı birlestirmemiz gerekirse sonuc olarak su iki rule isimizi gorecektir.
ipnatadm -I -b -W eth0 -S 10.1.1.0/24 -M 10.1.2.0/24
ipnatadm -I -b -W eth1 -S 10.1.1.0/24 -M 10.1.3.0/24
Boyle bir yapıyı 3-4-5-6-??? kadar aynı subnet kullanan network'ler icin kullanabilecegimiz konunun uzmanları tarafından soyleniyor.
Bu konuyla ilgili henuz deneme yapmadım baskalarının yalancısı olmak istemem.IPNATADM'yi yazmıs bile olsalar. Deneyip nasıl oldugunu gordukten sonra sizi bilgilendirecegimden emin olabilirsiniz. Ornek bir 3'lu subnet verirsek
ipnatadm -I -b -W eth0 -S 10.1.1.0/24 -M 10.1.2.0/24
ipnatadm -I -b -W eth1 -S 10.1.1.0/24 -M 10.1.3.0/24
Boyle bir yapıyı 3-4-5-6-??? kadar aynı subnet kullanan network'ler icin kullanabilecegimiz konunun uzmanları tarafından soyleniyor.
Bu konuyla ilgili henuz deneme yapmadım baskalarının yalancısı olmak istemem.IPNATADM'yi yazmıs bile olsalar. Deneyip nasıl oldugunu gordukten sonra sizi bilgilendirecegimden emin olabilirsiniz. Ornek bir 3'lu subnet verirsek
Map to MapBu tam bir NAT klasigidir. Belirlenmis bir Real ip(gercek) , icerdeki networkunuze ait illegal bir ip'ye birebir map edilmistir. Port sınırlaması vesaire yoktur(belirtmedikten sonra).Illegal ipnizi sanki Real bir ip kullanıyormus gibi hissedersiniz. Tam bir routing diyebilirim.. Harika..! Ama gene tekrarlıyorum. Sadece ihtiyacınız olan portları acinki hem performansta artıs gorun hemde guvenlik acısından acik vermemis olun. Yani NAPT.
ipnatadm -v -O -i -b -S 10.1.1.100/32 -M 134.102.124.222/32
kuralı ile 10.1.1.100 cikan paketler icin 134.102.124.222 ip adresini , gelen paketler icinse bu ip'yi rezerve etmesini saglıyoruz. Bidirectional kural kullanmadan soyle de yapabilirdik ;
ipnatadm -O -i -S 10.1.1.100/32 -M 134.102.124.222/32
ipnatadm -I -i -D 134.102.124.222/32 -N 10.1.1.100/32
bu iki kuralda yukardaki tekli kuralın aynı gorevini yapmaktadır. Hangisini tavsiye edersin bidirec mi kullanayım yoksa iki komut mu diye sorarsanız ikisine denedim ve uzun bir sure test ettim. Ikiside aynı. Zaten -b paremetresi ile bidirect yaptıgınızda ipnat kendi icin sizin yerinize bu iki komutu veriyor gibi farzedin. Yani ikiside aynı.
Ornek bir Yapı
Boyle bir yapiya sahipseniz iste size cozumu... Burada ekstradan koydugum Sube1 Bolumu. Buradaki ayarları atlayıp yokmus gibi davranırsaniz baska bir ornekle karsılasirsınız. Bu ornekte iki subeyi internete baglayıp uzaktaki subeye de bir WEB Server koyduk. Boyle bir dizaynda yapilmasi gereken route ve diger ayarlar da soyle olabilir ;
FIREWALL CONFIGURATION:
route add default gw 195.182.123.225
ifconfig eth0 195.182.123.229 netmask 255.255.255.248
ifconfig eth1 10.1.1.1 netmask 255.255.255.192
route add –host 195.182.123.226 gw 10.1.1.4
route add –host 195.182.123.228 gw 10.1.1.3
route add –net 10.1.1.128 netmask 255.255.255.192 gw 10.1.1.3
arp –s 212.58.11.70 00:00:a8:c8:4v:94 pub
arp –s 212.58.11.72 00:00:a8:c8:4v:94 pub
ipnatadm –v –O –i –b –S 10.1.1.4/32 –M 195.182.123.226
ipnatadm –v –O –i –b –S 10.1.1.155/32 –M 195.182.123.228
ipchains –A forward –s 10.1.1.0 255.255.255.192 –j MASQ
ipchains –A forward –s 10.1.1.64 255.255.255.192 –j MASQ
ipchains –A forward –s 10.1.1.128 255.255.255.192 –j MASQ
Router 1 Routing Table:
ip route 0.0.0.0 0.0.0.0 10.1.1.1
ip route 10.1.1.128 255.255.255.192 10.1.1.100
Router 2 Routing Table:
ip route 0.0.0.0 0.0.0.0 10.1.1.100
Router Net Routing Table:
ip route 195.182.123.226 255.255.255.255 195.182.123.225
ip route 195.182.123.228 255.255.255.255 195.182.123.225
Netmask 255.255.255.192 (64 bit)
Network Broadcast Useable IPs----------------------- ------------------------- -------------------------
No:1) 10.1.1.0 10.1.1.63 10.1.1.1 – 62
No:2) 10.1.1.64 10.1.1.127 10.1.1.65 – 126
No:3) 10.1.1.128 10.1.1.191 10.1.1.129 – 190
No:4) 10.1.1.192 10.1.1.255 10.1.1.193 – 254
No1 Network è Ana BuroNETWORK
No2 Network è Ana buro - Sube1 ROUTERs NETWORK
No3 Network è Sube 1 NETWORK
No4 Network è FREE NETWORK AREA
Real Ip Addresses
195.182.123.224 è Network First IP (unuseable)
195.182.123.225 è ISP’s router ip address
195.182.123.226 è FIREWALL IP ADDRESS...!!!
195.182.123.227 è Exchange Real NAT ip address
195.182.123.228 è Free ip
195.182.123.229 è http://www.teknoser.gen.tr/ (WEB Server) Real (NAT) IP Address
195.182.123.230 è Free IPs...!!!
195.182.123.231 è BROADCAST IP (Unuseable)
Arp Table (FIREWALL):
eth0 : 00:80:AD:71:C5:18
eth1 : 00:80:AD:74:A3:E7
Boyle bir konfigurasyonda sadece ornek teskil edebilir ama aynı yapı duzenlendiginde %99 dogrulukla calisacak bir yapıdir. Siz bunu gelistirebilir muthis projeler de yapabilirsiniz. Emin olun Linux'un yapamayacagı hic birsey yok. En azından benim, linux'te bunu yapmanın bir yolu yok dedigim birsey yok..!
Yorum Gönder