Documente Academic
Documente Profesional
Documente Cultură
PROTECTIA N RETEA
Continuam prezentarea masurilor de protectie prin software si configurari locale, de astadata mai ales pentru computerele conectate n retea sau care intra ocazional n contact cu
reteaua globala prin dialup pentru acces la Internet. Aceste computere sunt expuse la
penetrari prin retea, din partea hackerilor si a virusilor, de aceea se impun masuri speciale
pentru nchiderea cailor de acces strain.
APLICA}II DE RE}EA
Pachetul java.net
Clase
ContentHandler
DatagramPacket
DatagramSocket
DatagramSocketImpl
HttpURLConnection
InetAddress
MulticastSocket
ServerSocket
Socket
SocketImpl
URL
URLConnection
URLEncoder
URLStreamHandler
Excep]ii
BindException
ConnectException
MalformedURLException
NoRouteToHostException
ProtocolException
SocketException
UnknownHostException
UnknownServiceException
Interfe]e
ContentHandlerFactory
FileNameMap
SocketImplFactory
URLStreamHandlerFactory
PROTECTIA N RETEA
Continuam prezentarea masurilor de protectie prin software si configurari locale, de astadata mai ales pentru computerele conectate n retea sau care intra ocazional n contact cu
reteaua globala prin dialup pentru acces la Internet. Aceste computere sunt expuse la
penetrari prin retea, din partea hackerilor si a virusilor, de aceea se impun masuri speciale
pentru nchiderea cailor de acces strain.
byte[] getAddress( )
Calculator
Calculator
PROTECTIA N RETEA
Continuam prezentarea masurilor de protectie prin software si configurari locale, de astadata mai ales pentru computerele conectate n retea sau care intra ocazional n contact cu
reteaua globala prin dialup pentru acces la Internet. Aceste computere sunt expuse la
penetrari prin retea, din partea hackerilor si a virusilor, de aceea se impun masuri speciale
pentru nchiderea cailor de acces strain.
soclu
canale de
comunica]ie
Clasa SocketImpl
Variabile
protected java.io.FileDescriptor fd
The file descriptor object for this socket.
protected java.net.InetAddress address
The IP address of the remote end of this socket.
protected int port
The port number on the remote host to which this socket is
connected.
protected int localport
The local port number to which this socket is connected.
Metode
PROTECTIA N RETEA
Continuam prezentarea masurilor de protectie prin software si configurari locale, de astadata mai ales pentru computerele conectate n retea sau care intra ocazional n contact cu
reteaua globala prin dialup pentru acces la Internet. Aceste computere sunt expuse la
penetrari prin retea, din partea hackerilor si a virusilor, de aceea se impun masuri speciale
pentru nchiderea cailor de acces strain.
1. Ini]ializ\ri
2. Are facilit\]i speciale de soclu ?
Da Schimbare comportament prin SocketImpl
3. Creare soclu de comunicare [i stabilire conexiune
4. Ob]inere fluxuri de comunicare cu partenerul
5. Prelucr\ri specifice aplica]iei client
6. Este ultimul utilizator al soclului ?
Da Inchidere soclu
7. Faza final\ a execu]iei
Clasa Socket
Constructori
protected Socket( )
Creeaz\ o conexiune f\r\ nici un partener specificat
protected Socket( java.net.SocketImpl impl )
throws java.net.SocketException
public Socket( java.net.InetAddress address, int port )
throws java.io.IOException
Creates a socket and connects it to the specified port number at
the specified IP address.
public Socket( java.lang.String host, int port )
throws java.net.UnknownHostException, java.io.IOException
public Socket( java.net.InetAddress host, int port, boolean stream )
throws java.io.IOException
If the stream argument is true, this creates a stream socket. If
the stream argument is false, it creates a datagram socket.
PROTECTIA N RETEA
Continuam prezentarea masurilor de protectie prin software si configurari locale, de astadata mai ales pentru computerele conectate n retea sau care intra ocazional n contact cu
reteaua globala prin dialup pentru acces la Internet. Aceste computere sunt expuse la
penetrari prin retea, din partea hackerilor si a virusilor, de aceea se impun masuri speciale
pentru nchiderea cailor de acces strain.
Metode
java.net.InetAddress getInetAddress( )
java.io.InputStream getInputStream( ) throws java.io.IOException
Ob]ine fluxul de intrare de la care pot fi citite datele din
acest soclu.
java.net.InetAddress getLocalAddress( )
int getLocalPort( )
java.io.OutputStream getOutputStream( ) throws java.io.IOException
Ob]ine fluxul de ie[ire prin care pot fi scrise datele
int getPort( )
static synchronized void setSocketImplFactory(
java.net.SocketImplFactory fac ) throws java.io.IOException
int getSoLinger( ) throws java.net.SocketException
synchronized int getSoTimeout( ) throws java.net.SocketException
synchronized void setSoTimeout( int timeout )
throws java.net.SocketException
boolean getTcpNoDelay( ) throws java.net.SocketException
void setTcpNoDelay( boolean on ) throws java.net.SocketException
synchronized void close( ) throws java.io.IOException
void setSoLinger( boolean on, int val ) throws java.net.SocketException
java.lang.String toString( )
Port asociat
25
21
23
79
80
7
512
110
PROTECTIA N RETEA
Continuam prezentarea masurilor de protectie prin software si configurari locale, de astadata mai ales pentru computerele conectate n retea sau care intra ocazional n contact cu
reteaua globala prin dialup pentru acces la Internet. Aceste computere sunt expuse la
penetrari prin retea, din partea hackerilor si a virusilor, de aceea se impun masuri speciale
pentru nchiderea cailor de acces strain.
11
1. Ini]ializ\ri
2. Are facilit\]i speciale de soclu ?
Da Schimbare comportament prin SocketImpl
3. Creare soclu server pentru ascultare cereri
4. Ascultarea continu\ ?
Nu Inchidere soclu
Faza final\
5. Ascultare cereri conexiuni
6. Acceptare cerere [i ob]inere soclu pentru comunicare
7. Creare fir de execu]ie pentru tratarea conexiunii
8. Ini]ializare fir tratare conexiune
9. Prelucrare conform\ cu protocolul textului
10. Inchidere soclu comunicare
11. Terminare fir tratare conexiune
8. GOTO 4
Clasa ServerSocket
Constructori
public ServerSocket( int port ) throws java.io.IOException
Creates a server socket on a specified port. A port of 0 creates a
socket on any free port.
The maximum queue length for incoming connection indications (a request
to connect) is set to 50.
public ServerSocket( int port, int backlog ) throws java.io.IOException
public ServerSocket( int port, int backlog,
java.net.InetAddress bindAddr )
throws java.io.IOException
Create a server with the specified port, listen backlog, and local IP
address to bind to. The bindAddr argument can be used on a multi-homed
host for a ServerSocket that will only accept connect requests to one
of its addresses. If bindAddr is null, it will default accepting
connections on any/all local addresses. The port must be between 0 and
65535, inclusive.
Metode
java.net.InetAddress getInetAddress( )
int getLocalPort( )
static synchronized void setSocketFactory(
java.net.SocketImplFactory fac )
throws java.io.IOException
synchronized int getSoTimeout( ) throws java.io.IOException
synchronized void setSoTimeout( int timeout )
throws java.net.SocketException
java.net.Socket accept( ) throws java.io.IOException
12
PROTECTIA N RETEA
Continuam prezentarea masurilor de protectie prin software si configurari locale, de astadata mai ales pentru computerele conectate n retea sau care intra ocazional n contact cu
reteaua globala prin dialup pentru acces la Internet. Aceste computere sunt expuse la
penetrari prin retea, din partea hackerilor si a virusilor, de aceea se impun masuri speciale
pentru nchiderea cailor de acces strain.
1. Ini]ializ\ri
2. Are facilit\]i speciale de soclu ?
Da Schimbare comportament prin DatagramSocketImpl
3. Creare soclu datagrame
4. Care este ac]iunea urm\toare ?
Transmisie
Producere date
Incapsulare date in pachet
Trimitere date
Recep]ie
Creare pachet recep]ie date
Recep]ie date
Prelucrare date
5. Este ultimul utilizator al soclului ?
Nu GOTO 4
Da
Inchidere soclu
14
PROTECTIA N RETEA
Continuam prezentarea masurilor de protectie prin software si configurari locale, de astadata mai ales pentru computerele conectate n retea sau care intra ocazional n contact cu
reteaua globala prin dialup pentru acces la Internet. Aceste computere sunt expuse la
penetrari prin retea, din partea hackerilor si a virusilor, de aceea se impun masuri speciale
pentru nchiderea cailor de acces strain.
Clasa DatagramPacket
Constructori
15
Metode
synchronized java.net.InetAddress getAddress( )
Returneaz\ adresa IP la care datagrama este trimis\ sau de la
care a fost recep]ionat\
synchronized void setAddress( java.net.InetAddress iaddr )
synchronized byte[] getData( )
Returneaz\ datele care sunt trimise sau care au fost recep]ionate
synchronized void setData( byte[] ibuf )
synchronized int getLength( )
Returneaz\ lungimea pachetului care va fi trimis sau care a fost
recep]ionat
synchronized void setLength( int ilength )
synchronized int getPort( )
Returneaz\ num\rul portului la care datagrama este trimis\ sau de
la care a fost recep]ionat\
synchronized void setPort( int iport )
Clasa DatagramSocket
Constructori
Metode
java.net.InetAddress getLocalAddress( )
int getLocalPort( )
synchronized int getSoTimeout( ) throws java.net.SocketException
synchronized void setSoTimeout( int timeout )
throws java.net.SocketException
void close( )
synchronized void receive( java.net.DatagramPacket p )
throws java.io.IOException
void send( java.net.DatagramPacket p ) throws java.io.IOException
16
PROTECTIA N RETEA
Continuam prezentarea masurilor de protectie prin software si configurari locale, de astadata mai ales pentru computerele conectate n retea sau care intra ocazional n contact cu
reteaua globala prin dialup pentru acces la Internet. Aceste computere sunt expuse la
penetrari prin retea, din partea hackerilor si a virusilor, de aceea se impun masuri speciale
pentru nchiderea cailor de acces strain.
17
Clasa URL
Constructori
Metode
final java.lang.Object getContent( ) throws java.io.IOException
java.lang.String getFile( )
java.lang.String getHost( )
int getPort( )
java.lang.String getProtocol( )
java.lang.String getRef( )
static synchronized void setURLStreamHandlerFactory(
java.net.URLStreamHandlerFactory fac )
java.net.URLConnection openConnection( ) throws java.io.IOException
final java.io.InputStream openStream( ) throws java.io.IOException
boolean sameFile( java.net.URL other )
java.lang.String toExternalForm( )
java.lang.String toString( )
18
PROTECTIA N RETEA
Continuam prezentarea masurilor de protectie prin software si configurari locale, de astadata mai ales pentru computerele conectate n retea sau care intra ocazional n contact cu
reteaua globala prin dialup pentru acces la Internet. Aceste computere sunt expuse la
penetrari prin retea, din partea hackerilor si a virusilor, de aceea se impun masuri speciale
pentru nchiderea cailor de acces strain.
Reele de calculatoare
-neomogene
Avantajele folosiri reelelor sint:
-folosirea in comun a resurselor fizice
-folosirea in comun a datelor
In functie de aria de raspindire a calculatoarelor dintr-o retea exista
urmatoarele tipuri de retele:
- retele locale (lan)
-retele netropolitane (man)
-retele globale (wan)
Pentru o mai buna functionare a reelelor de calculatoare s-au adoptat anumite
standarde de retea care trebuie respectate de toate calculatoarele.
Pentru realizarea unei retele sin necesare componente hardwere sau
softwere.
Componente hardwere;
-calculatoare (nod de retea)
-cabluri de transmisie
-echipamente specifice retelei: adaptoare de retea, modemuri,dispzitiv de
atasare la mediu,concentratoare,repetoare,puntile,porti,routere
Componente softwere se refera la sisteme de operare al retelei si la
programele de aplicatie tip retea.
Sistemu de operare al retelei numit MOS este o colectie de programe prin
care se controleaza modul de partajare a resurselor reelelor.In nodurile
retelei putem avea Servere sau stati de lucru.
Serverele sin calculatoarele cu capacitate mare de stocare a informatiilor pe
un disc sau un grup de discuri la care au acces celelalte calculatoare din retea
. Serverele asigura servicii de tiparire si servicii de comunicare.
Statiile de
lucru sint calculatoare la care au acces serverele din retea. Pot fi unitati de
discuri si fara unitati de discuri.
Reelele pot fi
de fisiere sau retele de la egal la egal.
Din punct de vedere al modului de lucru putem avea;
-cu server dedicat
-cu server ne dedicat
O retea de calculatoare este caracter de topologie mediul fizic de transmisie
si standartul de transport.Se pot defini 2 topologii;
-o topologie fizica care se refera la modul in care sint legate din punct de
vedere calculatoarele.
-o topologie logica care se refera la modul in care sunt transferate datele.
Din punct de vedere al topologiei fizice putem avea retele liniare
,inel,stea,stea cu inel.
20
C
PROTECTIA N RETEA
Continuam prezentarea masurilor de protectie prin software si configurari locale, de astadata mai ales pentru computerele conectate n retea sau care intra ocazional n contact cu
reteaua globala prin dialup pentru acces la Internet. Aceste computere sunt expuse la
penetrari prin retea, din partea hackerilor si a virusilor, de aceea se impun masuri speciale
pentru nchiderea cailor de acces strain.
Powered by http://www.referat.ro/
cel mai tare site cu referate
21
. 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 tra
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,
22
PROTECTIA N RETEA
Continuam prezentarea masurilor de protectie prin software si configurari locale, de astadata mai ales pentru computerele conectate n retea sau care intra ocazional n contact cu
reteaua globala prin dialup pentru acces la Internet. Aceste computere sunt expuse la
penetrari prin retea, din partea hackerilor si a virusilor, de aceea se impun masuri speciale
pentru nchiderea cailor de acces strain.
23
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.
4.1 Eu vreau doar masquerading! Ajutor!
Asta este ceea ce vor majoritatea oamenilor. Daca ai o adresa IP alocata dinamic, vrei doar sa-i spui
linuxului tau ca toate
pachetele care vin din reteaua interna sa para ca au originea chair pe calculatorul tau cu linux.
# Incarcarea modului NAT (acesta incarca si modulele aditionale)
modprobe iptables_nat
# In tabela de NAT (-t nat), adauga o regula (-A) dupa routare (POSTROUTING) pentru toate
pachetel care ies prin ppp0
(-o ppp0) care spune sa masqueradeze conexiunea (-j MASQUERADE)
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# Porneste IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
24
PROTECTIA N RETEA
Continuam prezentarea masurilor de protectie prin software si configurari locale, de astadata mai ales pentru computerele conectate n retea sau care intra ocazional n contact cu
reteaua globala prin dialup pentru acces la Internet. Aceste computere sunt expuse la
penetrari prin retea, din partea hackerilor si a virusilor, de aceea se impun masuri speciale
pentru nchiderea cailor de acces strain.
25
# Adauga o regula inainte de routare (-A PREROUTING) tabelei NAT (-t nat) ca pachetele
# TCP (-p tcp) care se duc spre 1.2.3.4 (-d 1.2.3.4) port 8080 (--dport 8080)
# sa aiba destinatia mapata (-j DNAT) spre 192.168.1.1, port 80
# (--to 192.168.1.1:80).
iptables -A PREROUTING -t nat -p tcp -d 1.2.3.4 --dport 8080 \
-j DNAT --to 192.168.1.1:80
Daca vrei ca aceasta regula sa alterezesi conexiunile locale (ex: chiar si pe masina care face NAT,
incercand telnet la 1.2.3.4 port
8080 sa te duca la 192.168.1.1 port 80), adauagi aceeasi regula lantului OUTPUT (care este penteu
pachetele locale):
# Linux 2.4
iptables -A OUTPUT -t nat -p tcp -d 1.2.3.4 --dport 8080 \
-j DNAT --to 192.168.1.1:80
5. Controlarea a ceea pentru ce vrei sa faci NAT
Trebuie sa creezi reguli NAT care sa-i spuna kernelului ce conexiuni trebuie sa schimbe si cum sa le
schimbe. Pentru a face acest lucru,
folosim intrumentul foarte versatil, si anume, iptables, spunandu-i sa altereze tabela NAT, prin specificare
optiunii '-t nat'.
Tabela cu regulile NAT contine trei liste numite 'lanturi'. Fiecare regula este examinata in ordine pana una
se potriveste.
Cele trei lanturi sunt numite: PREROUTING (pentru DNAT, cum intra pachetele prima data),
POSTROUTING (pentru SNAT, cum ies pachetele) si
OUTPUT (pentru DNAT sau pachete generate local).
_____
_____
/ \
/ \
PREROUTING -->[Decizie ]----------------->POSTROUTING----->
\ D-NAT/ [Routare]
\S-NAT/
|
^
|
__|__
|
/ \
|
| OUTPUT|
|
\D-NAT/
|
^
|
||
--------> Procesare locala --La fiecare dintre punctele de deasupra, cand trece un pachet ne uitam la ce conexiune este asociat. Daca
este o conexiune noua, ne uitam
la lantul corespunzator din tabela NAT ca sa vedem ce sa facem cu el. Raspunsul pe care il va da se va
aplica tuturor pachetelor pentru
acea conexiune.
5.1 Selectie simpla folosind iptables
iptables ia un numar de optiuni standard listate mai jos. Toate optiunile cu -- pot fi abreviate, atata timp cat
iptables le poate deosbi
de celelate optiuni posibile. Daca kernelul are configurat suportul de iptables ca modul, trebuie incarcat
intai modulul ip_tables.o inainte,
26
PROTECTIA N RETEA
Continuam prezentarea masurilor de protectie prin software si configurari locale, de astadata mai ales pentru computerele conectate n retea sau care intra ocazional n contact cu
reteaua globala prin dialup pentru acces la Internet. Aceste computere sunt expuse la
penetrari prin retea, din partea hackerilor si a virusilor, de aceea se impun masuri speciale
pentru nchiderea cailor de acces strain.
27
28
PROTECTIA N RETEA
Continuam prezentarea masurilor de protectie prin software si configurari locale, de astadata mai ales pentru computerele conectate n retea sau care intra ocazional n contact cu
reteaua globala prin dialup pentru acces la Internet. Aceste computere sunt expuse la
penetrari prin retea, din partea hackerilor si a virusilor, de aceea se impun masuri speciale
pentru nchiderea cailor de acces strain.
29
Nu trebuie sa pui explicit in sursa adresa sursa cand faci masquerading, va folosi adresa sursa a interfetei pe
care pachetul
iese afara. Dar, cel mai important este ca,daca legatura pica, conexiunile (care sunt pierdute oricum) sunt
uitate, insemnand
mai putine probleme daca , conexiunea isi revine, dar cu un alt ip.
## Facem masquerading la tot ce iese pe ppp0.
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
6.2 NAT pt. destinatie (DNAT)
Acest lucru este facut in lantul PREROUTING, imediat cum vine pachetul, asta inseamna ca orice altceva
de pe masina care ruleaza
linux (routare, filtrare pachete) va vedea ca pachetul se duce la destinatia 'reala'. De asemenea inseamna ca
se poate folosi
si optiunea '-i'.
DNAT se specifica folosind optiunea '-j DNAT', iar optiunea '--to-destination' specifica o adresa IP, o plaja
de adrese IP, un port
sau o plaja de porturi (numai pentru TCP si UDP).
##Schimba adresa de destinatie la 5.6.7.8
# iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 5.6.7.8
## Schimba adresa de destinatie la 5.6.7.8, 5.6.7.9 sau 5.6.7.10.
# iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 5.6.7.8-5.6.7.10
## Schimba adresa de destinatie a traficului web la 5.6.7.8, port 8080.
# iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 \
-j DNAT --to 5.6.7.8:8080
## Redirecteaza pachetele locale la 1.2.3.4 spre loopback.
# iptables -t nat -A OUTPUT -d 1.2.3.4 -j DNAT --to 127.0.0.1
Redirectare
Exista un caz special de DNAT numit redirectare: este o simpla conventie care este exact echivalenta cu a
face DNAT pe adresa
interfetei de intrare.
##Trimite traficul web de pe portul 80 la Squid care se afla pe portul 3128
# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 \
-j REDIRECT --to-port 3128
6.3 Mapari in adancime
Exista niste subtilitati la NAT pe care cei mai multi nu le vor intalni niciodata. Ele sunt documentate aici
pentru cei curiosi.
Selectarea adreselor multiple intr-o plaja de de adrese
Daca o plaja de adrese IP este data, adresa IP care va fi folosita va fi aleasa be baza celei mai putin folosite
adrese IP
30
PROTECTIA N RETEA
Continuam prezentarea masurilor de protectie prin software si configurari locale, de astadata mai ales pentru computerele conectate n retea sau care intra ocazional n contact cu
reteaua globala prin dialup pentru acces la Internet. Aceste computere sunt expuse la
penetrari prin retea, din partea hackerilor si a virusilor, de aceea se impun masuri speciale
pentru nchiderea cailor de acces strain.
31
32
PROTECTIA N RETEA
Continuam prezentarea masurilor de protectie prin software si configurari locale, de astadata mai ales pentru computerele conectate n retea sau care intra ocazional n contact cu
reteaua globala prin dialup pentru acces la Internet. Aceste computere sunt expuse la
penetrari prin retea, din partea hackerilor si a virusilor, de aceea se impun masuri speciale
pentru nchiderea cailor de acces strain.
33
nu ca in cazul altor mapari ale sursei. In mod natural ambele mapari ale sursei sunt inversate la pachetele de
reply care vin.
7. Protocoale speciale
Unele protocoale nu le place sa treaca prin NAT. Pentru fiecare dintre aceste protocoale doua extensii
trebuie scrise; unul
pentru urmarirea conexiunilor, iar unul chiar pentru NAT.
In interiorul distributiei netfilter, exista module pentru ftp: ip_conntrack_ftp.o si ip_nat_ftp.o. Daca
introduci aceste
2 module in kernel, atunci pentru utilizarea oricarui tip de NAT asupra protocului de ftp va functiona
corect. Daca nu
folosesti aceste module, nu vei putea sa faci decat ftp pasiv, sau chiar s-ar putea sa nu functioneze corect
daca faci
mai mult decat un simplu NAT.
8. Deficiente ale NAT
Daca faci NAT pentru o conexiune, toate pachetele care trec in ambele sensuri (in si din interiorul retelei)
trebuie sa treaca prin
masina care face NAT, altfel nu va functiona corespunzator. In particular, codul de urmarire a conexiunilor
reasambleaza pachetele,
ceea ce inseamna ca nu numai urmarirea conexiunilor nu va fi de incredere, dar pachetele s-ar putea sa nu
treaca deloc, deoarece
fragmentele vor fi oprite.
9. SNAT si routarea
Daca faci SNAT, vei vrea sa te asiguri ca fiecare masina la care se duc pachetele care trec prin SNAT trimit
reply'uri inapoi la masina care
face SNAT. De exemplu, daca mapezi niste pachete la adresa sursa 1.2.3.4, atunci routerul din afara trebuie
sa stie sa trimita reply'uri
(care vor avea destinatia 1.2.3.4) inapoi la aceasta masina. ACest lucru se poate face in felul urmator:
1. Daca faci SNAT pentru adresa proprie a masinii (pentru care routarea si toate celelalte
functioneaza), nu trebuie sa faci nimic.
2. Daca faci NAT pe o adresa nefolosita din LAN (de ex. mapezi pe 1.2.3.99, un IP liber pe
1.2.3.0/24), masina care face NAT va
trebui sa stie sa raspunda la cereri ARP pentru acea adresa precum si pentru a ei insesi. Cel mai usor ar
fi crearea unui alias al
interfetei:
# ip address add 1.2.3.99 dev eth0
3. Daca faci SNAT pe o adresa complet diferita, trebuie sa te asiguri ca masinile pe care pachetele
SNAT le vor lovi vor routa
pachetele inapoi la masina care face NAT. Acest lucru este deja facut in masina care face NAT, in
gateway'ul implicit, altfel va
trebui sa faci 'advertize' pentru o ruta (daca folosesti un protocol de routare) sau sa adaugi manual
route la fiecare masina implicata.
10. DNAT pe aceeasi retea
34
PROTECTIA N RETEA
Continuam prezentarea masurilor de protectie prin software si configurari locale, de astadata mai ales pentru computerele conectate n retea sau care intra ocazional n contact cu
reteaua globala prin dialup pentru acces la Internet. Aceste computere sunt expuse la
penetrari prin retea, din partea hackerilor si a virusilor, de aceea se impun masuri speciale
pentru nchiderea cailor de acces strain.
35
36