Sunteți pe pagina 1din 36

Network resource Host name IP-address

MAC-address Resource comment


---------------- --------- --------------- ------------ ---------------------------\\PAN
PAN
192.168.123.184 0001020a7f14
\\ADINA
ADINA 192.168.123.175 000795cd02de
\\ADINETTE
?
?
?
\\ALAH
?
?
?
Jihad
\\ALEX
ALEX
192.168.123.33 0001020b2b76
\\ASSUR
ASSUR 192.168.123.164 00c0268c5714
\\ATHLONXP
ATHLONXP 192.168.123.120 00064f052948 Alex22
\\BEBIDE
?
?
?
Andreea
\\BIBA
BIBA
192.168.123.123 0030840a7652 Biba
\\COACH
COACH 192.168.123.141 005022d39611
\\CRISTI
?
?
?
Tata puradeilor
\\CRISTIAN
?
?
?
Cristian 29A sc.C
\\DALEX
?
?
?
dalex(corina&radu)
\\DUMBRAVA
?
?
?
\\FLORIN
FLORIN 192.168.123.32 00e07d02edc6 Florin, Bl.29A, sc.C, ap.114
\\GOGU
gogu
192.168.123.145 0050bf9c0300 culca-te
\\GUVIDA
GUVIDA 192.168.123.13 000244591123
\\IRINA
IRINA 192.168.123.85 005022b4cb45 Fata ce-a cuminte a retelei
\\KLAUS
?
?
?
\\MARINA
MARINA 192.168.123.21 00e0295627c7
\\NICK
NICK
192.168.123.23 0050fc9d6cce NICK 29A sc.A
\\PITZY
PITZY 192.168.123.29 00a0d21c43be Genius
\\SHADOW
?
?
?
BaLLu
\\STEFAN
STEFAN 192.168.123.22 0060089d019f
\\TERENTE
TERENTE 192.168.123.125 000244660dbc carlos
\\TERRY
TERRY 192.168.123.43 0040f432cbbe
\\VALKYR
VALKYR 192.168.123.140 00e04ca0b140 Pc-u' lu' Alin
\\VIORELO
VIORELO 192.168.123.72 00e018b2125c
-----------------------------------------------------------------------------------01:07:15 26-08-2003 Generated by TCPNetView, http://www.enet.ru/~gorlach/

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.

Protectia fata de penetrarile prin retea


Lucrul n retea face posibil ca altii sa aiba acces din retea la fisiere din computerul
tau, deci fara sa aiba nevoie sa opereze la tastatura lui sau sa vada ce este pe ecran.
n mod normal, acest lucru ar trebui sa fie posibil numai pentru acele directoare

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

Network resource Host name IP-address


MAC-address Resource comment
---------------- --------- --------------- ------------ ---------------------------\\PAN
PAN
192.168.123.184 0001020a7f14
\\ADINA
ADINA 192.168.123.175 000795cd02de
\\ADINETTE
?
?
?
\\ALAH
?
?
?
Jihad
\\ALEX
ALEX
192.168.123.33 0001020b2b76
\\ASSUR
ASSUR 192.168.123.164 00c0268c5714
\\ATHLONXP
ATHLONXP 192.168.123.120 00064f052948 Alex22
\\BEBIDE
?
?
?
Andreea
\\BIBA
BIBA
192.168.123.123 0030840a7652 Biba
\\COACH
COACH 192.168.123.141 005022d39611
\\CRISTI
?
?
?
Tata puradeilor
\\CRISTIAN
?
?
?
Cristian 29A sc.C
\\DALEX
?
?
?
dalex(corina&radu)
\\DUMBRAVA
?
?
?
\\FLORIN
FLORIN 192.168.123.32 00e07d02edc6 Florin, Bl.29A, sc.C, ap.114
\\GOGU
gogu
192.168.123.145 0050bf9c0300 culca-te
\\GUVIDA
GUVIDA 192.168.123.13 000244591123
\\IRINA
IRINA 192.168.123.85 005022b4cb45 Fata ce-a cuminte a retelei
\\KLAUS
?
?
?
\\MARINA
MARINA 192.168.123.21 00e0295627c7
\\NICK
NICK
192.168.123.23 0050fc9d6cce NICK 29A sc.A
\\PITZY
PITZY 192.168.123.29 00a0d21c43be Genius
\\SHADOW
?
?
?
BaLLu
\\STEFAN
STEFAN 192.168.123.22 0060089d019f
\\TERENTE
TERENTE 192.168.123.125 000244660dbc carlos
\\TERRY
TERRY 192.168.123.43 0040f432cbbe
\\VALKYR
VALKYR 192.168.123.140 00e04ca0b140 Pc-u' lu' Alin
\\VIORELO
VIORELO 192.168.123.72 00e018b2125c
-----------------------------------------------------------------------------------01:07:15 26-08-2003 Generated by TCPNetView, http://www.enet.ru/~gorlach/

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.

Protectia fata de penetrarile prin retea


Lucrul n retea face posibil ca altii sa aiba acces din retea la fisiere din computerul
tau, deci fara sa aiba nevoie sa opereze la tastatura lui sau sa vada ce este pe ecran.
n mod normal, acest lucru ar trebui sa fie posibil numai pentru acele directoare

Folosirea adreselor IP (Internet Protocol)


Clasa InetAdress
Furnizeaz\ mecanismul prin intermediul c\ruia sunt manipulate adresele IP.
Metode

byte[] getAddress( )

Returneaza adresa efectiva reprezentat\ de obiectul respectiv


ntr-un vector de 4 octe]i.Cel mai semnificativ octet se g\se[te
n getAddress()[0].
Ex: [123, 45, 67, 89]
java.lang.String getHostAddress( )
Returneaz\ adresa efectiv\ sub forma unui [ir %d.%d.%d.%d
Ex: 123.45.67.89
java.lang.String getHostName( )
Returneaz\ numele simbolic al adresei respective
static java.net.InetAddress getLocalHost( ) throws
java.net.UnknownHostException
Ex: xyz@thor.infoiasi.ro
boolean isMulticastAddress( )
boolean equals( java.lang.Object obj )
static java.net.InetAddress[] getAllByName( java.lang.String host )
throws java.net.UnknownHostException
Determin\ toate adresele unui claculator. (Dac\ un calculator
este conectat la mai multe re]ele el trebuie s\ aib\ cte o
adres\ IP pentru fiecare re]ea la care este conectat). Parametrul
host poate fi
- fie numele ma[inii ex: java.sun.com
- fie un [ir reprezentnd adresa IP a ma[inii
static java.net.InetAddress getByName( java.lang.String host ) throws
java.net.UnknownHostException
Construie[te adresa IP a unui calculator.
int hashCode( )
java.lang.String toString( )

Intruct acesat\ clas\ nu are constructor public, pentru a crea o instan]\


a unui obiect de tip InetAddress trebuie folosit\ una din metodele statice :
getLocalHost, getAllByName sau getByName, care apeleaz\ la rndul
lor cnstructorii priva]i ai clasei.
Comunicarea prin protocoale orientate pe conexiune
Un protocol este o combina]ie de reguli de comunica]ie [i formate de
mesaje care trebuie respectate de calculatoarele legate n re]ea pentru a
schimba date. Scopul primar al protocoalelor este de a permite comunica]ia
ntre calculatoare, indiferent de re]ea sau de hardware-ul calculatoarelor
legate n re]ea.
O conexiune reprezint\ un canal sigur de comunica]ie n re]ea, stabilit
de c\tre un protocol pentru transmiterea corect\ [i n ordine a mesajelor ntre
calculatoare. O conexiune este format\ din dou\ fluxuri de date
unidirec]ionale folosite pentru comunica]ie precum [i din dou\ socluri
(socket) care permit trimiterea, respectiv recep]ia datelor. Orice conexiune
este unic determinat\ de cele dou\ socluri plasate la cele dou\ capete ale
conexiunii.
CONEXIUNE

Calculator

Calculator

Network resource Host name IP-address


MAC-address Resource comment
---------------- --------- --------------- ------------ ---------------------------\\PAN
PAN
192.168.123.184 0001020a7f14
\\ADINA
ADINA 192.168.123.175 000795cd02de
\\ADINETTE
?
?
?
\\ALAH
?
?
?
Jihad
\\ALEX
ALEX
192.168.123.33 0001020b2b76
\\ASSUR
ASSUR 192.168.123.164 00c0268c5714
\\ATHLONXP
ATHLONXP 192.168.123.120 00064f052948 Alex22
\\BEBIDE
?
?
?
Andreea
\\BIBA
BIBA
192.168.123.123 0030840a7652 Biba
\\COACH
COACH 192.168.123.141 005022d39611
\\CRISTI
?
?
?
Tata puradeilor
\\CRISTIAN
?
?
?
Cristian 29A sc.C
\\DALEX
?
?
?
dalex(corina&radu)
\\DUMBRAVA
?
?
?
\\FLORIN
FLORIN 192.168.123.32 00e07d02edc6 Florin, Bl.29A, sc.C, ap.114
\\GOGU
gogu
192.168.123.145 0050bf9c0300 culca-te
\\GUVIDA
GUVIDA 192.168.123.13 000244591123
\\IRINA
IRINA 192.168.123.85 005022b4cb45 Fata ce-a cuminte a retelei
\\KLAUS
?
?
?
\\MARINA
MARINA 192.168.123.21 00e0295627c7
\\NICK
NICK
192.168.123.23 0050fc9d6cce NICK 29A sc.A
\\PITZY
PITZY 192.168.123.29 00a0d21c43be Genius
\\SHADOW
?
?
?
BaLLu
\\STEFAN
STEFAN 192.168.123.22 0060089d019f
\\TERENTE
TERENTE 192.168.123.125 000244660dbc carlos
\\TERRY
TERRY 192.168.123.43 0040f432cbbe
\\VALKYR
VALKYR 192.168.123.140 00e04ca0b140 Pc-u' lu' Alin
\\VIORELO
VIORELO 192.168.123.72 00e018b2125c
-----------------------------------------------------------------------------------01:07:15 26-08-2003 Generated by TCPNetView, http://www.enet.ru/~gorlach/

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.

Protectia fata de penetrarile prin retea


Lucrul n retea face posibil ca altii sa aiba acces din retea la fisiere din computerul
tau, deci fara sa aiba nevoie sa opereze la tastatura lui sau sa vada ce este pe ecran.
n mod normal, acest lucru ar trebui sa fie posibil numai pentru acele directoare
soclu

soclu
canale de
comunica]ie

Versiunea standard de Java folose[te pentru implementarea


comunica]iei pe baz\ de conexiuni protocolul TCP (Transmission Control
protocol), unul din protocoalele de baz\ ale familiei TCP/IP.
Modul de lucru cu soclurile se ncadreaz\ n modelul client/server de
scriere de aplica]ii, model n care aplica]iile se mpart n dou\ categorii :
programe client
- cele care ini]iaz\ conversa]ia
programe server
- cele care ofer\ servicii programelor client
In virtutea acestui fapt, orice conexiune ntre dou\ programe care comunic\
prin re]ea este determinat\ unic de 4 elemente :
1. adresa gazdei pe care ruleaz\ aplica]ia client
2. num\rul de port al aplica]iei client
3. adresa gazdei pe care ruleaz\ aplica]ia server
4. num\rul de port pe care serverul prime[te cererile
Un soclu Java poate lucra n dou\ moduri :
n direct - implicit (suficient pentru majoritatea aplica]iilor)
n cu facilit\]i speciale pe soclu, folosit de aplica]iile care necesit\
comunicarea peste un zid de protec]ie (firewall) sau prin
intermediul unui server proxy
Implementarea unui soclu (client sau server) se realizeaz\ prin extinderea
clasei abstracte SocketImpl.Metodele acestei clase pun la dipozi]ie
instrumente de comunica]ie direct\. Pentru a crea un soclu cu facilit\]i
speciale este necesar\ redefinirea metodelelor din aceast\ clas\.

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

protected java.io.FileDescriptor getFileDescriptor( )


protected java.net.InetAddress getInetAddress( )

Network resource Host name IP-address


MAC-address Resource comment
---------------- --------- --------------- ------------ ---------------------------\\PAN
PAN
192.168.123.184 0001020a7f14
\\ADINA
ADINA 192.168.123.175 000795cd02de
\\ADINETTE
?
?
?
\\ALAH
?
?
?
Jihad
\\ALEX
ALEX
192.168.123.33 0001020b2b76
\\ASSUR
ASSUR 192.168.123.164 00c0268c5714
\\ATHLONXP
ATHLONXP 192.168.123.120 00064f052948 Alex22
\\BEBIDE
?
?
?
Andreea
\\BIBA
BIBA
192.168.123.123 0030840a7652 Biba
\\COACH
COACH 192.168.123.141 005022d39611
\\CRISTI
?
?
?
Tata puradeilor
\\CRISTIAN
?
?
?
Cristian 29A sc.C
\\DALEX
?
?
?
dalex(corina&radu)
\\DUMBRAVA
?
?
?
\\FLORIN
FLORIN 192.168.123.32 00e07d02edc6 Florin, Bl.29A, sc.C, ap.114
\\GOGU
gogu
192.168.123.145 0050bf9c0300 culca-te
\\GUVIDA
GUVIDA 192.168.123.13 000244591123
\\IRINA
IRINA 192.168.123.85 005022b4cb45 Fata ce-a cuminte a retelei
\\KLAUS
?
?
?
\\MARINA
MARINA 192.168.123.21 00e0295627c7
\\NICK
NICK
192.168.123.23 0050fc9d6cce NICK 29A sc.A
\\PITZY
PITZY 192.168.123.29 00a0d21c43be Genius
\\SHADOW
?
?
?
BaLLu
\\STEFAN
STEFAN 192.168.123.22 0060089d019f
\\TERENTE
TERENTE 192.168.123.125 000244660dbc carlos
\\TERRY
TERRY 192.168.123.43 0040f432cbbe
\\VALKYR
VALKYR 192.168.123.140 00e04ca0b140 Pc-u' lu' Alin
\\VIORELO
VIORELO 192.168.123.72 00e018b2125c
-----------------------------------------------------------------------------------01:07:15 26-08-2003 Generated by TCPNetView, http://www.enet.ru/~gorlach/

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.

Protectia fata de penetrarile prin retea


Lucrul n retea face posibil ca altii sa aiba acces din retea la fisiere din computerul
tau, deci fara sa aiba nevoie sa opereze la tastatura lui sau sa vada ce este pe ecran.
n mod
normal, acest
lucru ar trebui sa fie getInputStream(
posibil numai pentru )
acele
directoare
protected
abstract
java.io.InputStream
throws
java.io.IOException
protected int getLocalPort( )
protected abstract java.io.OutputStream getOutputStream( ) throws
java.io.IOException
protected int getPort( )
java.lang.String toString( )
protected abstract void accept( java.net.SocketImpl s )
throws java.io.IOException
Accept\ realizarea unei conexiuni
protected abstract int available( ) throws java.io.IOException

Returneaz\ nr de octe]i care pot fi citi]i f\r\ a bloca conexiunea


protected abstract void bind( java.net.InetAddress host, int port )
throws java.io.IOException
Leag\ conexiunea de un anumit partener specificat prin adresa IP
si port
protected abstract void close( ) throws java.io.IOException
Inchide o conexiune
protected abstract void connect( java.net.InetAddress address, int port
) throws java.io.IOException
Realizeaz\ o conexiune cu un anumit partener
protected abstract void connect( java.lang.String host, int port )
throws java.io.IOException
protected abstract void create( boolean stream ) throws
java.io.IOException
protected abstract void listen( int backlog ) throws java.io.IOException
Stabile[te num\rul maxim de conexiuni admise
protected native java.lang.Object clone( ) throws
java.lang.CloneNotSupportedException
protected void finalize( ) throws java.lang.Throwable

Programe de tip client


Clasa Socket abstractizeaz\ no]iunea de soclu client (numit n
general soclu) [i este responsabil\ de majoritatea opera]iilor necesare
comunica]iei n re]ea. Prin instan]ierea unui obiect de tip Socket,
programul client poate s\ ini]ieze o conexiune (prin constructor) [i s\
implementeze comunica]ia prin re]ea.
Structura unei aplica]ii client bazate pe conexiuni

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.

Network resource Host name IP-address


MAC-address Resource comment
---------------- --------- --------------- ------------ ---------------------------\\PAN
PAN
192.168.123.184 0001020a7f14
\\ADINA
ADINA 192.168.123.175 000795cd02de
\\ADINETTE
?
?
?
\\ALAH
?
?
?
Jihad
\\ALEX
ALEX
192.168.123.33 0001020b2b76
\\ASSUR
ASSUR 192.168.123.164 00c0268c5714
\\ATHLONXP
ATHLONXP 192.168.123.120 00064f052948 Alex22
\\BEBIDE
?
?
?
Andreea
\\BIBA
BIBA
192.168.123.123 0030840a7652 Biba
\\COACH
COACH 192.168.123.141 005022d39611
\\CRISTI
?
?
?
Tata puradeilor
\\CRISTIAN
?
?
?
Cristian 29A sc.C
\\DALEX
?
?
?
dalex(corina&radu)
\\DUMBRAVA
?
?
?
\\FLORIN
FLORIN 192.168.123.32 00e07d02edc6 Florin, Bl.29A, sc.C, ap.114
\\GOGU
gogu
192.168.123.145 0050bf9c0300 culca-te
\\GUVIDA
GUVIDA 192.168.123.13 000244591123
\\IRINA
IRINA 192.168.123.85 005022b4cb45 Fata ce-a cuminte a retelei
\\KLAUS
?
?
?
\\MARINA
MARINA 192.168.123.21 00e0295627c7
\\NICK
NICK
192.168.123.23 0050fc9d6cce NICK 29A sc.A
\\PITZY
PITZY 192.168.123.29 00a0d21c43be Genius
\\SHADOW
?
?
?
BaLLu
\\STEFAN
STEFAN 192.168.123.22 0060089d019f
\\TERENTE
TERENTE 192.168.123.125 000244660dbc carlos
\\TERRY
TERRY 192.168.123.43 0040f432cbbe
\\VALKYR
VALKYR 192.168.123.140 00e04ca0b140 Pc-u' lu' Alin
\\VIORELO
VIORELO 192.168.123.72 00e018b2125c
-----------------------------------------------------------------------------------01:07:15 26-08-2003 Generated by TCPNetView, http://www.enet.ru/~gorlach/

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.

Protectia fata de penetrarile prin retea


Lucrul n retea face posibil ca altii sa aiba acces din retea la fisiere din computerul
tau, deci fara sa aiba nevoie sa opereze la tastatura lui sau sa vada ce este pe ecran.
mod normal,
acest lucru ar trebui
sa fieint
posibil
numai
pentru acele
directoare
publicnSocket(
java.lang.String
host,
port,
boolean
stream
)
throws java.io.IOException
public Socket( java.lang.String host, int port,
java.net.InetAddress localAddr, int localPort )
throws java.io.IOException
The Socket will bind() to the local address and port supplied.
public Socket( java.net.InetAddress address, int port,
java.net.InetAddress localAddr, int localPort )
throws java.io.IOException

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( )

Programul tip server


Serverul este programul care ascult\ cererile venite de la clien]i [i le ofer\
serviciul pentru care a fost creat. Identificarea serverelor se face prin
intermediul portului pe care serverul a[teapt\ cererile de conexiune venite
din partea clien]ilor. Majoritatea serviciilor foarte des folosite n Internet au
asociate porturi standardizate, pentru a permite clien]ilor s\ opereze cu
diferite servere n vederea ob]inerii unui serviciu.
Exemple de numere de porturi standardizate :
Serviciu
Po[ta electronic\
Transfer de fi[iere
Telnet
Finger
WWW
Ecou
Execu]ie la distan]\ (rexec)
POP3 (Post Office Protocol)

Port asociat
25
21
23
79
80
7
512
110

Primul lucru pe care trebui s\-l fac\ un program server este s\ se


asocieze portuluistabilit la momentul proiect\rii aplica]iei [i s\ ini]ieze
ascultarea cererilor de servicii venite de la clien]i. Aceste lucruri se
realizeaz\ prin constructorul clasei ServerSocket, clasa care implementeaz\
soclul programului server.
10

Network resource Host name IP-address


MAC-address Resource comment
---------------- --------- --------------- ------------ ---------------------------\\PAN
PAN
192.168.123.184 0001020a7f14
\\ADINA
ADINA 192.168.123.175 000795cd02de
\\ADINETTE
?
?
?
\\ALAH
?
?
?
Jihad
\\ALEX
ALEX
192.168.123.33 0001020b2b76
\\ASSUR
ASSUR 192.168.123.164 00c0268c5714
\\ATHLONXP
ATHLONXP 192.168.123.120 00064f052948 Alex22
\\BEBIDE
?
?
?
Andreea
\\BIBA
BIBA
192.168.123.123 0030840a7652 Biba
\\COACH
COACH 192.168.123.141 005022d39611
\\CRISTI
?
?
?
Tata puradeilor
\\CRISTIAN
?
?
?
Cristian 29A sc.C
\\DALEX
?
?
?
dalex(corina&radu)
\\DUMBRAVA
?
?
?
\\FLORIN
FLORIN 192.168.123.32 00e07d02edc6 Florin, Bl.29A, sc.C, ap.114
\\GOGU
gogu
192.168.123.145 0050bf9c0300 culca-te
\\GUVIDA
GUVIDA 192.168.123.13 000244591123
\\IRINA
IRINA 192.168.123.85 005022b4cb45 Fata ce-a cuminte a retelei
\\KLAUS
?
?
?
\\MARINA
MARINA 192.168.123.21 00e0295627c7
\\NICK
NICK
192.168.123.23 0050fc9d6cce NICK 29A sc.A
\\PITZY
PITZY 192.168.123.29 00a0d21c43be Genius
\\SHADOW
?
?
?
BaLLu
\\STEFAN
STEFAN 192.168.123.22 0060089d019f
\\TERENTE
TERENTE 192.168.123.125 000244660dbc carlos
\\TERRY
TERRY 192.168.123.43 0040f432cbbe
\\VALKYR
VALKYR 192.168.123.140 00e04ca0b140 Pc-u' lu' Alin
\\VIORELO
VIORELO 192.168.123.72 00e018b2125c
-----------------------------------------------------------------------------------01:07:15 26-08-2003 Generated by TCPNetView, http://www.enet.ru/~gorlach/

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.

Protectia fata de penetrarile prin retea


Lucrul n retea face posibil ca altii sa aiba acces din retea la fisiere din computerul
tau, deci fara sa aiba nevoie sa opereze la tastatura lui sau sa vada ce este pe ecran.
n mod normal, acest lucru ar trebui sa fie posibil numai pentru acele directoare

Un lucru esen]ial n proiectarea unei aplica]ii server este faptul c\


aceasta trebuie construit\ n a[a fel nct s\ poat\ prelucra n paralel cererile
clien]ilor. Acest lucru se realizeaz\ prin folosirea mai multor fire de
execu]ie, fiecare fir de execu]ie ocupndu-se cu un singur client. De
asemenea este prev\zut un mecanism pentru a limita num\rul de cereri care
pot fi prelucrate n paralel [i deci [i num\rul firelor de execu]ie care ruleaz\
la un moment dat. Implicit acest num\r este 50, dar poate fi specificat ca

11

argument al constructorului. Orice cerere nou\ va fi respins\ dac\ num\rul de


cereri prelucrate are valoarea maxim\ specificat\.
Structura unei aplica]ii server bazate pe conexiuni

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

Network resource Host name IP-address


MAC-address Resource comment
---------------- --------- --------------- ------------ ---------------------------\\PAN
PAN
192.168.123.184 0001020a7f14
\\ADINA
ADINA 192.168.123.175 000795cd02de
\\ADINETTE
?
?
?
\\ALAH
?
?
?
Jihad
\\ALEX
ALEX
192.168.123.33 0001020b2b76
\\ASSUR
ASSUR 192.168.123.164 00c0268c5714
\\ATHLONXP
ATHLONXP 192.168.123.120 00064f052948 Alex22
\\BEBIDE
?
?
?
Andreea
\\BIBA
BIBA
192.168.123.123 0030840a7652 Biba
\\COACH
COACH 192.168.123.141 005022d39611
\\CRISTI
?
?
?
Tata puradeilor
\\CRISTIAN
?
?
?
Cristian 29A sc.C
\\DALEX
?
?
?
dalex(corina&radu)
\\DUMBRAVA
?
?
?
\\FLORIN
FLORIN 192.168.123.32 00e07d02edc6 Florin, Bl.29A, sc.C, ap.114
\\GOGU
gogu
192.168.123.145 0050bf9c0300 culca-te
\\GUVIDA
GUVIDA 192.168.123.13 000244591123
\\IRINA
IRINA 192.168.123.85 005022b4cb45 Fata ce-a cuminte a retelei
\\KLAUS
?
?
?
\\MARINA
MARINA 192.168.123.21 00e0295627c7
\\NICK
NICK
192.168.123.23 0050fc9d6cce NICK 29A sc.A
\\PITZY
PITZY 192.168.123.29 00a0d21c43be Genius
\\SHADOW
?
?
?
BaLLu
\\STEFAN
STEFAN 192.168.123.22 0060089d019f
\\TERENTE
TERENTE 192.168.123.125 000244660dbc carlos
\\TERRY
TERRY 192.168.123.43 0040f432cbbe
\\VALKYR
VALKYR 192.168.123.140 00e04ca0b140 Pc-u' lu' Alin
\\VIORELO
VIORELO 192.168.123.72 00e018b2125c
-----------------------------------------------------------------------------------01:07:15 26-08-2003 Generated by TCPNetView, http://www.enet.ru/~gorlach/

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.

Protectia fata de penetrarile prin retea


Lucrul n retea face posibil ca altii sa aiba acces din retea la fisiere din computerul
tau, deci fara sa aiba nevoie sa opereze la tastatura lui sau sa vada ce este pe ecran.
n mod normal, acest lucru ar trebui sa fie posibil numai pentru acele directoare
partajate cu stirea ta, adica pentru care este setata o optiune Sharing care permite
altora sa le citeasca sau chiar si sa le modifice. Setarea unei astfel de optiuni este
void close( ) throws java.io.IOException
java.lang.String toString( )

Comunica]ia folosind datagrame


Datagramele reprezint\ o cantitate de informa]ii trimis\ prin intermediul unui
pachet independent fa]\ de alte informa]ii. Fiecare pachet este transmis de la
o ma[in\ la alta doar pe baza informa]iilor con]inute de el nsu[i. Pachete
trimise de la o destina]ie c\tre aceea[i surs\ pot ajunge pe rute diferite [i n
orice ordine.
13

In cadrul implement\rii standard Java, datagramele sunt transportate


prin re]ea folosind prototcolul UDP (User Datagram Protocol), unul din
protocoalele de baz\ ale familiei TCP/IP.
Avantaje:
viteza de transfer mai mare
adaptarea la condi]iile de moment ale re]elei (congestii, leg\turi
temporar indisponibile, etc)
Dezavantaje : lucru mai dificil
Diferen]a fa]\ de comunicarea printr-un canal sigur oferit\ de metoda
comunica]iei prin conexiuni este c\, folosind datagrame, nu se stabile[te o
leg\tur\ permanent\ ntre client [i server. De fapt, chiar no]iunile de client [i
server [i pierd semnifica]iile, ntruct ambele folosesc pentru comunicare
acela[i tip de soclu, implementat de clasa DatagramSocket. Clientul va fi
aplica]ia care ncapsuleaz\ o cantitate de date (cerere) ntr-un pachet [i o
transmite unui partener, iar server va fi aplica]ia care prime[te pachete de tip
cerere [i retrimite pachete cu r\spunsuri la cererile primite. In cazul n care
un pachet se pierde, clientul va retransmite cererea dup\ un anumit interval
de timp.
Pentru datagrame nu exist\ destina]ii implicite, a[adar n fiecare
datagram\ trebuie specificate:
adresa destina]ie
num\rul portului la care se trimite datagrama
con]inutul datagramei
In Java, acese informa]ii sunt concentrate n obiecte de tip
DatagramPacket.

Structura unei aplica]ii bazate pe datagrame

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

Network resource Host name IP-address


MAC-address Resource comment
---------------- --------- --------------- ------------ ---------------------------\\PAN
PAN
192.168.123.184 0001020a7f14
\\ADINA
ADINA 192.168.123.175 000795cd02de
\\ADINETTE
?
?
?
\\ALAH
?
?
?
Jihad
\\ALEX
ALEX
192.168.123.33 0001020b2b76
\\ASSUR
ASSUR 192.168.123.164 00c0268c5714
\\ATHLONXP
ATHLONXP 192.168.123.120 00064f052948 Alex22
\\BEBIDE
?
?
?
Andreea
\\BIBA
BIBA
192.168.123.123 0030840a7652 Biba
\\COACH
COACH 192.168.123.141 005022d39611
\\CRISTI
?
?
?
Tata puradeilor
\\CRISTIAN
?
?
?
Cristian 29A sc.C
\\DALEX
?
?
?
dalex(corina&radu)
\\DUMBRAVA
?
?
?
\\FLORIN
FLORIN 192.168.123.32 00e07d02edc6 Florin, Bl.29A, sc.C, ap.114
\\GOGU
gogu
192.168.123.145 0050bf9c0300 culca-te
\\GUVIDA
GUVIDA 192.168.123.13 000244591123
\\IRINA
IRINA 192.168.123.85 005022b4cb45 Fata ce-a cuminte a retelei
\\KLAUS
?
?
?
\\MARINA
MARINA 192.168.123.21 00e0295627c7
\\NICK
NICK
192.168.123.23 0050fc9d6cce NICK 29A sc.A
\\PITZY
PITZY 192.168.123.29 00a0d21c43be Genius
\\SHADOW
?
?
?
BaLLu
\\STEFAN
STEFAN 192.168.123.22 0060089d019f
\\TERENTE
TERENTE 192.168.123.125 000244660dbc carlos
\\TERRY
TERRY 192.168.123.43 0040f432cbbe
\\VALKYR
VALKYR 192.168.123.140 00e04ca0b140 Pc-u' lu' Alin
\\VIORELO
VIORELO 192.168.123.72 00e018b2125c
-----------------------------------------------------------------------------------01:07:15 26-08-2003 Generated by TCPNetView, http://www.enet.ru/~gorlach/

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.

Protectia fata de penetrarile prin retea


Lucrul n retea face posibil ca altii sa aiba acces din retea la fisiere din computerul
tau, deci fara sa aiba nevoie sa opereze la tastatura lui sau sa vada ce este pe ecran.
n mod normal, acest lucru ar trebui sa fie posibil numai pentru acele directoare
partajate cu stirea ta, adica pentru care este setata o optiune Sharing care permite
altora sa le citeasca sau chiar si sa le modifice. Setarea unei astfel de optiuni este
Faza final\

Clasa DatagramPacket
Constructori

public DatagramPacket( byte[] ibuf, int ilength )


Construie[te un obiect pentru recep]ionarea pachetelor de lungime
ilength. Obs: ilength <= ibuf.length
public DatagramPacket( byte[] ibuf, int ilength,
java.net.InetAddress iaddr, int iport )

15

Construie[te un obiect pentru trimiterea de pachete de lungime ilength


spre gazda [i portul specificate.

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

public DatagramSocket( ) throws java.net.SocketException


Constructs a datagram socket and binds it to any available port on the
local host machine.
public DatagramSocket( int port ) throws java.net.SocketException
Constructs a datagram socket and binds it to the specified port on the
local host machine.
public DatagramSocket( int port, java.net.InetAddress laddr )
throws java.net.SocketException
Creates a datagram socket, bound to the specified local address. The
local port must be between 0 and 65535 inclusive.

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

Network resource Host name IP-address


MAC-address Resource comment
---------------- --------- --------------- ------------ ---------------------------\\PAN
PAN
192.168.123.184 0001020a7f14
\\ADINA
ADINA 192.168.123.175 000795cd02de
\\ADINETTE
?
?
?
\\ALAH
?
?
?
Jihad
\\ALEX
ALEX
192.168.123.33 0001020b2b76
\\ASSUR
ASSUR 192.168.123.164 00c0268c5714
\\ATHLONXP
ATHLONXP 192.168.123.120 00064f052948 Alex22
\\BEBIDE
?
?
?
Andreea
\\BIBA
BIBA
192.168.123.123 0030840a7652 Biba
\\COACH
COACH 192.168.123.141 005022d39611
\\CRISTI
?
?
?
Tata puradeilor
\\CRISTIAN
?
?
?
Cristian 29A sc.C
\\DALEX
?
?
?
dalex(corina&radu)
\\DUMBRAVA
?
?
?
\\FLORIN
FLORIN 192.168.123.32 00e07d02edc6 Florin, Bl.29A, sc.C, ap.114
\\GOGU
gogu
192.168.123.145 0050bf9c0300 culca-te
\\GUVIDA
GUVIDA 192.168.123.13 000244591123
\\IRINA
IRINA 192.168.123.85 005022b4cb45 Fata ce-a cuminte a retelei
\\KLAUS
?
?
?
\\MARINA
MARINA 192.168.123.21 00e0295627c7
\\NICK
NICK
192.168.123.23 0050fc9d6cce NICK 29A sc.A
\\PITZY
PITZY 192.168.123.29 00a0d21c43be Genius
\\SHADOW
?
?
?
BaLLu
\\STEFAN
STEFAN 192.168.123.22 0060089d019f
\\TERENTE
TERENTE 192.168.123.125 000244660dbc carlos
\\TERRY
TERRY 192.168.123.43 0040f432cbbe
\\VALKYR
VALKYR 192.168.123.140 00e04ca0b140 Pc-u' lu' Alin
\\VIORELO
VIORELO 192.168.123.72 00e018b2125c
-----------------------------------------------------------------------------------01:07:15 26-08-2003 Generated by TCPNetView, http://www.enet.ru/~gorlach/

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.

Protectia fata de penetrarile prin retea


Lucrul n retea face posibil ca altii sa aiba acces din retea la fisiere din computerul
tau, deci fara sa aiba nevoie sa opereze la tastatura lui sau sa vada ce este pe ecran.
n mod normal, acest lucru ar trebui sa fie posibil numai pentru acele directoare
partajate cu stirea ta, adica pentru care este setata o optiune Sharing care permite
altora sa le citeasca sau chiar si sa le modifice. Setarea unei astfel de optiuni este

Transferul de documente din WWW

Adresele prin care sunt localizate documentele se numesc URL-uri


(Uniform Resource Locator). Ele permit identificarea unic\ a unui document
pe baza urm\torilor parametri :
protocolul prin care se transfer\ documentul
serverul care g\zduie[te documentul

17

num\rul de port, dac\ este diferit fa]\ de cel implicit folosit de


protocol
directorul n care se afl\ documentul
numele fi[ierului n care este plasat documentul
Mai mult, este posibil\ identificarea chiar a unor sec]iuni din documentul
respectiv.
Folosirea adreselor URL se realizeaz\ prin intermediul clasei URL.

Clasa URL
Constructori

public URL( java.lang.String spec )


throws java.net.MalformedURLException
public URL( java.lang.String protocol, java.lang.String host, int port,
java.lang.String file )
throws java.net.MalformedURLException
...

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

Network resource Host name IP-address


MAC-address Resource comment
---------------- --------- --------------- ------------ ---------------------------\\PAN
PAN
192.168.123.184 0001020a7f14
\\ADINA
ADINA 192.168.123.175 000795cd02de
\\ADINETTE
?
?
?
\\ALAH
?
?
?
Jihad
\\ALEX
ALEX
192.168.123.33 0001020b2b76
\\ASSUR
ASSUR 192.168.123.164 00c0268c5714
\\ATHLONXP
ATHLONXP 192.168.123.120 00064f052948 Alex22
\\BEBIDE
?
?
?
Andreea
\\BIBA
BIBA
192.168.123.123 0030840a7652 Biba
\\COACH
COACH 192.168.123.141 005022d39611
\\CRISTI
?
?
?
Tata puradeilor
\\CRISTIAN
?
?
?
Cristian 29A sc.C
\\DALEX
?
?
?
dalex(corina&radu)
\\DUMBRAVA
?
?
?
\\FLORIN
FLORIN 192.168.123.32 00e07d02edc6 Florin, Bl.29A, sc.C, ap.114
\\GOGU
gogu
192.168.123.145 0050bf9c0300 culca-te
\\GUVIDA
GUVIDA 192.168.123.13 000244591123
\\IRINA
IRINA 192.168.123.85 005022b4cb45 Fata ce-a cuminte a retelei
\\KLAUS
?
?
?
\\MARINA
MARINA 192.168.123.21 00e0295627c7
\\NICK
NICK
192.168.123.23 0050fc9d6cce NICK 29A sc.A
\\PITZY
PITZY 192.168.123.29 00a0d21c43be Genius
\\SHADOW
?
?
?
BaLLu
\\STEFAN
STEFAN 192.168.123.22 0060089d019f
\\TERENTE
TERENTE 192.168.123.125 000244660dbc carlos
\\TERRY
TERRY 192.168.123.43 0040f432cbbe
\\VALKYR
VALKYR 192.168.123.140 00e04ca0b140 Pc-u' lu' Alin
\\VIORELO
VIORELO 192.168.123.72 00e018b2125c
-----------------------------------------------------------------------------------01:07:15 26-08-2003 Generated by TCPNetView, http://www.enet.ru/~gorlach/

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.

Protectia fata de penetrarile prin retea


Lucrul n retea face posibil ca altii sa aiba acces din retea la fisiere din computerul
tau, deci fara sa aiba nevoie sa opereze la tastatura lui sau sa vada ce este pe ecran.
n mod normal, acest lucru ar trebui sa fie posibil numai pentru acele directoare
partajate cu stirea ta, adica pentru care este setata o optiune Sharing care permite
altora sa le citeasca sau chiar si sa le modifice. Setarea unei astfel de optiuni este

Reele de calculatoare

O reea de calculatoare este un ansamblu de calculatoare conectate intre ele


pentru a folosi in comun resursele.

Fiecare calculator din reea isi pstreaz independenta in


cea ce privete executia si gestionarea resurselor propri.
Reelele de calculatoare pot fi:
-omogene
19

-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

Network resource Host name IP-address


MAC-address Resource comment
---------------- --------- --------------- ------------ ---------------------------\\PAN
PAN
192.168.123.184 0001020a7f14
\\ADINA
ADINA 192.168.123.175 000795cd02de
\\ADINETTE
?
?
?
\\ALAH
?
?
?
Jihad
\\ALEX
ALEX
192.168.123.33 0001020b2b76
\\ASSUR
ASSUR 192.168.123.164 00c0268c5714
\\ATHLONXP
ATHLONXP 192.168.123.120 00064f052948 Alex22
\\BEBIDE
?
?
?
Andreea
\\BIBA
BIBA
192.168.123.123 0030840a7652 Biba
\\COACH
COACH 192.168.123.141 005022d39611
\\CRISTI
?
?
?
Tata puradeilor
\\CRISTIAN
?
?
?
Cristian 29A sc.C
\\DALEX
?
?
?
dalex(corina&radu)
\\DUMBRAVA
?
?
?
\\FLORIN
FLORIN 192.168.123.32 00e07d02edc6 Florin, Bl.29A, sc.C, ap.114
\\GOGU
gogu
192.168.123.145 0050bf9c0300 culca-te
\\GUVIDA
GUVIDA 192.168.123.13 000244591123
\\IRINA
IRINA 192.168.123.85 005022b4cb45 Fata ce-a cuminte a retelei
\\KLAUS
?
?
?
\\MARINA
MARINA 192.168.123.21 00e0295627c7
\\NICK
NICK
192.168.123.23 0050fc9d6cce NICK 29A sc.A
\\PITZY
PITZY 192.168.123.29 00a0d21c43be Genius
\\SHADOW
?
?
?
BaLLu
\\STEFAN
STEFAN 192.168.123.22 0060089d019f
\\TERENTE
TERENTE 192.168.123.125 000244660dbc carlos
\\TERRY
TERRY 192.168.123.43 0040f432cbbe
\\VALKYR
VALKYR 192.168.123.140 00e04ca0b140 Pc-u' lu' Alin
\\VIORELO
VIORELO 192.168.123.72 00e018b2125c
-----------------------------------------------------------------------------------01:07:15 26-08-2003 Generated by TCPNetView, http://www.enet.ru/~gorlach/

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.

Protectia fata de penetrarile prin retea


Lucrul n retea face posibil ca altii sa aiba acces din retea la fisiere din computerul
tau, deci fara sa aiba nevoie sa opereze la tastatura lui sau sa vada ce este pe ecran.
n mod normal, acest lucru ar trebui sa fie posibil numai pentru acele directoare

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

nslatarea 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,

22

Network resource Host name IP-address


MAC-address Resource comment
---------------- --------- --------------- ------------ ---------------------------\\PAN
PAN
192.168.123.184 0001020a7f14
\\ADINA
ADINA 192.168.123.175 000795cd02de
\\ADINETTE
?
?
?
\\ALAH
?
?
?
Jihad
\\ALEX
ALEX
192.168.123.33 0001020b2b76
\\ASSUR
ASSUR 192.168.123.164 00c0268c5714
\\ATHLONXP
ATHLONXP 192.168.123.120 00064f052948 Alex22
\\BEBIDE
?
?
?
Andreea
\\BIBA
BIBA
192.168.123.123 0030840a7652 Biba
\\COACH
COACH 192.168.123.141 005022d39611
\\CRISTI
?
?
?
Tata puradeilor
\\CRISTIAN
?
?
?
Cristian 29A sc.C
\\DALEX
?
?
?
dalex(corina&radu)
\\DUMBRAVA
?
?
?
\\FLORIN
FLORIN 192.168.123.32 00e07d02edc6 Florin, Bl.29A, sc.C, ap.114
\\GOGU
gogu
192.168.123.145 0050bf9c0300 culca-te
\\GUVIDA
GUVIDA 192.168.123.13 000244591123
\\IRINA
IRINA 192.168.123.85 005022b4cb45 Fata ce-a cuminte a retelei
\\KLAUS
?
?
?
\\MARINA
MARINA 192.168.123.21 00e0295627c7
\\NICK
NICK
192.168.123.23 0050fc9d6cce NICK 29A sc.A
\\PITZY
PITZY 192.168.123.29 00a0d21c43be Genius
\\SHADOW
?
?
?
BaLLu
\\STEFAN
STEFAN 192.168.123.22 0060089d019f
\\TERENTE
TERENTE 192.168.123.125 000244660dbc carlos
\\TERRY
TERRY 192.168.123.43 0040f432cbbe
\\VALKYR
VALKYR 192.168.123.140 00e04ca0b140 Pc-u' lu' Alin
\\VIORELO
VIORELO 192.168.123.72 00e018b2125c
-----------------------------------------------------------------------------------01:07:15 26-08-2003 Generated by TCPNetView, http://www.enet.ru/~gorlach/

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.

Protectia fata de penetrarile prin retea


Lucrul n retea face posibil ca altii sa aiba acces din retea la fisiere din computerul
tau, deci fara sa aiba nevoie sa opereze la tastatura lui sau sa vada ce este pe ecran.
n mod normal, acest lucru ar trebui sa fie posibil numai pentru acele directoare
partajate cu stirea ta, adica pentru care este setata o optiune Sharing care permite
altora sa le citeasca sau chiar si sa le modifice. Setarea unei astfel de optiuni este
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.

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

Network resource Host name IP-address


MAC-address Resource comment
---------------- --------- --------------- ------------ ---------------------------\\PAN
PAN
192.168.123.184 0001020a7f14
\\ADINA
ADINA 192.168.123.175 000795cd02de
\\ADINETTE
?
?
?
\\ALAH
?
?
?
Jihad
\\ALEX
ALEX
192.168.123.33 0001020b2b76
\\ASSUR
ASSUR 192.168.123.164 00c0268c5714
\\ATHLONXP
ATHLONXP 192.168.123.120 00064f052948 Alex22
\\BEBIDE
?
?
?
Andreea
\\BIBA
BIBA
192.168.123.123 0030840a7652 Biba
\\COACH
COACH 192.168.123.141 005022d39611
\\CRISTI
?
?
?
Tata puradeilor
\\CRISTIAN
?
?
?
Cristian 29A sc.C
\\DALEX
?
?
?
dalex(corina&radu)
\\DUMBRAVA
?
?
?
\\FLORIN
FLORIN 192.168.123.32 00e07d02edc6 Florin, Bl.29A, sc.C, ap.114
\\GOGU
gogu
192.168.123.145 0050bf9c0300 culca-te
\\GUVIDA
GUVIDA 192.168.123.13 000244591123
\\IRINA
IRINA 192.168.123.85 005022b4cb45 Fata ce-a cuminte a retelei
\\KLAUS
?
?
?
\\MARINA
MARINA 192.168.123.21 00e0295627c7
\\NICK
NICK
192.168.123.23 0050fc9d6cce NICK 29A sc.A
\\PITZY
PITZY 192.168.123.29 00a0d21c43be Genius
\\SHADOW
?
?
?
BaLLu
\\STEFAN
STEFAN 192.168.123.22 0060089d019f
\\TERENTE
TERENTE 192.168.123.125 000244660dbc carlos
\\TERRY
TERRY 192.168.123.43 0040f432cbbe
\\VALKYR
VALKYR 192.168.123.140 00e04ca0b140 Pc-u' lu' Alin
\\VIORELO
VIORELO 192.168.123.72 00e018b2125c
-----------------------------------------------------------------------------------01:07:15 26-08-2003 Generated by TCPNetView, http://www.enet.ru/~gorlach/

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.

Protectia fata de penetrarile prin retea


Lucrul n retea face posibil ca altii sa aiba acces din retea la fisiere din computerul
tau, deci fara sa aiba nevoie sa opereze la tastatura lui sau sa vada ce este pe ecran.
n mod normal, acest lucru ar trebui sa fie posibil numai pentru acele directoare
partajate cu stirea ta, adica pentru care este setata o optiune Sharing care permite
altora sa le citeasca sau chiar si sa le modifice. Setarea unei astfel de optiuni este
Nota: Aici nu faci nici un fel de filtrare a pachetelor, pentru asta citeste HOWTO pentru filtrarea
pachetelor: "Mixing NAT
and Packet Filtering"
4.2 Dar ipmasqadm ?
Poti folosi iptables -t nat pentru a face port forwarding. De exemplu: in linux 2.2 aifi facut astfel:
#Linux 2.2
#Forwardarea pachetelor TCP care se duc pe portul 8080 catre 1.2.3.4 la 192.168.1.1 port 80
ipmasqadm portfw -a -P tcp -L 1.2.3.4 8080 -R 192.168.1.1 80
# Linux 2.4

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

Network resource Host name IP-address


MAC-address Resource comment
---------------- --------- --------------- ------------ ---------------------------\\PAN
PAN
192.168.123.184 0001020a7f14
\\ADINA
ADINA 192.168.123.175 000795cd02de
\\ADINETTE
?
?
?
\\ALAH
?
?
?
Jihad
\\ALEX
ALEX
192.168.123.33 0001020b2b76
\\ASSUR
ASSUR 192.168.123.164 00c0268c5714
\\ATHLONXP
ATHLONXP 192.168.123.120 00064f052948 Alex22
\\BEBIDE
?
?
?
Andreea
\\BIBA
BIBA
192.168.123.123 0030840a7652 Biba
\\COACH
COACH 192.168.123.141 005022d39611
\\CRISTI
?
?
?
Tata puradeilor
\\CRISTIAN
?
?
?
Cristian 29A sc.C
\\DALEX
?
?
?
dalex(corina&radu)
\\DUMBRAVA
?
?
?
\\FLORIN
FLORIN 192.168.123.32 00e07d02edc6 Florin, Bl.29A, sc.C, ap.114
\\GOGU
gogu
192.168.123.145 0050bf9c0300 culca-te
\\GUVIDA
GUVIDA 192.168.123.13 000244591123
\\IRINA
IRINA 192.168.123.85 005022b4cb45 Fata ce-a cuminte a retelei
\\KLAUS
?
?
?
\\MARINA
MARINA 192.168.123.21 00e0295627c7
\\NICK
NICK
192.168.123.23 0050fc9d6cce NICK 29A sc.A
\\PITZY
PITZY 192.168.123.29 00a0d21c43be Genius
\\SHADOW
?
?
?
BaLLu
\\STEFAN
STEFAN 192.168.123.22 0060089d019f
\\TERENTE
TERENTE 192.168.123.125 000244660dbc carlos
\\TERRY
TERRY 192.168.123.43 0040f432cbbe
\\VALKYR
VALKYR 192.168.123.140 00e04ca0b140 Pc-u' lu' Alin
\\VIORELO
VIORELO 192.168.123.72 00e018b2125c
-----------------------------------------------------------------------------------01:07:15 26-08-2003 Generated by TCPNetView, http://www.enet.ru/~gorlach/

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.

Protectia fata de penetrarile prin retea


Lucrul n retea face posibil ca altii sa aiba acces din retea la fisiere din computerul
tau, deci fara sa aiba nevoie sa opereze la tastatura lui sau sa vada ce este pe ecran.
n mod normal, acest lucru ar trebui sa fie posibil numai pentru acele directoare
partajate cu stirea ta, adica pentru care este setata o optiune Sharing care permite
altora sa le citeasca sau chiar si sa le modifice. Setarea unei astfel de optiuni este
"insmod ip_tables".
Cea mai importanat optiune aici este cea de selectare a tabelei, -t. Pentru toate operatiile NAT vei vrea sa
folosesti -t nat, pentru
tabela NAT. A doua, cea mai importanat optiune pe care o folosesti este -A pentru a adauga o noua regula
la capatul lantului
(ex: -A POSTROUTING) sau -I pentru a adauga una la inceputul lantului (ex: -I PREROUTING).
Poti specifica sura ('-s' sau '--source') si destinatia ('-d' sau '--destination') pentru pachetele pentru care vrei
sa faci NAT.
Aceste optiuni pot fi urmate de o singura adresa ip (ex: 192.168.1.1), un nume (ex: www.kernelnotes.org)
sau o adresa de retea (ex:

27

192.168.1.0/24 sau 192.168.1.0/255.255.255.0).


Poti specifica interfata pe care vin ('-i' sau '--in-interface') sau cea pe care pleaca ('-o' sau '--out-interface')
pentru care se
ca potrivi, dar interfata specificata depinde de lantul la care este pusa regula: pentru PREROUTING se
poate specifica numai interfata
pe care vin pachetele, iar pentru POSTROUTING si OUTPUT cea pe care pleaca pachetele. Daca folosesti
interfata gresita, iptables va da
o eroare.
5.2 Puntce fine in a selecta ce pachete sa alterezi
Am spus mai sus ca poti specifica o adresa pentru sursa si destinatie. Daca omiti optiunea pentru pentru
adresa sursei, atunci orice
sursa va fi folosita. Analog se va intampla si pentru adresa destinatiei.
Poti, de altfel, sa indici si un protocol anume ('-p' sau '--protocol'), cum ar fi TCP sau UDP; numai pachetele
de acest tip se vor
potrivi regulii. Motivul princpal pentru care se face acest lucru, este ca atunci cand se specifica protocoul se
pot folosi
optiuni in plus, speficice fiind '--source-port' si '--destination-port' (abreviate ca '--sport' si '--dport').
Aceste optiunii te lasa sa specifici ca numai anumite pachete cu o anumita sursa si destinatie se vor potrivii
regulii. Acesta
este folositor pentru a redirecta cererile web (TCP, port 80 sau 8080) si a lasa celelalte pachete in pace.
Aceste optiuni trebuie sa fie dupa '-p' (care are ca efect secundar incarcarea librarie pentru acel protocol).
Poti folosi
numerele porturilor sau un nme din fisierul /etc/services.
Toate calitatile diferite pe care le poti selecta pt. un pachet sunt detaliate in paginile de manual (man
iptables).
6. Cum se altereaza pachetele
Deci, acum stim cum sa selectam pachetele pe care vrem sa le alteram. Pentru a completa regula trebuie sa-i
spunem kernelului
exact ce vrem sa facem cu pachetele.
6.1 NAT pt. sursa (SNAT)
Vrei sa faci SNAT; schimba adresa sursei conexiunilor la ceva diferit. Acest lucru se face in lantul
POSTROUTING, chiar inainte sa
fie trimis; acesta este un detaliu important, avnad in vedere ca orice altceva pe masina care ruleaza linux
(rouatare, filtrarea
pachetelor) va vedea pachetul neschimbat. Inseamna ca si optiunea '-o' poate fi folosita.
SNAT se specifica folosind optiunea '-j SNAT', iar '--to-source' specifica o adresa IP, o plaja de adrese IP,
iar optional un port
sau o plaja de porturi (valabil numai pentru TCP si UDP).
## Schimba adresa sursei la 1.2.3.4.
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4
## Schimba adresa sursei la 1.2.3.4, 1.2.3.5 or 1.2.3.6

28

Network resource Host name IP-address


MAC-address Resource comment
---------------- --------- --------------- ------------ ---------------------------\\PAN
PAN
192.168.123.184 0001020a7f14
\\ADINA
ADINA 192.168.123.175 000795cd02de
\\ADINETTE
?
?
?
\\ALAH
?
?
?
Jihad
\\ALEX
ALEX
192.168.123.33 0001020b2b76
\\ASSUR
ASSUR 192.168.123.164 00c0268c5714
\\ATHLONXP
ATHLONXP 192.168.123.120 00064f052948 Alex22
\\BEBIDE
?
?
?
Andreea
\\BIBA
BIBA
192.168.123.123 0030840a7652 Biba
\\COACH
COACH 192.168.123.141 005022d39611
\\CRISTI
?
?
?
Tata puradeilor
\\CRISTIAN
?
?
?
Cristian 29A sc.C
\\DALEX
?
?
?
dalex(corina&radu)
\\DUMBRAVA
?
?
?
\\FLORIN
FLORIN 192.168.123.32 00e07d02edc6 Florin, Bl.29A, sc.C, ap.114
\\GOGU
gogu
192.168.123.145 0050bf9c0300 culca-te
\\GUVIDA
GUVIDA 192.168.123.13 000244591123
\\IRINA
IRINA 192.168.123.85 005022b4cb45 Fata ce-a cuminte a retelei
\\KLAUS
?
?
?
\\MARINA
MARINA 192.168.123.21 00e0295627c7
\\NICK
NICK
192.168.123.23 0050fc9d6cce NICK 29A sc.A
\\PITZY
PITZY 192.168.123.29 00a0d21c43be Genius
\\SHADOW
?
?
?
BaLLu
\\STEFAN
STEFAN 192.168.123.22 0060089d019f
\\TERENTE
TERENTE 192.168.123.125 000244660dbc carlos
\\TERRY
TERRY 192.168.123.43 0040f432cbbe
\\VALKYR
VALKYR 192.168.123.140 00e04ca0b140 Pc-u' lu' Alin
\\VIORELO
VIORELO 192.168.123.72 00e018b2125c
-----------------------------------------------------------------------------------01:07:15 26-08-2003 Generated by TCPNetView, http://www.enet.ru/~gorlach/

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.

Protectia fata de penetrarile prin retea


Lucrul n retea face posibil ca altii sa aiba acces din retea la fisiere din computerul
tau, deci fara sa aiba nevoie sa opereze la tastatura lui sau sa vada ce este pe ecran.
n mod normal, acest lucru ar trebui sa fie posibil numai pentru acele directoare
partajate cu stirea ta, adica pentru care este setata o optiune Sharing care permite
altora sa le citeasca sau chiar si sa le modifice. Setarea unei astfel de optiuni este
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6
## Schimba adresa sursei la 1.2.3.4, porturi 1-1023
# iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 1.2.3.4:1-1023
Masquerading
Exista u caz specializat de SNAT numit masquerading, si ar trebui folosit numai pentru adresele IP asignate
dinamic, cum ar fi
dial-up (pentru adrese statice, foloseste SNAT ca mai sus).

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

Network resource Host name IP-address


MAC-address Resource comment
---------------- --------- --------------- ------------ ---------------------------\\PAN
PAN
192.168.123.184 0001020a7f14
\\ADINA
ADINA 192.168.123.175 000795cd02de
\\ADINETTE
?
?
?
\\ALAH
?
?
?
Jihad
\\ALEX
ALEX
192.168.123.33 0001020b2b76
\\ASSUR
ASSUR 192.168.123.164 00c0268c5714
\\ATHLONXP
ATHLONXP 192.168.123.120 00064f052948 Alex22
\\BEBIDE
?
?
?
Andreea
\\BIBA
BIBA
192.168.123.123 0030840a7652 Biba
\\COACH
COACH 192.168.123.141 005022d39611
\\CRISTI
?
?
?
Tata puradeilor
\\CRISTIAN
?
?
?
Cristian 29A sc.C
\\DALEX
?
?
?
dalex(corina&radu)
\\DUMBRAVA
?
?
?
\\FLORIN
FLORIN 192.168.123.32 00e07d02edc6 Florin, Bl.29A, sc.C, ap.114
\\GOGU
gogu
192.168.123.145 0050bf9c0300 culca-te
\\GUVIDA
GUVIDA 192.168.123.13 000244591123
\\IRINA
IRINA 192.168.123.85 005022b4cb45 Fata ce-a cuminte a retelei
\\KLAUS
?
?
?
\\MARINA
MARINA 192.168.123.21 00e0295627c7
\\NICK
NICK
192.168.123.23 0050fc9d6cce NICK 29A sc.A
\\PITZY
PITZY 192.168.123.29 00a0d21c43be Genius
\\SHADOW
?
?
?
BaLLu
\\STEFAN
STEFAN 192.168.123.22 0060089d019f
\\TERENTE
TERENTE 192.168.123.125 000244660dbc carlos
\\TERRY
TERRY 192.168.123.43 0040f432cbbe
\\VALKYR
VALKYR 192.168.123.140 00e04ca0b140 Pc-u' lu' Alin
\\VIORELO
VIORELO 192.168.123.72 00e018b2125c
-----------------------------------------------------------------------------------01:07:15 26-08-2003 Generated by TCPNetView, http://www.enet.ru/~gorlach/

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.

Protectia fata de penetrarile prin retea


Lucrul n retea face posibil ca altii sa aiba acces din retea la fisiere din computerul
tau, deci fara sa aiba nevoie sa opereze la tastatura lui sau sa vada ce este pe ecran.
namod
normal,
acest
lucru
ar trebui
fie posibil
numaio pentru
acele
directoare
folosita pt.
realiza
conexiuni
pe care
o stie
masina.sa
Acest
lucru creeaza
balansare
a incarcaturii
primitiva.
Creaarea maparilor NAT nule
Poti folosi tinta '-j ACCEPT' pentru a lasa o conexiune sa treaca fara a face nici un fel de NAT.
Comportament NAT standard
Comportamentul implicit este sa altereze conexiunile cat mai putin, in constrangerile date de regula
introdusa de utilizator. Asta

31

inseamna ca nu va remapa porturile decat in cazul in care nu are de ales.


Maparea implicita a porturilor sursa
Chiar si atunci cand pentru o conexiune nu este necesar NAT, translatarea portului sursa poate avea loc
implicit, daca o conexiune
a fost mapata peste o noua conexiune. Sa consideram cazul pentru masquerading, fiind un lucru obisnuit.
1. O conexiune web se stabileste de pe o masina 192.1.1.1 pe portul 1024 la www.netscape.com pe
portul 80.
2. Aceasta adresa este masqueradata de masina cu ip-ul 1.2.3.4 pentru a folosi adresa IP ai ei ca sursa.
3. Masina care face masquerading va incerca sa stabileasca o conexiune web la www.netscape.com
port 80 de la 1.2.3.4 (adresa
interfetei externe) portul 1024.
4. Codul NAT va altera portul sursa la a doua conexiune la 1025, astfel incat cele 2 conexiuni sa nu se
loveasca.
Cand are loc maparea implicita a sursei, porturile sunt impartite in 3 categorii:
* Porturi sub 512
* Porturi intre 513 si 1023
* Porturi de la 1024 in sus
Un port nu va fi mapat implicit nicioadata intr-o clasa diferita.
Ce se intampla cand NAT esueaza ?
Daca nu exista nici o cale de a mapa in mod unic o conexiune ceruta de utilizator, aceasta va fi ignorata.
Acelasi tratament va fi
aplicat si pachetelor care nu pot fi clasificate ca facand parte dintr-o conexiune, din cauza ca sunt
malformate, sau masina nu
mai are memorie etc.
Mapari multiple, suprapunei si ciocniri
Poti sa ai reguli NAT care mapeaza pachetele pe aceeasi plaja; codul NAT este destul de inteligent ca sa
evite ciocnirile. Poti sa ai doua
reguli care mapeaza sursa adresi 192.168.1.1 si 192.168.1.2 la 1.2.3.4 ... ceea ce este in ordine.
Mai mult, poti sa mapezi peste adrese reale, folosite, atata timp cat si ele trec prin masina care face
maparea. Deci, daca ai o retea
asignata (1.2.3.0/24), dar ai o retea interna care foloseste acele adrese si una care foloseste adrese private
192.168.1.0/24 poti sa
faci NAT foarte simplu mapand adresele sursa din 192.168.1.0/24 peste reteaua 1.2.3.0/24 fara riscul de a
se ciocni:
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 \
-j SNAT --to 1.2.3.0/24
Aceeasi logica se aplica si adreselor folosite chiar de masina care face NAT, asa functioneaza
masqueradingul (imparte aceeasi adresa a
interfetei inte pachetele masqueradata si pachetele 'reale' care vin de la insesi masina respectiva).
Chiar mai mult, poti mapa aceleasi pachete pe mai multe tinte, iar ele vor fi impartite. De exemplu, daca nu
vrei sa mapezi nimic peste
1.2.3.5 ai putea sa faci asa:

32

Network resource Host name IP-address


MAC-address Resource comment
---------------- --------- --------------- ------------ ---------------------------\\PAN
PAN
192.168.123.184 0001020a7f14
\\ADINA
ADINA 192.168.123.175 000795cd02de
\\ADINETTE
?
?
?
\\ALAH
?
?
?
Jihad
\\ALEX
ALEX
192.168.123.33 0001020b2b76
\\ASSUR
ASSUR 192.168.123.164 00c0268c5714
\\ATHLONXP
ATHLONXP 192.168.123.120 00064f052948 Alex22
\\BEBIDE
?
?
?
Andreea
\\BIBA
BIBA
192.168.123.123 0030840a7652 Biba
\\COACH
COACH 192.168.123.141 005022d39611
\\CRISTI
?
?
?
Tata puradeilor
\\CRISTIAN
?
?
?
Cristian 29A sc.C
\\DALEX
?
?
?
dalex(corina&radu)
\\DUMBRAVA
?
?
?
\\FLORIN
FLORIN 192.168.123.32 00e07d02edc6 Florin, Bl.29A, sc.C, ap.114
\\GOGU
gogu
192.168.123.145 0050bf9c0300 culca-te
\\GUVIDA
GUVIDA 192.168.123.13 000244591123
\\IRINA
IRINA 192.168.123.85 005022b4cb45 Fata ce-a cuminte a retelei
\\KLAUS
?
?
?
\\MARINA
MARINA 192.168.123.21 00e0295627c7
\\NICK
NICK
192.168.123.23 0050fc9d6cce NICK 29A sc.A
\\PITZY
PITZY 192.168.123.29 00a0d21c43be Genius
\\SHADOW
?
?
?
BaLLu
\\STEFAN
STEFAN 192.168.123.22 0060089d019f
\\TERENTE
TERENTE 192.168.123.125 000244660dbc carlos
\\TERRY
TERRY 192.168.123.43 0040f432cbbe
\\VALKYR
VALKYR 192.168.123.140 00e04ca0b140 Pc-u' lu' Alin
\\VIORELO
VIORELO 192.168.123.72 00e018b2125c
-----------------------------------------------------------------------------------01:07:15 26-08-2003 Generated by TCPNetView, http://www.enet.ru/~gorlach/

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.

Protectia fata de penetrarile prin retea


Lucrul n retea face posibil ca altii sa aiba acces din retea la fisiere din computerul
tau, deci fara sa aiba nevoie sa opereze la tastatura lui sau sa vada ce este pe ecran.
n mod normal, acest lucru ar trebui sa fie posibil numai pentru acele directoare
partajate cu stirea ta, adica pentru care este setata o optiune Sharing care permite
altora sa le citeasca sau chiar si sa le modifice. Setarea unei astfel de optiuni este
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 \
-j SNAT --to 1.2.3.0-1.2.3.4 --to 1.2.3.6-1.2.3.254
Alterarea conexiunilor generate local
Daca destinatia pachetelor generate local este schimbata (de ex: de lantul OUTPUT), si asta cauzeaza ca
pachetul sa iasa printr-o alta
interfata, atunci si sursa pachetului este deasemenea schimbata la cea a interfetei respective. De ex:
schimbarea destinatiei unui pachet
de pe loopback, sa se duca spre eth0 va rezulta in alterarea sursei de la 127.0.0.1 la cea a interfetei eth0,
acest lucru se intampla imediat,

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

Network resource Host name IP-address


MAC-address Resource comment
---------------- --------- --------------- ------------ ---------------------------\\PAN
PAN
192.168.123.184 0001020a7f14
\\ADINA
ADINA 192.168.123.175 000795cd02de
\\ADINETTE
?
?
?
\\ALAH
?
?
?
Jihad
\\ALEX
ALEX
192.168.123.33 0001020b2b76
\\ASSUR
ASSUR 192.168.123.164 00c0268c5714
\\ATHLONXP
ATHLONXP 192.168.123.120 00064f052948 Alex22
\\BEBIDE
?
?
?
Andreea
\\BIBA
BIBA
192.168.123.123 0030840a7652 Biba
\\COACH
COACH 192.168.123.141 005022d39611
\\CRISTI
?
?
?
Tata puradeilor
\\CRISTIAN
?
?
?
Cristian 29A sc.C
\\DALEX
?
?
?
dalex(corina&radu)
\\DUMBRAVA
?
?
?
\\FLORIN
FLORIN 192.168.123.32 00e07d02edc6 Florin, Bl.29A, sc.C, ap.114
\\GOGU
gogu
192.168.123.145 0050bf9c0300 culca-te
\\GUVIDA
GUVIDA 192.168.123.13 000244591123
\\IRINA
IRINA 192.168.123.85 005022b4cb45 Fata ce-a cuminte a retelei
\\KLAUS
?
?
?
\\MARINA
MARINA 192.168.123.21 00e0295627c7
\\NICK
NICK
192.168.123.23 0050fc9d6cce NICK 29A sc.A
\\PITZY
PITZY 192.168.123.29 00a0d21c43be Genius
\\SHADOW
?
?
?
BaLLu
\\STEFAN
STEFAN 192.168.123.22 0060089d019f
\\TERENTE
TERENTE 192.168.123.125 000244660dbc carlos
\\TERRY
TERRY 192.168.123.43 0040f432cbbe
\\VALKYR
VALKYR 192.168.123.140 00e04ca0b140 Pc-u' lu' Alin
\\VIORELO
VIORELO 192.168.123.72 00e018b2125c
-----------------------------------------------------------------------------------01:07:15 26-08-2003 Generated by TCPNetView, http://www.enet.ru/~gorlach/

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.

Protectia fata de penetrarile prin retea


Lucrul n retea face posibil ca altii sa aiba acces din retea la fisiere din computerul
tau, deci fara sa aiba nevoie sa opereze la tastatura lui sau sa vada ce este pe ecran.
mod
normal, acest
ar trebui
sa fie sa
posibil
numai
pentru acele
directoare
Daca facin
'port
forwarding'
inapoi lucru
pe aceeasi
retea, trebuie
te asiguri
ca pachetele
viitoare
ce vor fi
transmise cat si cele de reply
trec prin masina care face NAT (astfel incat ele sa fie alterate). Codul NAT (incepand cu 2.4.0-test6) va
bloca redirectarea ICMP care
este produsa cand pleaca pachetele trecute prin NAT pe aceeasi interfata pe care au sosit, dar serverul care
va primi pachetele tot va
incerca sa raspunda direct la client (care nu va recunoaste raspunsul).
Cazul clasic este atunci cand personalul intern vrea sa acceseze serverul web public, care de fapt este de
fapt un DNAT de la adresa
publica 1.2.3.4 la o masina interna (192.168.1.1), adica asa:

35

# iptables -t nat -A PREROUTING -d 1.2.3.4 \


-p tcp --dport 80 -j DNAT --to 192.168.1.1
O solutie ar fi sa rulezi un server DNS intern care stie adresa reala (interna) a serverului de web public, si sa
forwardeze toate
celelalte cereri unui server DNS extern. Asta inseamna ca jurnalele de pe serverul web vor arata adresle IP
interne corect.
Alta solutie ar fi ca masina care face NAT sa mapeze sursa adresei IP cu a ei insesi pentru aceste conexiuni,
pacalind serverul sa
raspunda prin ea. In acest exemplu, vom face urmatorul lucru (stiind ca adresa interna a masinii care face
NAT este 192.168.1.250):
# iptables -t nat -A POSTROUTING -d 192.168.1.1 -s 192.168.1.0/24 \
-p tcp --dport 80 -j SNAT --to 192.168.1.250
Deoarece regula in lantul PREROUTING va fi executata prima, pachetele vor fi deja destinate pentru
serverul web intern: putem sa ne dam
seama care sunt modificate intern la IP sursa.
11. Multumiri
Multumesc in primul rand la WatchGuard si David Bonn care aucrezut in netfilter si m-au ajutat atata timp
cat am lucrat la el.
Multumesc si celor care m-au sustinut in timp ce am invatat despre uratenia NAT'ului, mai ales celor ce miau citit jurnalul.
Rusty.

36

S-ar putea să vă placă și