Pagina documente » Informatica, Matematica » Sistemul de operare Linux si in protocoalele din Internet

Despre lucrare

lucrare-licenta-sistemul-de-operare-linux-si-in-protocoalele-din-internet
Aceasta lucrare poate fi descarcata doar daca ai statut PREMIUM si are scop consultativ. Pentru a descarca aceasta lucrare trebuie sa fii utilizator inregistrat.
lucrare-licenta-sistemul-de-operare-linux-si-in-protocoalele-din-internet


Cuprins

CUPRINS
1 CAP I INTRODUCERE IN SISTEMUL DE OPERARE LINUX SI IN PROTOCOALELE DIN INTERNET 3
1.1 CE ESTE LINUX ? 3
1.2 SCURT ISTORIC AL SISTEMULUI DE OPERARE LINUX. 3
1.3 CARACTERISTICI 4
1.4 AVANTAJELE UTILIZARII LINUX-ULUI 5
1.5 CERINTE HARDWARE ALE UTILIZARII SO LINUX 6
1.6 SOFTWARE DISPONIBIL SUB LINUX 7
1.7 COMPONENTELE SISTEMULUI DE OPERARE LINUX 7
1.8 KERNEL-UL SISTEMULUI DE OPERARE 8
1.9 SHELL-UL 9
1.10 PROTOCOALE IN INTERNET 10
1.10.1 Modelul de referinta TCP / IP 10
1.10.2 Protocoalele modelului TCP/IP 12
1.10.2.1 Protocoalele nivelului Gazda-la-retea (X25, ARPANET) 12
1.10.2.2 Protocoale ale nivelului Internet (IP, ICMP, ARP) 15
1.10.2.3 Protocoale ale nivelului Transport (TCP, UDP) 16
1.10.2.4 Protocoale ale nivelului Aplicatie (FTP, SMTP, IMAP, DNS) 17
2 CAP II PREZENTAREA SISTEMULUI FIREWALL SI A TIPURILOR ACESTUIA 22
2.1 DEFINITIA UNUI FIREWALL 22
2.2 NECESITATEA FILTRARII PACHETELOR 23
2.3 CLASIFICAREA FIREWALL-URILOR 24
2.3.1 Filtrele de pachete 24
2.3.1.1 Filtre de pachete simple 24
2.3.1.2 Filtre de pachete avansate 25
2.3.2 Firewall-urile bazate pe servere proxy 27
2.3.2.1 Proxy de aplicatie 27
2.3.2.2 Proxy-urile SOCKS 29
2.4 ARHITECTURA UNUI FIREWALL 30
2.4.1 Arhitectura dial-up. 30
2.4.2 Arhitectura cu router 30
2.4.3 Firewall cu server de proxy. 31
O configuratie de conectare redundanta 31
2.5 POLITICI DE SECURITATE 33
2.5.1 Introducere 33
2.5.2 Definitie 33
2.5.3 Politicile Deny all/Allow all 33
2.5.4 Crearea unei politici de securitate 34
2.6 FILTRAREA DE PACHETE SUB LINUX 34
2.7 MODUL IN CARE PACHETELE TRAVERSEAZA FILTRUL 35
2.8 MANAGEMENTUL UNUI SISTEM FIREWALL 36
3 CAP III CONFIGURAREA SISTEMULUI DE OPERARE LINUX CA FIREWALL 39
3.1 INTRODUCERE 39
3.2 PACHETUL IPTABLES 39
3.3 COMPILAREA KERNEL-ULUI 40
3.4 CONFIGURARI ULTERIOARE 42
3.5 FIREWALL-URILE AVANSATE 43
3.5.1 Configurarea SysCTL 43
3.5.2 Urmarirea conexiunilor 44
3.5.3 LOG si ULOG 47
3.5.3.1 Modulul LOG: 47
3.5.3.2 Modulul ULOG: 54
3.6 UTILIZAREA COMENZII IPCHAINS 55
3.6.1 Situatia firewall-ului la initializarea sistemului 55
3.6.2 Operatii asupra unei reguli 56
3.6.3 Specificatii de filtrare 57
3.6.3.1 Specificarea adreselor de IP sursa si destinatie. 57
3.6.3.2 Inversarea. 58
3.6.3.3 Protocolul. 58
3.6.3.4 Specificarea interfetei. 58
3.6.3.5 Specificarea fragmentelor. 59
3.7 OPERATII ASUPRA UNUI INTREG CHAIN 60
3.8 SETAREA POLITICII DE CHAIN 61
3.9 EXTENSII ALE COMENZII IPTABLES. TESTE NOI 62
3.9.1.1 Extensii TCP 62
3.9.1.2 Extensiile UDP 64
3.9.1.3 Extensiile ICMP 64
3.10 DIFERENTE INTRE IPTABLES SI IPCHAINS 64
4 CAP IV SCRIPTURI DE FIREWALL PENTRU DISTRIBUTIILE LINUX 66
4.1 SCRIPT RC CARE FOLOSESTE GFCC 66
4.2 SCRIPT RC FARA GFCC 67
4.3 SCRIPT COMPLEX (CU SETARI DE PROXY, NAT, ETC...) 71
4.4 CONCLUZII 88

EXTRAS DIN DOCUMENT

?1 CAP I INTRODUCERE IN

SISTEMUL DE OPERARE LINUX SI IN PROTOCOALELE DIN INTERNET

1.1 Ce este Linux ?

Linux este un sistem de operare modern. Ruleaza pe arhitecturi 32-bit, foloseste multitasking preemptiv, memorie protejata, suporta utilizatori multipli si are suport extensiv pentru retele, inclusiv TCP/IP. Linux a fost conceput intai pentru arhitectura 386 de la Intel, dar acum ruleaza pe o varietate de sisteme, incluzand intreaga familie x86, ca si Alpha, SPARC si PowerPC. Linux ruleaza toate aplicatiile de care un sistem Unix are nevoie, inclusiv servere de web ca Apache, aplicatii de transport email ca Sendmail si baze de date precum Oracle, Informix sau cele sub licenta GPL ca MySQL si Postgres. Linux suporta un numar mare de sisteme de fisiere, si cu ajutorul programelor gen Samba poate chiar inlocui cu succes NT ca server de fisiere Windows. Prin folosirea tehnologiei de clustering, Linux poate fi configurat sa raspunda cerintelor mari ale multor aplicatii stiintifice si de inginerie din laboratoarele de cercetare. El se bazeaza in intregime pe comenzile si "look and feel"-ul UNIX, deci cine stie Linux stie si UNIX si invers.

Are suport pentru retea (TCP/IP), Internet, este unul dintre cele mai folosite sisteme de operare pentru servere internet si intranet.

1.2 Scurt istoric al sistemului de operare Linux.

In 1991 studentul Linus Torvalds a scris prima versiune de Linux. Apoi a facut publice sursele pe internet, si o multime de oameni au inceput sa-i raspunda, sa-i aduca imbunatatiri, noi sugestii, etc.

Intre timp acest sistem de operare a devenit complex, au aparut (si inca mai apar) noi facilitati, iar performanta este remarcabila.

In prezent sunt estimati peste 8 milioane de utilizatori Linux, iar nucleul Linuxului are peste 200 de autori. Pe langa acesti 200 de autori ar trebui adaugate cele cateva mii de persoane care testeaza si gasesc buguri.

1.3 Caracteristici

Linux este un sistem de operare multitasking si multiuser: mai multi utilizatori se pot conecta in sistem si pot rula simultan mai multe programe fiecare; are console virtuale, ce permit o comutare usoara intre sesiuni de lucru multiple; nucleul insusi emuleaza coprocesorul matematic 387-FPU; suporta diferitele tipuri de sisteme de fisiere pentru inmagazinarea datelor (incluzand sistemul de fisiere - FS (File System) - MS-DOS, NFS, HPFS (OS/2 doar in citire), respectiv ISO 9660 CD-ROM - un tip de FS ce permite citirea tuturor CD-ROM cu format standard); ofera un suport complet pentru comunicatii (incluzand protocoalele TCP/IP, SLIP, PLIP, CSLIP) oferind servicii cu FTP, Telnet, NNTP si SMTP.

Fiecarui utilizator al sistemului i se creaza un cont personal in care se va tine evidenta drepturilor de acces (a numelui, parolei, numele grupului din care face parte etc) precum si alte informatii legate de acest utilizator (directorul de lucru, SHELL-ul implicit etc). Pe orice sistem UNIX (deci si Linux) exista un utilizator privilegiat, cel insarcinat cu administrarea sistemului, un utilizator care nu este, si nici nu poate fi supus nici unei restrictii din partea oricarui alt utilizator, singurul in masura de a crea utilizatori noi, cu acces nelimitat la toate informatiile din sistem. Acest utilizator privilegiat intra in sesiune de lucru cu numele root (radacina). El este insarcinat cu intretinerea sistemului, singurul care poate modifica - daca este cazul - chiar si nucleul sistemului (prin modificarea si recompilarea surselor acestor functii), cel care supervizeaza toate procesele din sistem (si intervine la nevoie). In plus, fiecare sistem UNIX are asociat si un asa numit "Host-name", un nume prin care se identifica sistemul intr-un context de retea (orice retea omogena format din astfel de sisteme sau orice retea eterogena cu subsisteme capabile de intercomunicare).

Fiecare utilizator - gestionar al unei console (format cel putin dintr-o tastatura si un monitor) poate deschide sesiuni multiple - prin intermediul unor console virtuale, sa lucreze la un moment de timp dat sub diferite nume (sau cu acelasi nume pe terminale virtuale diferite).

Nucleul sistemului de operare a fost astfel conceput incat sa utilizeze facilitatile oferite de modul de lucru protejat al procesorului. Linux foloseste un management al memoriei bazat pe descriptori precum si multe alte facilitati oferite de un sistem cu un procesor minim 386, lucru ce face posibila o adresare a intregii memorii RAM existente precum si multitaskingul. Nucleul suporta modul de lucru "demand paging" (incarca pagina la cerere) cu memoria ceea ce inseamna ca numai acele segmente ale unui executabil se incarca in memorie care sunt folosite pe moment. Deasemenea este adeptul politicii de partajare a unor pagini comune, frecvent folosit in cazuri in care se lanseaza mai multe instante ale aceluiasi program. (care vor partaja codul comun - reducandu-se astfel incarcarea memoriei). Pentru marirea spatiului de memorie disponibila Linux aplica si procedura "disk-paging" alocand un asa numit "swap area" pe hard-disk unde vor fi inmagazinate, temporar, anumite portiuni ale unui program care rezida in memorie si nu este pe moment utilizat.

Executabilele sub Linux folosesc foarte frecvent rutine standard legate in mod dinamic (biblioteci DLL), in sensul ca, codul subrutinelor respective se incarca in memorie doar in momentul apelarii lor, astfel reducandu-se considerabil dimensiunea unui executabil.

Nucleul Linux este aproape integral modularizat. Acest lucru permite ca driverele sa fie compilate separat de nucleu iar incarcarea/descarcarea lor in/din memorie se poate face cu comenzi simple.

1.4 Avantajele utilizarii Linux-ului

Stabilitate. Din cauza ca sursele Linux sunt distribuite in mod deschis, Linux a fost "curatat" de bug-uri cu multa minutiozitate. Fiecare noua versiune a sistemului de operare este rapid vazuta si testata de mii de programatori din toata lumea. Arhitectura pe care este bazat Linux creeaza de asemenea un sistem mai stabil. Sistemele de operare care folosesc memoria protejata si multitasking preemptiv sunt in mod inerent mai stabile. Memoria protejata impiedica o eroare dintr-o aplicatie sa blocheze intregul sistem de operare, si din folosirea multitaskingului adevarat rezulta ca o gatuire intr-o aplicatie nu inseamna ca intregul sistem este oprit. Linux de asemenea face o distinctie clara intre procesele utilizatorilor si cele ale kernelului. In timp ce si alte sisteme de operare folosesc memoria protejata, acest lucru nu conteaza daca aplicatii prost scrise au voie sa suprascrie spatiul kernelului cu procesele lor.

Economie. Pentru ca Linux este "open source", costurile initiale sunt mici. Nu exista licente per-user, sau taxe asociate cu folosirea sistemului de operare. Linux a fost de asemenea conceput pentru arhitectura Intel, acest lucru insemnand ca ruleaza rapid si eficient pe o multitudine de configuratii ieftine capabile sa functioneze ca server.

Adevaratele economii in privinta Linux vin insa din TCO (Total Cost of Ownership - Costul total de proprietate). Imbunatatirile vin repede si sunt distribuite in mod liber, asa ca utilizatorii nu mai sunt fortati sa astepte pana ce o firma decide ca intr-adevar exista o problema. In cazul unor probleme, rezolvarea lor este rapida, existand nenumarati programatori gata sa dea o mana de ajutor, sau, dupa caz, firme care fac acest lucru contra cost. Rezultatul este ca problemele sunt identificate si rezolvate mult mai repede, noi facilitati sunt implementate mult mai rapid, si toate acestea la un pret extrem de scazut, reducand dramatic costul total. Dovezile ca Linux este intr-adevar viabil vin din statisticile recent realizate: Apache detine aproximativ 60% din piata serverelor de web, si este in crestere. Sendmail este cotat cu aproximativ 80% pe piata programele de transport mail. In consecinta, Linux isi merita cu adevarat laudele, fiind sistemul de operare din clasa server cu cea mai rapida dezvoltare.

1.5 Cerinte hardware ale utilizarii SO Linux

De la inceput, Linuxul a avut nevoie de resurse hardware minime pentru a rula. Acest lucru nu s-a schimbat in timp: e nevoie de minim un calculator Intel 386 cu 4 Mb RAM si 50 Mb spatiu liber pe harddisk; daca se alege si optiunea utilizarii sistemului X-Windows, minimul de memorie RAM este de 8 MB.

Este posibil ca unele programe complexe sa necesite foarte multa memorie. Linux are posibilitatea de a simula memoria RAM folosind un fisier de swap pe harddisk, dar este mult mai lent.

Evident, cu cat este mai bun hardware-ul cu atat performanta obtinuta la rularea sistemului de operare va fi mai mare.

1.6 Software disponibil sub Linux

Majoritatea distributiilor Linux includ compilatoare pentru diverse limbaje de programare, utilitare pentru retea (email, telnet, ftp, www), creare si manipulare documente, tiparire, arhivare, si multe altele.

Pe langa acestea exista disponibile pe Internet o mare varietate de programe, unele gratuite, altele nu, iar mai nou marile case de software au inceput sa porteze softurile lor pe Linux.

Iata cateva exemple:

-Staroffice (foarte asemanator cu MS-Office, gratuit pentru folosire non-comerciala)

-WordPerfect (Cunoscutul procesor de text, disponibil si sub Linux)

-Netscape Navigator, Opera (browsere Web)

-Oracle (baze de date)

-Mathematica (calcul simbolic si nu numai).

1.7 Componentele Sistemului de Operare Linux

Sistemul de operare Linux foloseste un sistem de procese numit multitasking pentru a aloca timpul de lucru al procesorului mai multor utilizatori in acelasi timp. In realitate nu este vorba de procese care se ruleaza in acelasi timp ci unele dupa altele la intervale de timp de ordinul milisecundelor.

Sistemul de operare aloca timpul in asa fel incat sa lase impresia de continuitate pentru fiecare utilizator. In timp ce unul dintre acestia lucreaza la terminalul sau el imparte cu ceilalti resursele de calcul.

Linux, ca oricare alt sistem de operare, este un set de programe care administreaza toate operatiile sistemului de calcul. El asigura de asemenea o interfata intre utilizator si resursele sistemului convertind cererile care vin de la mouse sau tastatura in operatii de efectuat in sistemul de calcul.

Majoritatea sistemelor de operare, inclusiv Linux, au trei mari componente: Kernel-ul, Shell-ul si Sistemul de Fisiere. Kernel-ul administreaza operatiile computerului. Shell-ul asigura o interfata pentru interactiunea dintre utilizator si calculator iar sistemul de Fisiere asigura un mijloc de organizare si gestionare a informatiilor pe discurile hard ale calculatorului.

FIG. 1 Componentele Sistemului de Operare

1.8 Kernel-ul sistemului de operare

Kernel-ul este inima sistemului de operare si ofera mijloacele primare necesare ca un sistem de calcul sa functioneze. Kernel-ul se afla cel mai aproape de CPU si hardware. Este un fisier executabil care se incarca atunci cand porneste calculatorul. Odata ce kernelul a fost incarcat el realizeaza urmatoarele functii:

gestioneaza dispozitivele, memoria, si procesele.

controleaza interactiunea (transmisia informatiei) dintre programele aplicatie (utilitati) si hardware-ul sistemului. Administreaza functii precum: spatiul Swap, Demoni, si Sistemele de Fisiere.

Spatiul Swap – Este o parte rezervata de pe hard disk pentru kernel, acesta utilizand-o in timpul procesarii. Portiuni de programe care ruleaza pot fi “aruncate” hard disk-ului si apoi, la nevoie, aduse inapoi. Acest spatiu swap se afla in realitate pe hard disk, insa seamana cu o memorie aditionala sau RAM aditional, uneori fiind numit memorie virtuala.

Daemonii - Programe sau procese care realizeaza o sarcina particulara sau monitorizeaza discurile sau executia programelor. Demonii sunt procese speciale care pornesc dupa ce se incarca sistemul de operare. Demonii asteapta apoi sa faca ceva in sprijinul sistemului de operare. Pot fi porniti sau opriti daca este necesar. Un exemplu este cel al demonului imprimantei, lpsched (line printer scheduler). Acesta se lanseaza cand sistemul porneste si apoi asteapta in fundal pana cand cineva are nevoie sa tipareasca ceva. Demonii din lumea Linuxului sunt similari cu Serviciile din Windows NT/2000 sau cu NetWare Loadable Modules (NLMs) din Novell NetWare.

Sistemele de fisiere – Reprezinta o ierarhie de directoare, subdirectoare si fisiere care organizeaza si administreaza informatia pe hard disk-uri. Sistemele de fisiere pot fi locale sau pe alta masina (de obicei server).

1.9 Shell-ul

Un shell este o interfata intre utilizator si kernel. Actioneaza ca un interpretor sau ca un translator. Cu alte cuvinte, shell-ul accepta comenzi scrise de utilizator, le interpreteaza, si apoi executa programele corespunzatoare. Shell-urile pot fi linie de comanda sau grafice. Pentru a verifica ce shell se utilizeaza la un moment dat se poate folosi comanda ps (process status) (FIG. 3.3).

Shell-ul citeste si interpreteaza cererile introduse de utilizator. Apoi comunica instructiuni kernel-ului care duce la indeplinire cererile formulate de utilizator. Shell-ul este deci legatura directa, interfata directa a utilizatorului cu sistemul de operare. De obicei, cele mai multe cereri sunt pentru a rula programe.