Conf . Univ. D r. Eugen Petac [613312]
Universitatea „OVIDIUS” Constanța
Facultatea de Matematică și Informatică
Specializarea: Informatică
LUCRARE DE LICENȚĂ
Coordonator științific :
Conf . Univ. D r. Eugen Petac
Absolvent: [anonimizat]
2017
Pagina | 2
Ministerul Educatiei Naționale și Cercetării Științifice
Universitatea „Ovidius” Constanța
Facultatea de Matematică și Informatică
Specializarea Informatică
Securitate IP bazată pe Raspberry PI
Lucrare de licență
Coordonator științific:
Conf . Univ. Dr. Eugen Peta c
Absolvent: [anonimizat]
2017
Pagina | 3
REZUMAT
Aplicația este creată cu scopul de a proteja și de a preveni accesul nedorit asupra
unor anumite calculatoa re sau a unei rețele. Aceasta are rolul de a filtra schimbul de date
care se realizează între computer -ele dintr -o rețea.
Toate informațiile care sunt primite sau transmise de un calculator sunt analizate și
”filtrate”.
Pagina | 4 Cuprins
Rezumat ………………………….. ………………………….. ………………………….. ………………………….. . 3
Introducere ………………………….. ………………………….. ………………………….. ………………………. 7
1.Scurt istoric și noțiunii generale ………………………….. ………………………….. ………………….. 9
1.1.1 Gateway -uri la nivel de aplicație ………………………….. ……………………. 11
1.1.2 Gateway -uri la nivel de rețea ………………………….. …………………………. 12
1.1.3 Stateful packet inspection (SPI) ………………………….. ……………………… 12
1.2 Terminologia de reț ea ………………………….. ………………………….. ……………………. 13
1.2.1 Pachete de date ………………………….. ………………………….. ………………… 13
1.2.2 Protocoale ………………………….. ………………………….. ………………………. 14
1.2.3 Internet Protocol v4 (IPv4) ………………………….. ………………………….. .. 17
1.2.4 Internet Protocol v6 (IPv6) ………………………….. ………………………….. .. 20
1.2.4 .1 Istoric ………………………….. ………………………….. ……………….. 20
1.2.4 .2 Comutarea adreselor IPv4 ………………………….. ………………… 20
1.2.4 .3 Notarea adreselor IPv6 ………………………….. …………………….. 21
1.2.5 Port-uri ………………………….. ………………………….. ………………………….. . 21
1.2.6 Masca de subreț ea ………………………….. ………………………….. ……………. 23
1.3 Despre Raspberry PI ………………………….. ………………………….. ……………………… 24
1.3.1 Diferenț e între raspberry pi 2 și 3 ………………………….. …………………… 25
2.Tehnologii folosite și definiții ………………………….. ………………………….. …………………….. 26
2.1 Raspbian ………………………….. ………………………….. ………………………….. ………….. 26
2.2 Netfilter ………………………….. ………………………….. ………………………….. …………… 27
2.2.1 IPTABLES ………………………….. ………………………….. ……………………… 27
Pagina | 5 2.2.2 NFTABLES ………………………….. ………………………….. ……………………. 29
2.3 ISC -DHCP Server ………………………….. ………………………….. …………………………. 29
2.4 HostAPD ………………………….. ………………………….. ………………………….. …………. 33
2.5 DNSMASQ ………………………….. ………………………….. ………………………….. ……… 33
2.6 PHP ………………………….. ………………………….. ………………………….. ………………… 34
3.Implementarea aplicației Raspberry Smart WIFI ………………………….. ………………….. 35
3.1 Instalarea sistemului de operare – linux ………………………….. ………………………… 35
3.2 Implementarea aplicației software ………………………….. ………………………….. …… 35
3.2.1 Afișarea informațiilor din dashboard ………………………….. ………………. 36
3.2.2 Configurarea IP -urilor ………………………….. ………………………….. ………. 41
3.2.3 Setări firewall ………………………….. ………………………….. ………………….. 50
3.2.4 Afișarea informațiilor despre sistem ………………………….. ……………….. 50
4.Prezentarea și utilizarea aplicației Raspberry Smart Wifi ………………………….. ………. 56
Concluzii ………………………….. ………………………….. ………………………….. ………………………… 63
Referințe Bibliografice ………………………….. ………………………….. ………………………….. ……. 65
Pagina | 6 Lista Figurilor
1.1 Clasele de ip ………………………….. ………………………….. ………………………….. ……………….. 17
1.2 Comparație modele raspberry ………………………….. ………………………….. ……………………. 24
4.1 Dashboard ………………………….. ………………………….. ………………………….. ………………….. 60
4.2 Meniu ………………………….. ………………………….. ………………………….. ………………………… 60
4.3 Hotspot General ………………………….. ………………………….. ………………………….. ………….. 61
4.4 Hotspot Securitate ………………………….. ………………………….. ………………………….. ……….. 61
4.5 Hotspot Avansat ………………………….. ………………………….. ………………………….. ………….. 62
4.6 DHCP ………………………….. ………………………….. ………………………….. ………………………… 62
4.7 Date autentificare ………………………….. ………………………….. ………………………….. ………… 63
4.8 Autentificare ………………………….. ………………………….. ………………………….. ………………. 63
4.9 Firewall ………………………….. ………………………….. ………………………….. ……………………… 64
4.10 Informații Sistem ………………………….. ………………………….. ………………………….. ………. 65
Pagina | 7
INTRODUCERE
În zilele noastre securitatea cibernetică devine un punct prioritar în cazul protejării
informațiilor datorită multitudinii de atacuri ce au loc în mediul virtual. Această securitate
implică diferite metode, tehnologii și instrumente pentru a opri și securiza atacurile rău
intenționate.
În ultimii ani, aceste atacuri au crescut considerabil iar infracțiun ile comise în
mediul virtual au produs pagube anuale foarte ridicate. Pentru protejarea acestor date se
pune un foarte mare accent pe filtrarea și analiza acestora p rin intermediul firewall -urilor
precum și a gateway -urilor.
1. Structura lucrării
Lucrarea pr ezentată este structurată în patru capitole care doresc atingerea tuturor
punctelor de pr ezentare ale aplicației.Acestă prezentare pornește de la enumerarea
elementelor de bază în rețelistică, tehnologiile utilizate, pană la faza de testare software.
Struc tura documentației este următoarea:
Capitolul 1 – Cybersecurity : Descriu pe scurt noțiunile de bază în
rețelistică precum și în securitatea datelor
Capitolul 2 – Tehnici folosite și definiții : Descriu pe scurt caracteristicile
precum și metodologia care este la baza unei astfel de tip de aplicație
Capitolul 3 – Implementarea aplicației : Prezintă tehnica de implementare
a aplicației unde este prezentată o secvență de cod privind blocarea și
deblocarea ip -urilor precum și a port -urilor
Pagina | 8 Capitolul 4 – Prezentarea și utilizarea aplicației : Constă în descrierea
întregii aplicații însoțite de capturi sugestive ale formularelor și ferestrelor.
Pe lângă cele patru capitole, documentația cuprinde în ultima parte și concluziile
lucrării, posibilele direcții de dezvoltare a aplicației și contribuțiile personale.
Pagina | 9
CAPITOLUL 1
1. Scurt istoric și noțiuni generale
Cybersecurity este un grup de tehnologii, procese și practici menite să protejeze
rețelele, computer -ele, programele și datele de atacuri, deteriorare sau acces neautorizat.
Într-un context de calcul, securitatea include atât securitatea cibernetică cât și securitatea
fizică.
Asigurarea securității informatice necesită efortu ri coordonate pe tot parcursul unui
sistem informatic. Elementele de securitate cibernetică includ:
Protecția aplicațiilor
Securitatea Informațiilor
Securitatea Rețelei
Reabilitarea in caz de atac cibernetic
Securitatea Operațională
Unul dintre elementele cele mai problematice ale securității informatice este natura
rapidă și în continuă evoluție a riscurilor de securitate. Abordarea tradițională a fost aceea
de a focaliza majoritatea resurselor asupra celor mai importante componente ale sistemului
și de a proteja împotriva celor mai mari amenințări cunoscute, ceea ce a dus la
vulnerabilitatea celorlalte componente mai puțin importante ale sistemului.
Pagina | 10 Timeline – Dezvoltare CyberSecurity
1998 – Energy Sector Information Sharing and Analysis Center (ES -ISAC)
2000 – 1st IEEE substation security standard
2002 – 1st NERC physical security guidance
2004 – Energy subsector coordination Council (ESCC)
2005 – Energy Policy Act
2005 – NERC Physical Security v3
2006 – National Infrastructure P rotection Plan
2006 – DOE Energy Sector Plan
2006 – EEI Spare Transformer Equipment Program (STEP)
2008 – NERC initial reliability standards (cyber)
2008 – DHS Recovery Transformer Program
2010 – ESCC Critical Infrastructure strategic roadmap
2011 – GridEx 1
2012 – NERC Spare ECT database
2013 – FERC Electrically Significant Locations Study
2013 – Metcalf Substation attack
2013 – GridEx 2
2013 – NERC physical security guidelines
2014 – CIP 014
Firewall -ul este un sitem de securitate de rețea, bazat pe hardware sau software, care
utilizează reguli pentru a controla traficul de rețea de la intrare și ieșire. Un firewall
acționează ca o barieră între o rețea de încredere și una neîncrezătoare. Acesta controlează
accesul la resursele unei rețele printr -un model de control pozitiv. Aceasta înseamnă că
singurul trafic permis în rețea este definit în politica firewall -ului; restul pachetelor de date
este respins.
Există patru tipuri diferite de firewall, împreună cu diferite mijloace de implementare,
dar sc opul acestei lucrări este dezvoltarea unui router cu firewall prin intermediul unui
raspberry pi. Acest device va fi folosit pentru filtrarea tuturor datelor ce se transmit între
calculatoare și respectiv într -o rețea. Acest tip de firewall acționează ca u n filtru,
Pagina | 11 examinând traficul de date și comparându -l cu un set de reguli, ceea ce duce la forwardarea
pachetelor de date sau respingerea lor, preveni nd astfel atacurile cibernetice.
1.1.1 Gateway -uri la nivel de aplicație
Aplicațiile la nivel de gateway -uri de asemenea filtrează pachetele, dar face acest
lucru pe baza datelor de aplicare în cadrul pachetului. În acest fel, sistemul poate bloca
anumite tipuri de servicii, cum ar fi toate script -urile java din cadrul unei pagini Web. De
asemenea, oferă protecți a unui proxy în rețea. În mod normal, atunci când se stabilește o
conexiune, cele două computere comunică direct una cu cealaltă. Cu un proxy, fiecare
calculator trimite datele sale direct la firewall -ul propriu -zis, dar calculatoarele încă mai
cred că tr imit informații direct unul către celălalt. Cu alte cuvinte, firewall -ul funcționează
ca intermediar între cele două părți.â
Principalul beneficiu al unui proxy este că ip -urile din spatele acestuia sunt ascunse
în afara surselor. Din cauza acestui camufla j, firewall -ul trebuie să fie atacat și spart înainte
ca computerele din spatele proxy -ului să poată fi accesat în mod special. Gateway -urile de
aplicație oferă o protecție mai mare decât filtrele de pachete. Acestea nu necesită o sursă
specifică și o adre să de destinație. Deoarece scanează mai degrabă datele de aplicație ale
pachetului decât informațiile despre sursă și destinație, acestea sunt mai eficiente în
protejare computerelor de serviciile potențial dăunătoare. Mai degrabă decât încercarea de
a bloca orice ip care poate dăuna sau blocând un port pentru a preveni abuzul, cum ar fi
portul 80 pentru HTTP, paravanul de protecție poate bloca anumite acțiuni ale acestor
servicii, permițând în același timp o utilizare legitimă. Cu toate acestea, deoarece
examinează întreaga aplicație a pachetului, poate încetini grav traficul din rețea și poate
folosi mult timp procesorului. De asemenea, multe aplicații trebuie să fie personalizate
manual pentru a face față serviciului proxy. Deoarece aplicația se așteaptă să comunice
direct cu celălalt calculator, orice întrerupere a acestei conexiuni poate provoca erori.
Pagina | 12
1.1.2 Gateway -uri la nivel de rețea
Gateway -ul la nivel de rețea funcționează în mod similar cu gateway -urile de
aplicație prin faptul că și ele folosesc un p roxy pentru a asigura rețeaua. Totuși, când
gateway -urile de rețea scanează un pachet, acesta verifică doar dacă conexiunea este
”legală”, asigurând că pachetele provin din aceeași sursă la care a fost trimisă cererea și că
utilizatorul are suficiente priv ilegii pentru orice serviciu este necesar. Odată ce conexiunea
este stabilită, paravanul de protecție verifică numai dacă pachetul face parte dintr -o
conexiune existentă. Dacă este, atunci pachetul este transmis fără alte verificări sau
interferențe.
Gate way-ul la nivel de rețea oferă o varietate mai largă de reguli posibile decât alte
firewall -uri, împreună cu serviciul serviciul său proxy, deci este mai versatil din această
privință. De exemplu, poate bloca accesul la anumite adrese URL, în timp ce un fi ltru de
pachete ar avea nevoie de adresa ip a site -ului, care poate să nu fie unică, deoarece mai
mult companii, precum GOOGLE, utilizează mai multe servere. De asemenea gateway –
urile la nivel de rețea nu încetinesc în mod semnificativ rețeaua sau calculat orul, similar cu
viteza de filtrare a pachetelor. Cu toate acestea, cele mai multe gateway -uri la nivel de rețea
vor verifica doar anumite flag -uri ale pachetului pentru a identifica dacă face parte dintr -o
conexiune, decât să examineze o listă de conexiun i anterioare. Aceste flag -uri pot fi
modificate cu ușurință pentru a păcăli firewall -ul, ceea ce face acest tip extrem de
vulnerabil. În plus conexiunile legitime anterior, care sunt aprobate, pot devenit rău
intenționate, însă firewall -ul nu va interveni într-o conexiune existentă. Ca atare, acest tip
de firewall este rareori folosit pentru a proteja o rețea.
1.1.3 Stateful Packet Inspection (SPI)
Firewall -ul SPI combină caracteristici din fiecare dintre cele 3 tipuri de firewall
anterioare. Majoritatea firewa ll-urilor SPI funcționează în conformitate cu următorii pași. În
primul rând, firewall -ul examinează dacă pachetul face parte dintr -o conexiune existentă,
Pagina | 13 similar cu gateway -urile de rețea. Dacă nu, atunci fireawall -ul vede dacă pachetul este
permis de un set de reguli care seamănă cu setul de reguli al unui filtru de pachete. Dacă
pachetul nu se încadrează în niciuna dintre aceste proceduri, atunci pachetul este aruncat.
Dacă pachetul trece prin oricare din testele anterioare, datele pachetului sunt apoi s canate
într-o manieră similară gateway -urilor de aplicație. În cazul în care încalcă orice regulă,
acesta va fi aruncat. Dacă pachetul trece de acest pas, acesta va fi trimis în cele din urmă la
destinație.
Proxy -ul gateway -urilor de aplicație și de rețea sunt sacrificate pe firewall -urile SPI din
motive de viteză și simplitate. De asemenea datele pachetului sunt scanate doar pentru șirul
de specificații, mai degrabă decât examinarea pachetului în ansamblu, ceea ce ar face un
gateway la nivel de aplicație. Cu toate acestea, procedura de verificare a faptului dacă
pachetul face parte dintr -o conexiune existentă este îmbunătățită. În loc să verifice numai
flag-urile, firewall -ul verifică adresele IP sursă și destinație împotriva unei liste de
conexiuni existe nte. Acest lucru face ca ocolirea firewall -urilor SPI să fie mult mai dificilă,
deoarece un atacator nu poate iniția un atac fără ca ținta să solicite sau să accepte mai întâi
conexiunea. În timp ce firewall -urile SPI sunt mai lente decât filtrele de pache te, acestea
sunt mai rapide decât gateway -urile aplicație. Firewall -ul SPI caută, în general, terenul
mediu din punct de vedere al securității și eficienței
1.2 Terminologia de rețea
Pentru a putea înțelege cum funcționează un firewall va fi nevoie de câteva elemente
de bază despre o rețea, înțelegând astfel cum funcționează un firewall și cum acesta diferă
de altele.
1.2.1 Pachete de date
Majoritatea informațiilor dintr -un computer, inclusiv cele transmise printr -o rețea
cum ar fi Internetul, sunt transmise prin p achete. Pachetele sunt blocuri de date: un
computer transmite aceste date prin blocuri decât printr -un stream constant. Fiecare pachet
conține o cantitate mai mare de metadate împreună cu informația însăși. În pachetele
Pagina | 14 transmise într -o rețea aceste metada te includ ip -ul sursă, ip -ul destinație, numărul portului,
numărul total de pachete, flag -ul ce denotă tipul de date transmise și multe altele.
Fiecare pachet se transmite de la un computer la altul până când acesta ajunge la
destinație. Ruta pe care pache tul este transmis este dinamică, o caracteristică intenționată
concepută atunci când rețeaua de cercetare ARPANET a fost creată prima dată pentru a
împărtășii informații și resurse științifice. Proiectul APANET a câștigat primul impuls la
scurt timp după l ansarea lui Sputnik de către sovietici. Întrucât singurele computere
conectate la rețea erau toate computere autorizate de cercetare, securitatea nu era o
problemă majoră înafara securității fizice, menite să prevină deteriorarea atacurilor fizice și
a spi onajului. Până când rețeaua s -a extins și securitatea a devenit importantă prea multe
calculatoare depindeau de acest proiect și era nevoie de o schimbare. Proiectul ARPANET
a evoluat în cele din urmă în ceea ce este cunoscut astăzi ca Internetul, având at ât punctele
sale forte cât și slăbiciunea față de noua sa formă.
Datorită faptului că aceste protocoale sunt utilizate într -o manieră neprevăzută din
momentul concepției lor inițiale, sunt necesare soluții de securitate cum ar fi firewall -ul
pentru a prote ja computer -ul împotriva atacurilor rău inteționate.
1.2.2 Protocoale
Protocoalele sunt reguli care guvernează modul în care două dispozitive comunică
între ele. Există zeci de protocoale diferite pentru dispozitive diferite, fie că este vorba
despre un telefon mobil, o imprimantă sau un computer, dar toate stilurile de comunicare au
cel puțin una. Protocoalele pot fi considerate limbi ale dispozitivelor: ambele dispozitive
trebuie să utilizeze același protocol (limbă) pentru a comunica. Dacă nu, nu este posibilă o
comunicare semnificativă.
Protocolul utilizat depinde de nevoile situației și adesea se creează noi protocoale
pentru a se potrivi dispozitivelor specifice. Există doua protocoale specificate în acea stă
lucrare: Transmission Control Protocol (TCP) și Us er Datagram Protocol (UDP). Există
multe diferențe între cele două, însă diferența principală este că TCP se concentrează pe
stabilitate și fiabilitate, unde UDP se concentrează pe viteză. TCP transmite în mod
constant confirmarea livrărilor de pachete și a cererilor de pachete pierdute, în timp ce UDP
Pagina | 15 nu trimite s -au recepționează nici o confirmare de livrare a pachetelor. TCP este mai
frecventă decât UDP, deși ambele sunt utilizate frecvent în transferurile zilnice de
informații. De exemplu TCP este proto colul principal utilizat pentru paginile web și e -mail-
uri, în timp ce UDP este utilizat în mod obișnuit pentru fluxurile video și audio în timp real.
Protocoalele controlează toate aspectele comunicării datelor, prin care și:
Cum este construită rețeaua f izică;
Cum sunt conectate calculatoarele la rețea;
Cum sunt formate datele pentru transmisie;
Cum sunt transmise datele;
Cum sunt conectate erorile.
Pentru ca datele să poată ajunge de la sursă la destinație, fiecare nivel al modelului
OSI pentru calculato rul sursă trebuie să aibă legătură cu nivelul aferent al calculatorului
destinație. Această formă de comunicație se numește peer -to-peer. În momentul execuției
acestui proces protocoalele fiecărui nivel schimbă informații, numite PDU (Protocol Data
Unit). Fiecare nivel depinde de serviciile nivelului inferior. Pentru a oferi acest serviciu ,
nivelul inferior folosește încapsularea pentru a pune datele nivelului superior în câmpul său
de date, apoi adaugă un header și un trailer pentru ca nivelul să -și înde plinească funcțiile.
Datelor ce se coboară de -a lungul nivelelor modelului OSI le sunt adăugate mai multe
headere și trailere.
Host A Host B
Data
Data
Data
Segments
Packets
Frames
Bits Application
Presentation
Session
Transport
Network
Data Link
Physical Application
Presentation
Session
Transport
Network
Data Link
Physical
Pagina | 16
După ce nivelele 7,6 și 5 și -au adăugat propriile informații, nivelul 4 grupează
datele sub formă de segmente. Nivelul de rețea oferă servicii nivelului superior, transport,
având sarcina să transfere datele în rețea. Pentru a -și îndeplini această sarcină el atașează un
header ce cuprind e informații privind sursa și destinația adreselor logice, creând astfel
pachete. Nivelul legătură de date oferă servicii nivelului de rețea, încapsulând informația
într-un frame. Header -ul frame -ului conține informații privind adresa fizică, necesară
îndeplinirii funcțiilor nivelului legătură de date. Nivelul fizic oferă servicii nivelului
legătură de date, codând frame -urile în secvențe de biți 0 și 1, în vederea transmiterii lor.
Dacă se dorește ca de pe un calculator sursă să trimită date spre un calcu lator
destinație, pachetele de date trebuiesc prima dată împachetate printr -un proces numit
încapsulare. Încapsularea combină datele cu informațiile protocolului necesar înainte ca
aceste sa fie transmise în rețea. În timp ce datele sunt transferate de -a lungul nivelelor
modelului OSI, ele primesc header -e, trailer -e și alte informații.
Procesul de încapsulare a datelor pentru IPv4
1. Crearea datelor
Când un utilizator trimite mesaje e -mail, caracterele alfanumerice sunt
convertite la date ce pot traversa r ețeaua
2. Împachetarea datelor pentru transport
Datele sunt împachetate pentru transportul în rețea. Folosind segmente,
funcțiile de transport asigură comunicarea calculatoarelor prin sistemul
e-mail.
3. Adăugarea adresei IP
Datele sunt puse într -un pachet ce conține un header cu adresele logice
ale sursei și destinației. Aceste adrese ajută componentele de rețea să
trimită pachete de -a lungul rețelei prin alegerea unei căi.
4. Adăugarea header -ului și trailer -ului la nivelul legătură de date
Fiecare componentă de rețea trebuie să pună pachetul într -un frame.
Frame -ul asigură conexiunea cu următoarea componentă de rețea.
5. Conversia datelor în biți pentru transmiterea lor în rețea
Pagina | 17 Frame -urile trebuie convertite în biți de 0 și 1 pentru transmiterea
acestora în mediu. Anumite funcții permit componentelor să distingă
acești biți ce traversează mediul folosit în conectarea rețelelor într -o
rețea.
1.2.3 Internet Protocol v4 (Ipv4) Address
O adresă IP este un set de numere care indică unde este un obiect din rețea.
Atâta timp cât un pachet are adresa IP corectă și un link către destinație, acesta poate
ajunge la computer -ul țintă. Adresele ip sunt gestionate de obicei printr -o politică de rețea
cu un administrator care alocă valori sau este atribuită automat unui computer atunci când
se conectează la o rețea.
Adresa IP este reprezentată printr -un număr întreg fără semn pe 32 de biți (
patru octeți) care este de regulă scrisă sub forma unei liste de patru întregi fără semn (câte
unul pentru fiecare octet) separate prin puncte. Acest format se numește formatul zec imal al
adrese IP. De exemplu, 8.154.6 .7 este o adresă validă de internet. Forma sa zecimală este
utilizată d e către softul IP. Legătura dintre adresele IP și numele simbolic ușor -de-citit, de
exemplu mypos.ro, e ste făcută de către DNS (Domain Name System).
Modul de standardizare al adreselor IP este descris în RFC 1166 – Internet
Numbers. Pentru ca un calculator să fie identificabil pe internet, este necesar ca lui să -i fie
atribuită o adresă, adresă IP sau adr esa de internet. Atunci când un calculator este atașat la
mai mult de o rețea, el se numește multi -homed și are câte o adresa ip pentru fiecare
interfață de rețea.
Adresele IP sunt folosite de către protocolul IP pentru a identifica în mod unic
un calcula tor pe internet. Strict vorbind, o adresă IP identifică o interfață care este ca pabilă
să trimită datagrame IP, iar un sistem poate avea mai multe astfel de interfețe. Totuși, atât
gazdele cât și router -ele pot avea cel puțin o adresă ip, astfel încât acea stă definiție
simplificată este acceptabilă. Datagramele IP (pachetele de date schimbate între
calculatoare) sunt trimise printr -o rețea fizică la care este atașată interfața calculatorului
Pagina | 18 gazdă și fiecare datagramă ip conține adresa ip sursă și o adresă ip destinație. Pentru a putea
trimite o datagramă către o anumită destinație ip, adresa ip țintă trebuie tradusă (mapată)
într-o adresă fizică. Aceasta poate necesita transmisii prin rețea pentru a afla adresa de rețea
fizică a calculatorului destinație. S pre exemplu pe LAN -uri (Local Area Networks) ARP
(Address Resolution Protocol) este folosit pentru a traduce adresele ip în adrese fizice
MAC (Media Access Control). Primi biți ai unei adrese ip specifică modul cum restul
adresei trebuie separată în partea de rețea și partea de gazdă. Termenul adresă de rețea și
netID sunt uneori utilizate în loc de număr de rețea, dar termenul formal, utilizat de RFC
1166, este numărul de rețea (network number). Analog, termenul adresă de gazdă (host
address) și hostID sun t uneori folosite în locul numărului de gazdă.
Clase de adrese IP
Există cinci clase de adrese ip. Acestea sunt reprezentate în următoarea figură:
Figura 1.1 – Clasele de ip
Pagina | 19
1. Clasa A de adrese folosește 7 biți pentru <rețea> și 24 biți pentru partea <host> a
adresei ip. Aceasta asigură 27-2(126) rețele cu 224-2(16777214) calculatoare host
fiecare. În total un număr de peste 2 miliarde de adrese.
2. Clasa B de adrese folosește 14 biți pentru <rețea> și 16 biți pentru parte a <host> a
adresei ip. Aceasta asigură 214-2(16382) rețele cu 216-2(65534) calculatoare host
fiecare. În total un număr de peste 1 miliard de adrese.
3. Clasa C de adrese folosește 21 biți pentru <rețea> și 8 biți pentru partea <host> a
adresei ip. Aceasta as igură 221-2(2097150) rețele cu 28-2(254) calculatoare host
fiecare. În total un număr de peste jumătate de milliard de adrese.
4. Clasa D de adrese este rezervată pentru multicasting un fel de difuzare –
broadcasting – dar pe arie limitată și numai gazdelor care folosesc aceeași clasă D de
adrese.
5. Clasa E de adrese este rezervată pentru dezvoltări ulterioare.
În mod evident, clasa A va fi atribuită rețelelor cu număr imens de gazde, iar
clasa C de adrese este indicat să fie utilizată pentru rețele cu număr mic de calculatoare
host. În ceea ce privește rețelele de dimensiunii medii (acelea cu mai mult de 254
calculatoare sau acele rețele unde se așteaptă să fie mai mult de 254 calculatoare în viitor)
trebuie să utilizeze clasa B de adrese.
Numărul de rețele mici i si medii a crescut foarte repede în ultimii ani și a
apărut teama că, dacă lucrurile vor continua așa, toate adrese de rețea din clasa B vor fi
ocupate. Acest fapt este cunoscut drept problema epuizării adreselor IP. Se poate observa
aici că împărțirea a dreselor ip în doua părți conduce la împărțirea responsabilității privind
alegerea adreselor de rețea în două părți. Numărul de rețea este atribuit de către InterNIC,
iar numerele host de către autoritatea care controlează rețeaua.
Pagina | 20 1.2.4 Internet Protocol v6(IPV6) Address
1.2.4.1 Istoric
La inceputul internetului, adresele ipv4 au fost împărțite în cinci clase așa cum am
relatat și mai sus. Împărțirea se face în funcție de configurația binară a primului octet al
adresei. Din nefericire, această metodă risipea prea multe adrese ip, iar odată cu
dezvoltarea internetului a apărut pericolul epuizării blocului de adrese. Pentru a avea o
soluție la această problemă, la începutul anilor 90 au fost concepute mai multe soluții care
aveau rolul de a prelungi viața lui Ipv4. De asemenea a fost conceput și un nou protocol,
ipv6.
1.2.4.2 Comutarea Adreselor ipv4
Ipv4, versiunea folosită până în 2011, nu mai p oate dezvolta, numărul de device -uri
conectate la o astfel de rețea fiind limitat la 4,3 miliarde. Ipv6 implică în primul rând
creșterea radicală a blocului de adrese de la 232 la 2128, dar și autoconfigurarea adresei
printr -un mecanism fără stări, standardizarea dimensiunii unei subrețele și integrarea
securității din protocolul IPSec. Ipv6 a fost dezvoltată pentru a putea mări plaja de adrese ip
,oferi nd oricărei rețele de pe glob mai multe adrese ce pot fi rutate în întregul internet. Ipv6
are următoarele avantaje:
1. Managementul și delegar ea adreselor devine mai ușoară
2. Autoconfigurarea ușoară a adreselor
3. Ipsec încorporat
4. Rutare optimizată
5. Depistarea adreselor duble
Caracteristicile protocolului ipv6:
1. Jumbo Frames
Pagina | 21 2. Mobilitate
3. Multicast
4. Rutare
5. Securitate
1.2.4.3 Notarea adreselor ipv6
O adresă ipv6 are 128 de biți, aceștia fiind grupați ca opt grupuri de patru cifre
hexazecimale separate prin două puncte.
EX: 2042:0000:245F:0000:0000:07D0:732C:24 0B
Ca o abreviere, câmpurile egale cu 0 pot fi reprezentate printr -o singură cifră în loc
de 4.
EX: 2042 :0:245F:0:0:7D0:732C:24 0B
De asemenea, domeniile succesive de 0 pot fi reprezentate ca două separatoare de
câmp consecutive.
EX: 2042:0:245F::7D0:732C:240 B
1.2.5 Port -uri
Fiecare pachet specifică de asemenea port -urile sursă și de destinație. Port -urile sunt
utilizate ca o modalitate de a identifica ceea ce pachetul conține și de al transmite la
procesul dorit. Există peste 65000 de port -uri disponibile, deși majoritatea su nt neutilizate
zilnic. Anumite funcții, cum ar fi HTTP pentru browser -ele web, au un port informal
convenit. În timp ce port -ul poate fi modificat dacă este dorit, aceste setări implicite
simplifică conexiunea pentru utilizatori. Numerele port -urilor sunt de obicei adăugate la
sfârșitul unei adrese ip și separate prin doua puncte. De exemplu, un pachet destinat adresei
ip 225.132.3.22 și port 80 ar av ea o adresă de destinație de 225.132.3.2 2:80.
Pagina | 22 Programele pot asculta pe un port astfel încât orice trafic pr imit care are acel număr
de port listat să fie disponibil pentru program. Dar, numai un singur program poate asculta
un port la orice moment specific. Datorită acestui lucru, într -o configurație de bază un
browser web ar putea fi conectat la internet de la o anumită adresă ip. Majoritatea
sistemelor de operare ocolesc această limitare printr -un proces intermediar care trece prin
toate pachetele care vin într -un port și le trimite la aplicația corespunzătoare, pentru ca un
utilizator să ruleze mai multe prog ram utilizând același port, cum ar fi mozilla firefox și
microsoft internet explorer, simultan.
Un lucrător poștal ar fi un bun exemplu al acestui proces. El sau ea pot primii mai
multe scrisori desemnate la aceeași adresă, adresă IP, care îl conduce într -un complex de
apartamente. De acolo muncitorul va livra scrisorile bazate pe apartament sau pe port,
număr.
Fiecare proces care dorește să comunice cu un alt proces se identifică față de suita
de protocoale TCP/IP prin unul sau mai multe port -uri. Un port este un număr întreg de 16
biți folosit de protocoalele de comunicție în rețea pentru a identifica cărui protocol sau
aplicație de nivel superior trebuie să -i livreze mesajele. Există doua tipuri de port -uri:
1. Bine -cunoscute (well -known)
Port-urile bine cunoscute aparțin serverelor standard, spre exemplu TELNET
folosește portul 23. Gama numerelor de porturi bine cunoscute se întinde de la 1 la 1023.
Porturile bine cunoscute sunt de regulă impare, deoarece sistemele mai vechi care foloseau
conceptul de port aveau nevoie de o pereche impar/par de porturi pentru comunicația
duplex. Majoritatea serverelor necesită numai un singur port. Excepții sunt:
Serverul BOOTP, care folosește doua (67,68);
Serverul FTP, care folosește de asemenea doua (20 ,21)
Porturile bine cunoscute sunt controlate și atribuite de către o autoritate centrală a
internetului: IANA și, pe majoritatea sistemelor, pot fi utilizate de către procesele
sistemului sau de către programe lansate în execuție de către utilizatori priv ilegiați.
Existența porturilor bine cunoscute permit clienților să găsească serverele fără informații de
configurare. Porturile bine cunoscute sunt definite în STD 2 – Assigned Internet Numbers .
Pagina | 23 2. Efemerale
Clienții nu au nevoie de numere de port bine cunosc ute deoarece ei inițiază
comunicarea cu serverele și numerele de port pe care le folosesc sunt conținute în
datagramele UDP trimise serverului. Fiecare proces client are alocat un număr de port câtă
vreme este necesar hostului pe care rulează. Numerele de port efemerale au valori mai mari
decât 1023, de regulă în gama de la 1024 la 65535. Un client poate folosi orice număr
alocat lui câtă vreme combinația este unică.
Porturile efemerale nu sunt controlate de IANA și pe majoritatea sistemelor pot fi
folosite de către programe obișnuite făcute de utilizator. Confuzia ce poate apărea datorită
diferitelor aplicații ce încearcă să folosească aceleași numere de port pe un calculator este
evitată scriind aplicații care solicită un port disponibil de la TCP/IP. Deoa rece acest număr
de port este atribuit dinamic, el poate diferii de la o invocație a aplicației la următoarea.
UDP, TCP și ISO TP -4 folosesc toate același tip de identificare prin port.
1.2.6 Masca de subrețea (Subnet Mask)
Măștile de subrețea împart adresa ip în doua grupuri: prefi xul de rețea și
identificatorul gazdei.Măștile de subrețea utilizează aceeași formatare ca o adresă IP
completă,utilizând patru numere cuprinse între 0 și 255. Aspectul adresei IP și al măștii de
subrețea diferă în modelul de biți. Masca de subrețea trebuie să conțină cele
consecutive.După atingerea unui zero, toți următorii biți trebuie să fie zero. Modelele de
biți sunt apoi potrivite până la adresa IP, iar partea de adresă care se potrivește cu cea a
măștii de subrețea es te desemnată ca prefix de rețea,care indică la ce subrețea este destinat
pachetul.Res tul adresei indică apoi ce calculator din subrețea este ținta exactă.
Subnet Mask Bit Pattern
Valid 255.255.255.128 11111111.11111111.11111111.10000000
Invalid 255.255.255.64 11111111.11111111.11111111.01000000
Tabel 1.1 Masca de subrețea validă și invalidă
Pagina | 24 Măștile de subrețea sunt adesea reprezentate de un slash (/) după adresa IP, urmată de
numărul celor din modelul de biți. De exemplu adresa ip 230.1 05.4.32 și subrețeaua
255.255.255.128 pot fi reprezentate ca 230.105.4.32/25. Din cauza modului în care măștile
de subrețea limitează numărul de biți din adresa IP pentru identificatorul gazdă, măștile de
subrețea pot indica numărul de gazde posibil dispon ibile pe o rețea.
De exemplu, o mască de subrețea 255.255.255.0 indică faptul că există maxim 256 de
gazde disponibile pentru subrețea. Măștile de subrețea permit, de asemenea, utilizarea
aceleiași adrese IP pentru diferite calculatoare; Adresele 2 30.105.4.32/20 și
230.105.4.32/24, în timp ce au aceeași adresă IP, indică două subrețele diferite și, astfel,
două calculatoare țintă diferite.
1.3 Despre Raspberry PI
Raspberry Pi este o serie de computere mici, single -board computers, dezvoltate în
Regatul Unit de către Fundația Raspberry Pi pentru a promova predarea informaticii de
bază în școli și în țările în curs de dezvoltare.
Toate modelele au un sistem Broadcom pe un chip (SoC), care include o unitate
centrală de procesare ARM (CPU) și o unitate de procesare grafică pe un chip (GPU,
VideoCore IV). Viteza procesorului variază de la 700 MHz la 1,2 GHz pentru modelul Pi 3
și o memorie de la 256 MB la 1 GB RAM. Card urile Secure Digital (SD) sunt utilizate
pentru a stoca sistemul de operare și memoria programată în dimensiunile SDHC sau
MicroSDHC. Cele mai multe plăci au între unu și patru sloturi USB, ieșire video HDMI și
compozit și o mufă audio de 3,5 mm. Nivelul d e ieșire inferior este furnizat de un număr de
pini GPIO care susțin protocoale comune. Modelele B au un port ethernet 8P8C, iar Pi 3și
Pi Zero W au la bord Wi -Fi 802.11n și Bluetooth.
Fundația furnizează Raspbian, o distribuție linux bazată pe Debian pent ru descărcare,
precum și Ubuntu terță parte, Windows 10 IOT Core, Risc OS și distribuții de centre media
Pagina | 25
specializate. Promovează Python și Scratch ca limbă principală de programare, cu suport
pentru multe alte limbaje de programare.
1.3.1 Diferențe între raspbe rry pi 2 și 3
Modelul raspberry pi 3 a fost înlocuit cu cip BCM 2836 ARMv7 Cortex la 900 MHz .
De asemenea modelul 3 oferă și conectivitate wireless WIFI 802.11n precum și
Bluetooth 4.1. Majoritatea diferențelor sunt din punct de vedere hardware iar aceste a pot
fi observate în figura 1.2 .
Figura 1.2 – Comparație modele raspberry
Pagina | 26
CAPITOLUL 2
2. Tehnici folosite și Definiții
Înainte de a discuta despre funcționarea interioară a proiectului, trebuie să se pronunțe
mai multe detalii în ceea ce privește testarea securității și programarea în general. În timp
ce unele sunt destul de comune pentru a nu necesita o definiție detaliată, altele ar putea fi
mai puțin cunoscute și înțelese.
2.1 Raspbian
Raspbian este un sistem de operare bazat pe Debian pentru computer -ul Raspberry
Pi. Din anul 2015 până în prezent este oficial oferită de Fundația Raspberry Pi ca sistem
principal de operare pentru familia computerelor single -board Raspberry Pi. Raspbian a
fost creat de Mike Thompson și Peter Green ca un proiect independent. Construcția inițială
a fost finalizată în iunie 2012. Sistemul de operare este încă în curs de dezvoltare activă.
Raspbian este foarte optimizat pentru procesoarele ARM cu performanțe r eduse ale liniei
Raspberry Pi.
Raspbian folosește PIXEL, Pi Improved Xwindows Environment, Lightweight ca
mediul de lucru principal al desktop -ului ca cea mai recentă actualizare. Este alcătuit dintr –
un mediu desktop LXDE modificat și managerul de ferestr e de stivuire OPENBOX cu o
temă nouă și câteva alte modificări. Distribuția este livrată cu o copie a programului de
calcul algebric Mathematica și o versiune a Minecraft numită Minecraft PI.
Pagina | 27 2.2 Netfilter
Netfilter este un cadru furnizat de kernel -ul linux care permite implementarea
diferitelor operațiunii legate de rețea sub formă de manageri personalizați. Netfilter oferă
diverse funcții și operații pentru filtrarea pachetelor, traducerea adreselor de rețea și
traducerea porturilor, care oferă funcționali tatea necesară pentru direcționarea pachetelor
printr -o rețea, precum și pentru a oferi posibilitatea de a interzice pachetelor să ajungă la
locații sensibile dintr -o rețea de calculatoare.
Netfilter reprezintă un set de cârlige în interiorul kernel -ului linux, permițând
modulelor kernel specifice să înregistreze funcțiile de apel invers cu stivă de rețea a kernel –
ului. Aceste funcții, de regulă aplicate traficului sub formă de reguli de filtrare și
modificare, sunt solicitate pentru fiecare pachet care tr aversează cârligul respectiv în stiva
de rețea.
2.2.1 IPTABLES
Modelele de kernel numite ip_tables, ip6_tables, arp_tables, iar ebtables sunt unele
dintre părțile semnificative ale sistemului de cârlig netfilter. Acestea oferă un sistem bazat
pe tabele pentru d efinirea regulilor de firewall care pot filtra sau transforma pachetele.
Tabelele pot fi administrate prin intermediul instrumentelor de user -space iptables,
ip6tables, arptables și ebtables. Observați că, deși atât modulele de kernel, cât și
instrumentele user-space au nume similare, fiecare dintre ele este o entitate diferită cu
funcționalitate diferită.
Fiecare tabel este de fapt propriul cârlig și fiecare tabel a fost introdus pentru a servi
unui scop specific. În ceea ce privește Netfilter, rulează un anumit tabel într -o anumită
ordine cu privire la alte tabele. Orice tabelă se poate apela și poate să -și execute propriile
reguli, ceea ce permite posibilități suplimentare de procesare și repetare.
Regulile sunt organizate în lanțuri, sau cu alte cuvinte ”lanțuri de reguli”. Aceste
lanțuri sunt denumite cu titluri predefinite, încluzând INPUT, OUTPUT și FORWARD.
Aceste titluri de lanț descriu originea stivei netfilter. Recepția pachetelor, de exemplu, se
Pagina | 28 încadrează în PREROUTING, în timp ce INPUT -ul reprez intă datele furnizate la nivel
local, iar traficul redirecționat cade în lanțul FORWARD. Producția generată local trece
prin lanțul OUTPUT, iar pachetele de trimis sunt în lanțul POSTROUTING. Modulele
netfilter care nu sunt organizate în tabele sunt capabi le să verifice originea pentru a-și alege
modul de funcționare.
Modulul iptable_raw
Când este încărcat, înregistrează un cârlig care va fi apelat înaintea
oricărui alt cârlig netfilter. Acesta oferă un tabel numit raw care poate fi
folosit pentru filtrarea pachetelor înainte de a ajunge la mai multe operații
care necesită memorie, cum ar fi urmărirea conexiunii.
Modulul iptable_mangle
Înregistrează un tabel de cârlig pentru a rula după urmărirea
conexiunii (dar înaintea oricărei altei tabele), astfel încât să se poată efectua
modificări în pachet. Acesta permite modificări suplimentare prin reguli care
urmează, cum ar fi NAT sau filtrarea ulterioară.
Modulul iptable_nat
Înregistrează două cârlige: transformările bazate pe DNAT (sau
Destination NAT) sunt aplicate înainte de cârligul de filtrare, după care se
aplică transformări bazate pe SNAT (pentru Source NAT). Tabelul NAT
(sau traducerea adresei de rețea) care este pus la dispoziția iptables este doar
o ”bază de date de configurare” numai pentru mapări NAT și nu este
destinată pentru filtrare de orice fel.
Modulul iptable_filter
Înregistrează tabela de filtrare, utilizată pentru filtrarea generală
(Firewalling).
Modulul security_filter
Pagina | 29 Controlul obligatoriu al accesului este implementat de modulele de
securitate linux cum ar fi SELinux. Tabela de securitate este apelată în urma
apelului din tabelul de filtrare, permițând ca orice regulă de control al
accesului discreționar (DAC) din tabela de filtrare să aibă efect înainte de
orice reguli MAC. Acest tabel oferă următoarele lanțuri încorporate: INPUT
(pentru pachetele care intră în computer însuși), OUTPUT (pentru
modificarea pachetelor generate local înainte de routare) și FORWARD
(pentru modificarea pachetelor direcționate prin calculator).
2.2.2 NFTABLES
Nftab les, ca un nou utilitar userspace este destinat să înlocuiască iptables, ip6tables,
arptables și ebtables. Motorul kernel nftables adaugă o mașină virtuală simplă în kernel -ul
linux, care este capabil să execute bytecode pentru a inspecta un pachet de rețe a și a lua
decizii cu privire la modul în care pachetul ar trebui să fie manipulat. Operațiile
implementate de această mașină virtuală sunt făcute în mod deliverat de bază: pot obține
date din pachetul propriu -zis, pot vizualiza metadatele asociate și pot gestiona datele de
urmărire a conexiunilor. Operatorii aritmetici, biți și comparatori pot fi utilizați pentru a lua
decizii pe baza acestor date. Mașina virtuală este, de asemenea, capabilă să manipuleze
seturi de date, permițând înlocuirea mai multor ope rații de comparare cu o căutare unică
setată. Principalele avantaje față de iptables usnt simplificarea kernel -ului ABI Linux,
reducerea duplicării codului, raportarea îmbunătățită a erorilor și execuția mai eficientă ,
stocarea și modificările incrementale are regulilor de filtrare.
2.3 ISCDHCP Server
ISC(Internet Systems Consortium ) este o organizație non -profit al cărui scopt este
dezvoltarea de software pentru Internet. Serverul DNS numit BIND și serverul DHCP sunt
cele mai cunoscute aplicații. De asemenea ambele aplicații se folosesc cel mai des ca
servere de DNS re spectiv de DHCP OpenSource. ISC DHCP reprezintă o suită de programe
care implementează toate aspectele protocolului DHCP definit în RFC2131.
Pașii urmați pentru instalarea ISC DHCP
Pagina | 30 1. Se descarcă sursele ultimei versiuni ISC DHCP de pe site -ul producătorului
Wget –c http://ftp.isc.org/isc/dhcp/dhcp -3.0.7.tar.gz
2. Decomprimarea și dezarhivarea
Tar –xzvf dhcp -3.0.7.tar.gz
3. Rularea scriptului configure care verifică sistemul și anume dacă acesta conține
toate componentele necesare compilării și instalării serverului DHCP
./configure
4. Compilarea
Make
5. Instalarea presupune doar mutarea fișierelor executabile rezultate în urma compilării
în directoarele corespunzătoare precum /sbin/, /usr/bin etc. Comanda poate fi
executată doar de root.
Make install
6. Configurarea serverului – Ca și în cazul celorlalte servere, configurarea serverului
dhcp presupune editarea catorva fisiere text de configurare. Serverul ISC DHCP
folosește 2 fișiere:
a. În fișierul /var/state/dhcp/dhcpd.l eases se păstrează informații despre
configurațiile închiriate deja clienților, leased time pentru fiecare. După
instalarea serverului fisierul /var/state/dhcp/dhcpd.leases nu există. El
trebuie creat manual.
Touch /var/state/dhcp/dhcpd.leases
b. Fișierul de configurare al serverului care este by default /etc/dhcpd.conf
Conținutul /etc/dhcpd.conf:
Authoritative;
# <- reprezintă un comentariu
Ddns -update -style interim;
Pagina | 31 #interim sau none. DHCPD face update la fișierul zona al clientului
de pe serverul DNS
#igno re client -updates;
#allow client -updates
Subnet 192.168.0.0 netmask 255.255.255.0 { #stabilește subnetul
pentru care va furniza servicii
Range 192.168.0.50 192.168.0.60; #range -ul de IP furnizat
Range 192.168.0.100 192.168.0.120; #un al doilea range
#allow unknown -clients;
Defa ult-lease -time 600; #lease time default daca clientul nu cere un
anumit timp
Max-lease -time 7200;
Option routers 192.168.0.1;
Option subnet -mask 255.255.255.0;
Option domain -name -servers 193.231.236.25, 193.231.236.30;
Option domain -name ” www.test.ro ”;
Host pc1 {
Hardware ethernet 00:03:47:F6:B0:44;
Fixed -address 192.168.0.125;
Option routers 192.168.0.10; #primește Default Gateway
diferit
}
}
Detalii fișier dhcpd.conf
Fiecare linie se termină cu ”;”
Sintaxa este extrem de sensibilă, orice caracter precum ; li psă
reprezintă o eroare fatală;
Semnul ”#” înseamnă comentariu;
Subnet 192.168.0.0 netmask 255.255.255.0 – se stabilește
subnetul din care serverul va furniza ip -uri
Pagina | 32 Range 192.168.0.50 192.168.0.60; – se stabilește rang e-ul din
care serverul va furniza ip -uri. În exemplul nostru primul
client va primi 192.168.0.50, al doilea 192.168.0.51 etc. Pot
exista mai multe directive range. Atenție! Ip -urile setate static
pe alte hosturi trebuie excluse;
Option router 192.168.0.1; – stabilește Default Gateway oferit
clienților;
Option subnet -mask 255.255.255.0; – stabilește masca rețelei
oferite clienților
Option domain -name ”pinglord.gov”; – stabileșteun domeniu
care va fi oferit clienților, aceștia făcând parte din el;
Dacă se dorește furnizarea unei configurații în funcție de
MAC -ul clientului, pentru FIECARE astfel de client în
fișierul de configurare al serverului și anume dhcpd.conf
trebuie să apară un container de tip host în care se specifică
MAC -ul precum și configurația oferită. Dacă nu se specificî
un anumit paramentru, clientul respectiv va primi serverele
DNS specificate în secțiunea globală;
Allow unknown -clients; – specifică dacă serverul va oferi
configurație clienților al căror MAC nu se găsește într -un
container d e tip host;
3. Pornire server
Rulează serverul în foreground cu trimiterea mesajelor de debug la consolă
Dhcpd –d –f
Opțiuni dhcpd:
o –cf file.conf #specificarea unui fișier de configurare alternativ
o –p port #specifică un alt port pe care să asculte serverul. By default
folosește portul UDP 67
o –t #testează fișierul de configurare fără a porni serverul
Pagina | 33 2.4 HOSTAPD
HostAPD -ul are la bază partea de autentificare și controlează conexiune wireless.
Pentru a putea instala această aplicație se execută comanda:
Sudo apt-get install hostapd
După instalarea aplicației se va creea fișierul /etc/hostapd/hostapd.conf
care are următorul conținut:
driver=nl80211
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
beacon_int=100
auth_algs=1
wpa_key_mgmt=WPA -PSK
ssid=TES TLicenta
channel=1
hw_mode=g
wpa_passphrase=scssvisualpos
interface=wlan0
wpa=2
wpa_pairwise=TKIP
country_code=AF
2.5 DNS MASQ
Funcționalitatea de Access Point are la bază două servicii în lipsa cărora nu se poate
accesa rețeaua de Internet: Serviciul de configurare dinamică a informațiilor IP (ISC
Pagina | 34 DHCP), precum și Serviciul de rezolvare a adreselor (DNS). Instalarea aplicației DN S se
face cu ajutorul următoarei comenzi:
sudo apt -get install dnsmasq
Aplicația se va instala în fișierul /etc și are următorul conținut
Interface=wlan0
Listen address=10.10.88.1
Server=8.8.8.8
Domain -needed
Dhcp -range=10.10.88.1,10.10.88.253.12h
2.6 PHP
PHP este un limbaj de programare ce provine din limba engleză (Hypertext
Preprocessor). Acesta este folosit pentru a putea dezvolta paginile și aplicațiile web. Acest
limbaj de programare are următoarele caracteristici:
Familiaritate
Simplitate
Eficiență
Securitate
Flexibilitate
Gratuitate
Pagina | 35
CAPITOLUL 3
3. Implementarea Aplicației
Raspberry Smart WIFI
3.1 Instalarea sistemului de operare – linux
Pentru instalarea sistemului de operare s -a folosit un card microSD pe care
s-a instalat Raspbian (sistem de operare oficial al celor care au dezvoltat Raspberry).
Instalarea acestuia s -a efectuat prin descărcarea acestuia de pe site -ul:
https:// www.raspberrypi.org/downloads/raspbian
3.2 Implementarea aplicației software
Aplicația a fost implementată folosind limbajul php. Accesarea aplicației se
face prin intermediul datelor de autentificare dintr -un fișier. Parola de acces este criptată .
<?php
$date = array(
'admin_user' => 'admin',
'admin_pass'=>
'$2y$10$YKIyWAmnQLtiJAy6QgHQ.eCpY4m.HCEbiHaTgN6.acNC6bDElzt.i'
Pagina | 36
);
if ( $detalii_autentificare = fopen(WIFI _CONFIG.'/raspap.auth', 'r') ) {
$date ['admin_u ser'] = trim(fgets($detalii_autentificare ));
$date ['admin_p ass'] = trim(fgets($detalii_autentificare ));
fclose($detalii_autentificare );
}
?>
3.2.1 Afișarea informațiilor din dashboard
Pagina | 37
Pagina | 38
Pagina | 39
Pagina | 40
Pagina | 41
3.2.2 Configurarea Ip -urilor
Pagina | 42
Pagina | 43
Pagina | 44
Pagina | 45
Pagina | 46
Pagina | 47
Pagina | 48
Pagina | 49
Pagina | 50 3.2.3 Setări Firewall
<?php
include_once( 'includes/status_messages.php' );
function AfisareFirewall (){
?>
<?php
if(isset($_POST["ipblock"])){
shell_exec("sudo iptables -A INPUT -s"." ".$_POST["ipblock"]." "." -j DROP"); // se
execută comanda de linux pentru blocarea ip -ului introdus
}else{
}
if (isset($_POST['blocheaza_ip'])) {
$status ->addMessage('Adresă IP blocată', 'info');
}
if(isset($_POST["unblockip"])){
shell_exec("sudo iptables -D INPUT -s"." ".$_POST["unblockip"]." "." -j DROP");
}else{
}
if (isset($_POST['UNBLOCKIP'])) {
$status ->addMessage('Adresă IP deblocată', 'info');
}
if(isset($_POST["blockport"])){
shell_exec("sudo iptables -A INPUT -p tcp –destination -port"." ".$_POST["blockport"]."
"."-j DROP");
}else{
Pagina | 51
}
if (isset($_POST['BLOCKPORT'])) {
$status ->addMessage('Port Blocat', 'info');
}
if(isset($_POST["unblockport"])){
shell_exec("sudo iptables -D INPUT -p tcp –destination -port"."
".$_POST["unblockport"]." "." -j DROP");
}else{
}
if (isset($_POST['UNBLOCKPORT'])) {
$status ->addMessage('Port Deblocat', 'info');
}
if (isset($_POST['BLOCKPING'])) {
shell_exec("sudo iptables -A INPUT -p icmp –icmp -type echo -request -j DROP");
$status ->addMessage('Ping -ul este blocat', 'info');
}
if (isset($_POST['UNB LOCKPING'])) {
shell_exec("sudo iptables -D INPUT -p icmp –icmp -type echo -request -j DROP");
}}
3.2.4 Afișarea informațiilor despre siste
Pagina | 52
Pagina | 53
Pagina | 54
Pagina | 55
Pagina | 56
CAPITOLUL 4
Prezentarea și utilizarea aplicației
Raspberry Smart WIFI
Lansarea în execuție a aplicației se face prin accesarea ip -ului router -ului printr -un
browser. Dacă legătura se face cu succes, atunci aplicația va permite utilizatorului
introducerea numelui de utilizator și a parolei aferente acestuia. Dacă datele intro duse sunt
corecte, logarea se va face cu succes. În caz contrar va fi afișat un mesaj de eroare. Odată
logat, utilizatorul va fi redirecționat către pagina de dashboard (Figura 4.1 ) unde sunt
afișate următoarele informații:
1. Informații Interfață
a. Interfață
b. Adresă IP – Adresa de gateway
c. SubnetMask – Masca de rețea
d. Adresă MAC – Adresa Mac a dispozitivului (raspberry)
e. Pachete primite – Numărul pachetelor de date dintre clienți
f. Bytes Primiți
g. Pachete Trimise
h. Bytes Transferați
2. Informații WAN
a. Adresă IP – Adresa WAN
b. Netmask – Masca de rețea
c. Adresă broadcast
Pagina | 57
d. Adresă MAC
e. Pachete trimise
f. Pachete primite
Actualizarea acestor informații se face prin apă sarea butonului Reîmprospătare.
FIGURA 4.1 – Dashboard
În partea stângă a paginii se află meniul aplicației. Prin accesarea acestor pagini se
poate face configurările necesare cum ar fi: serviciul dhcp, serviciul hostapd (hotspot)
precum si configurările de securitate (blocare/deblocare ip, blocare/deblocare port -uri,
blocare/deblocare ping request).
FIGURA 4.2 – Meniu
Pagina | 58
În pagina configurare hotspot se vor face configurările de wireles s. În tab -ul
General (Figura 4.3 ) se selectează interfața wireless (wlan0), SSID -ul pe care se vor
conecta clienții, Modul Wireless, precum și canalul pe care se va emite SSID -ul. În tab -ul
Securitate (Figura 4.4 ) se introduce parola, tipul de criptare precum și tipul de securitate al
SSID-ului pe care l -am configurat mai devreme. În tab -ul Avansat (Figura 4.5) se introduce
țara. Pentru salvarea modificărilor se apasă butonul Salvare. Butonul Oprire Hotspot
oprește serviciul hostapd – serviciu care se ocupă de partea wireless (emiterea SS ID-ului).
Dacă acest serviciu este oprit clienții nu se mai pot conecta la rețeaua definită.
Figura 4.3 – Hotspot General
Figura 4.4 – Hotspot Securitate
Pagina | 59
Figura 4.5 – Hotspot Avansat
De asemenea în aplicație se poate configura și serviciul dhcp. În această ramură
există două tab -uri (Setări și Listă Clienți).
În tab -ul Setări (Figura 4.6 ) se introduc datele ce vor fi preluate de serviciul isc –
dhcp care se va ocupa de routare. În form -ul prima adresă ip se introduce adresa ip ce este
va fi repreze ntată de gateway. Ultima adresă ip va fi ultima adresă pe care serviciul isc –
dhcp o va atribui clienților. Ultima adresă ip nu reprezintă adresa de broadcast. Adresa de
broadcast va fi adresa ip introdusă în form -ul Ultima adresă IP incrementată cu unu. Le ase
time reprezintă intervalul la care tabelul în care se află lista cu ip -urile clienților în funcție
de mac address se va reseta. Cu alte cuvinte dacă un client are adresa ip 10.10.88.5 după
intervalul setat în câmp i se va atribui o altă adresă.
Figura 4.6 – DHCP
Pagina | 60
Datele pentru autentificarea în aplicație se țin într -un fișier, iar parola este criptată.
Pentru modificarea datelor de conectare se accesează pane -ul Date autentificare (Figura
4.7). Aici se introduc numele de utilizator (în cazul nostru ”admi n”), parola veche (în cazul
în care parola veche este introdusă greșit va apărea un mesaj de avertizare), parola nouă
(noua parola pe care o dorim) și repetarea noii parole (de asemenea dacă parola nouă nu
corespunde cu parola introdusă în câmpul de mai su s va apărea un mesaj de avertizare) .
După completarea noilor date se apasă butonul ”Salvare”. În momentul în care se salvează
noile date aplicația va face delogare automat utilizatorului. Acesta va fi nevoit să introducă
noile date de autentificare pentru a putea accesa aplicația (Figura 4.8) .
Figura 4.7 – Date Autentificare
Figura 4.8 – Autentificare
Pagina | 61
Pentru setările de firewall se accesează pane -ul ”Fi rewall”(F igura 4.9 ). Aici putem
face blocare și deblocare de ip -uri, blocare/deblocare port -uri, blocare/deblocare ping.
Blocarea de ip -uri se folosește în cazul în care unul dintre utilizatori este rău
intenționat și dorește să accese alte device -uri conectate la aceeași rețea. Prin blocarea ip –
ului unui utilizator se interzice acces -ul acestuia la rețea și nu poate face comunica cu nici
un dispozitiv. Pentru a putea debloca un ip se introduce ip -ul dorit după care se apasă
butonul ”Deblocare IP”.
Serviciul care se ocupă cu blocare/deblocarea de ip -uri și port -uri precum și
blocare/deblocarea ping e ste IPTABLES.
Figura 4.9 – Firewall
În ultimul panel al aplicației se pot vizualiza informațiile despre dispozitiv. Numele
și modelul dispozitivului precum și uptime -ul. De asemenea există și trei butoane (Figura
4.10):
1. Restart – execută comanda din linux pentru restartarea dispozitivului
2. OPRIRE – execută comanda din linux pentru oprirea dispozitivului
3. Reîmprospătare – execută comanda din linux pentru a face refresh la
informațiile cu privire la dispozitiv
Pagina | 62
Tot în această ferestră se regăsesc și două progre s bar -uri. Unul pentru folosirea
memorie și unul pentru folosirea procesorului.
Figura 4.10 – Informații Sistem
Pagina | 63
CONCLUZII
Lucrarea susținută prezintă procesul de dezv oltare a unei aplicații web pentru
ușurarea utilizatorilor cu privire la securitatea și implementarea unei rețele wifi locale
private. De asemenea utilizarea aplicației necesită cunoștințe minime cu privire la
administrarea unei rețele f ără a -i afișa informații pe care utilizatorul nu le poate înțelege .
Versiune prezentată a aplicației nu este una finală. Aceasta poate fi îmbunătățită
prin adăugarea unor noi funcții pentru ridicarea procesului de securitate. Aceste
îmbunătățiri sunt enumerate mai jos. Cu toate acestea, aplicația oferă o securitate de bază și
o gestiune minimă pentru controlul device -urilor din rețea fără riscuri de securitate .
1. Posibilități de dezvoltare ale aplicației
Vom enumera în continuare câteva din posibilitățile de dezvoltare ale aplicației pe care
aș vrea să le implementez într -o versiune viitoare:
a. Implementarea unei conexiunii 3g pentru portabilitatea dispozitivului
precum și o variantă de backup a conexiunilor de internet
b. Implementarea unei baza de date pentru crearea unor mai mulți utilizatori ce
vor ave a drepturi doar la anumite funcții ale aplicației
c. Implementarea opțiunii de vpn pentru ridicarea nivelului de securitatea
d. Implementarea opțiunii VLAN pentru diversificarea rețelelor
Pagina | 64 2. Contribuții personale
Ca și contribuții personale aduse lucrării p rezentate voi enumera câteva dintre ele, cele
mai importante în dezvoltarea aplicației:
a. Analiza, proiectarea și implementarea unei aplicații pentru gestionarea
rețelelor dar și securizarea acestora
b. Oferirea unui ghid de utilizare și a unei prezentări destu l de detaliate a
aplicației astfel încât să poată fi înțeleasă mai bine de utilizatori
Pagina | 65
Referințe Bibliografice
[1] Raspberry PI Model 3 documentation. http://raspberrypi.org/documentation/ [accesat 15
iulie 2017]
[2] W.Jason Gilmore. Beginning PHP and MySQL From Novice to Professional. 2010
[3] Jason Lengstorf. PHP for Absolute Beginners. Septembrie 2009
[4] Cisco Courses. Routing and Switching
[5] Blocarea adreselor ip in linux. https://www.cyberciti.biz/faq/linux -iptables -drop/ [accesat 14
august 2017]
[6] Drepturi useri in linux pentru modificarea
fisierelor. https://www.raspberrypi.org/forums/viewtopic.php?t=39889 [accesat 22 august 2017]
[7] Drepturi useri in linux pentru modificarea fisierelor
http://www.dummies.com/computers/raspberry -pi/working -with -file-permissions -on-your –
raspberry -pi/ [accesat 16 august 2017]
[8] Comenzi copier fisiere in linux.
https://www.raspberrypi.org/forums/viewtopic.php?f=26&t=22068 [accesat 16 august 2017]
[9] E. Petac, B. Musat – Retele de calculatoare. Studii experimentale , Editura Crizon, Constanta,
2012.
[10] Richar d Fox. Linux with Operating System Concepts , Editura Taylor&Francis, 2014
[11] Richard Fox. Linux with Operating System Concepts , Editura Taylor&Francis, 2014
[12] Răzvan Rughiniș, Răzvan Deaconescu, Andrei Ciorba, Bogdan Doinea. Rețele Locale, Editura
Printech
[13] Răzvan Rughiniș, Răzvan Deaconescu, George Milescu, Mircea Bardac. Introducere în sisteme
de operare, Editura Printech
[14] Ioan -Cosmin Mihai . Securitatea Informațiilor, Editura Sitech, 2012
[15] Ramón J. HONTANON . Securitate în Linux, Editura Teora, 2005
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Conf . Univ. D r. Eugen Petac [613312] (ID: 613312)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
