Cuprins
- 1. Introducere . 8
- 1.1. Contextul . 8
- 1.2. Conturarea domeniului temei . 9
- 1.3. Actualitatea si utilitatea proiectului . 11
- 1.4. Scopul si obiectivele proiectului . 12
- 1.5. Tema proiect . 13
- 1.6. Studiu bibliografic . 24
- 2. Fundamentare teoretica . 28
- 2.1. Sistemul de operare Linux . 28
- 2.1.1. Istoric Linux . 28
- 2.1.2. Unix si Minix . 29
- 2.1.3. Designul sistemului de operare Linux . 31
- 2.1.4. Standardele sistemului de operare Linux . 31
- 2.1.5. Cota de piata . 31
- 2.1.6. Servere si supercalculatoare . 32
- 2.1.7. Sisteme Linux embeded . 32
- 2.2. Linux si mediile desktop grafice . 33
- 2.2.1. Istoricul si functionalitatea mediilor desktop grafice . 33
- 2.2.2. Medii desktop Linux . 33
- 2.2.3. Implementari ale mediilor desktop . 35
- 2.3.4. Sistemul de Ferestre X (X Window Sistem) . 35
- 2.3. Mediul desktop GNOME . 39
- 2.3.1. Istoric GNOME . 39
- 2.3.2. Scopul GNOME . 39
- 2.3.3. Descriere GNOME . 40
- 2.4. Constructori de interfete grafice (GUI Builders) . 42
- 2.5. Librariile GTK+ . 42
- 2.6. Mediul de lucru Glade . 43
- 2.6.1. Istoric si dezvoltare . 44
- 2.6.2. Glade XML . 44
- 2.6.3. Cum este folosit Glade . 44
- 2.6.4. Ce poate face si ce nu poate face Glade . 45
- 2.7. Programarea in Linux . 46
- 2.8. Limbajul C/C++ . 47
- 2.8.1. Istoricul si dezvoltarea limbajului C/C++ . 47
- 2.8.2. Caracteristicile limbajului C/C++ . 47
- 2.9. Linux si retelele de calculatoare . 49
- 2.10. Modul de lucru promiscuous . 50
- 2.10.1. Descrierea modului de lucru promiscuous . 50
- 2.10.2. Detectia calculatoarelor care folosesc modul promiscuous . 51
- 2.11. Socket-urile . 52
- 2.11.1. Descrierea Socket-urilor . 52
- 2.11.2. Tipuri de socket-uri . 53
- 2.11.3. Socket-urile si modelul Client-Server . 53
- 2.11.4. Probleme de implementare ale socket-urilor . 54
- 2.11.5. Echimpamente de retea si suportul pentru socket-uri . 55
- 2.11.6. Socket-uri raw . 55
- 2.11.7. Vedere de ansamblu asupra socket-urilor raw . 55
- 2.11.8. Controverse legate de socket-urile raw . 56
- 2.12. Capturarea pachetelor ethernet (Sniffere ethernet ) . 57
- 2.12.1. Descrierea snifferelor . 57
- 2.12.2. Capacitatile snifferelor . 57
- 2.12.3. Utilitatea snifferelor . 58
- 2.12.4. Exemple ale utilizarii snifferelor . 58
- 2.13. Injectia de pachete ethernet (Ethernet spoofing) . 60
- 2.14. DHCP (Dynamic Host Control Protocol) 61
- 2.14.1. Istoric . 61
- 2.12.3. Privire de ansamblu . 61
- 2.12.3. Confirmarea cererilor DHCP. 63
- 3. Dezvoltarea aplicatiei . 64
- 3.1. Implementarea interfetelor grafice . 65
- 3.2. Implementarea modulului de scanare al adreselor ip . 75
- 3.3. Implementarea modulului de scanare al porturilor . 82
- 3.4. Implementarea modulului de captura al pachetelor ethernet . 89
- 3.5. Implementarea modulului de injectie al pachetelor . 107
- 3.6. Implementarea modulului de administrare a interfetelor ethernet . 112
- 3.7. Implementarea Serverului DHCP . . 113
- 3.8. Implementarea Emulatorului de Consola – Terminal Linux . 116
- 3.9. Implementarea Utilitarelor de Sistem . . 118
- 4. Testarea aplicatiei . 120
- 4.1. Configurarea sistemului pentru rularea aplicatiei . 120
- 4.2. Fereastra principala . 124
- 4.3. Testarea modulului de scanare al adreselor ip . 127
- 4.4. Testarea modulului de scanare al porturilor . 132
- 4.5. Testarea modulului de captura al pachetelor . 135
- 4.6. Testarea modulului de injectie al pachetelor . 139
- 4.7. Testarea modulului de administrare a interfetelor ethernet . 144
- 4.8. Testarea modulului Server DHCP . 145
- 4.9. Testarea modulului Emulator Terminal – Consola Linux . 146
- 4.10. Testarea modulului Utilitare Sistem . 147
- 5. Concluzii . 148
- 6. Bibliografie . 149
- 7. Anexe . 151
Extras din disertație
Rezumat
Prin această lucrare ne propunem realizarea unei aplicaţii software care să ajute un utilizator sau administrator de reţea Linux să realizere auditul şi administrarea unei reţele de calculatoare locale, într-un mod cât mai accesibil şi eficient.
Aplicaţia are ca principal scop facilitarea utilizării unor acţiuni de bază, cum ar fi scanări de porturi sau de adrese ip, folosind o interfaţa grafică intuitivă, care să îmbine uşurinta în exploatare cu opţiuni avansate de scanare şi a unor acţiuni mai avansate, de captura şi de injecţie a pachetelor manipulate într-o reţea ethernet.
În cadrul aceleiaşi aplicaţii cele două module avansate de captură şi injecţie a pachetelor ethernet într-o reţea, vor putea realiza un audit de profunzime asupra securitaţii datelor care sunt manipulate în retea, precum şi se va putea testa capacitatea de funcţionare corecta a echipamentelor prin realizarea unor atacuri de genul ARP Spoofing (Address Resolution Protocol Spoofing) sau D-DOS (Distributed Denial of Service).
În cadrul aceleiaşi aplicaţii s-a realizat implementarea unui modul prin care se realizează spoofingul interfeţelor calculatorului, pentru schimbarea anumiţilor parametrii, implementarea unui server DHCP folosind captura şi injecţia pachetelor, implementarea unui emulator de consolă terminal Linux, precum şi diferite utilitare pentru sistemul de operare.
Folosind această aplicaţie, utilizatorul poate să ia decizii cât mai optime, pentru securizarea reţelei prin segmentarea acesteia cu ajutorul unor echipamente performante, prin detecţia şi eliminarea breşelor de securitate ale calculatoarelor sau prin folosirea unor protocoale securizate de comunicaţie, precum SSH, HTTPS, IPSec etc.
Aplicaţia este realizată folosind cele mai noi tehnologii, foloseşte modul de lucru promiscuous (promiscuous mode) şi cel de monitorizare (monitor mode), lucrul cu fire de execuţie (thread-uri), socket-uri raw şi interfeţe grafice care folosesc librariile Gtk+ (interfeţe realizate cu ajutorul utilitarului Glade 3), şi poate rula folosind sisteme de operare Linux, împreună cu mediul grafic desktop GNOME.
Sistemul a fost testat folosind sisteme de operare Linux (Fedora Core 13, Red Hat şi Ubuntu 10) atât pe 32 biţi cât şi pe 64 biţi, care ruleză mediul desktop GNOME, sau are instalate librariile Gtk+.
1. Introducere
1.1. Contextul
Pentru a intelege rolul pe care calculatoarele il au in lumea in care traim trebuie sa aruncam o privire atenta asupra internetului. In ultimii ani conexiunile la internet au devenit esentiale pentru educatie si pentru mediul de afaceri. Tot mai multe servicii pe care le utilizam zi de zi sunt in stransa legatura cu comunicatiile realizate cu ajutorul calculatorului, fie ca este vorba de banalul e-mail sau de convorbirile VoIP, sau chiar de HDTV, internetul incepe sa devina tot mai indispensabil pentru viata oamenilor.
Chiar si pentru conectarea unui simplu calculator la internet, o oarecare planificare si unele decizii trebuiesc luate, pentru ca serviciul sa functioneze la parametrii optimi. Aceste decizi includ dispozitivele care conecteaza calculatorul la internet (precum placi de retea, modemuri), si protocoalele (care sunt un set de reguli si standarde pentru o comunicatie) care trebuiesc configurate pentru ca un calculator sa poata sa comunice in mod corect.
Aplicatia realizata in acest proiect vine in ajutorul utilizatorilor de sisteme de operare Linux, sau a administratorilor de retea, si le ofera acestora posibilitatea de a localiza problemele de conectivitate sau de secutitate pe care un calculator sau o retea locala le poate avea, permitand luarea unor decizii corecte intr-un timp cat mai scurt.
Spre deosebire de celelalte soft-uri deja existente (NMAP, TCPDUMP, DHCP si nu numai), aplicatia realizata in acest proiect, pune la dispozitia utilizatorului o interfata grafica intuitiva, care creste productivitatea muncii si scade nivelul cunostintelor necesare realizarii unor actiuni similare cu celelalte produse software (care folosesc interfete in linie de comanda), fara a limita optiunile suplimentare disponibile in aplicatiile enumerate mai sus, aplicatia permitand lucrul cu pana la 10.000 de fire de executie simultan, ceea ce duce la o eficienta mult imbunatatita.
Datele rezultate pot fi salvate, pentru realizarea unor analize ulterioare.
Preview document
Conținut arhivă zip
- 1. Prima Pagina.doc
- 10. Anexe.doc
- 2. Rezumat.doc
- 3. Cuprins.doc
- 4. Capitolul 1 - Introducere.doc
- 5. Capitolul 2 - Fundamentare teoretica.doc
- 6. Capitolul 3 - Dezvoltarea Aplicatiei.doc
- 7. Capitolul 4 - Testarea aplicatiei.doc
- 8. Capitolul 5 - Concluzii.doc
- 9. Bibliografia.doc