Translatarea adreselor de rețea

Previzualizare curs:

Extras din curs:

Introducere

NAT: Translatarea Adreselor de Retea, precum si acest HOWTO va fi un ghid relativ sigur pentru kernel 2.4.0 si mai mult.

In linux 2.4, s-a introdus o infrastructura pt. manuirea pachetelor, numita 'netfilter'. Un nivel (sau strat) deasupra acestei structuri da posibilitatea de NAT, complet reimplementat din kernelele anterioare.

(c) 2000 Paul 'Rusty' Russel. Licenta sub GNU GPL.

2.1 Ce este translatarea adreselor de retea (NAT) ?

In mod normal, pachetele dintr-o retea calatoresc de la sursa (cum ar fi computerul de acasa) pana la destinatie (cum ar fi www.kernelnotes.org) prin mai multe legaturi. Nici una din aceste legaturi nu altereaza pachetele, ele doar le trimit mai departe.

Daca una dintre aceste legaturi ar face NAT, atunci ea va altera sursa sau destinatia pachetului cand trece prin ea. Dupa cum va puteti

imagina, nu asa a fost sistemul proiectat sa functioneze, si NAT este un fel de crocodil. De obicei, legatura care a facut NAT va tine

minte cum a alterat pachetul, ca atunci cand un pachet se reintoarce pe cealalta cale, va face alterarea inversa a pachetului, astfel

incat totul sa functioneze.

2.2 De ce as vrea eu sa fac NAT ?

Intr-o lume perfecta nu ar fi nevoie, dar intre timp, motivele principale ar fi:

Conexiune la internet printr-un modem

Multi ISP aloca doar o singura adresa IP cand faci dial-up la ei. Poti trimite pachete cu orice sursa vrei, dar se vor intoarce doar

cele care au ca sursa IP'ul tau. Daca vrei sa folosesti mai multe masini (cum ar fi reteaua de acasa) pentru a te conecta la internet,

atunci vei avea nevoie de NAT.

Servere multiple

Cateodata vrei sa schimbi destinatia pachetelor care intra in reteaua ta. Frecvent asta se intampla daca ai doar un singur IP (ca in

exemplul de mai sus), dar vrei ca persoanele din afara sa poata accesa computerele din spatele celui cu IP real. Daca poti sa rescrii

destinatia pachetelor, atunci vei reusi sa faci asta.

O variatie pe tema asta este balansarea incarcaturii, atunci cand maparea are loc pentru mai multe masini. Acest tip de NAT se numea

'port-forwarding' n versiunile mai vechi de linux.

Proxy transparent

Cateodata vrei sa pretinzi ca fiecare pachet ce trece prin masina ta pe care rulezi linux este destinat pentru un program de pe ea

insesi. Acest lucru se poate folosi pentru a crea proxy-uri transparente: un proxy e un program care sta intre reteua ta si restul lumii,

aand grija de traficul dintre cele doua. Partea transparenta se rezuma la faptul ca reteua nici nu va sti ca se conecteaza la proxy, acest

lucru intamplandu-se numai in momentul in care proxy-ul nu functioneaza.

Squid poate fi configurat sa lucreaza in acest fel, si se numeste redirectare sau proxy transparent in versiunile mai vechi de linux.

3. Tipurile de NAT

3.1 Eu impart NAT in doua categorii diferite. Source NAT (SNAT) si Destination NAT (DNAT) (SNAT = Translatarea sursei, DNAT = Translatarea destinatiei)

Translatarea sursei (SNAT) se intampla atunci cand vrei sa modifici adresa unui pachet. Ex: Schimbi sura de unde vine conexiuea. SNAT se face intotdeauna dupa routare (POSTROUTING), inainte ca pachetul sa plece pe fir. Masquerading'ul este o forma speciala de NAT.

Translatarea destinatiei (DNAT) se intampla atunci cand vrei sa schimbi destinatia pachetului. Ex: schimbarea destinatiei unei conexiuni. DNAT se face intotdeauna inaintea routarii (PREROUTING) atunci cand pachetul vine de pe fir. Port forwarding, balansarea incarcaturii si proxy transparent sunt toate forme de DNAT.

4. Tranzitie rapida de la kernel 2.0 si 2.2

Imi pare rau pentru cei inca socati de tranzitia de la kernel 2.0 (ipfwadm) si kernel 2.2 (ipchains). Sunt vesti bune si vesti rele.

Pentru inceput, poti folosi ipchains sau ipfwadm ca inainte. Pentru a face asta, trebuie doar rulata comanda insmod ipchains.o sau insmod ipfwadm.o, module care se gasesc in ultima distributie netfilter.

Acestea sunt excluse mutual (ai fost avertizat), si nu trebuie sa fie combinate cu nici un modul de netfilter.

Dupa ce aceste module s-au instalat, poti folosi ipchains sau ipfw la fel ca inainte, cu urmatoarele diferente:

* Setare time-out'ului la masquerading cu ipchains -M -S, sau ipfwadm -M -s nu va face nimic, deoarce time-out'urile vor fi mai lungi sub noua structura NAT, dar oricum nu conteaza.

* Campurile init_seq, delta si previous_delta vor fi intotdeauna zero cand in listingul masquerading'ului in mod 'verbose'

* Listarea si trecerea pe zero a contoarelor n acelasi timp nu va mai fi posibila cu '-Z -L': contoarele nu vor fi resetatea la zero

Hackerii pot observa urmatoarele chestii:

* Acum se pot accesa porturile de la 61000-65095 chiar daca se face masquerading. Codul de msquerading presupunea ca este totul 'fair play', si programatoarii nu ar fi folosit porturile.

* "hack'ul" nedocumentat 'getsockname' pe care proxy-urile transparent il puteau folosi pentru a afla destinatia reala a conexiunilor nu mai functioneaza.

* "hack'ul" nedocumentat bind-to-foreign-address este deasemenea neimplementat, acesta a fost compilat pentru pentru a completa iluzia de proxy transparent.

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Translatarea adreselor de retea.doc
Alte informații:
Tipuri fișiere:
doc
Diacritice:
Nu
Nota:
9/10 (1 voturi)
Nr fișiere:
1 fisier
Pagini (total):
10 pagini
Imagini extrase:
10 imagini
Nr cuvinte:
3 410 cuvinte
Nr caractere:
18 514 caractere
Marime:
16.26KB (arhivat)
Publicat de:
Anonymous A.
Nivel studiu:
Facultate
Tip document:
Curs
Domeniu:
Calculatoare
Tag-uri:
retele, adrese
Predat:
la facultate
Materie:
Calculatoare
Sus!