Securitatea pe Internet

CUPRINS

Introducere 5

Capitolul I. Sisteme de operare 7

1.1. Generalități. Funcțiile generale ale sistemelor de operare 7

1.2. Conceptele sistemelor de operare 8

1.3. Nivele de protecție 11

1.4. Arhitectura Windows 12

1.5. Arhitectura UNIX-LINUX 13

Capitolul 2. Elemente de securitate 16

2.1. Generalități 16

2.2. Securizarea sistemului 16

2.2.1. Securizarea memoriei 17

2.2.2. Securizarea accesului 18

2.2.3. Securitatea sistemului de fișiere 22

2.3. Securizarea rețelei 22

2.3.1. Viruși 24

2.3.2. Măsuri de prevenire ale atacurilor 25

2.3.3. Scanarea porturilor 26

Capitolul 3. Securitatea pe Internet 29

3.1. Securitatea serviciilor Internet 29

3.2. Funcționarea serviciilor Internet 30

3.3. Securitatea prin firewall 32

3.4. Securitatea prin criptare 34

3.4.1. Istoric. Evoluție 34

3.4.2. Algoritmi criptografici cu cheie secretă 36

3.4.3. Algoritmi criptografici cu cheie publică 40

3.5. VPN 42

3.5.1. Funcționarea VPN-ului 43

3.5.2. Avantajele alegerii VPN-ului 45

3.5.3. Tipuri de VPN. Utilizări ale VPN-urilor 47

3.5.4. Cerințe de bază pentru VPN-uri 50

3.5.5. Soluții pentru implementarea VPN 51

3.5.6. Metode de transmisie prin VPN 52

Capitolul 4. Aplicații de securitate 54

4.1. Rețea privată virtuală – VPN 54

4.2. Aplicații de tip firewall Iptables vs. ZoneAlarm 59

4.2.1. Descriere generală de funcționare 61

4.2.1.1. Iptables 61

4.2.1.2. ZoneAlarm 65

4.2.2. Reguli de filtrare. Opțiuni de filtrare 67

Concluzii 78

Bibliografie 80

Introducere

Orice sistem de calcul electronic nu poate să asigure prelucrarea automată fără existența unui sistem de operare. Sistemele de operare reprezintă un concept familiar tuturor utilizatorilor de calculatoare personale și apar tot mai des în implementări funcționale ale diferitelor aparate cum ar fi telefoanele mobile și cardurile bancare inteligente. Acest capitol este dedicat familiarizării studenților cu principalele noțiuni privind sistemele de operare. Societatea modernă informatizată reprezintă deja o realitate, în care se ignoră frontierele și se trece peste orice constrângeri de ordin spațial sau temporal. Economia, politică și societatea se bazează in ziua de astăzi, din ce în ce mai mult, pe această infrastructură informatică. De asemenea, guvernele, firmele din sectoarul public și privat, organismele financiare naționale și internaționale, învățământul, cultura și cercetarea științifică, beneficiază toate de aceste forme eficiente de conducere, informare și comunicare. În aceste circumstanțe, securitatea informatică a devenit una din componentele majore ale internet-ului. Analiștii acestui concept au sesizat o contradicție aparentă între nevoia de comunicații și conectivitate, pe de o parte, și necesitatea asigurării confidențialității, integrității și autenticității informațiilor, pe de altă parte. Domeniul relativ nou al securității informatice caută soluții tehnice pentru rezolvarea acestei contradicții aparente. Viteza și eficiența comunicațiilor "instantanee" de documente și mesaje conferă numeroase atuuri actului decizional într-o societate modernă, bazată pe economie concurențială însă utilizarea serviciilor de poștă electronică, Web, transfer electronic de fonduri etc. se bazează pe un sentiment, adeseori fals, de securitate a comunicațiilor, care poate transforma potențialele câștiguri generate de accesul rapid la informații, în pierderi majore, cauzate de furtul de date sau de inserarea de date false ori denaturate. Sistemele informatice sunt amenințate atât din interior cât și din exterior. Pot fi persoane bine intenționate, care fac diferite erori de operare sau persoane rău intenționate, care sacrifică timp și bani pentru penetrarea sistemelor informatice. Dintre factorii tehnici care permit fisuri de securitate pot fi anumite erori ale software-ului de prelucrare sau de comunicare sau anumite defecte ale echipamentelor de calcul sau de comunicație. Folosirea abuzivă a unor sisteme reprezintă, de asemenea, unul din factorii de risc major privind securitatea sistemelor informatice. Sistemele sunt vulnerabile la penetrări neautorizate, la distrugeri sau modificări accidentale sau voite de date ori programe. Aceste sisteme pot deservi elemente vitale pentru societate cum ar fi: sisteme militare, bănci, spitale, sisteme de transport, burse de valori, oferind în același timp un cadru de comportament antisocial sau de terorism. Tendința actuală privind extinderea conectivității, în special în internet, amplifică aceste vulnerabilități: este din ce în ce mai greu să se localizeze un defect, un punct de acces ilegal în rețea, un utilizator cu comportament inadecvat. Se consideră că internet-ul este unul din cele mai complexe sisteme create de tehnologia umană care, alături de sistemul financiar mondial, nu poate fi controlat în totalitate. Vulnerabilitatea sistemelor informatice actuale poate antrena pierderi imense de ordin financiar, direct sau indirect, cum ar fi scurgerea de informații confidențiale cu caracter personal, militar sau economic. Obiectivele acestei lucrări se pot imparți in 2 categorii și anume: obiective principale în care se urmărește pe de o parte înțelegerea noțiunilor generale privind sistemele de operare și pe de altă parte prezentarea unor produse software de tip firewall care ar putea rezolva o mare parte din problemele de securitate; obiective secundare care sunt desprinse din obiectivele principale și urmăresc intelegerea problemelor de securitate care pot interveni în funcționae a unui sistem de operare precum și modul de utilizare a 3 produse software indispensabile funcționării a unui sistem de calcul care se dorește a fi sigură și stabilă reușind să țina la distanță diferite tipuri de atacuri asupra acesteia. Lucrarea este structurată in 4 mari capitole, fiecare capitol cuprinzând la rândul său mai multe subcapitole. De asemenea se poate spune că lucrarea este formată din 2 mari părți și anume: prima parte, partea de teorie în care se trec în revistă probleme generale legate de sistemele de operare și despre securitatea pe internet; și a 2-a parte, partea aplicativă în care se face o comparație între 2 produse software existente pe piața folosite pentru securizarea sistemelor de calcul si a rețelelor de calculatoare și anume 2 firewall-uri: Iptables utilitar existent și folosit pe platformele UNIX (Linux, Freebsd și ZoneAlarm un produs destul de complex și ușor de folosit pe platformele Windows. De asemenea sunt prezentate concret aplicații privind crearea și utilizarea VPN (virtual private network).

Capitolul I. Sisteme de operare

1.1. Generalități. Funcțiile generale ale sistemelor de operare

Software-ul calculatorului este format din totalitatea programelor destinate să asigure conducerea și controlul procesului de prelucrare a informației fiind divizat în:

programe de sistem sau sistemul de operare

programe de aplicație care rezolvă problemele utilizatorilor.

Un sistem de operare este un program care controlează distribuția resurselor unui calculator și mediază comunicarea dintre hardware, pe de o parte, și aplicațiile utilizatorilor, pe de altă parte [5].

Sistemul de operare are direct acces la hardware, în timp ce utilizatorii folosesc aplicații ce apelează prin intermediul bibliotecilor sau direct la funcțiile sistemului de operare.

Sistemul de operare are două componente principale:

– nucleul sau kernelul, componenta esențială, se încarcă de pe hard disk în memoria internă la pornirea sistemului de calcul și realizează :

– legătura cu rutinele BIOS ;

– legătura ce cererile programelor de aplicație ;

– gestionează resursele sistemului de calcul necesare în timpul executării programelor de aplicație ale utilizatorilor ;

– comenzile/programele utilitare sunt cele care realizează servicii pentru utilizarea efi-

cientă a resurselor calculatorului.

Deosebirea dintre aceste două componente ale calculatorului este că nucleul se execută

7în mod supervizor cu privilegii extinse asupra memoriei și a celorlalte resurse, în timp ce programele utilitare se execută în mod utilizator cu privilegii reduse la fel ca și un program de aplicație.

Funcția de bază a sistemului de operare este “ascunderea” complexității hardware prin furnizarea unui set de instrucțiuni mult mai accesibil și degrevat de detalii pentru comanda dispozitivelor periferice.

Ca o analogie, un calculator poate fi privit ca un aeroport, cu un punct central care coordonează traficul. Resursele le reprezintă pistele și avioanele iar buna funcționare constă în desfășurarea fluentă și eficientă a traficului aerian. Rolul unui sistem de operare este de a

controla accesul la resurse exact ca și turnul de control al aeroportului, [5].

Funcțiile generale a unui sistem de operare sunt următoarele, [6]:

– funcția de comandă și control a execuției programelor utilizatorilor;

– funcția de gestiune a memoriei evidențiază resursele de memorie utilizate, realizează alocarea/dealocarea memoriei și asigură un sistem de protecție a datelor și programelor;

– funcția de gestiune a procesorului analizează și decide ce proces va utiliza procesorul realizând alocarea și ulterior dealocarea acestuia la expirarea cuantei de timp sau la finalizarea execuției programului, prelucrează și modifică starea fișierelor și programelor;

– funcția de gestiune a dispozitivelor periferice, inițializează și verifică starea resurselor calculatorului, formatează hard disk-ul, formatează floppy disk-ul, definește structura sistemului de fișiere și gestionează (asigură partajarea) resurselor calculatorului;

Figura 1.1: Locul sistemului de operare în cadrul unui sistem de calcul

Locul sistemului de operare în cadrul unui calculator (sistem de calcul) este ilustrat în Fig.1.1.

1.2. Conceptele sistemelor de operare

Câteva dintre trăsăturile mai importante referitoare la sistemele de operare sunt:

– Sistemul de operare este o mașină virtuală (extinsă), adică el transformă operațiile de nivel înalt efectuate de programator în operații reale care țin seama de detaliile de programare a dispozitivelor hardware.

– Sistemul de operare este administrator de resurse, el gestionează procesele, memoriile, dipozitivele periferice, alocându-le pe rând programelor care sunt în competiție pentru a le ocupa.

– Sistemul de operare are o interfață cu programele utilizator realizată printr-o mulțime de „instrucțiuni extinse” (“extended instructions”) numite „apeluri sistem” („system call”) aparținând sistemului de operare. Cele două concepte importante cu care operează apelurile de sistem sunt:

– procesul

– fișierul

Utilizatorii se situează deasupra sistemului de operare și folosesc facilitățile oferite de acesta pentru a-și defini, realiza și exploata propriile programe de aplicație.

Interfața dintre sistemul de operare și programele utilizator este definită de apelurile sistem prin intermediul cărora se pot crea, șterge și utiliza diferite utilitare ale sistemului de operare. Cele mai importante sunt procesele și fișierele, [4].

Procesul

Conceptul de bază în orice sistem de operare este procesul. Un proces este un program

în execuție care conține:

– programul executabil,

– date și stiva,

– program “counter”,

– “pointer” de stivă și alți regiștri,

toate formând informația necesară execuției unui program.

Pentru a înțelege în mod intuitiv rolul proceselor este bine să ne raportăm la sistemul “time-sharing”. Aici, sistemul de operare periodic decide să oprească execuția unui proces și pornirea execuției altui proces, de exemplu deoarece primului dintre ele i-a expirat cuanta de timp alocată de unitatea centrală în secunda trecută. Când un proces este temporar oprit, el va trebui mai târziu repornit din starea în care a fost oprit. Aceasta înseamnă că toate informațiile despre proces trebuie să fie salvate explicit pe durata suspendării. De exemplu dacă procesul are câteva fișiere deschise, poziția exactă din fișier unde era procesul, trebuie să fie înregistrată undeva, astfel încât la restartare să se poată citi din el. În multe sisteme de operare aceste informații despre proces, altele decât conținutul propriu spațiului de adresă, este memorat în tabela sistemului de operare (“table process”), care este o arie sau listă înlănțuită de structuri, una pentru fiecare proces curent existent în execuție.

Un proces poate crea la rândul lui alte procese formându-se o structură arborescentă.

În sistemele de operare de multiprogramare, cum este UNIX, este important să se păs-

treze urma fiecărui proprietar utilizator de sistem. În fiecare sistem, fiecare utilizator autorizat îi este asignat un “uid” (“user identification”). Fiecare proces are asignat uid-ul proprietarului. Simular, utilizatorii pot fi divizați în grupuri având câte un identificator de grup gid (“group identification”). “Uid” și “gid“ joacă un rol în protecția informației.

Fișiere

O altă categorie vastă de apeluri sistem sunt legate de fișierele sistem. O funcție majoră a sistemelor de operare este să ascundă particularitățilr hard disk-ului și a altor dispozitive periferice. Apelurile de sistem sunt în mod evident necesare la crearea, schimbarea, mutarea, citirea și scrierea fișierelor. Înainte ca un fișier să poată fi citit, el trebuie deschis și după aceea el poate fi citit și ulterior închis, așa că apelurile sunt provocate de aceste operații.

Sistemele de operare trebuie să suporte conceptul de director, ca un mod de grupare a fișierelor împreună. Apelurile de sistem sunt folosite pentru crearea, schimbarea și ștergerea directoarelor. Directoarele pot cuprind la rândul lor alte directoare și fișiere.

Ca și procesele fișierele sunt organizate ca arbori, dar similitudinea se oprește aici.

Ierarhia de procese, de obicei nu este foarte adâncă (uzual maxim 3), în timp ce ierarhia de fișiere poate fi mult mai adâncă.

Fiecare fișier într-o ierarhie de fișiere este specificat prin nume împreună cu numele căi (“path name”) pornind din vârful ierarhiei de directoare care-i directorul rădăcină (“root directory”).

Fișierele trebuie protejate, de exemplu fișierele și directoarele sunt protejate printr-un cod de protecție compus dintr-un cmp pentru proprietar, altul pentru grup și altul pentru orice altceva. Fiecare câmp are un bit de acces la citire, scriere sau execuție.

Multe sisteme de operare, inclusiv MS-DOS și UNIX, fac o abstractizare, permițând utilizatorului să execute operații de I/O ca un fișier special. În acest mod pentru citirea și scrierea lor pot fi utilizate aceleași apeluri sistem care sunt utilizate pentru citirea și scrierea fișierelor.

În MS-DOS și UNIX când un proces este pornit, fișierul descriptor 0, numit fișier de intrare standard („standard input”) este atașat să refere terminalul de citire. Fișierul descriptor 1, numit fișier de ieșire standard („standard output”) referă terminalul de scriere. Fișierul descriptor 2, numit fișier de eroare standard („standard error”) referă terminalul de ieșire, dar în mod normal este utilizat pentru scrierea mesajelor de eroare.

Relația dintre procese și fișiere poartă denumirea „pipe”. Un „pipe” este un pseudo fiși-

er scurt care este utilizat să conecteze două fișiere între ele, [6]:

Figura 1.2. Două procese relaționând prin “pipe”

Când procesul A dorește să trimită date procesului B, el scrie în „pipe” la fel ca într-un fișier de ieșire. Procesul B poate citi datele de la „pipe” la fel ca dintr-un fișier de intrare. Această comunicare dintre procese este privită ca fișier de citire/scriere obișnuit.

1.3. Nivele de protecție

Sistemele de operare moderne, pentru a oferi stabilitate și securitate, rulează în mod diferit unele dintre componentele sistemului de operare comparativ cu aplicațiile utilizator. Instrucțiunile sistemului de operare rulează într-un mod privilegiat, care permite accesul direct la toată memoria și accesul direct la periferice. In schimb, aplicațiile utilizator rulează într-un pațiu de memorie virtual (fiecare proces vede doar propriul spațiu de memorie), accesul la periferice făcându-se exclusiv prin intermediul apelurilor sistem oferite de către sistemul de operare. Pentru a se putea face însă această distincție, între modul de execuție a instrucțiunilor sistemului de operare și instrucțiunile unei aplicații utilizator, platforma și procesorul pe care rulează sistemul de operare trebuie să permită și să suporte o asemenea funcționalitate (facilitate).

Arhitecturile x86 pe 32 de biți prevăd în acest sens patru așa numite nivele de protecție, nivelul de protecție 0 având privilegiile cele mai mari, iar nivelul de protecție 3 cele mai scăzute.

Sistemele de operare actuale folosesc doar două nivele de protecție, nivelul de protecție 0 – pentru a rula instrucțiunile sistemului de operare și nivelul de protecție 3 – pentru rularea aplicațiilor utilizator. Componentele sistemului de operare ce rulează sub nivelul de protecție 0 alcătuiesc nucleul (sau kernelul) sistemului de operare. Nu toate componentele sistemului de operare rulează însă sub nivel de protecție 0. Există o serie de componente ale sistemului de operare care rulează sub nivel de protecție 3, în așa numitul user space, alături de aplicațiile obișnuite utilizator. Un exemplu de astfel de componente sunt serviciile Windows (Service Processes) – de fapt serviciile Windows sunt echivalentul daemon-ilor Unix.

1.4. Arhitectura Windows

Nucleul sistemul de operare Windows este unul monolitic, asemănător majorității nucleelor sistemelor de operare Unix, inclusiv Linux. Toate componentele vitale ale sistemului de operare (managementul proceselor și a threadurilor, managementul fișierelor, programarea operațiilor de intrare / ieșire, sincronizarea și comunicarea între procesoare) se fac în cadrul nucleului sistemului de operare.

Deoarece o componentă de bază a nucleului Windows poartă numele de micronucleul (Windows), unele documentații, non-Microsoft, cataloghează greșit nucleul sistemului de operare Windows ca fiind un micronucleu. In cazul sistemelor de operare ce posedă micronucleu, managementul memoriei, a proceselor, a operațiilor de intrare / ieșire, stivele de protocoale, rulează ca procese de sine stătătoare, tipar în care sistemul de operare Windows nu se încadrează. Managementul memoriei, a proceselor, operațiile de intrare / ieșire, stivele de protocoale sunt implementate de către sistemul de operare Windows integral în kernel space, în cadrul nucleului.

În cadrul sistemului de operare Windows, gestiunea acestor resurse se face la nivelul unei componente a sistemului de operare Windows denumită Executiv NT (Fig.1.3) Executivul NT rulează în kernel space și are ca sarcină, în primul rând, gestiunea acestor resurse (crearea, referirea, distrugerea acestora) dar și implementarea operațiilor propriu-zise pe aceste resurse. Datorită nivelului la care sunt manipulate în cadrul sistemului de operare Windows, aceste resurse sunt referite în documentațiile și manualele Microsoft sub numele de Executive Objects.

Fig. 1.3. Arhitectura sistemului de operare Windows

1.5. Arhitectura UNIX-LINUX

Sistemul de operare UNIX, ca orice sistem modern de operare, este structurat în principal pe următoarele două nivele:

Nucleul (denumit kernel) sistemului UNIX;

Programe sistem UNIX, accesibile prin intermediul interpretorului de comenzi Shell care reprezintă interfața dintre sistemul de operare și utilizator.

Majoritatea programelor sistem și kernel sunt scrise în C, permițând portabilitatea pe alte platforme hardware ce posedă un compilator C.

Programele de sistem UNIX oferă funcționalitatea cerută de utilizatori prin inițierea unui sistem de apeluri către nucleul sistemului UNIX. Nucleul îndeplinește aceste cereri interacționând cu nivelul hardware și returnând rezultatele scontate utilitarelor și programelor sistem. În această arhitectură stratificată, doar nucleul UNIX trebuie să se ocupe de echipamentele hardware specifice cu care trebuie să interacționeze; în interiorul nucleului majoritatea codului specific hardware se limitează la driverele echipamentelor.

Nucleul reprezintă centrul sistemului de operare și are rolul de a oferi funcționalitățile de bază necesare funcționării computerului. Nucleul este apropiat de microprocesor și hardware, fiind un fișier executabil ce este încărcat în memorie atunci când are loc procesul de boot al calculatorului, fiind denumit generic unix (pe sistemele bazate pe System V) sau vmunix (pe sistemele bazate pe BSD). Odată cu încărcarea în memorie, nucleul începe execuția următoarelor funcții:

Administrarea echipamentelor, a memoriei și a proceselor;

Asigură controlul funcțiilor de transmisie a informațiilor între programele de sistem și echipamentele hardware;

Administrează entități precum spațiul de swap, daemoni-i și sistemul de fișiere.

Spațiul de swap reprezintă o porțiune specială de pe hard-disc ce este folosit de către kernel pentru procesare. Bucăți ale programelor ce se află în execuție pot fi interschimbate între memoria RAM și hard-disc ori de câte ori este nevoie. Acest mecanism de extindere a memoriei RAM a sistemului prin utilizarea spațiului de pe hard-disc poartă denumirea de memorie virtuală.

Daemoni-i sunt programe (sau procese) ce îndeplinesc un anumit rol; ei sunt procese speciale care își încep execuția după încărcarea sistemului de operare în memorie. După aceea, daemoni-i așteaptă să ruleze anumite sarcini în sprijinul sistemului de operare, putând fi porniți manual sau în mod automat. Un exemplu de proces daemon este dtlogin care determină apariția ecranului de login CDE la începutul unei sesiuni UNIX sau după ce utilizatorul iese din File Manager-ul CDE. Procesele daemon din lumea UNIX sunt similare cu serviciile (services) din Windows NT/2000/XP sau cu modulele NLM (Netware Loadable Modules) din sistemul de operare Novell Netware.

Sistemele de fișiere reprezintă modalitatea de organizare a directoarelor, subdirectoare-

lor, fișierelor pe hard-disc. Sistemele de fișiere pot fi situate atât local (pe calculatorul local) cât și la distanță (pe alt calculator din rețea, de regulă un așa numit server).

Programele și utilitarele sistemului, precum și aplicațiile utilizatorilor sunt independente de hardware și singura cerință pentru acestea este să inițieze apeluri standardizate de sistem către nucleul UNIX.

Cele mai multe dintre funcțiile nucleului UNIX se ocupă de managementul fișierelor sau al anumitor tipuri de dispozitive. Astfel, UNIX interpretează echipamentele ca fiind tipuri speciale de fișiere.

Cea mai importantă caracteristică a acestui sistem de operare o constituie disponibilitatea codului sursă, programatorii avaând posibilitatea de modernizare și perfecționare a acestui sistem de operare, [9].

Arhitecura generală și principalele funcții ale nucleului Unix sunte prezentate în Fig 1.4.

Figura 1.4. Arhitectura generală a UNIX

Din Figura 1.4. se poate observa că nucleul este intermediarul între interfața furnizată de apelurile de sistem și echipamentele fizice (hardware). Apelurile sistem definesc interfața cu

programatorul. Apelurile sistem pot fi grupate în trei categorii:

pentru prelucrarea fișierelor și perifericelor;

pentru controlul execuției proceselor;

pentru prelucrarea informației.

Capitolul. 2. Elemente de securitate

2.1. Generalități

Spre deosebire de deceniile trecute, când calculatoarele funcționau separate, în prezent acestea lucrează în rețele, ceea ce ajută utilizatorii în ceea ce privește accesarea de fișiere și resurse din încăperi diferite sau chiar din țări diferite. Datorită conectării calculatoarelor pe distanțe mari prin multe rețele și subrețele, este necesar să se țină cont de securitatea informațiilor. Aceasta a devenit una dintre componentele majore ale Internetului, [1].

O primă clasificare a riscurilor de securitate se bazează pe cele trei tipuri de atacuri : cele venite din Internet (pondere mai redusă), cele inițiate din rețeaua locală și cele generate de pe aceeași mașină (cu pondere mai însemnată decât cele anterioare).

Deși cu gradul de risc cel mai ridicat, atacurile inițiate de utilizatorii serverului țintă sunt deseori tratate în grabă și unitar.

Principiul fundamental al securității, este: Securitatea unui sistem este egală cu securitatea celei mai slabe verigi! [6]

Privit din perspectiva unui sistem IT, o soluție dc securitate trebuie să includă atât o politică de securitate, ce definește drepturile și responsabilitățile utilizatorilor, cât și specificații ale asigurării securității fizice, ale componentelor sistemului dc operare, ale aplicațiilor localc, precum și a serviciilor de rețea.

O politică de securitate trebuie să stabilească un compromis între gradul de tlexibilitate a serviciilor IT și nivelul de securitate dorit. Cerințele de securitate ar presupune izolarea totală a sistemului de lumea exterioară, dar cum o astfel de abordare duce la limitarea funcționalității, cel mai adesea securitatea unui sistem este definită ca un set de metode de protecție menite să descurajeze și să întârzie atacatorul, [6].

2.2. Securizarea sistemului

Securitatea aplicațiilor trebuie să pornească de la asumarea gradului de risc dat de sistemul de operare. Dintre componentele sistemului de operare, o mare parte a atacurilor încearcă să exploateze limitări ale implementărilor de separare a memoriei, sau a sistemului de fișiere.

Un sistem de operare este sigur dacă resursele acestuia (zone de memorie, dispozitive de

intrare/ieșire, fișiere, procese, etc.) sunt accesate în mod valid. Accesul valid este asigurat de nucleul sistemului de operare, ce acționează ca un intermediar între utilizatori și componentele hardware.

Pornind de la sistemele de operare simple (cele pentru PDA) până la sistemele mult mai complexe cc rulează pc calculatoarele personale, securitatea oferită dc nuclcu se bazează pc suport hardware. Procesoarele oferă cel puțin două niveluri de privilegiu: unul pentru operații obișnuite și un altul pentru accesul la instrucțiuni privilegiate. Accesul la aceste instrucțiuni privilegiate este permis doar nucleului, [6].

2.2.1. Securizarea memoriei

Problemele de securitate la nivelul memoriei țin de detectarea corectă a încercărilor de accesare a zonelor de memorie ce nu se află în spațiul de adrese al procesului respectiv, dar și a încercărilor de schimbare a unor zone de memorie în spațiul propriu de adrese, pe parcursul rulării procesului, [6].

Fiecare proces are propriul său spațiu de memorie virtuală mapat peste un spațiu de memorie fizică printr-o tabelă de translatare ce aparține procesului. Pentru fiecare proces care încearcă să acceseze o adresă de memorie pentru care nu există o translatare către o adresă fizică (adică pentru care nu există pagina respectivă de memorie în RAM), procesorul va verifica la nivel hardware dacă respectiva adresă se află în spațiul de adrese al procesului. Dacă vrezultatul verificării este pozitiv, înseamnă că respectiva pagină de memorie a fost evacuată pe disc (swap) și trebuie adusă în RAM. în caz contrar va ti generat un semnal de pagină (de memorie) invalidă, pe baza căruia nucleul va putea decide suspendarea sau terminarea procesului în cauză. În sistemele UNIX, semnalul se numește S1GSEGV, și are ca efect terminarea procesului cu mesajul: “Segmentation fault'',[2].

Toate aceste operațiuni cad în sarcina procesorului și sunt realizate la nivel hardware.

În concluzie, protecția memoriei este o componentă esențială a sistemelor multitasking (sisteme cc oferă posibilitatea mai multor procese de a se afla în stare de execuție în același timp). Din punct de vedere hardware, primele procesoare pentru calculatoarelc personale cc oferă suport pentru protecția memoriei sunt procesoarele din familia 386. Cu toate acestea sistemele de operare până la Windows 98 și Windows ME nu reușeau să ofere o protecție completă a memoriei.

Protecția memoriei nu se limitează doar la restricționarea acceselor la propriul spațiu de adrese. Ea se ocupă și cu prevenirea inserării de cod executabil în diverse segmente ale unui proces. Pentru a detecta astfel de inserări, metoda cea mai folosită constă în marcarea zonelor executabile. Zonele marcate nu pot fi alterate pe parcursul execuției programului. Numele metodei este W^X (Write xor eXecute) indicând că o zonă de memorie poate fi ori executabilă, ori modificabilă, dar nu ambele.

Procesoarele din familia x86_64 oferă suport hardware pentru metoda W^X prin folosirea unui indicator NX (Not eXecutable) pentru marcarea zonelor ce pot fi modificate, [6].

2.2.2. Securizarea accesului

Una din componentele esențiale ale unei politici de securitate o reprezintă securitatea la nivel de user. Aceasta se bazează pe separarea resurselor fiecărui user precum și protejarea acestuia prin auterntificare.

Orice operațiune trebuie să fie executată dintr-un cont cu drepturi cât mai limitate.

Deși mecanismele de autentificare s-au diversificat, în continuare o pondere semnificativă o constituie perechile <user, parolă> generate static, pentru o perioadă limitată de timp. O soluție alternativă, ce oferă un grad mult mai ridicat de scalabilitate, precum și de securitate, este folosirea de certificate. Conceputul ce stă la baza folosirii de certificate se numește PKI (Public Key Infrastructure).

Numărul resurselor electronice fiind în continuă creștere, mulți utilizatori ajung să comită cel puțin una dintre erorile de căpătâi ale autentificării: alegerea de parole ușor de ghicit, folosirea unei parole pentru mai multe conturi, sau pur și simplu notarea parolelor în locuri nesigure.

O parolă eficientă trebuie:

să aibă un număr minim de caractere (se recomandă 7-8),

să folosească atât minuscule, cât și majuscule,

să includă cel puțin un caracter special (și nu doar pe ultima poziție în cadrul parolei),

nu trebuie să fie un cuvânt din dicționar,

nu trebuie să fie nici un nume de persoană.

Cu toate acestea, parolele trebuie să fie ușor de reținut.

În cazul folosirii unei parole ce nu respectă recomandările de mai sus. atacurile bazate pe dicționar (încercarea parolelor ce aparțin unui set de cuvinte comune), sau cele bazate pe forță (încercarea tuturor combinațiilor de caractere) pot avea rezultate aproape imediate. Există numeroase aplicații ce simulează astfel de atacuri, printre care și aplicația Open Source John the Ripper pentru sistemele UNIX-LINUX și MAC (http://openwall.com/john/), [6].

Nu este prudentă folosirea PIN-ul cardurilor de bancă pentru contul de mail, dcoarccc un atac dc forță brută ar dura aproximativ o microsccundă.

Atât rețelele Windows, cât și LINUX oferă suport pentru securitatea bazată pe jetoane hardware ce își regenerează parola la fiecare 30 sau 60 de secunde. Odată sincronizat ceasul serverului cu ceasul jetonului hardware, userul va folosi numele său de cont și parola afișată de jeton la momentul autentificării. Prețul unei astfel de soluții este de 5-10 euro/jeton hardware, fiecare jeton trebuind reconfigurat la 6 luni de zile. Trebuie remarcat totuși că această soluție nu rezolvă riscurile de securitate fizică a parolei, [6].

Soluțiile de autentificare folosite la intrarea în sistemul de operare sunt doar o componcntă a securității sistemului. Absența parolei de BIOS corelată cu accesul fizic permit schimbarea parolei contului privilegiat. Pe lângă parolă de BIOS un sistem trebuie să protejeze editarea bootloader-ului. prin setarea unei parole.

Pentru setarea unei parole pe grub, trebuie modificat fișierul /boot/grub/memu.1st.

Linia timeout … specifică numărul de secunde după care va fi bootată imaginea implicită, iar password precizează parola necesară pentru a edita orice linie din grub.

Pentru a îmbunătăți securitatea parolei de grub se poate opta pentru precizarea acesteia sub forma unui rezumat md5. Astfel, un atacator nu va putea afla parola chiar dacă ajunge să aibă acces de citire la fișierul /boot/grub/menu.lst.

În sistemele UNIX-LINUX informațiile specifice utilizatorilor sunt păstrate în fișierul /etc/passwd. Orice utilizator are acces de citire pentru acest fișier, din acest motiv s-a decis separarea informațiilor legate de parole într-un nou fișier: /etc/shadow. Pentru acest fișier au drepturi de citire numai utilizatorul privilegiat și grupul siisdow. in plus, la instalarea implicită parolele sunt păstrate în format md5, Fig 2.1.

În Fig.2.2, se prezintă un exemplu de captură de pe un sistem Linux Fedora a fișierului /etc/shadow.

Pentru schimbarea parolei se folosește comanda passwd. Aplicația nu permite rularea dintr-un script. Pentru generarea automată a parolelor se poate folosi comanda pwgen. Utilitarul cu același nume trebuie în prealabil instalat, Fig.2.2.

Exemplu

Fig. 2.1. Conținutul fișierului /etc/shadow într-un sistem LINUX-Fedora

Exemplu

Explicații

modalitatea de schimbare a user-ului (student) folosind comanda passwd.

Fig. 2.2. Instalarea utilitarului pwgen pe LINUX-Fedora

2.2.3. Securitatea sistemului de fișiere

Securitatea sistemului de fișiere are la bază izolarea user-ilor prin separarea totală a fișierelor personale sau definirea acțiunilor permise de alti useri. Fiecare user dispune de o intrare (director) în sistemul de fișiere pentru care are drepturi depline. El poate controla acțiunile pe fișierele din acel director. Unele intrări în sistemul de fișiere nu pot fi folosite decât de user-ul privilegiat, [6].

Abordarea securității sistemului de fișiere diferă între sistemele Windows și UNIX-LINUX.

Sistemul NTFS oferă prin platforma NT posibilitatea definirii unei liste de acces pentru fiecare user din sistem. Această listă de acces se bazează pe 7 tipuri de acțiuni : Full Control, Modify, Read & Execute, List, Read, Write, Special Permissions.

În UNIX definirea drepturilor se face pe trei trepte de privilegiu : proprietarul, membrii grupului din care face parte proprietarul și restul user-ilor, concret drepturi de citire, scriere și execuție. Utilitarele de bază folosite sunt chmod și chown.

Nu sunt definite explicit drepturile user-ului privilegiat, acesta având aceleași drepturi ca și proprietarul fișierului respectiv.

Pentru controlul drepturilor unei intrări noi în sistemul de fișiere se folosește un parametru de restricție numit umask. drepturile efective se obțin prin efectuarea operației SI logic între valoarea inversată a umask și permisiunile implicite (666 pentru fișiere si 777 pentru directoare), [2].

Exemplu

2.3. Securizarea rețelei

Atacurile dc rețea sunt clasificatc în funcție de gravitate în trei categorii: atacuri de recunoaștere, atacuri DoS și atacuri de obținere a accesului.

Atacurile de recunoaștere includ aplicații de complexități diferite. Cel mai simplu atac de recunoaștere poate fi generat printr-un script ce inventariază stațiile dintr-o rețea folosind pachete de ping. Pentru a obține informații în legătură cu serviciile rulate pe o mașină se poate folosi o aplicație de scanat porturi. Aplicațiile mai complexe de recunoaștere oferă nu numai lista serviciilor, dar chiar și o listă a posibilelor vulnerabilități. Un astfel de utilitar este nessus (http:/www.nessus.org), [6].

Atacurile DoS (Denial of Service) au ca scop congestionarea unui server sau doar a unui serviciu, în scopul reducerii funcționalității.

Se poate distinge între atacurile clasice DoS. bazate în general flooding și atacurile DoS distribuite, numite DDoS, ce au la bază un mecanism de propagare (un virus) pe un număr cât mai mare de destinații și sincronizarea atacului DoS către o țintă.

Un flood reprezintă un număr foate mare de pachete venite într-un interval scurt de timp. Un trafic ce poate fi interpretat drept flood la nivelul rutcrului de acces în rețeua 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 număr de 100.000- 150.000 de pachete pe secundă, la nivelul unui mter de acces (ce conectează o rețea locală) un flood are 8.000-12.000 de pachete pe secundă, iar în nucleul Internetului un trafic de milioane de pachete pe secundă poate fi tratat drept trafic legitim. în ciuda capacității de prelucrare a unui volum de pachete de ordinul zecilor de mii pe secundă, complexitatea adăugată de modele de Jlood specifice poate reduce limita de pachete pe secundă chiar la câteva sute.

Atacurile bazate flooding pot folosi conexiuni TCP, mai exact pachete de SYN (atacul numindu-se SYN flooding), dar și pachete ICMP sau UDP. în cazul SYN flooding atacatorul va trimite un număr foarte mare de cereri de deschidere a unei noi conexiuni TCP (pachete ce au câmpul de control SYN setat). Serverul țintă va răspunde cu pachete ce au câmpurile AC'K și SYN setate, dar atacatorul nu va trimite niciodată pachetul de stabilire a conexiunii (o sesiune TCP se bazează pe three-way handshake). Astfel sesiunile vor rămâne în starea half-open, consumând resurse în continuare pe server, [2].

Mecanismele de protecție î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), sau a unui număr maxim de conexiuni half-open (valoare de la care conexiunile half-open vor începe să fie șterse).

ICMP flooding se bazează pe trimiterea unui număr foarte mare de pachete ICMP, consumând întreaga lățime de bandă disponibilă. Cel mai adesea atacul este prevenit prin filtrarea întreg traficului ICMP. cu costul pierderii funcționalități utilitarelor ping și tracercute.

Atacul UDP flooding este cu adevărat distructiv când folosește drept țintă porturile 7 și 19, adică serviciile de echo și chargen. Aceste servicii fiind rar folosite. în rețele locale pot fi oprite de firewall-ul de intrare în LAN. fară un impact real asupra funcționării rețelei, [6].

2.3.1. Viruși

Un virus este un program sau doar o secvență de cod ce se atașează altor fișiere executabile fără cunoștința sau acceptul utilizatorului. Un virus include alături de mecanismele de execuție și modalități de replicare inserate în codul altei aplicații.

Clasificarea virușilor în funcție de modul de replicare distinge între mai multe tipuri de viruși, dintre care cei mai întâlniți sunt: viruși de e-mail, de macro, bombe logice, viruși de boot. viermi, și troieni, [6].

Simpla prezență a unui fișier infectat pe un calculator nu este echivalentă cu infectarea sistemului. Pentru a infecta sistemul un virus trebuie să fie executat cel puțin odată. Din păcate unele aplicații rulează cod executabil în mod automat, fără informarea utilizatorului.

E-mail-ul este unul dintre modurile principale de propagare a virușilor. Virușii dc e-mail sunt conținuți în atașamentul emailului, deseori având extensia schimbată (cel mai adesea în extensie specifică imaginilor). Aplicația țintă a unui astfel de virus este clientul de e-mail. Datorită numărului mare de utilizatori Outlook, o mare parte a acestor viruși sunt dezvoltați special pentru această aplicație.

Odată executat un atașament de e-mail infectat, virusul se încarcă în memoria RAM și va urmări să se multiplice. Pentru aceasta va căuta lista de adrese construite de clientul de email (address book). Majoritatea aplicațiilor client de email creează lista de adrese în mod dinamic, fară consultarea utilizatorului, și nu o protejează prin criptare. Odată deschisă lista de adrese virusul va folosi direct API-ul de trimis emailuri pentru a se multiplica.

O a doua categorie importantă de viruși o reprezintă virușii dc macro. Un macro este o bucată de cod executabil, atașată unui fișier document. Aplicațiile țintă a acestor viruși sunt cele de gestionare a documentelor, gen editoare de text. foi de lucru, sau editoare de prezentări. Aceste aplicații în general vor atenționa utilizatorul înainte de deschiderea unui document ce conține macro-uri.

Pentru a reduce gradul de risc, dacă la deschiderea unui fișier există avertizări privind existența unor macro-uri, se recomandă închiderea documentului și rularea unui program antivirus pe respectivul fișier.

Virușii dc boot nu reprezintă o amenințare majoră pentru sistemele actuale datorită dificultății de lansare în execuție. Pentru a lansa un astfel de virus, sistemul trebuie să încerce inițializarea de pe o partiție infectată. Impactul acestor viruși s-a diminuat odată cu dispariția floppy discurilor. în prezent virușii de boot se pot propaga ori prin CD-uri, ori prin flash carduri.

Troienii (trojan horses) reprezintă aplicații (aparent legitime) ce conțin (sau instalează) un program malițios. Pentru a evita astfel de atacuri se recomandă instalarea aplicațiilor doar din locații sigure, precum și verificarea integrității fișierelor înainte de instalare, [6]

Viermii (worrns) sunt programe ce folosesc vulnerabilități în diferite servicii din Internet pentru a se multiplica. Virușii de mail reprezintă o categorie de viermi.

Pentru a reduce impactul virușilor sunt importante atât măsurile luate la nivelul rețelei, cât și exersarea unor deprinderi din partea utilizatorilor.

2.3.2. Măsuri de prevenire ale atacurilor

Este important ca accesul în rețea să fie protejat de un firewall (dispozitiv de filtrare atât a traficului de intrare în rețea, cât și celui de ieșire), ca serverul de email să aibă instalat un antivirus, să existe o politică de monitorizare a serviciilor, etc,[2].

La nivelul utilizatorului este important să nu lanseze în execuție fișiere primite prin e-mail, să nu deschidă atașamente primite de la necunoscuți, să mențină un antivirus actualizat pe stația de lucru. etc.

Securizarea unui sistem sau a unei rețele pot presupune investiții importante atât în cchipamcntc, cât și în software. Cu toate accstca, oricc soluție dc sccuritatc nu trebuie să piardă din vedere câteva componente de bază.

Primul pas în oricc soluție dc securitatc o reprezintă stabilirea unor politici clare de securitate. O astfel dc politică dc sccuritatc va urmări:

– separarea ariilor cu nivel de securitate diferit

– definirea clară a drepturilor fiecărui utilizator

– definirea serviciilor ce trebuie oferite de fiecare componentă a rețelei

Odată stabilită politica dc sccuritatc va trebui restricționat traficul ce nu este prevăzut de aceasta prin configurarea politicilor de filtrare a pachetelor.

Infectarca stațiilor dintr-o rețea locală poate oferi o poartă dc acccs unui atacator în spatele firewall-ului. reducând gradul dc sccuritatc al rețelei. Din acest motiv un administrator responsabil nu se va ocupa doar de configurarea firewall-ului și a serverelor, dar și de securizarea stațiilor dc acccs. Cel mai important pas în accst sens o reprezintă configurarea și întreținerea programelor antivirus.

O componcntă importantă a securității o reprezintă confidențialitatea. în scopul protejării unor date sensibile se recomandă configurarea criptării traficului. Nu trebuie pierdut din vedere consumul mare de resurse (procesor) presupus de operația de criptare.

Monitorizarea nu se rezumă doar la rularea unui daemon dc genul SYSLOGD pe sistemele LINUX sau la deschiderea săptămânală a unei aplicații precum “Event Viewer" în Windows. Monitorizarea începe din etapa de proicctarc și ncccsită alegerea unei tactici la ficcarc dintre nivelurile OSI.

Cele două funcții principale ale monitorizării sunt: asigurarea dinamică a securității prin alertarea în fața unei înccrcări dc atac. și posibilitatea localizării și definirii unei dcfecțiuni sau a unei funcționări suboptimale.

Monitorizarea conectivității se bazează deseori pe mecanisme foarte simple, cel mai important dintre accstca fiind folosirea utilitarului ping, metoda fiind denumită ping sweep. Crearea unui sistem de interogări ICMP periodice poate oferi administratorului informații despre întreruperea unui segment dc rețea sau despre dcfcctarca sau stingerea unuia dintre servere.

2.3.3. Scanarea porturilor

Un program de scanat porturi este o aplicație ce implică conexiuni către toate porturile unui sistem, avaând drept scop determinarea porturilor deschise, aflându-se astfel ce servicii sunt disponibile.

Există numeroase aplicații de scanat porturile disponibile shareware sau freeware, una dintre cele mai populare fiind nmap, [6].

Utilitarul nmap implementează mai multe metode de scanare, putând oferi informații despre porturile deschise, dar și despre porturile explicit filtrate.

În Figura 2.3 s-a prezentat un ecran cu instalarea utilitarului nmap pe un sistem LINUX-Fedora.

Fig. 2.3. Instalarea nmap pe LINUX-Fedora

În plus față de informațiile referitoare la serviciile rulate, nmap pune la dispoziția administratorului de rețea metode de aflare a versiunii sistemului de operare, versiunile serviciilor active, utilizatorii ce rulează aceste servicii, precum și multe alte informații relevante pentru sistemul scanat.

Dintre cele opt tipuri importante de scanare, șase se referă la scanarea porturilor TCP, unul la scanarea porturilor UDP și unul la monitorizarea conectivității, această ultimă metodă încercând să determine doar dacă stația destinație este activă și dacă se poate ajunge la ea. O analiză detaliată a metodelor de scanare presupune o prezentare a câmpurilor de control din antetul TCP.

Dintre cele șase metode de scanare pentru porturi TCP singura disponibilă utilizatorilor neprivilegiați este TCP connect. TCP connect încearcă deschiderea unei conexiuni către portul țintă: dacă apelul sistem connect reușește înseamnă că portul este deschis, altminteri portul este nefolosit.

TCP SYN este modul implicit de scanare pentru utilizatorii privilegiați. Se trimite un pachet SYN către stație. În cazul în care se primește drept răspuns un pachet SYN|ACK înseamnă că există un server ce ascultă pe acest port, dar dacă pachetul de răspuns este un pachet RST, înseamnă că portul în cauză nu este deschis. Dacă nu se primește nici un răspuns portul este considerat ca fiind filtrat de un firewall.

TCP SYN se bazează pe trimiterea de pachete SYN, ceea ce presupune drepturi de administrator, și din acest motiv nu este accesibil utilizatorilor neprivilegiați.

Alte două opțiuni de scanare importante sunt -sv și –o, Fig. 2.4 . Prima dintre aceste opțiuni oferă informații despre versiunea serviciilor ce ascultă pe porturile deschise, în vreme ce opțiunea -o oferă informații desore sistemul de operare instalat, precum și tirnpul de la ultima reboot-are.

Fig. 2.4. Scanarea stației cu utilitarul nmap

Singurul aspect oarecum negativ este faptul că procesul de scanare de porturi poate duce la o încărcare semnificativă a sistemului, o operație de monitorizare putând avea efectele unui atac DoS.

Capitolul. 3. Securitatea pe Internet

3.1. Securitatea serviciilor Internet

Spre deosebire de anii trecuți când calculatoarele funcționau separate, in zilele noastre acestea lucrează în rețele, ceea ce ajuta utilizatorii în accesa fișiere și resurse din încăperi diferite sau chiar din țări diferite. Datorită conectării calculatoarele de la distanțe mari prin multe rețele și subrețele este necesar să se țină cont de securitatea informațiilor. Aceasta a devenit una dintre componentele majore ale Internetului.

Serviciile ce se folosesc de Internet se bazează pe schimbul de mesaje dintre sursă și destinatar. Rețelele din internet se folosesc de protocolul IP (Internet Protocol) care asigură trimiterea pachetelor necesare. În cazul în care este necesară transmiterea unui mesaj mare, protocolul IP cere fragmentarea mesajului în mai multe pachete. Transmiterea acestor pachete se face între calculatoare gazdă și nu direct, între aplicații. Din această cauză, protocolul IP funcționează împreună cu un altul denumit TCP (Transmission Control Protocol), care se ocupă de fragmentarea mesajului și asigură transmiterea corectă a mesajului către utilizator. Pentru a se putea ca pachetele unui mesaj ajung în ordinea în care au fost trimise și apoi reconstituirea mesajului aceste pachete sunt numerotate.

Pentru conectarea a două calculatoare prin protocolul IP se folosesc 3 metode:

– În cazul în care cele două calculatoare sunt în aceeași rețea locală, pachetele sunt transmise împreună cu pachetele folosite de protocoalele LAN;

– Dacă cele două calculatoare sunt legate printr-o linie serială pachetele IP sunt transmise folosindu-se protocoalele SLIP (Serial Line Internet Protocol), CSLIP (Compressed SLIP) sau PPP (Point-to-Point Protocol).

– În cazul conectării celor două calculatoare fiecare la câte o rețea locală, între care linia telefonică este cea ce leagă cele două LAN-uri folosindu-se de bridge-uri; În acest tip de conexiune pachetele IP vor fi încapsulate împreună cu alte pachete folosite celelalte protocoale din rețea.

Pentru ca protocoalele TCP și IP să funcționeze împreună se presupune că există comunicări directe între nodurile de rețea (routerele sau calculatoarele gazdă). Comunicarea dintre noduri este făcută folosindu-se tehnologii diverse și respectă protocoale specifice. Așadar protocoalele TCP și IP se folosesc la rândul lor de alte protocoale. Se obține astfel un ansamblu de protocoale care depind între ele, dar se bazează pe protocoalele TCP/IP. Din această cauză se folosește termenul de suită TCP/IP sau familie de protocoale TCP/IP.

În mod normal un sistem terminal are un singur port prin care se leagă cu subrețeaua, in timp ce sisteme terminale au cel puțin 2 porturi, fiecare fiind utilizat pentru conectarea la o subrețea.

Un sistem intermediar are rolul de a retransmite pachetele ce ajung la el de la o subrețea către o altă subrețea către trebuie traversată pentru a se ajunge la sistemul terminal destinatar. În Fig. 3.1 este ilustrată traseul uni mesaj de la o rețea la cea de a doua.

Fig. 3.1. Protocoale utilizate de un mesaj care traversează două rețele

În figură este reprezentat sistemul terminal 1 ce trimite un mesaj către modulul TCP. Modulul generează un pachet pe care nivelul IP îl trimite prin intermediul interfeței către subrețeaua a în sistemul intermediar. Odată ajuns în sistemul intermediar pachetul trece de interfață și ajunge la modulul IP care îl va ruta subrețelei b. După ce trece de interfața sistemului intermediar și parcurge rețeaua b va ajunge prin intermediul interfeței în sistemul terminal 2, care este și destinatarul. Aici, IP extrage mesajul din pachet și îl transmite folosindu-se de modulul TCP către aplicația căreia îi era destinat mesajul.

În transmiterea pachetelor toate au aceeași importanță pentru conectarea a două sisteme din internet, chiar dacă este rețea locală, rețea de arie largă sau rețea punct-la-punct. Utilizatorii nu văd structura internă a internet-ului ci doar o rețea foarte mare ce leagă calculatoarele între ele și le permite accesul la resursele acestora, dacă nu le este limita de reguli de securitate, firewall, key de securitate etc.

3.2. Funcționarea serviciilor Internet

Pentru ca serviciile sa poată fi utilizate acestea sunt oferite de către programele numite

servere. Pentru ca aceste servere să funcționeze, ele sunt nevoite să folosească un protocol (TCP sau UDP), să aibă un port prin care comunică și să fie lansate în execuție de cele mai multe ori la pornirea sistemului de operare.

În sistemele de operare bazate pe UNIX-LINUX de pornirea se ocupă un fișier denumit service care se găsește în /etc/services. Acesta conține, structurate pe linii separate numele serviciului, numărul port-ului utilizat, numele protocolului și o listă de alias-uri.

Fiecare port are alocat un număr. Dacă acest număr este cuprins în 0-1.023 se spune ca portul aferent acelui număr este port sigur. Aceste porturi sunt disponibile doar superuserilor. Din acest motiv dacă un program are nevoie sa utilizeze aceste porturi atunci ele trebuie rulate ca root în caz contrat nu va avea acces la porturile sigure. Dar dacă se folosesc calculatoare non-UNIX cu plăci Ethernet, există posibilitatea de a realiza conectări la porturile de încredere ale mașinilor bazate pe UNIX și să se trimită sau să se intercepteze pachetele de date.

Serverele utilizate pot fi de doua feluri:

– Prima categoria cuprinde serverele care se execută continuu. Acestea pornesc odată cu pornirea sistemului de operare, în funcție de informațiile din /etc/rc*. Este necesar ca aceste servere să aibă un răspuns rapid la cererile sosite din rețea (ex: nfsd (Network Filesystem Daemon), sendmail)

– Cea de a doua categorie include serverele care vor fi executate doar când este nevoie de ele. Aceste servere includ servicii ca fingerd (Finger Daemon) și popper (Post Office Protocol Daemon).

Pentru lansarea în execuție a serverelor care nu pornesc odta cu sistemul de operare se folosește un program de tip daemon denumit inetd. Cu ajutorul fișierului /etc/inetd.conf, se vor determina serviciile rețea ce vor fi gestionate. După stabilirea serviciilor se vor folosi apelurile sistem bind(), pentru a se face conectarea la mai multe port-uri, și select(), pentru a se obține controlul atunci când apare o cerere pentru conectarea la un port.

Pe fiecare linie sunt scrise numele serviciului, tipul socket-ului, tipul protocolului. De asemenea mai sunt scrise informații legate de viitoarele cereri dacă vor fi sau nu acceptate. În linie apar și numele utilizatorului proprietar al server-ului și numele comenzii ce va fi executată la activarea serviciului.

Din punct de vedere al securității trebuie ținut cont de programele ce au acces la server. Pentru a limita accesul unele programe de tip server au încorporate metode de blocare a accesului, realizate pe controlul corelației dintre adresele IP și numele de host ale celui care inițiază cererea. Deoarece nu toate programele au incluse aceste metode de blocare a accesului, există și metode exterioare programelor care permit controlul accesului la severe:

Una dintre aceste metode este utilizarea programului tcpwrapper, realizat de către Wietse Venema. Acest utilitar poate proteja un server INTERNET prin restricționarea accesului anumitor host-uri la servere;

O altă metodă este folosirea programelor de tip firewall, plasate între servere și exterior. Acestea spre deosebire de tcpwrapper au avantajul că pot proteja întreaga rețea nu doar anumite servicii.

Este recomandat să se folosească și wrappers și firewalls.

3.3. Securitatea prin firewall

Prin firewall se înțelege un sistem care impune un set de reguli cu care se controlează accesul între două rețele. Firewall-ul este implementat în sistemele host sau routere cu funcții speciale.

Fig. 3.2. Dispunerea unui firewall

Cum se vede și în figură, firewall-ul este ca un paravan utilizat la protecția unei rețele sigure de una nesigură, care nu poate de încredere, dar este necesară utilizarea ei.

În general rețeaua sigură este cea internă, a unei companii sau a unei case, iar cea nesigură este reprezentată de internet. Deoarece în internet există foarte mulții utilizatori și dintre aceștia unii sunt hackerii este mai mult ca necesară utilizarea unui firewall.

De cele mai multe ori un firewall este utilizat între conexiunile interne și internet, acesta poate fi utilizat și în rețelele internet ale unor companii. Firewall-ul, deoarece este folosit la intersecția a două rețele, poate fi folosit și în alte scopuri decât filtrarea accesului la una

din rețele, cum ar fi:

monitorizarea comunicațiilor ce au loc între rețeaua internă și cea externă

interceptarea și înregistrarea tuturor comunicațiilor dintre cele două rețele.

criptarea automată a mesajelor din pachetele transmise între rețele. În cazul unor rețele situate în diferite locuri ale unei țării sau ale lumii dar ale aceleași companii, fiecare dotate cu un firewall, se poate programa firewall-urile pentru a cripta automat conținutul pachetelor transmise între rețele. Astfel pe internet, compania își poate realiza propria rețea virtuală privată (VPN).

Primul tip de firewall utilizat și cel ce e și cel mai simplu, este filtrare de pachete. Tot ce este transmis prin internet (fișiere, pagini web, mesaje) este sub formă de pachete. Un pachet are o dimensiune limitată pentru ca transferul și utilizarea lui să fie ușurate. La transmisiile mari de date, se face o împărțire a acestora pentru a ușura transportul iar la destinație sunt recompuse, în funcție de numărul primit de pachet la împărțirea datelor.

Un pachet este reprezentat printr-o serie de numere care reprezintă:

– datele ce trebuiesc transmise, confirmarea și cererea de la sistemul sursăadresa IP și portul sursă

– adresa IP și portul destinație

– informații privind protocolul (IP,TCP,UDP) prin care este transmis pachetul

– informație de verificare a erorii

La filtrarea pachetelor sunt examinate doar adresa și informația de protocol. Conținutul și contextul pachetului sunt ignorate. Firewall-ul va lua în calcul aplicația de pe stația gazdă sau cea din rețeaua pentru care este destinat pachetul fără să cunoască sursa datelor sosite. Filtrarea realizează o examinare a pachetelor sosite și/sau trimise, și va decide dacă este permisă sau nu transmiterea acestora pe baza politici de filtrare.

Următoarele criterii se folosesc pentru stabilirea regulilor filtrelor:

– permite sau refuză pachetul în funcție de adresa sursă

– permite sau refuză pachetul în funcție de portul de destinație

– permite sau refuză pachetele în funcție de protocolul utilizat

Figura 3.3- Filtrare de pachete pe baza numărului de port

Cum este indicat în Figura 3.3., filtrarea se face în funcție de porturile sursă și destinație. Acest tip de filtrare este eficientă dar nu poate oferi o securitate totală. Filtrarea ar putea bloca complet traficul, pentru a realiza o securitate totala, dar acest lucru ar transforma rețeaua într-una nefolositoare. Așadar pentru a avea o rețea folositoare, filtrarea trebuie să permită accesul unor pachete.

Totuși în această metodă există și puncte slabe. Unul dintre acestea ar fi atacatorul poate falsifica informația legată de adresa din pachet. Al doilea punct slab este legat de cererea din pachet care ar fi putut fi modificat de către atacatorul care a exploatat un bug sau a avut o parola cu care a putea obține acces la server..

Filtrarea de pachete are avantajul că este relativ simplă și ușor de implementat.

3.4. Securitatea prin criptare

Criptografia este o ramură a științei ce se ocupă cu securizarea informațiilor. Pe baza acesteia lucrează cele mai multe servicii din internet. Criptografia folosește metode matematice pentru a transformarea datele, din necesitatea de a ascunde conținutul acestora sau pentru a le proteja. Un exemplu clasic al utilizării criptografiei este cifrul lui Cezar. Acesta este cunoscut și astăzi o într-o oarecare măsură și nu neapărat datorită faptului că poartă numele împăratului roman cât datorită faptului că principiul său de bază, cel al substituției, este menținut și în zilele noastre, după aproape două milenii, nealterat.

3.4.1. Istoric. Evoluție

În anii ce au trecut în istoria criptografiei pentru o perioadă lungă de timp criptografii au încercat întărirea cifrurilor dezvoltând algoritmi tot mai complecși. Însă în perioada modernă a criptografiei apar numeroase inovații. Dintre acestea însă există două elemente ce au marcat istoria metodelor criptografice.

Primul dintre elemente are legătură cu dezvoltarea rețelelor de calculatoare, deoarece utilizarea acestora de către diverși utilizatori cerea și păstrarea în siguranța a datelor și mesajelor acestora. În urma acestei necesități s-a ajuns la dezvoltarea paletei de instrumente folosite la realizarea și execuția algoritmilor de criptare. Odată cu apariția calculatoarele mai puternice s-a făcut posibilă utilizarea unor chei criptografice mari, obținându-se astfel o protecție mai mare împotriva atacurilor cripto-analitice. Dacă se utilizează o cheie de dimensiune suficient de mare și aceasta este schimbată periodic, spargerea cheii devine imposibilă; duce la o creștere mare a securității rețelelor și a datelor personale.

Standardul american de criptare DES (Data Encryption Standard) este folosit de către guvernul SUA și de alte companii la nivel internațional. Prima dată acest standard a fost propus și utilizat de IBM în anul 1975. Metoda de criptare DES a fost testată și de către specialiștii de la U.S. National Security Agency (NSA), care au spus că sunt necesare doar de mici perfecționări ale acestuia prin reproiectarea anumitor componente. În anul 1977 criptarea DES a devenit standard federal și a fost folosit mai ales datorită performanțelor foarte bune de viteză obținute la cifrare (peste 100 de milioane de biți/secundă). În anii trecuții de la apariția criptografiei s-a observat că o schemă criptografică nu are o durată de viață nelimitată. Progresul tehnologic și apariția calculatoarelor cu performanțe tot mai ridicate reduce, în timp, securitatea oferită de o schemă criptografică.

Progresul criptografiei a trecut de un al doilea moment important, când s-a constituit un principiu diferit de cel al cifrării simetrice. Cercetătorii Whitfield Diffie și Martin Hellman, de la Universitatea Stanford din California, au scris un articol în anul 1976, în revista IEEE Tranactions on Information Theory, denumit "New Directions in Criptography", prin care au pus bazele "criptografiei asimetrice" cu chei publice. Acest tip de criptografie folosește în locul unei singure chei secrete, două chei diferite; una este folosită pentru cifrare, iar cea de a doua pentru descifrare. Cheile nu oferă informații una despre cealaltă, astfel că una din chei este făcută publică, fiind oferită oricui are nevoie să transmită un mesaj cifrat. Mesajul poate fi descifrat doar de către destinatar daca deține cea de a doua cheie. Popularitatea acestei metode de criptare a fost adusă și de posibilitatea folosirii cheilor publice pentru autentificarea mesajelor. În urma facilităților oferite de chile publice guvernul SUA a hotărât utilizarea unui standard de semnătură digitală care sa fie bazat pe conceptul cheii publice.

Prin cifru se înțelege transformarea unui simplu mesaj sau a unui text într-un mesaj criptat. Criptarea este procesul ce caracterizează transformarea uni text clar într-unul cifrat. Procesul invers criptării este cunoscut sub numele de descifrare sau decriptare. Pentru controlul atât a cifrări cât și a descifrării se folosesc una sau mai multe chei criptografice.

Sisteme criptografice sunt de două tipuri:

Sistemele criptografice simetrice (cu cheie secretă) folosesc aceeași cheie și pentru cifrarea și pentru descifrarea mesajelor.

Sistemele criptografice asimetrice (cu chei publice) folosesc două chei diferite (dar legate una de alta) pentru cifrarea și descifrarea mesajelor. Una din chei este secretă persoanelor străine fiind cunoscută doar de proprietarul ei, iar cea de a doua este făcută publică.

3.4.2. Algoritmi criptografici cu cheie secretă

Algoritmi ce stau la baza criptărilor ce folosesc cheilor secrete au evoluat în pas cu aparitia calculatoarelor, dar se bazează metode tradiționale, cum ar fi transpoziția si substituția. Caracteristica principala a acestor algoritmii este faptul că ei folosesc aceeași cheie și pentru criptare, cât și pentru decriptare. Acesta este motivul pentru care algoritmi cu cheie secretă sunt cunoscuți și cu numele de algoritmi simetrici. Pentru utilizarea acestui algoritm emițătorul și receptorul să aibă cheia necesară. Cheia utilizată este una secretă. În Figura 3.4 este ilustrată schmea de aplicare a unui algoritm de criptare simetric.

Dezavantajul adus de această metoda de criptare este necesitatea schimbului de chei înaintea realizării efective a transmisiei de date. Acest lucru obliga existența unui canal securizat pentru transferul cheilor utilizate la criptare și decriptare.

Figura 3.4- Schema de aplicare a unui algoritm simetric

Pentru realizarea criptării simetrice este necesară protejarea cheii. Pentru securitatea datelor este necesară o organizare a cheilor. Managementul acestora este bazat pe mai mulți pași:

generarea cheilor. Acest pas se folosește de proceduri automate, funcții matematice și folosește parametri diverși (dată, oră etc).

distribuția cheilor. Pentru protejarea cheilor secrete de criptare/decriptarea se folosește o altă cheie ce poartă numele de cheie terminal. Cheile de sesiune folosite pentru o comunicație sunt transmise criptate cu cheile terminal. Și acestea la rândul lor pot fi protejate cu o altă cheie ce poartă numele de cheie Master.

memorarea cheilor. La utilizarea criptărilor cu algoritmilor simetrici, pentru un număr de N entități care trebuie să comunice sigur, este necesară memorarea unui număr de N(N-1)/2 chei. Deoarece legăturile nu se stabilesc mereu în același timp este necesară folosirea cheilor sesiune. Cheile terminal sunt foarte greu de spart deoarece ele ascund doar date foarte scurte.

Cele mai cunoscute metode de criptare ce folosesc algoritmi cu cheie secretă sunt:

cifrul DES

cifrul IDEA;

cifrul FEAL;

cifrul LOKI;

cifrul RC6.

Algoritmul IDEA

Bazele algoritmului IDEA (International Data Encryption Algorithm), au fost puse de doi cercetători la Politehnica Federală din Zürich (ETHZ). Dacă se privesc algoritmi din punct de vedere al securității, algoritmul IDEA este cel mai bun, ceea ce îl face cel mai des utilizat pe Internet.

Algoritmului folosește o cheie de 128 biți și se bazează pe un grupuri de operații algebrice. Cifrarea și descifrarea în cadrul algoritmului se face pe blocuri de câte 64 biți. Implementarea IDEA este ușor de realizat atât hard cât și soft. Se folosesc următoarele operații:

– XOR

– Adunare modulo 216

– Produs modulo 216+1( operație văzută ca o cutie S)

Funcționarea algoritmului de criptare IDEA este ilustrată în Fig 3.5 :

Intrare: M =64 biti reprezentand blocul clar, M=(M1,M2,M3,M4);

K0=64 biti reprezentând cheia inițială;

Ieșire : C=64 biți reprezentând blocul cifrat.

Fig. 3.5. Schema generală a algoritmului IDEA

Operațiile ce sunt ilustrate sunt:

+ = adună modulo 216

* = înmulțește modulo 216

(+) = XOR

Se folosesc următoarele notații:

Mi = 16 biți reprezintă subblocul clar i=1..4;

Ci = 16 biți reprezintă subblocul criptat i=1..4;

Ki = 16 biți reprezintă subblocul cheii i=1..6;

#Ki =16 biți reprezintă inversul numărului Ki față de operația ‘+’ , i=1..4;

@Ki=16 biți reprezintă inversul numărului Ki față de operația ‘*’,i=1..4;

Fig. 3.6. Pseudonimul algoritmului de criptare/decriptare

Crearea subcheilor nu este o operație complicată (Fig. 3.7). Acest algoritmul folosește 52 de subchei. La început cei 128 de biți folosiți de cheie sunt împărțiți în 8 subchei a câte 16 biți fiecare. Acestea sunt primele subchei pentru algoritm. În pasul următor cheia se rotește cu 25 de biți la stânga și se divide din nou în 8 subchei. Acești pași se urmează pentru a obține toate subcheile necesare. Se procedează similar până la obținerea tuturor subcheilor.

PERMUTARE1(K) = permutare definită de implementator, K=64 biți

PERMUTARE2(K) = permutare definită de implementator, K=64 biți

STANGA(k,i) = deplasare ciclică spre stânga a lui k cu i poziții, k=32 biți;

Fig. 3.7. Algoritm de generare al cheilor de iterație

Algoritmi criptografici cu cheie publică

Criptografia cu cheie publica se mai numește si criptografie asimetrică. Acest tip de criptografie folosește nu una ci două chei diferite, ce vor fi folosite pentru criptare și decriptare. Deoarece niciuna din chei nu oferă informații despre ce-a de a doua, una din ele poate fi făcută publică. A doua cheie este cunoscută doar de destinatar și astfel doar el poate decripta mesajul.

Oricare din cele 2 chei utilizate poate cripta mesajul, dar mesajul criptat cu o cheie poate fi descifrat decât cu cheia pereche. Deci, atunci când se folosește un algoritm asimetric pentru comunicare între un emițător și un receptor, atât emițătorul cât ți receptorul va avea o cheie publică și una privată. Cel ce va trimite mesajul va cripta mesajul folosindu-se de cheia publică a celui ce trebuie să primească mesajul, în timp ce receptorul va descifra mesajul folosind cheia sa privată. Acest principiu este reprezentat grafic în Fig. 3.8. În momentul în care se va trimite răspunsul cel înainte a primit mesajul acum va trimite un răspuns ce va fi codificat cu cheia publică a emițătorului inițial. Acesta din urmă va putea descifra mesajul doar utilizând perechea privată a cheii. Cheile ce sunt utilizate în acești algoritmi sunt realizate folosindu-se formule din algebra. În informatică folosirea calculelor modulo numere prime este foarte utilă pentru mulți alții algoritmi recent dezvoltați.

Figura 3.8. Schema de aplicare a unui algoritm asimetric

Dintre algoritmii de criptare cu chei publice cei mai cunoscuții sunt:

sistemele de cifrare exponențială RSA (Rivert-Shamir-Adleman);

cifrul EL GAMAL (EG);

standardul DSS de semnătură digitală

Algoritmul RSA

Algoritmul RSA a fost realizat de către trei cercetătorii de la MIT. Numele lor sunt: Ronald Rivest, Adi Shamir și Leonard Adelman. Numele algoritmului provine de la inițialele numelor lor. Algoritmul RSA este folosit ca un standard sau reper pentru semnăturile digitale și pentru confidențialitatea datelor. Este folosit atât în mediul privat comercial cât și în cel guvernamental. RSA are la bază imposibilitatea, momentană, factorizării numerelor întregi mari chiar dacă este foarte ușor să se găsească numere prime, chiar și dacă acestea sunt mari. O caracteristică a acestor metode de criptare este faptul că funcțiile utilizate la criptare sau decriptare sunt exponențiale. Exponentul utilizat este cheia iar calculele se realizează utilizând modulo n.

Funcționarea acestui principiu este descrisă cu ajutorul unui exemplu. Astfel se consideră p si q ca fiind două numere prime foarte mari, iar X este mesajul utilizat. Cifrarea mesajului va fi E(X)=Xe mod(p*q), iar descifrarea lui X va fi D(X)=Xdmod (p*q). E respectiv D reprezintă cheile, p și q sunt secrete, dar rezultatul p*q este cunoscut public. Pentru realizarea criptării se utilizează teorema lui Fermat care spune că: dacă q este un număr prim și dacă (X=!0 mod p) atunci Xq-1=1modp

Această teoremă este de asemenea caracterizată în două situații particulare:

– când r-1=k mod p-1 Xr =X mod p;

– și când erd-1=k(p-1)(q-1) atunci Xed =Xde=X mod p; Xed =Xde=X mod q

La calculul din această metodă modulul n se va obține prin produsul dintre două numere prime mari n= p*p ducând calculul pentru aflarea indicatorului lui Euler, φ(n)=(p-1)*(q-1) spre imposibil de realizat. Ceea ce va fi facut public va fi valorea lui E și N. D va fi secret. Totusi este recomandat ca valoarea lui D sa fie prim cu φ(n) pentru intervalul [max(p,q)+1,n-1]. Atunci calculul va fi următorul:

E=inv(d,φ(n))

Pentru a se obține o securitate cât mai mare trebuie alese valori ale lui n de 200 de cifre și p și q de 100, ajungându-se astfel la o perioada de calcul a factorizării dintre acestea spre milioane de ani.

Sistemul RSA se poate folosi și la secretizare și la autentificare. Pentru acest scop un utilizator A va primi modulul nA și exponenții eA și dA. După aceea A, într-un fișier public, va trece cheia publică (nA ,eA) dar va ține în secret valoarea lui dA .

Utilizatorul B pentru a putea trimite un mesaj secret, notat cu M, folosind conversia de cifrare publică a lui A, ceea ce presupune ridicarea la putere eA, modulo nA pt mesaj:

EA (M)=MeA mod nA

Când mesajul va ajunge la utilizatorul A îl va obține în clar prin:

DA (EA (M))=MeAdA mod nA =M

Utilizatorul A va semna un mesaj M pentru B făcând calculul:

DA(M)=MdAmod nA

Iar B va autentifica acest mesaj utilizând cheia publică a utilizatorului A:

EA(DA (M))=MdAeA mod nA =M

3.5. VPN

O Rețea Privată Virtuală (VPN – Virtual Private Network) conectează componentele și resursele unei rețele private prin intermediul unei rețele publice. Altfel spus, o rețea virtuală privată este o rețea a companiei implementată pe o infrastructură comună, folosind aceleași politici de securitate, management și performanță care se aplică de obicei într-o rețea privată. Practic, tehnologia rețelelor private virtuale permite unei firme să-și extindă prin Internet, în condiții de maximă securitate, serviciile de rețea la distanță oferite utilizatorilor, reprezentanțelor sau companiilor partenere. Avantajul este evident: crearea unei legături de comunicație rapidă, ieftină și sigură.

Tehnologiile VPN oferă o cale de a folosi infrastructurile rețelelor publice cum ar fi Internetul pentru a asigura acces securizat și privat la aplicații și resurse ale companiei pentru angajații din birourile aflate la distanță sau cei care lucrează de acasă, pentru partenerii de afaceri și chiar pentru clienți.

Fig. 3.9. VPN (Rețea Privată Virtuală)

O rețea VPN poate fi realizată pe diverse rețele de transport deja existente: Internetul public, rețeaua furnizorului de servicii IP, rețele Frame Relay și ATM. Astăzi, tot mai multe VPN-uri sunt bazate pe rețele IP.

Tehnologia VPN folosește o combinație de tunneling, criptare, autentificare și mecanisme și servicii de control al accesului, folosite pentru a transporta traficul pe Internet, o

rețea IP administrată, sau rețeaua unui furnizor de servicii.

3.5.1. Funcționarea VPN-ului

VPN permite utilizatorilor să comunice printr-un tunel prin Internet sau o altă rețea publică în așa fel încât participanții la tunel să se bucure de aceeași securitate și posibilități puse la dispoziție numai în rețelele private.

Pentru a utiliza Internetul ca o rețea privată virtuală, de tip WAN (Wide Area Network), trebuie depășite două obstacole principale. Primul apare din cauza diversității de protocoale prin care comunică rețelele, cum ar fi IPX sau NetBEUI, în timp ce Internetul poate înțelege numai traficul de tip IP. Astfel, VPN-urile trebuie să găsească un mijloc prin care să transmită protocoale non-IP de la o rețea la alta.Când un dispozitiv VPN primește o instrucțiune de transmitere a unui pachet prin Internet, negociază o schemă de criptare cu un dispozitiv VPN similar din rețeaua destinație Datele în format IPX/PPP sunt trecute în format IP pentru a putea fi transportate prin rețeaua mondială. Al doilea obstacol este datorat faptului că pachetele de date prin Internet sunt transportate în format text. În consecință, oricine poate vedea traficul poate să și citească datele conținute în pachete. Aceasta este cu adevărat o problemă în cazul firmelor care vor să comunice informații confidențiale și, în același timp, să folosească Internetul. Soluția la aceste probleme a permis apariția VPN și a fost denumită tunneling.

În loc de pachete lansate într-un mediu care nu oferă protecție, datele sunt mai întâi criptate, apoi încapsulate în pachete de tip IP și trimise printr-un tunel virtual prin Internet.

Din perspectiva utilizatorului, VPN este o conexiune punct-la-punct între calculatorul propriu și serverul corporației (Fig. 3.10).

Fig. 3.10. Rețea Privată Virtuală – Echivalent logic

Confidențialitatea informației de firmă care circulă prin VPN este asigurată prin criptarea datelor. În trecut, rețelele private erau create folosind linii de comunicație închiriate între sedii. Pentru a extinde acest concept la Internet, unde traficul mai multor utilizatori trece prin aceeași conexiune, au fost propuse o serie de protocoale pentru a crea tuneluri. Tunelarea permite expeditorului să încapsuleze datele în pachete IP care ascund infrastructura de rutare și comutare a Internetului la ambele capete de comunicație. În același timp, aceste pachete încapsulate pot fi protejate împotriva citirii sau alterării prin diverse tehnici de criptare.

Tunelurile pot avea două feluri de puncte terminale, fie un calculator individual, fie o rețea LAN cu un gateway de securitate – poate fi un ruter sau un firewall. Orice combinație a acestor două tipuri de puncte terminale poate fi folosită la proiectarea unei rețele VPN.

În cazul tunelării LAN-to-LAN, gateway-ul de securitate al fiecărui punct terminal servește drept interfață între tunel și rețeaua privată LAN. În astfel de cazuri, utilizatorii ficecărui LAN pot folosi tunelul în mod transparent pentru a comunica unii cu alții.

Cazul tunelului client-to-LAN, este cel stabilit de regulă pentru utilizatorul mobil care dorește să se conecteze la rețeaua locală a firmei. Pentru a comunica cu rețeaua de firmă, clientul (utilizatorul mobil), inițiază crearea tunelului. Pentru aceasta, clientul rulează un software client special, care comunică cu gateway-ul de protecție al rețelei LAN.

3.5.2. Avantajele alegerii VPN-ului

Mediul de afaceri este în continuă schimbare, multe companii îndreptându-și atenția spre piața globală. Aceste firme devin regionale, multinaționale și toate au nevoie stringentă de un lucru: o comunicație rapidă, fiabilă și sigură între sediul central, filiale, birouri și punctele de lucru, adică de o rețea WAN (de arie largă).

O rețea WAN tradițională presupune închirierea unor linii de comunicație, de la cele ISDN (128/256Kbps) la cele de fibră optică OC-3 (155 Mbps) care să acopere aria geografică necesară. O astfel de rețea are avantaje clare față de una publică, cum este Internetul, când vine vorba de fiabilitate, performanță și securitate. Dar deținerea unei rețele WAN cu linii închiriate este de-a dreptul scumpă, proporțional cu aria geografică acoperită.

O dată cu creșterea popularității Internetului, companiile au început să își extindă propriile rețele. La început au apărut intraneturile, care sunt situri protejate prin parolă, destinate angajaților companiei. Acum, multe firme și-au creat propriile VPN-uri pentru a veni în întâmpinarea cerințelor angajaților și oficiilor de la distanță.

Un VPN poate aduce multe beneficii companiei: extinde aria geografică de conectivitate

sporește securitatea, reduce costurile operaționale, crește productivitatea, simplifică topologia rețelei, oferă oportunități de lucru într-o rețea globală, asigură suport pentru tendința afacerilor spre operare de la distanță, operații distribuite global și operații de parteneriat foarte interdependente, în care lucrătorii trebuie să se poată conecta la resursele centrale, să comunice unul cu altul, iar firmele trebuie să-și administreze eficient stocurile pentru un ciclu de producție scurt.

Reducerea costurilor

Furnizorii de VPN pot înșira o mulțime de beneficii pe care le aduce tehnologia, multe apărând odată cu dezvoltarea ei. Poate cel mai puternic argument folosit este reducerea costurilor. Rețelele private virtuale sunt mult mai ieftine decât rețelele private proprietare ale companiilor; se reduc costurile de operare a rețelei (linii închiriate, echipamente, administratori rețea). Dacă folosiți Internetul pentru a distribui servicii de rețea la mare distanță, atunci puteți evita achiziția de linii închiriate, extrem de scumpe, între reprezentanțe și firmă, dar și costurile convorbirilor interurbane pe modemuri dial-up sau ISDN. Reprezentanța va trebui să se conecteze numai local, la un provider Internet, pentru a ajunge în rețeaua firmei mamă. Economii se fac și relativ la lipsa necesității investițiilor în echipament WAN adițional, singura achiziție fiind legată de îmbunătățirea capacităților de conectare la Internet a serverului.

Integrare, simplitate, ușor de implementat

Rețeaua virtuală privată poate fi imediat realizată peste conexiunea deja existentă la Internet, nefiind necesară o infrastructură separată. Se simplifică topologia rețelei companiei private. De asemenea, prin aceeași conexiune se pot integra mai multe aplicații: transfer de date, Voice over IP, Videoconferințe.

Ușurința administrării

În cazul unei interconectări complete a sucursalelor unei firme, liniile private pot deveni un coșmar. Trebuie instalate și administrate linii între fiecare două sucursale. Folosind Internetul, nu trebuie decât să asiguri fiecărei sucursale acces la Internet. În cazul accesului utilizatorilor de la distanță, problemele de administrare sunt transferate complet ISP.

Ignorarea învechirii morale a tehnologiei – riscul învechirii morale a tehnologiei se transferă de la corporație la ISP. Accesul la distanță prin Internet permite utilizatorilor să folosească tehnologii de acces variate, inclusiv ISDN și modemuri. Cum apar tehnologii de acces de viteză mare, cum ar fi ASDL, ATM, organizația va putea profita de ele fără a face investiții în echipamente. ISP suportă majoritatea costurilor schimbării tehnologiilor.

Mobilitate

Angajații mobili precum și partenerii de afaceri (distribuitori sau furnizori) se pot

conecta la rețeaua companiei într-un mod sigur, indiferent de locul în care se află.

Scalabilitate

Afacerea companiei crește, deci apare o nevoie permanentă de angajați mobili și conexiuni securizate cu partenerii strategici si distribuitorii. Pe măsură ce cererea de acces la distanță crește, organizația nu va avea nevoie să cumpere și să instaleze echipamente de comunicație noi. E nevoie doar de comandarea unui nou cont de acces la un ISP.

Securitate

Rețeaua virtuală privată asigură un nivel ridicat de securitate a informațiilor transmise prin utilizarea unor protocoale avansate de autentificare și criptare. Informațiile care circulă prin VPN sunt protejate prin diferite tehnologii de securitate (criptare, autentificare, IPSec). Nu trebuie să vă temeți că datele traficate prin VPN pot fi compromise.

Oportunități, comert electronic

Veți putea implementa noi modele de business (business-to-business, business-to-consumer, electronic commerce) care pot aduce venituri suplimentare pentru companie.

Conectivitate globală – pe măsură ce economia continuă să se globalizeze, rețelele de firmă trebuie să crească în afara granițelor statale. Infrastructura cu fibră optică pentru linii private de calitate nu este disponibilă în multe țări. Internetul, pe de altă parte, este ideal pentru conectivitate internațională. Protocolul Internetului (IP) poate rula pe orice infrastructură de comunicație.

3.5.3. Tipuri de VPN. Utilizări ale VPN-urilor

La ora actulă există 3 tipuri principale de VPN-uri:

– VPN-urile cu acces de la distanță (Remote Access VPN) permit utilizatorilor dial-up să se conecteze securizat la un site central printr-o rețea publică. Acestea mai sunt numite și "dial" VPN-uri.

– VPN-urile intranet (Intranet VPN) permit extinderea rețelelor private prin Internet sau alt serviciu de rețea publică într-o manieră securizată. Acestea sunt denumite și VPN-uri "site-to-site" sau "LAN-to-LAN".

– VPN-urile extranet (Extranet VPN) permit conexiuni securizate între partenerii de afaceri, furnizori și clienți, în general în scopul realizării comerțului electronic. VPN-urile extranet sunt o extensie a VPN-urilor intranet la care se adaugă firewall-uri pentru protecția rețelei interne.

Fig. 3.11. Tipuri de VPN

Toate aceste rețele virtuale private au rolul de a oferi fiabilitatea, performanța și securitatea mediilor WAN tradiționale, dar cu costuri mai scăzute și conexiuni ISP (Internet Service Provider) mult mai flexibile. Tehnologia VPN poate fi folosită și într-un intranet pentru a asigura securitatea și controlul accesului la informații, resurse sau sisteme vitale. De exemplu, se poate limita accesul anumitor utilizatori la sistemele financiare din companie sau se pot trimite informații confidențiale în manieră securizată.

Remote Access VPN – permite conectarea individuală (utilizatori mobili) sau a unor birouri la sediul central al unei firme, aceasta realizându-se în cele mai sigure condiții.

Fig. 3.12. Remote Access VPN

Există două tipuri de conexiuni VPN de acest fel:

– Conexiune inițiată de client – Clienții care vor să se conecteze la site-ul firmei trebuie să aibă instalat un client de VPN, acesta asigurându-le criptarea datelor între computerul lor și sediul ISP-ului. Mai departe conexiunea cu sediul firmei se face de asemenea în mod criptat, în concluzie întregul circuit al informației se face în mod criptat. Trebuie precizat că în cazul acestui tip de VPN sunt folosiți o multitudine de clienți de VPN. Un exemplu este Cisco Secure VPN dar și Windows NT sau 2000 au integrat clienți de VPN. Figura 5.5 schematizează acest tip de Access VPN :

Fig. 3.13. Acces de la distanță inițiat de client

– Access VPN inițiat de serverul de acces – acest tip de conexiune este ceva mai simplă pentru că nu implică folosirea unui client de VPN. Tunelul criptat se realizează între server-ul de acces al ISP-ului și sediul firmei la care se vrea logarea. Între client și server-ul de acces securitatea se bazează pe siguranța liniilor telefonice (fapt care uneori poate fi un dezavantaj). 

Fig. 3.14. Acces de la distanță inițiat de server-ul de acces

Intranet VPN – permite conectarea diferitelor sedii ale unei firme folosind legături dedicate (permite realizarea unor medii client-server foarte performante prin utilizarea conexiunilor dedicate care pot să atingă rate de transfer foarte bune). Diferența fată de Remote Access VPN constă în faptul că se folosesc legături dedicate cu rata de transfer garantată, fapt care permite asigurarea unei foarte bune calitați a transmisiei pe lângă securitate și bandă mai largă.

Fig. 3.15. Intranet VPN

Arhitectura aceasta utilizează două routere la cele două capete ale conexiunii, între acestea realizându-se un tunel criptat. În acest caz nu mai este necesară folosirea unui client de VPN ci folosirea IPSec. IPSec (IP Security Protocol) este un protocol standardizat de strat 3 care asigură autentificarea, confidențialitatea și integritatea transferului de date între o pereche de echipamente care comunică. Folosește ceea ce se numește Internet Key Exchange ( IKE ) care necesită introducerea la ambele capete ale conexiunii a unor chei de autentificare care mai apoi vor permite logarea reciprocă. Schematic conexiunea este prezentată în Fig.3.16

Fig. 3.16. Arhitectura Intranet VPN

Extranet VPN – este folosit pentru a lega diferiți clienți sau parteneri de afaceri la sediul central al unei firme folosind linii dedicate, conexiuni partajate, securitate maximă.

Fig. 3.17. Extranet VPN

Acest tip de VPN seamănă cu precedentul cu deosebirea că extinde limitele intranetului permițând legarea la sediul corporației a unor parteneri de afaceri, clienți etc.; acest tip permite accesul unor utilizatori care nu fac parte din structura firmei. Pentru a permite acest lucru se folosesc certificate digitale care permit ulterior realizarea unor tunele criptate. Certificatele digitale sunt furnizate de o autoritate care are ca activitate acest lucru.

3.5.4. Cerințe de bază pentru VPN-uri

La adoptarea unei rețele virtuale private prin Internet există două probleme majore: securitatea și performanța. Protocolul de control al transmisiei (TCP/IP) și Internetul nu au fost gândite inițial să asigure în principal securitate și performanță, deoarece la acea vreme utilizatorii și aplicațiile lor nu necesitau o securitate puternică și o performanță garantată. Din fericire, standardele pentru securitatea datelor din rețelele IP au evoluat, fiind posibilă crearea

VPN-urilor folosind rețele IP.

În mod normal, când proiectează o soluție de acces de la distanță la o rețea, o companie dorește să permită accesul controlat la resurse și informații. Soluția trebuie să permită clienților autorizați să se conecteze ușor la LAN-ul corporației, și să permită sucursalelor să se conecteze între ele pentru a pune în comun informații și resurse (conexiuni LAN-LAN). În plus, soluția trebuie să asigure securitatea și integritatea datelor când traversează Internet-ul. Aceleași preocupări apar și în cazul când datele ce trebuie protejate traversează inter-rețeaua corporației.

În consecință, o soluție VPN trebuie să realizeze cel puțin următoarele funcții vitale:

Autentificarea utilizatorului. Soluția trebuie să verifice identitatea utilizatorului și să permită accesul prin VPN numai utilizatorilor autorizați. În plus, soluția trebuie să permită monitorizarea si jurnalizarea activităților pentru a arăta cine și când a accesat o anume informație.

Gestionarea adreselor. Soluția trebuie să asocieze unui client o adresă din rețeaua privată, și să asigure că adresele private rămân secrete.

Criptarea datelor. Datele transferate prin rețeaua publică trebuie făcute ilizibile pentru clienții neautorizați.

Gestiunea cheilor. Soluția trebuie să genereze și să împrospăteze cheile de criptare pentru client și pentru server.

Soport multiprotocol. Soluția trebuie să fie capabilă să manevreze protocoalele existente în rețelele publice, cum ar fi Internet Protocol (IP), Internet Packet Exchange (IPX), etc.

3.5.5. Soluții pentru implementarea VPN

După cum am afirmat în partea introductivă, implementarea unui VPN presupune crearea unui tunel printr-o rețea publică prin intermediul căruia să fie transferate datele. Ca o definiție, tunelarea (tunneling) este o metodă de folosire a infrastructurii unei inter-rețele pentru transferul datelor dintr-o rețea peste o altă rețea. Datele de transferat (încărcătura – payload) pot fi cadrele (sau pachetele) altui protocol. În loc de a transmite cadrul în forma în care a fost produs de nodul sursă, protocolul de tunelare încapsulează cadrul într-un antet adițional. Acesta conține informații de rutare astfel încât încărcătura încapsulată poate traversa inter-rețeaua intermediară. Pachetele încapsulate sunt apoi rutate între capetele tunelului prin inter-rețea. Calea logică pe care pachetele încapsulate o urmează în inter-rețea se numește tunel (Fig. 6.10). Odată ce cadrele încapsulate ajung la destinație prin inter-rețea, cadrul este decapsulat și trimis la destinația sa finală. De notat că tunelarea include întregul proces: încapsulare, transmitere și decapsulare a pachetelor.

Fig. 6.10. Tunelarea datelor

Tehnologiile de tunelare există de câtva timp, printre cele mai cunoscute numărându-se:

Tunelare SNA peste IP. Când traficul SNA este trimis peste o inter-rețea IP de corporație, cadrul SNA este încapsulat în UDP si antet IP.

Tunelare IPX pentru Novell NetWare peste IP. Când un pachet IPX este trimis unui server NetWare sau unui ruter IPX, serverul sau ruterul anvelopează pachetul IPX într-un UDP cu antet IP, și îl trimite apoi peste inter-rețeaua IP. Ruterul IP-IPX destinație dă la o parte UDP-ul și antetul IP, și trimite pachetul către destinația IPX.

În ultimii ani au apărut noi tehnologii de tunelare, tehnologii care stau la baza implementărilor de VPN existente:

Protocolul de tunelare punct-la-punct (PPTP). Acesta permite traficului IP, IPX și NetBEUI să fie criptat și încapsulat într-un antet IP pentru a fi transmis peste o inter-rețea IP

de corporație sau publică (Internet).

Protocolul de tunelare pe nivel 2 (L2TP). Acesta permite traficului IP, IPX sau NetBEUI să fie criptat și transmis peste orice mediu care suportă transmisia punct-la-punct a datagramelor, cum ar fi: IP, X25, Frame Relay sau ATM.

Tunel bazat pe securitatea IP (IPSec). Acesta permite încărcăturii IP să fie criptată și apoi încapsulată într-un antet IP pentru a fi transmis peste o inter-rețea IP.

3.5.6. Metode de transmisie prin VPN

Așa cum am văzut, pentru a asigura confidențialitatea datelor într-o transmisie pe canale de comunicații nesigure, cum este Internetul, pot fi folosite diverse tehnici criptografice. Modul de transmisie utilizat în cazul unei soluții VPN va determina care părți ale unui mesaj sunt criptate. Unele soluții criptează întregul mesaj (antetul IP și datele din mesaj), în timp ce altele criptează doar datele. Cele patru moduri (metode) de transmisie întâlnite în soluțiile VPN sunt:

In Place Transmission Mode (modul de transmisie „in-place”) – este de obicei o soluție specifică unui anumit producător, în care doar datele sunt criptate. Dimensiunea pachetelor nu este afectată, prin urmare mecanismele de transport nu sunt afectate.

Transport Mode (modul transport) – doar segmentul de date este criptat, deci mărimea pachetului va crește. Acest mod oferă o confidențialitate adecvată a datelor pentru rețele VPN de tip nod-la-nod.

Encrypted Tunnel Mode (modul tunel criptat) – informația din antetul IP și datele sunt criptate, anexându-se o nouă adresă IP, mapată pe punctele terminale ale VPN. Se asigură o confidențialitate globală a datelor.

Non – encrypted Tunnel Mode (modul tunel necriptat) – nici o componentă nu este criptată, toate datele sunt transportate în text clar. Nu se oferă nici un mijloc de asigurare a confidențialității datelor.

Deși poate părea ciudat, există și soluții VPN care nu realizează nici un mod de criptare. În schimb, pentru a oferi un grad de confidențialitate a datelor, ele se bazează pe tehnici de încapsulare a datelor, cum ar fi protocoalele de tunelare sau forwarding. Nu toate protocoalele de tunelare și forwarding folosesc un sistem criptografic pentru cofidențialitatea datelor, ceea ce înseamnă că toate datele vor fi transmise în clar, punând sub semnul întrebării cum poate o astfel de soluție să asigure protecția împotriva interceptării datelor – cerință critică în cazul rețelelor VPN.

Din nefericire, terminologia utilizată în industria de profil poate să contribuie la apariția de astfel de confuzii. Pentru clarificarea acestor confuzii, trebuie ca utilizatorul să identifice care mod de transmisie este folosit. Ca și în cazul autentificării datelor și a utilizatorilor, modurile de transmisie trebuie să fie analizate dacă sunt criptate sau necriptate. Dacă o soluție VPN nu furnizează nici o formă de criptare în scopul confidențialității datelor, atunci această soluție poate fi denumită mult mai corect Virtual Network (VN – rețea virtuală), din moment ce nimic nu este privat în această rețea Internet, între sursă și destinație.

Capitolul 4. Aplicații de securitate

4.1. Rețea privată virtuală VPN între două calculatoare

După cum s-a menționat în capitoluil anterior, o rețea VPN este o metodă de conectare la o rețea privată (de exemplu, rețeaua de la birou) prin intermediul unei rețele publice (de exemplu, Internet). Practic, o rețea virtuală privată (VPN) este o conexiune intre 2 calculatoare care stabilește o cale sigură între un calculator cu acces public la Internet și un calculator care este conectat la o rețea privată, cum ar fi rețeaua de acasă.

Pentru a configura o rețea VPN, trebuie avute în vedere criteriile specifice pentru fiecare calculato cum ar fi Internet Protocol ( IP) sau numele de domeniu fiecare calculator , un nume de utilizator și o parolă, precum și orice alte setări de autentificare aplicabile. Se vor introduce aceste informații în setările de configurare meniul VPN a computerului. În cele ce urmează se prezintă configurarea unui VPN în Windows 7 și un VPN server creat pe router-ul Asus N16.

În meniul de configurare al router-ului se crează și se activează un username și o parolă. Se reține adresa de IP al router-ului (Fig.4.1.)

Fig. 4.1. Setare server VPN pe router-ul Asus N16

Apoi pe calulatorul cu acces public la Internet se accesează și se configurează conexiunea VPN urmărind pașii din Fig. 4.2.

b)

d)

Fig. 4.2. Crearea și configurarea conexiunii VPN în Windows 7

Se verifică conexiunea atât pe router cât și pe PC, Fig. 4.3.

Pentru partajarea resurselor prin rețeaua VPN, se recomandă crearea unui folder VPN în care sunt copiate toate fișierele dorite a fi partajate iar apoi se setează partajarea folderului conform Fig. 4.4.

Fig. 4.3. Vizualizarea conexiunilor pe calculatorul cu acces public

Fig. 4.4. Setarea perpiniunilor folderului VPN

4.2. Rețea privată virtuală VPN cu Team Viewer Client Software

Securitatea oferită prin “tunelare”, respectiv protocolul L2TP (layer two tunneling protocol), permite ca datele trimise și recepționate să fie criptate, respectiv decriptate. De obicei echipamentele profesionale – router-e CISCO VPN sunt utilizate în cadrul corporațiilor. Este o protecție contra hackerilor deoarece, chiar dacă aceștia încearcă accesarea rețele,i vor avea doar datele criptate.

O soluție gratuiră de implementare VPN este oferită de Team Viewer.

https://www.teamviewer.com/en/index.aspx?pid=google.tv_epbmm.s.int&gclid=CIq-18S4mcYCFWKWtAodpEMA4g

Aceasta este o aplicație securizată gratuită ce oferă controlul la distanță a calculatoarelor și realizarea ședințelor on-line. Printre alte facilități , una mai puțin utilizată este VPN client. Cu Team Vieweri se poate realiza o rețea virtuală privată prin tunelare cu deosebirea că criptarea și decriptarea este făcută de calculatorul însuși. Acest lucru este realizat de un adaptor virtual (virtual network adapter), care va trebui instalat.

Să presupunem ca dorim accesul la un folder partajat aflat pe un calculator la birou și nu se dispune de hardware specializat. Se pornește aplicația Team Viewer atât pe calculatorul de la birou caât și pe cel de acasă. Se poate crea un cont pe aplicație dar este opțional. Pe calculatorul de acasă, în Team Viewer se adaugă calculatorul de la birou. Apoi se instalează VPN network adapter (Fig.4.5, Fig. 4.6, Fig. 4.7).

Fig. 4.5. Fereastra Extras cu Options

Fig. 4.6. Instalarea din meniul Advanced

Fig. 4.7. Mesajul privind instalarea adaptorului

Dacă totul a decurs fără erori, la Network va apărea un adaptor nou, Fig. 4.8

Fig. 4.8. Icoana noii conexiuni

În fereastra principală a aplicației Team Viewer apare opțiunea VPN, Fig. 4.9.

Fig. 4.9. Fereastra principală cu oțiunea VPN

Dacă se crează un cont pe Team Viewer, se va cere user-ul si parola pentru calculator.

Fig. 4.10 Fereastra principală după crearea contului

După realizarea conexiunii Team Viewer alocă un IP asaptorului VPN, Fig. 4.11.

Fig. 4.11. Fereastra cu datele privind conexiunea

De menționat faptul că este imperios necesar să se dețină un cont protejat cu parolă. Astfel este realizată VPN prin care se accesează un calculatorul de la distanță ca și rețeaua locală. Se pot accesa fișiere,foldere și imprimante partajate.

4.2. Aplicații de tip firewall Iptables vs. ZoneAlarm

4.2.1. Descriere generală de funcționare

4.2.1.1. Iptables

Tot traficul dintr-o rețea este transmis sub formă de pachete. De exemplu, descărcând un document (de 50ko) s-ar putea ca să se primească 36 de pachete a câte 1460 octeți fiecare.

Un filtru de pachete este o parte de software care se uită la header-ul pachetelor pe masură ce ele intră și decid soarta întregului pachet. Acest filtru poate decide să ignore pachetul (DROP) (respinge pachetul ca și cum nu l-ar fi primit niciodată), acceptă (ACCEPT) pachetul (lasă pachetul să intre), sau alte decizii mai complicate.

Sub Linux, filtrarea de pachete este construită in kernel (ca modul sau construita in el), si sunt cateva lucruri complicate pe care le putem face cu pachetele, dar principiul general de examinare al header-ului pachetului si decidere asupra sortii pachetului este inca acolo.

Kernelurile Linux au avut filtrare de pachete încă de la versiunile 1.1. Prima generație, bazată pe ipfw de la BSD, a fost portată de către Alan Cox spre sfarșitului anului 1994. Aceasta a fost dezvoltată de către Jos Vos și altii pentru Linux 2.0; comanda pentru utilizatori ipfwadm controla regulile de filtrare ale kernelului. La mijlocului anului 1998, pentru Linux 2.2, s-a rescris puternic kernelul cu ajutorul lui Michael Neuling, și s-a introdus comanda pentru utilizatori ipchains. In sfârșit, a patra generație de comenzi, iptables și o nouă rescriere a kernelului s-a intamplat la mijlocul anului 1999 pentru Linux 2.4. Acest HOWTO este centrat pe iptables.

Este nevoie de un kernel care conține infrastructura netfilter în el: netfilter este un cadru in interiorul kernelului Linux în care alte lucruri (cum ar fi modulul de iptables) se pot introduce. Asta înseamnă existența unui kernel versiune 2.3.15 sau peste, și răspuns "Y" la CONFIG_NETFILTER în configurarea kernelului.

Comanda iptables comunică kernelului și ii spune ce pachete sa filtreze. Comanda iptables inserează și șterge reguli din tabela de filtrare a pachetelor din kernel. Setarile firewall-ului curent sunt păstrate în kernel și de aceea vor fi pierdute la repornirea calculatorului. Se pot folosi scripturile iptables-save și iptables-restore pentru a salva sau a restaura setarile firewall-ului dintr-un fișier. O alte cale este sp se scrie comenzile pentru setarea regulilor într-un script de initializare.

Sunt mai multe lucruri pe care se pot face cu Iptables. Se pornește cu trei chain-uri inițiale care nu pot fi șterse INPUT, OUTPUT si FORWARD. Operațiile care se pot aplica pentru un întreg chain sunt (Fig. 4.12):

1. Creearea unui lanț nou (-N).

2. Ștergerea unui lanț gol (care nu contine reguli) (-X).

3. Schimbarea politicii pentru un lanț standard (-P).

4. Listarea regulilor dintr-un lanț (-L).

5. Ștergerea tuturor regulilor dintr-un lnaț (-F).

6. Resetarea numărătorilor de pachete pentru toate regulile dintr-un lanț (-Z).

Sunt mai multe moduri în care se pot manipula regulile într-un lanț:

1. Adăugarea în coada lanțului a unei noi reguli (-A).

2. Insereaza o regula noua la o anumitî poziție în lanț (-I). Dacă nu este precizată poziția printr-un număr atunci regula este adaugată la începutul lanțului.

3. Înlocuiește o regulă la o anumită poziție în lanț (-R).

4. Șterge o regulă la o anumită poziție în lanț, sau prima care se potrivește (-D).

Fig. 4.12. Mod de utilizare iptables.

O caracteristică puternică pe care Iptables o moșteneste de la ipchains este posibilitatea utilizatorului de a crea lanțuri/blocuri (chains) noi, pe lângă cele incluse standard (INPUT, OUTPUT și FORWARD). Prin conventie, lanțurile (chains) definite de catre utilizator se scriu cu litera mică pentru a le deosebi.

Când un pachet se potrivește cu o regulă a carei țintă este un lanț (chain) definit de către utilizator, pachetul incepe sa traverseze lanțul definit de catre utilizator. Dacă acel lanț nu decide soarta pachetul de îndata ce pachetul ajunge la sfârșitul lanțului respectiv, pachetul continuă traversarea lanțului initial.

Se consideră două lanțuri: INPUT (Tabelul 4.1) (chain-ul inclus default) și TEST (Tabelul 4.2) (un chain definit de utilizator).

Se consideă un pachet TCP venind de la 192.168.1.1 și ducându-se către 1.2.3.4. Acesta intră în blocul INPUT. Regula1 nu se potrivește cu el, Regula2 se potrivește așa că următoarea regulă care este examinată este prima din blocul test. Regula1 se potriveste dar nu este specificată nici o țintă, așa că următoarea regulă este examinată. Regula2 nu se potrivește asa ca s-a ajuns la sfarsitul chain-ului. Astfel se revine în chain-ul INPUT, unde este examinată Regula2, și urmează examinarea Regula3 care nici aceasta nu se potriveste.

Chain-urile definite de către utilizator pot sări la alte chain-uri definite de către utilizator (dacă se creează trasee în cerc, pachetele vor fi ignorate daca se intră în buclă).

Exemplu:

Cei mai mulți utilizatori au o singură conexiune PPP (Point to Point Protocol) spre Internet și nu vor ca cineva să intre înapoi în rețeaua lor.

Pentru a rezolva aceasta problemă se vor face setări pentru firewall:

– se verifică starea Firewall-ului (Fig. 4.13)

– se creează lanțul (definit de utilizator) care blochează conexiunile noi, cu excepția celor venite din interior: (Fig. 4.14)

Fig. 4.13. Firewall oprit: afișare lanțuri default fără reguli de filtrare.

# iptables -N block

# iptables -A block -m state –state ESTABLISHED,RELATED -j ACCEPT

# iptables -A block -m state –state NEW -i ! ppp0 -j ACCEPT

# iptables -A block -j DROP

Fig. 4.14. Creare bloc nou și adăugarea de noi regului în cadrul blocului.

– se sare la acest lanț din lanțurile INPUT si FORWARD: (Fig. 4.15)

# iptables -A INPUT -j block

# iptables -A FORWARD -j block

Fig. 4.15. Crearea referințelor.

Observații:

1. Când un pachet vine (prin placa de rețea) kernelul se uită în primulș rând la destinația pachetului: aceasta se numește "routing" (rutare).

2. Dacă pachetul este destinat pentru această mașină, pachetul trece pe diagramă în lanțul INPUT. Dacă trece de acest lanț, orice proces care asteaptă acel pachet îl va primi.

3. În caz contrar, dacă kernelul nu are forwarding-ul pus, sau nu știe cum să direcționeze pachetul, acesta este ignorat. Dacă este pus forwarding-ul și pachetul are ca destinație o altă interfață de rețea (dacă mai există înca una), atunci pachetul se duce în diagramă direct către lanțul FORWARD. Dacă este acceptat pachetul, atunci el va fi transmis.

4. În final, un program ce rulează pe sistem poate trimite pachete. Aceste pachete trec direct în chain-ul OUTPUT:, dacă este acceptat pachetul, acesta își continuă drumul fără să conteze interfața spre care este destinat.

4.2.1.2. ZoneAlarm

Este o soluție de securizare care oferă o protecție destul de bună pe internet.

Cu caracteristici precum modul de utilizare "stealth" și un firewall foarte configurabil care poate fi activat cu un click de mouse, ZoneAlarm este un instrument esențial pentru a păstra datele în siguranță si a tine la distanta persoanele care doresc sa acceseze neautorizat sistemul.

ZoneAlarm se poate preconfigura pentru toate domeniile de adrese și subrețele pe care dorim ca acesta să le accepte. De exemplu rețeaua de acasă și cea de la serviciu pot intra în zona de încredere (Trusted). Altfel, firewall-ul poate învăța să se descurce cu rețelele noi și necunoscute prin afișarea unei notificari în momentul în care se încearcă accesarea. În acel moment, ele pot fi accesate, dupa caz, sau pot fi clasificate ca fiind în zonele de incredere (Trusted), zona Internet sau zona fără access (Blocked).

ZoneAlarm este compus din mai multe module (Fig. 4.16) și dintre care cele mai importante ar fi: firewall-ul, controlul programelor și modulul spyware. Celelalte module extrem de folositoare sunt: modulul de monitorizare al antivirus-ului, protecția e-mail-urilor, modulul privacy, protecția datelor personale și modulul de alerta și jurnal al firewall-ului.

Firewall-ul cuprinde 2 submodule principale, primul care detectează automat rețeaua la care suntem conectați și al 2-lea în care se pot construi reguli de blocare sau acceptare a conexiunilor și transferului de pachete dupa adresa IP ca sursă și destinație, port sursa și port destinație, protocolul folosit etc.

Modulul de control al programelor se ocupă cu detectarea tuturor programelor care încearcă să acceseze rețeaua locala sau internet-ul și a tuturor componentelor utilizate de fiecare program și poate lasa sau bloca aceste programe să acceseze internet-ul, să funcționeze ca server sau chiar să trimit e-mail-uri.

Modulul anti-spyware scanează și curată sistemul de aplicașiile tip spion totodată blocând acces-ul la site-urile de pe care s-a produs infectarea.

Dintre celelalte module prezente cele mai interesante ar fi ultimele 2 si anume modulul de protecție a datelor personale, în care se pot adăuga diverse tipuri da date confidențiale precum parole, pin-uri de la credit card, adrese de e-mail, adresa domiciliu, cont bancar etc; o data adăugate în baza de date acestea vor fi detectate atunci cand un program va încerca să le trimita în rețeaua internet (exemplu: logarea pe un cont de e-mail din internet explorer ) și ne va cere permisiunea pentru acest lucru; și modulul de alerta și creare jurnal care realizează un jurnal al regulilor de filtrare din firewall, a controlului programelor, al spyware-ului, cuprinzand o serie de informații precum adresa ip sursa, port sursa, adresa ip destinație, port destinație, direcția pachtelor, protocol, data, rata, acțiune etc.

Fig. 4.16. Prezentare generală ZoneAlarm

În cazul ZoneAlarm-ului modulul firewall cuprinde două submodule, primul care detectează adresa IP a sistemului și rețeaua la care se dorește conectarea, cerând încadrarea rețelei în una din cele 2 zone de încredere (Trusted) sau Internet (Fig. 4.17) și al 2-lea în care se pot adauga reguli de filtrare a traficului.

Fig. 4.17. Adăugarea noii rețele depistată de firewall

4.2.2. Reguli de filtrare. Opțiuni de filtrare

Operații pentru o singură regulă

Iptables:

Aceasta este baza filtrarii de pachete; manipularea regulilor. În mod obișnuit, se vor folosi comenzile de adăugare (-A) și stergere (-D). Celelalte (-I pentru inserare si -R pentru înlocuire) sunt doar extensii ale acestor concepte.

Fiecare regula specifică o mulțime de condiții pe care un pachet trebuie să le îndeplinească și ce să facă dacă acestea sunt îndeplinite o "țintă" (target). De exemplu, s-ar putea dori ignorarea tuturor pachetelelor de tip ICMP care vin de la adresa 127.0.0.1. Deci, în acest caz condițiile sunt ca protocolul să fie ICMP și ca adresa sursă să fie 127.0.0.1. Ținta este DROP. 127.0.0.1 este interfață "loopback", care există chiar fără conexiune reală de rețea. Se poate folosi comanda comanda ping pentru a genera acest tip de pachete (pur și simplu trimite pachete ICMP de tip 8 (echo request) la care toate host-urile ar trebui să răspundă cu pachete ICMP de tip 0 (echo replay)). Această cpmandă este foarte folositoare pentru teste.

Se poate observa în Fig. 4.18 ca primul ping reușește ("-c 3" spune să trimită doar 3 pachete): vor fi trimise 3 pachete de tip ICMP și se va aștepta primirea răspunsului pentru fiecare pachet trimis.

Apoi se adaugă în coadă (-A) lanțului "INPUT", o regulă ce spune că pentru pachetele de la 127.0.0.1 ("-s 127.0.0.1") de tip ICMP ("-p icmp") trebuie sărit la "DROP" ("-j DROP"). În final se testează regula, folosind al doilea ping (Fig. 4.19). Va exista o pauză până când programul se „plictisește” să astepte un raspuns care nu va veni niciodată.

Fig. 4.18. Generare pachete ICMP

Fig. 4.19. Stoparea intrării tuturor pachetelor de tip ICMP.

ZoneAlarm:

Ca și în cazul utilitarului Iptables, Zone Alarm prezintă un mdul pentru regulile de filtrare a pachetelor. Acesta perminte adăugarea unei noi reguli de filtrare, ștergerea unei reguli, modifcarea precum și activarea/dezactivarea și mutarea unei reguli în lista de reguli creată. (Fig. 4.20)

Fig. 4.20. Adăugare,modificare,stergere reguli.

Opțiuni de filtrare

S-au vazut folosirea opțiunii "-p" pentru specificarea protocolul, și a opțiunii "-s" pentru a specifica adresa sursă, dar sunt și alte opțiuni care pot fi folosite pentru a preciza caracteristicile pachetului.

Specificarea IP-ului sursă si destinație:

Iptables:

Adresele IP ale sursei ("-s", "–source" sau "–src") și destinației ("-d", "-destination" sau "–dst") pot fi specificate în patru moduri. Cea mai obișnuită formă este să se folosească numele complet, cum ar fi "localhost". Ce-a doua cale este specificare adresei IP cum ar fi "127.0.0.1".

Cea de a treia și a patra cale permite specificarea unui grup de adrese IP, cum ar fi "199.95.207.0/24" sau "199.95.207.0/255.255.255.0". Amândouă specifică orice adresă IP de la 199.95.207.0 până la 199.95.207.255 inclusiv; cifrele dupa "/" spun care părți din adresa IP sunt semnificative. "/32" sau "/255.255.255.255" este default (se potrivește cu toata adresa IP).

ZoneAlarm:

Adresele sursă și destinație pot fi specificate în mai multe moduri: prin nume, adresa ip, interval de adrese ip, subnet cu specificaea adresei IP și prin gatway cu specificarea adrese MAC.

Specificarea protocolului:

Iptables:

Protocolul poate fi specificat prin opțiunea "-p" (sau "–protocol").

Protocolul poate fi un număr (dacă se cunosc valorile numerice de protocol pentru IP) sau un nume pentru cazurile speciale de "TCP", "UDP" sau "ICMP". Nu contează dacă se folosește sau nu CAPS, așa ca "tcp" funcționează la fel ca și "TCP".

Numele protocolului poate fi precedat de "!", pentru a inversa, ca și "-p ! tcp" pentru a specifica pachetele care nu sunt TCP.

ZoneAlarm:

Protocoalele disponibile care pot fi specificate sunt: TCP, UDP, TCP & UDP, ICMP și IGMP. O dată cu specificarea protocolului trebuie specificate și porturile (sursa/destinație).

Specificarea unei interfețe:

Iptables:

Opțiunea "-i" (sau "–in-interface") și "-o" (sau "–out-interface") specifică numele interfaței cu care să corespundă. O interfață este dispozitivul fizic prin care intra pachetul ("-i") sau prin care iese pachetul ("-o"). Se poate folosi comanda ifconfig pentru a lista interfețele care sunt "sus" (i.e., în stare de funcționare în acel moment).

Pachetele care traversează chain-ul "INPUT" nu au o interfațî de ieșire, așa că orice regulă care folosește "-o" în acest chain nu se va potrivi niciodatî. In mod similar pachetele care travereseazî chain-ul OUTPUT nu au o interfață de intrare, așa ca orice regulă care folosește "-i" în acest chain nu se va potrivi niciodată.

Doar pachetele care traveresează chain-ul FORWARD au o interață de intrare și de iețire. Este perfect valabil specificarea unei interfețe care nu există; regula nu se va potrivi cu nici un pachet pana când interfața nu este activă. Aceast lucru este extrem de folositor pentru legaturi PPP de dial-up (de obicei interfete ppp0) și asemanătoare.

Ca un caz special, un nume de interfata terminându-se cu "+" se va potrivi cu toate interfețele (fie că există sau nu) care incep cu acel șir de caractere. De exemplu pentru a specifica o regula care să se potrivească tuturor interfețelor PPP, optiunea “-i ppp+” ar fi putea fi folosită.

ZoneAlarm:

Realizează filtrarea traficului pe interfața principala a sistemului și după adresa IP a acesteia. Nu prezintă opținue de specificare a unei anumite interfete la fel ca utilitarul iptables

(eth+, ppp+, loopback)

Opțiuni extinse TCP

Opțiunile extinse TCP sunt disponibile în mod automat dacă se specifică opțiunea "-p tcp". Aceste opțiuni sunt următoarele (nici una dintre ele nu se va potrivi cu fragmente):

–tcp-flags – poate fi urmat de semnul optional "!", apoi de două șiruri de flag-uri, care permite filtrarea după anumite flag-uri. Primul șir de flag reprezintă mask-ul, flag-urile care se doresc a fi examinate. Al doilea șir reprezintă care dintre acestea ar trebui sa fie prezente.

De exemplu:

# iptables -A INPUT –protocol tcp –tcp-flags ALL SYN,ACK -j DROP

Aceasta comandă spune că toate flag-urile trebuiesc examinate ("ALL" este sinonim cu "SYN,ACK,FIN,RST,URG,PSH"), dar, doar SYN si ACK trebuie sa fie setate. Există de asemnea un argumente "NONE" similar pentru nici unul dintre acestea.

–syn – In mod opțional poate fi precedată de semnul "!", este o prescurtare pentru "-tcp-flags SYN,RST,ACK SYN"

–source-port – poate fi urmat de un optional "!" și fie de un singur port, fie de o șir de porturi. Porturile pot fi specificate fie folosind numere fie folosind nume, așa cum sunt specificate în /etc/services.Sirurile se specifică prin două porturi desparțite de ":", sau (pentru a specifica un șir de porturi mai mare sau egal cu un port dat) un port urmat de ":", sau (pentru a specifica o listă de porturi mai mică sau egală cu un port dat) un port precedat de ":".

–tcp-option – urmat de un opțional "!" și un număr, se potrivește pentru un pachet cu opțiunea TCP egală cu acel număr. Un pachet care nu are un header complet TCP este ignorat automat dacă este facută încercarea de examinare a headerelor TCP.

Opțiuni extinse UDP

Aceste opțiuni sunt automat disponibile atunci când se specifică "-p udp". Acestea sunt: "–source-port", "–sport","–destination-port" și "–dport" care au fost detaliate mai sus.

Opțiuni extinse ICMP

Aceste opțiuni sunt automat disponibile atunci când se specifică "-p icmp". Există doar o singură opțiune nouă:

–icmp-type – urmat de un semn opțional "!", apoi de numele tipului icmp (ex. "host-unreachable"), sau tipul numeric (ex. "3"), sau tipul numeric și codul separate de "/" (ex. "3/3"). O listă a numelor de tipuri de pachete ICMP se poate obține folosind "-p icmp –help".

ZoneAlarm:

Opțiunile extinse existente pentru protocoalele TCP,UDP și ICMP sunt mai puține la numar față de cele prezentate în cazul utilitarului iptables și anume: pentru protocolul TCP și UDP se pot specifica doar portul sursă și portul destinație iar pentru protocolul ICMP se poate specifica doar tipul dintr-o listă predefinită.(Fig. 4.21)

Fig. 4.21. Adăugarea unei noi reguli de filtrare cu specificare de opțiuni.

Exemple:

Protecție pentru syn-flood:

# iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT

Pentru scannere de porturi clandestine:

# iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j ACCEPT

Pingul morții:

# iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT

Alte opțiuni ale utilitarelor:

Iptables:

Cea mai folositoare opțiune este furnizată de modulul "state", care interpretează analizele detectorului de conexiuni ale modulului "ip_conntrack". Aceasta este foarte recomandată.

Specificarea modulului "-m state" permite folosirea unei opțiuni adiționale de stare "–state". Aceste stări sunt:

NEW – un pachet care creează o nouă conexiune.

ESTABLISHED – un pachet care aparține unei conexiuni deja stabilite (un pachet replica (replay), sau un pachet care pleacă al unei conexiuni care a primit replay-uri).

RELATED – Un pachet care este înrudit, dar care nu este parte a unei conexiuni existente, cum ar fi o eroare ICMP, sau (cu modulul FTP introdus), un pachet care stabilețte o conexiune FTP.

INVALID – Un pachet care nu a putut fi identificat pentru niste motive: aceasta include rămânerea fără memorie sau erori ICMP care nu aparțin nici unei conexiuni cunoscute. În mod normal aceste pachete ar trebui ignorate.

Un exemplu pentru aceasta puternică optiune de potrivire ar fi:

# iptables -A FORWARD -i ppp0 -m state –state ! NEW -j DROP

ZoneAlarm:

Utilitarul mai prezintă 2 opțiuni folositoare și anume cea de protecție a datelor personale, în care se pot adauga diverse tipuri da date confidențiale precum parole, pin-uri de la credit card, adrese de e-mail, adresa domiciliu, cont bancar etc.

Fig. 4.22. Vizualizare jurnal firewall.

Odată adăugate în baza de date, acestea vor fi detectate atunci când un program va încerca să le trimită în rețeaua Internet (exemplu: logarea pe un cont de e-mail din Internet Explorer) și va cere permisiunea pentru acest lucru; și cea de alertă și creare jurnal (Fig. 4.22) care realizează un jurnal al regulilor de filtrare din firewall, a controlului programelor, al spyware-ului, cuprinzând o serie de informații precum adresa IP sursa, port sursa, adresa IP destinație, port destinație, direcția pachtelor, protocol, data, rata, acțiune etc.

Exemplificare folosire opțiuni extinse:

Se dorește blocarea, de pe serverul curent, a conexiunilor la anumite serverele web de pe internet în scopul interzicerii conectării și descarcării de informații sau aplicații de pe acele servere. Pentru acest lucru se va proceda la construirea unei regului de filtrare care va fi adaugată în lanțul (chain-ul) standard OUTPUT. Prin aceasta regulă se va „spune” firewall-ului să oprească toate încercările de conectare la un anumit server care acceptă conexiuni pe portul 80 (web server).

În Fig. 4.23 se observă încercarea și reușita conectare la un server web Microsoft pentru descărcarea diverselor aplicații pentru platofrma Windows.

Fig. 4.23. Conectare la server web cu transfer de pachete.

Fig. 4.24. Adăugare regulă de filtrare și incercare nereuțită de conectare la server web

În Fig. 4.24 se observă că, după adăugara regulei de filtrare la blocul OUTPUT, pentru blocarea tuturor cererilor de conectarea la serverul Microsoft cu ajutorul opțiunii “–d” ( adresa destinatie ), opțiunii –dport (portul destinatie) și procesul de conectare este refuzat.

Alte operații asupra unui intreg lanț (chain), Fig.4.25:

Ștergerea unui lanț (chain):

– ștergerea unui lanț este deasemenea simplă, prin folosirea opțiunilor "-X" sau "–delete-chain".

# iptables -X test

Sunt câteva restriciții la șștergerea de lanțuri: acestea trebuie să fie goale și nu trebuie să fie ținta nici unei reguli. Nu se poate șterge nici unul dintre lanțurile incluse standard.

Dacă nu se specifică numele lanțului, atunci toate lanțurile definite de către utilizator vor fi șterse dacă acest lucru este posibil.

Ștergerea tuturor regulilor unui lanț:

Există un mod simplu de a șterge toate regulile dintr-un lanț, folosind opțiunile "-F" (sau "–flush").

# iptables -F FORWARD

Dacă nu este specificat lanțul, atunci toate lanțurile vor fi șterse de reguli.

Listarea unui lanț:

Se pot lista toate regulile dintr-un lanț prin folosirea optiunii "-L" (sau "–list"). "refcnt-ul"(reference count) listat pentru fiecare lanț definit de către utilizator este numărul de reguli care au ca țintă acest lanț. Acesta trebuie sa fie zero (și chain-ul să fie gol) inainte ca acest lanț să poată fi șters.

Dacă numele lanțului este omis, toate lanțurile sunt listate, chiar și cele care sunt goale.

Există trei opțiuni care pot fi adăugate la "-L". Opțiunea "-n" (numeric) este foarte folositoare deoarece previne iptables în a încerca de rezolvare a IP-urilor în nume, care (dacă se folosește DNS ca în majoritatea cazurilor) va cauza mari intârzieri dacă DNS-ul propriu nu este setat corect, sau s-a filtrat cererile către DNS. Determină deasemenea ca porturile TCP și UDP să fie afișate ca numere în loc de nume.

Opțiunea "-v" arată toate detaliile regulilor, cum ar fi numărătoarele de pachete și biți, comparațiile TOS, interfața. Altfel, aceste detalii sunt omise.

Se poate observa faptul că numarătoarele pentru pachete și biți sunt afișate folosind sufixele "K", "M" sau "G" pentru 1000, 1,000,000 și respectiv 1,000,000,000. Folosirea opțiunii "-x" (expandare a numerelor) afișează numerele în formatul maxim, fară să conteze mărimea acestora..

Fig. 4.25. Ștergere reguli; ștergere bloc utilizator

Resetarea numaratorului (counter):

Este folositoare posibilitatea de a putea reseta numarătoarele (counters). Aceasta poate fi făcută cu opțiunea "-Z" (sau "–zero").

Setarea politicii (policy) unui bloc standard:

S-a explicat ce se întâmplă atunci când un pachet ajunge la capatul unui lanț inclus default și s-a exemplificatt mai devreme modalitatea în care un pachet parcurge lanțurile. În acest caz, politica lanțului determină soarta pachetului. Doar lanțurile incluse standard (INPUT, OUTPUT și FORWARD) au politici, deoarece dacă un pachet ajunge la capătul unui lanț definit de către utilizator, traversarea continuă în lanțul anterior.

Politica poate fi fie ACCEPT, fie DROP, de exemplu:

# iptables -P FORWARD drop

Concluzii

Orice sistem de calcul electronic nu poate să asigure prelucrarea automată fără existența unui sistem de operare. Sistemele de operare reprezintă un concept familiar tuturor utilizatorilor de calculatoare personale și apar tot mai des în implementări funcționale ale diferitelor aparate cum ar fi telefoanele mobile și cardurile bancare inteligente.

Conectarea unui calculator la Internet presupune, în general, folosirea sistemelor de operare Windows sau/și LINUX și a suitei de protocoale TCP/IP. Aceste componente au propriile lor probleme de securitate. Accesul la Internet presupune, însă, și folosirea unui set de câteva zeci de servicii, programe, cu numeroase probleme de securitate, fie datorită unor erori în software, fie datorită neîncorporării unor facilități de securitate potrivite. În general, pentru ca un utilizator să poată lua măsurile de securitate adecvate la conectarea în rețea, el trebuie să înțeleagă modul în care sistemul de operare lucrează cu Internet-ul. O soluție la aceste probleme ar putea fi folosirea unor firewall-uri pentru fiecare calculator dar si pentru protecția întregii rețele.

Un firewall este un sistem care impune o politică de control al accesului între două rețele. Un firewall reprezintă implementarea acestei politici în termeni de configurare a rețelei, unul sau mai multe sisteme gazdă și ruter-e cu funcțiuni speciale, alte măsuri de securitate, cum ar fi autentificarea prin metode criptografice a clienților.Cu alte cuvinte, un firewall este un mecanism folosit pentru a proteja o rețea sigură din punctul de vedere al securității de una nesigură, în care nu se poate avea încredere.

Cel mai simplu și primul tip de firewall ar fi filtrarea de pachete. Tot traficul Internet este transmis în formă de pachete. Un pachet este o cantitate de date de dimensiune limitată pentru a ușura prelucrarea lui. Când sunt transmise cantități mari de date, acestea sunt împărțite în mai multe pachete numerotate care la partea de recepție sunt reasamblate. Tot traficul Internet : fișierele transferate, paginile web, mesajele electronics sunt transmise în pachete.

O altă metodă de securizare ar fi securitatea prin criptare, astfel toate informațiile care ar trebui trimise de la o rețea la alta prin intermediul internetului s-ar putea face criptat. Criptografia este știința scrierilor secrete. Ea stă la baza multor servicii și mecanisme de securitate folosite în internet, folosind metode matematice pentru transformarea datelor, în

intenția de a ascunde conținutul lor sau de a le proteja împotriva modificării.

Există două tipuri de sisteme criptografice:

– simetrice (cu cheie secretă) care folosesc aceeași cheie, atât la cifrarea cât și la descifrarea mesajelor;

– asimetrice (cu chei publice) care folosesc chei distincte de cifrare și descifrare (dar legate una de alta). Una din chei este ținută secretă și este cunoscută doar de proprietarul ei. A doua cheie (perechea ei) este făcută publică, de unde și numele de criptografie cu cheie publică.

Algoritmii cu cheie secretă sunt caracterizati de faptul că folosesc aceeasi cheie atât în procesul de criptare, cât si în cel de decriptare. Algoritmul IDEA, algoritm cu cheie secretă, este cel mai bun algoritm din punct de vedere al securitații si este utilizat mult în INTERNET.

Algoritmii cu cheie publică folosesc două chei diferite, una pentru criptare, alta pentru decriptare. Deoarece este imposibilă deducerea unei chei din cealaltă, una din chei este făcută publică, fiind pusă la îndemâna oricui dorește să transmită un mesaj criptat.Algoritmul RASA

este un alt algoritm performant descoperit de un grup de cercetători de la MIT. Acest cifru cu chei publice reprezintă standardul în domeniul semnăturilor digitale si al cofidentialitații.

O Rețea Privată Virtuală (VPN – Virtual Private Network) conectează componentele și resursele unei rețele private prin intermediul unei rețele publice. Altfel spus, o rețea virtuală privată este o rețea a companiei implementată pe o infrastructură comună, folosind aceleași politici de securitate, management și performanță care se aplică de obicei într-o rețea privată. Practic, tehnologia rețelelor private virtuale permite unei firme să-și extindă prin Internet, în condiții de maximă securitate, serviciile de rețea la distanță oferite utilizatorilor, reprezentanțelor sau companiilor partenere. Avantajul este evident: crearea unei legături de comunicație rapidă, ieftină și sigură.

După cum s-a demonstrat și din partea aplicativă a lucrării, în concluzie se poate afirma faptul că folosirea unor soluții VPN cât și de firewall-uri, configurate corect după nevoile generale dar și după nevoile particulare ale fiecărui sistem de operare pentru filtrare traficului, în paralel cu diverși algoritmi de criptare implementați cu ajutorul unor utilitare specializate să facă acest lucru, oferă o soluție bună de securitate a sistmului de operare precum și o mai mare stabilitate, o mai bună funcționalitate si un număr mult mai mic de probleme care pot apărea pe parcurs.

Bibliografie

[1] Tannenbaum A.S. – Rețele de calculatoare. Ediția a 4-a. Editura Byblos 2004.

[3] Floarea Nastase – “Rețele de calculatoare”, Editura ASE, 2005

[4] Spoială Dragoș Cristian – Sisteme de operare. Editura Universității din Oradea,

ISBN 978-606-10-1382-1, pg.225, 2014, Ediție CD-ROM

[5] SamsNet – “Securitatea in internet”, Editura Teora, 2000

[6] McClure S., Scambray J., Kurtz G. – “Securitatea retelelor”, Editura Teora, 2001

[7] Parker T., Sportack M. – “TCP/IP”, Editura Teora, 2002

[8] Oprea D. – “Protecția și securitatea sistemelor informaționale”, Editura Polirom, 2002

*** http://www.smartpctricks.com/2013/05/how-to-setup-configure-free-vpn-virtual-private-network-with-team-viewer-vpn-client-software.html

*** http://ase.md/~osa/publ/ro/pubro34/19.pdf;

**** http://www.slider.go.ro/texts/project1/cap3node14.html

Similar Posts