![]() |
|
|||||||
| Linux Araçlar ve Yönetim · Dağıtımcılar · Ev ve Ofis · Geliştirme Araçları · Internet ve Network ( Internet Araçları · İletişim) · Multimedya ve Dizayn · Oyun |
![]() |
|
|
Konu Araçları |
|
|
#1 (permalink) |
|
I'm REAL ?>
![]() Katılma Tarihi: Şub 2006
Nereden: Bursa/es-es
Yaş: 23
Mesajlar: 1,759
|
LINUX ve NAT
________________________________________ Konular : • Network Address Translation (NAT) • Nat Çesitleri • Nat ve Diger Protokoller • IPNATADM'nin kurulumu • Uygulamalar ve Ornekler • Ornek bir Yapı • Cıkabilecek Problemler • SONSOZ ________________________________________ Network Address Translation (NAT) NAT(Network Address Translation) firewall mantıgına cok benzer. Zaten Firewall’ın bir parcası olarak DMZ veya local server’lar icin kullanılır. Bilindigi gibi herhangi bir gorevdeki server’ın Internet uzerinden herhangi bir istemci tarafına cevap verebilmesi icin real(internet uzerinde gecerli) bir ip adresi bulunmak zorundadır ve bu adresin aynı subnet uzerinde olması gerekir. Bircok kurum local ip kullanmaktadir. Router ve ihtiyaci olan ISP tarafındaki ayarları yaptıktan sonra, icerdeki diger makinalarını internet’e cikarmak isterler. Bu local adresler 10/8, 172.16/12 ve 192.168/16 olabilirler fakat bu adreslerin internet uzerinde gercek bir rolu bulunmaz ki zaten dunyada bu ipleri kullanan binlerce makina vardir. Buna bildigimiz anlamda INTRANET denir. Bu kombinasyon 192.168/16 agı 192.168.0.0 ve mask 255.255.0.0 ile aynı anlama gelir. Aynı zamanda 192.168.1/24 agı 192.168.1.0 ve mask 255.255.255.0 ile aynı manadadır. Netmask larla ilgili onlarca konbinasyon gerceklestirebilir ama standardı 2 bit ve carpanları olarak artar. Soyleki ; 2-4-8-16-32-64-128 bit Bu durumda kullanılabilecek masklar soyle sıralanabilir. 192.168.1.0 networkunu ele alırsak ; 2 bit icin. Mask 255.255.255.254 ------------------------------------ Network : 192.168.1.0 Broadcast : 192.168.1.1 Boyle bir durumda kullanabileceginiz ip yoktur. Ama 2 bitten baslar. 4 bit icin Mask 255.255.255.252 ----------------------------------- Network : 192.168.1.0 Broadcast: 192.168.1.3 Kullanılabilir ipler 192.168.1.1-2 Network : 192.168.1.4 Broadcast: 192.168.1.7 Kullanılabilir ipler 192.168.1.5-6 ---------->>>>> 8 bit icin Mask 255.255.255.248 ---------------------------------- Network : 192.168.1.0 Broadcast: 192.168.1.7 Kullanılabilir ipler 192.168.1.1-2-3-4-5-6 Network : 192.168.1.8 Broadcast: 192.168.1.15 Kullanılabilir ipler 192.168.1.9-10-11-12-13-14-15 Network : 192.168.1.16 Broadcast: 192.168.1.23 Kullanılabilir ipler 192.168.1.17-18-19-20-21-22 ---------->>>>> 16 bit icin Mask 255.255.255.240 ----------------------------------- Network : 192.168.1.0 Broadcast: 192.168.1.15 Network : 192.168.1.16 Broadcast: 192.168.1.31 Network : 192.168.1.32 Broadcast: 192.168.1.47 ---------->>>>> 32 bit icin Mask 255.255.255.224 ------------------------------------ Network : 192.168.1.0 Broadcast: 192.168.1.31 Network : 192.168.1.32 Broadcast: 192.168.1.63 Network : 192.168.1.64 Broadcast: 192.168.1.95 ---------->>>>> 64 bit icin Mask 255.255.255.224 ----------------------------------- Network : 192.168.1.0 Broadcast: 192.168.1.31 Network : 192.168.1.32 Broadcast: 192.168.1.63 Network : 192.168.1.64 Broadcast: 192.168.1.95 ---------->>>>> 128 bit icin 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 *Bunlar haricindeki netmask lar standart degildir ve problemler yarattıklarını gorursunuz. Anlasıldıgı gibi Network ve Broadcast adreslerini masklarin 0000 0001 0010 0100 1000 gibi ugrasinca anlamlı gelecek suit bitleri kullanır. Bu konunun detayına inmek isterseniz TCP/IP yi en bastan karistirmanizi tavsiye ederim cunki ondalik sayilar gibi bitlerden olusmuslardır. Fazla karistırmak istemiyorum acikcasi... Ama agınızda kullanabileceginiz standart masklar bunlardan ibarettir. Netmasklar hakkında da kısaca bilgi verdikten sonra tekrar NAT’ı anlatmaya devam edelim. Nat dısarı cıkan paketlerin kaynak ipsini alır ve bunu real bir ip’ye donusturur. Gelen paketler icin real hedef ip, local bir ip’ye donusturulur. Yani gercek bir ip , local bir ip’ye donusturulerek bir route yapılandırılmıs olur. Boylelikle NAT ile illegal kullandıgımız bir local ip yi internete gercek bir adresmis gibi gostererek basit bir network cozumu olarak kulllanabiliriz. Boylelikle illegal(local ip) tanımlı server’ımızını firewall’ın tum kurallarından yararlanmasını saglayabiliriz. NAT’ın birkac turevi bulunmaktadır. Bu yapi isletim sisteminden(aix,linux,vs) linux bazlı komutlar icin de farklılık gosterir az da olsa. Linux altında tavsiye edecegim IPNATADM isimizi kesinlikle gorecektir ki bu denenmis ve su an calismaktadır bile. Nat Cesitleri 1) Map to Map Birebir illegal ip kaynagını real(gercek) bir ip mis gibi gostermektir. Bu yontemle tek bir real ip tek bir local ipye birebir donustururulur ve bu esnada bir port kısıtlaması yapılmadıgı takdirde 65536 port icin de gecerli bir donusum gerceklesecektir. 2) NAPT (Network Address Port Translation) Bu yontemde Map to Map gibi fakat port bazlı kullanılır. Yani tum portlar yerine belirlenen bir illegal ip’nin belirli bir portunu real bir ip’nin belirlenen bir portuna donusturur. Bu tavsiye edecegim bir yontemdir ki bu portları cogaltmanız mumkun. Yani real ip icin bircok portu donusturebilirsiniz. Boylelikle kucuk bir firewall uygularsınız. 3) Many to One Bu yontemlede masquerading tarzı bir port forwarding uygulaması yaparsınız. Yani belirli bir real ip uzerinden tum local ip’lerinizi internet uzerinde gezinmelerini saglayabilirsiniz. Bu tur bir islemin masquerading den farkı local ip'lerin donusecegi ip'nin firewall'unkinden farklı olmasıdır. Boylelikte ortalıkta bos, ne pinglenen , ne tracesroute ile cozebildiginiz bir ip sunuculara girip cıkmaktadır. Firewall'ınızı bu tur islere karıstırmamak en mantılı olanıdır. NAT ve Diger Protokoller Nat ve ICMP Daha onceki versiyonlarında desteklemedigi ICMP paketlerini yeni versiyonlarında destekliyor. Gerci yeni versiyon dedigim 1997 yapilmis en son. Yani nat’la translate ettiginiz bir ip’ye ping ve traceroute tarzı islemler yaptırabiliyorsunuz. Bu bence sakıncalı. Pinglenmeye hic bir server’in ihtiyaci yoktur ki Buyuk firmalar(NASA,Hotmail,vs) bile hacklandıktan sonra server’larından ping ve traceroute destegini kaldırdı. Basit gibi gorunsece bir cok is o kucuk ICMP paketlerinde gizli. Detaylar icin TCP/IP ile ilgili bircok kalın kitap inceleyebilirsiniz. Nat ve FTP Her makina uzerinde toplam 65536 adet port bulunur. Bunların ilk 1024 tanesi bilinen server’lar tarafından kullanılmaktadır. Yani geriye tek bir ip uzerinden donusturulecek 64000 kadar port kalmaktadır. Bu donusturmeler TCP, UDP ve ICMP paketleri icin kullanılır. Fakat kesin FTP paketleri icin biraz daha guclesir cunki paketler acik kaynaklar icerebilirler. Ornegin, FTP PORT komutu bir ip adresi ve ASCII icinde bir porttur. Bu numaralar NAPT ile buyuk olcude dogru olarak translate edilebilmekte. Sebepleri anlatamayacagım kadar karısık bir okadarda mantıklı inanın. Yalnızca FTP’nin kullandıgı UDP paketlerinin port numaraları ASCII ile belirtildiginden bazen donusturelemiyor veya gecikebiliyor. Bunuda Port bazlı ayarlamalarla halledebiliyor. Veya FTP Passive ile cozumu mumkun oluyor. Nat ve DNS Eger internal bir DNS server kullanıyorsanız disardaki isimleri cozmekte birtakım problemlerin cıktıgını belirtiyorlar. Bunu denemedim acikcasi. Acıklamalardan aynen tercume edicek olursam; problem cıkıyor ve bunu asmanın bir cozum yolu olarak ic network adres cozumu icin dns serverin local ipsini , real dns isimleri cozmek icinse NAT ile donusturulen ipsini kullanmanız gerektigi. Yani ic network icin makinanın gercek local ipsini disarısı icin o makinaya veridiginiz virtual NAT real ip adresini kullanın. Bunun sebebini cache de biriken pool’un(havuz) refresh(tazelenmesi) edilememesinden kaynaklandıgını soyluyorlar ve gene UDP'ye baglıyorlar . Cozumu icin ilerde gelicek Kernel parametrelerini bekliyorlar..... IPCHAINS ve NAT Ipchains ve Nat ‘ı aynı anda kullanabilirsiniz. Bu da cok iyi bir olanak . Yalnız dikkat edilmesi gereken bir nokta var. Kendinize has Rule’lar verirken ipchains ile sisteminize NAT ile translate ettiginiz gercek ip’ye degilde server’ınızın local ip(192.168.1.10) adresini kullanmalısınız. Bu atlanan cok onemli bir ayrıntı. Nat ve MASQUERADING En guzel taraflarından biride bu. Masq ve ipnatadm yi birlikte kullanabiliyorsunuz. İster masq ile local kullanıcılarınızı internet gezgini yapin ister ipnatadm. Masq kullandıgınızda elbetteki client'lerinizin ipsi disarida firewall'ın ipsi olarak gozukecektir.Burda en mantıklısı Ipnatadm ile belirli bir real ip'yi local client'lara paylastırmak. Boylece kotu niyetli kisiler ipnizi bulup ping , traceroute, vs yaptıklarında hic bir sey bulamayacaklar. Boslukta gibi..! Bu en guvenlisi ve tavsiye ettigim yoldur. Ancak yeterli bos ip'niz yoksa masq kullanmanız gerekebilir... NAT ve Performans Kendim sahsen soyle gercekci bir test yapmamama rahmen hiz ve performansi farkedebildim. En azından yuzeysel testlerle. Ama ben genede internet uzerinde yakaladıgım performans loglarından birkac alıntı vermek istiyorum. Daha once diyebilirim ki performans maximum %2-4 luk bir oran bunuda milisaniyeye carparsak 30- 200ms kadar dusuyor ki bu bence normal. Bu dusus ozellikle ICMP de fark ediliyor. Yalnızca kesin olarak soyleyebilecek tek sey teste baslarken ilk icmp leri gec daha sonradan toparlayıp normal bir local ip'ye icmp gonderir hızda karsılık verdigi. Tabii unutmamak lazim makiya yuklenme miktari ve konfigurasyonuda permormansı fazlasıyla etkiliyor. Asagıdaki tablo 50 adet rule uygulandıgında yapilmis 3 subnet li local bir test sonucu.... # t1 t2 t3 t4 t5 t6 averange seconds 1 43.43 43.27 39.05 36.94 37.88 37.90 39.75 40.39 41.31 39.66 37.29 34.95 34.80 38.07 2 40.57 38.86 36.17 37.70 35.94 37.08 37.72 40.24 41.06 40.10 35.68 35.22 34.42 37.79 3 45.70 44.64 42.25 38.84 39.86 38.79 41.68 40.54 43.03 39.43 37.42 35.85 35.44 38.62 4 49.27 48.96 41.85 39.97 39.20 39.94 43.20 41.57 42.19 40.73 36.44 35.79 36.25 38.83 5 52.90 44.45 43.21 44.88 45.11 48.35 46.48 45.82 45.80 42.39 40.75 41.02 41.93 42.95 # t1 t2 t3 t4 t5 t6 average Kbytes/sec (ca.) 1 482 484 536 567 553 553 527 519 507 528 562 599 602 550 2 516 539 579 556 583 565 555 520 510 522 587 595 608 554 3 458 469 496 539 525 540 502 517 487 531 560 584 591 542 4 425 428 500 524 534 524 485 504 496 514 575 585 578 539 5 396 471 485 467 464 433 451 457 457 494 514 510 499 487 IPNATADM'nin Kurulumu Kurulumu oldukca basittir.Eger Kernel 2.4.x kullanmıyorsanız ufak bir patch'e ihtiyacınız olucaktır ve buraya tıklayarak nat-static-2.2.4.tar.gz ve kerrnel patch'ini indirebilirsiniz. Redhat 6.2 de biraz problem yasıyoruz ama Slackware 7.1 icin patch rahatlıkla kuruluyor. Dosyayı /usr/local dizini altina kopyalayip gzip -cd nat-static-2.2.4.tar.gz | tar xfv - komutuyla acin. Daha sonra /usr/src/linux dizinine girip "patch -p1 < /usr/local/nat-static-2.2.4/kernel/patch-2.2.4-2" komutunu verin. root *DRHP* /usr/src/linux-2.2.16=47 > patch -p1 < /usr/local/nat-static-2.2.4/ kernel/patch-2.2.4-2 patching file Documentation/Configure.help Hunk #1 succeeded at 2350 with fuzz 2 (offset 71 lines). patching file include/linux/ip_nat.h patching file include/linux/proc_fs.h patching file net/ipv4/Config.in Hunk #1 succeeded at 12 with fuzz 1. patching file net/ipv4/Makefile patching file net/ipv4/ip_forward.c Hunk #1 succeeded at 20 (offset 1 line). Hunk #3 succeeded at 252 (offset -5 lines). patching file net/ipv4/ip_input.c Hunk #1 succeeded at 145 (offset 1 line). Hunk #2 succeeded at 331 (offset 7 lines). Hunk #3 succeeded at 489 with fuzz 2 (offset 45 lines). patching file net/ipv4/ip_nat.c patching file net/ipv4/ip_nat_stub.c patching file net/ipv4/ip_output.c patching file net/ipv4/ip_sockglue.c Hunk #2 succeeded at 385 (offset 2 lines). patching file net/socket.c Hunk #2 succeeded at 1489 (offset 7 lines). gibi bir cikti almalisiniz. En son satırda succeeded diye bir satır okursanız tebrikler. Eger alamazsanız bana bildirin ne gibi problemler cıktıgını. Henuz bir problemle karsılasmadıgım icin cozumde yok dogal olarak. Simdi make menuconfig ile kerneli derleyecegiz. "make menuconfig" komutu ile kernel configurasyon menusune girelim. Orada "Networking Options" Bolumunde su bolumler mutlaka secilmis olmalıdır. * Paket socket * Kernel/User netlink socket * Routing messages [M] Netlink device emulation * Network firewalls * Socket Filtering * Unix domain sockets * TCP/IP networking * IP: multicasting * IP: advanced router * IP: network address translation (ipnatadm) (NEW) * IP: firewalling * IP: firewall packet netlink device * IP: transparent proxy support (NEW) #İsteginize baglı * IP: masquerading * IP: optimize as router not host # en onemlisi bu * IP: tunneling # isteginize baglı. Eger VPN kullanıcaksanız * IP: ARP daemon support # mutlaka olmalı * IP: Reserver ARP # Olsa cok iyi olur. Dikkat ederseniz yeni bir bolum ciktı karsimiza network address translation isimli. Bunu Modul olarak da yukleyebilirsiniz.Daha sonra kerneli kaydedip cikin ve sira kernel derleme isine geldi ki bunu hepimiz biliyoruzdur sanırım ama genede kısaca anlatalim. Eger REDHAT kullanıyorsanız tam olarak hatırlamıyorum ama rc.d lerin icinde biryerde depmod -a diye bir satır olucaktır. Bu satırın basina # isaretini koymalıyız. daha sonra "make dep;make clean;make bzImge" komutuyla kerlenlimizi derleyelim. islem bittikten sonra "cp /usr/src/linux/arch/i386/boot/bzImage /vmlinuz.new" komutyla derlenmis olan yeni kernelinizi kopyalayın. daha sonra tekrar "cp usr/src/linux/arch/i386/boot/System.map /boot/System.map" komutyla kaydedin. son olarak lilo.conf dosyasında gerekli degisiklikleri yapip lilo komutunu calistirin. sonra /usr/src/linux dizininde tekrar "make modules;make modules_install" komutunu verip makinanınızı resetleyin.... Artık nat'in yuklu olması gerekmektedir. Yani bu noktadan sonrra artık "ipnatadm" isimli bir komutumuz olusmustur... 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. 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. ipnatadm –O –i –b –S 212.23.13.0/24 –M 192.168.1.0/24 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) Paketler sadece belirlenen portlar icin donusturulur. Boylelikle bir nevi firewall korumasıda yapmis olursunuz. En basit ve en etkileyicisi de bu. Kullanmanız gerekende budur bence cunki belirli portları actıgınız icin ipchains’le port kısıtlamaları yapmak zorunda kalmazsınız. Server’ınızın ihtiyacı olan portları acmanız en saglıklı ve akıllıca bir karar olur. Kullanımı ise ; 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 paylasiyorsa Bunu 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 Map to Map Bu 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ı Muhtemelen NAT kullanmak istiyenlerin en az 2 ethernet kartına sahip bir firewall veya NAT router(linux) makinası , en az bir local host(icerdeki makinalar) ve bir router/Internet baglantısı bulunacaktır. Bu durumda Firewall'ın ethernet kartlarından birinin real bir ip'si ve digerininde local kullanıcılar icin ayırdıgınız illegal iplerden biri olacaktır. Ve siz muhtemelen icerdeki bir makinayı real bir ip olarak gostermek isiyorsunuzdur. Boyle bir durumda yapilmasi gereken en guzel sey NAPT olucaktır ki tavsiyet ettigim sey. Bunun otesinde islerinizi biraz daha karistirmis olabilirsiniz. Ornegin bir kac, hatta sayı verelim 10 tane subnetiniz var. Ve sadece ana buronuzun lease line uzerinden internet cikisi calısyor. Ve siz diger suberinizdeki pcleri internete cikarmak hatta orda INTERNET uzerinde gorulmesini istediginiz Server'lar koymak istiyebilirsiniz. Boyle bir durum suberiniz arası hattınız hızlıysa NAT kullanmalımıyım diye dusunmenize bile gerek yoktur ki , NAT boyle bir durumda cozum olarak uretilmistir zaten.Aksi takdirde soyle buyukce bir subnet alip 5-6 parcaya bolmek zorunda kalırdınız. Hemen hatırlamısken biraz bahsedim. Eger hic bir sekilde NAT kullanmak istemiyor veya isi en temiz ve ortalıklarda sahtelik istemezseniz, Yapmanız gereken ayrı ayrı subnetler alıp bunları subelerinizle baglandıgınız router'lara assign etmek olacaktır. Boyle bir durumda NAT'tan daha karısık durumlarla karsılabilirsiniz. En buyuk probleminizde ag'larınızda kullanacagınız subnet'ler ve route ayarları olucaktır. Konuyu fazla dagıtmadan devam edersek asagıdaki bir network yapınız olabilir buyuk bir olasılıkla. 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 è ..:: TEKNOSER ::.. (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..! CIKABILECEK PROBLEMLER Tip 1: -W parametresi donusumun yapılacagı interface'i belirtir. Muhtemelen eth0 ve eth1 olarak iki network kartınız olacaktır. eth0 real ip eth1 ise local ip oldugunu varsayarsak siz muhtemelen kural eklerken -W eth0 olarak kullandınız ve local networkten test etmeye calisiyorsunuzdur. Unuttugunuz bir nokta sadece eth0 icin donusum gerceklesecektir. Yani aslinda icerden real ip'sine baglanamıyorsunuz ama dısardan baglanılıyordur. Ve sizde muhtemelen calismadıgını dusunuyorsunuz. ya -W parametresini kullanmayın yada -W eth1 'ide ekleyerek aynı rule'ları tekrar yazın.Ama en mantıklısı -W yi kullanamamaktır. Tavsiye etmiyorum.... Tip 2: Proxy Arp kullandıgınızdan emin olmalısınız. Bos olan gercek(real) ip yi makinanıza attach etmeniz gerekmektedir. Proxy arp ipaliases'e benzer bir sekilde davranarak o ip'yi makinanıza(firewall) assign eder. ARP kullanmak islerinizi garantiye almaktır. Tip 3: Route ayarlarınızda eksiklikler vardır. Router'ınıza ve Nat Gateway makinanıza nat icin kullanacaginiz bos olan real(gercek) ip'leri firewall makinanıza yonlendirmelisiniz. Ornegin router ip: 195.182.123.225 firewall ip: 195.182.123.229 bos ipleriniz: 195.182.123.226 ve 228 cisco router sahibi iseniz ; telnet 212.55.22.11 ROUTER$ en PASSWORD ROUTER# conf t ROUTER [confıg] # route add 195.182.123.226 255.255.255.255 195.182.123.229 ROUTER [confıgl] # route add 195.182.123.228 255.255.255.255 195.182.123.229 ROUTER# exit ROUTER# wr ROUTER# reload ReWriting Configuration....################################# komutlarıyla router'inizin setup'larını da yapmıs olursunuz. Route kurallarır cok onemlidir. Bazen Firewall uzerindede route tanımları yapmanız gerekebilir. Bu hem performans icin hem de calisması icin gerekli olabilir. Performans konusunu test etmeniz sizin icin en saglıklısıdır ... Firewall'a boyle bir durumda ekleyebileceginiz route ayarları soyle olabilir. Eger local 1 server ip: 10.1.1.10 server2 ip:10.1.1.11 server3ip: 10.1.1.12 server4ip:10.1.1.13 olursa; FIREWALL # route add –host 212.55.22.12 gw 10.1.1.10 FIREWALL # route add –host 212.55.22.13 gw 10.1.1.11 FIREWALL # route add –host 212.55.22.14 gw 10.1.1.12 FIREWALL # route add –host 212.55.22.15 gw 10.1.1.13 gibi bir route tablosu eklemeniz soz konusu olabilir. Bu belirttigim gibi performansınızı etkileyebilecegi gibi problem de cikartabilir veya problemlerinizi cozebilirde. Tip4: Nat icin kullandıgınız ip adresi firewall'ın real ip adresiyle aynı sub-networkte olmalıdır. Tip5: Bir ipnatadm kuralı koyduktan sonra calismiyorsa, deneyebileceginiz bir yontemde ARP'tır ki bunu yukardaki orneklerde gorebilirsiniz.
__________________
................................... |
|
|
|
![]() |
| Şu Anda Konuyu İnceleyen Aktif Kullanıcılar: 1 (0 üye ve 1 misafir) | |
| Konu Araçları | |
|
|
Benzer Konular
|
||||
| Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
| Neden Linux.. | By_Escape | Linux | 2 | 30.04.2007 19:29 |
| Antivirüs (*Linux*) | *SENTOLL* | Linux | 2 | 25.11.2006 21:49 |
| Linux hakkında... | By_Escape | Linux | 0 | 23.06.2006 03:19 |
| LINUX nedir | By_Escape | Linux | 0 | 23.06.2006 02:57 |
| OpenOffice.org for Linux 2.0 | gamze_dmr | Online Oyun Merkezi | 0 | 05.06.2005 05:30 |