Razumevanje Mrežnih Protokola
Mrežni protokol predstavlja skup pravila koja uređaji koriste kako bi međusobno komunicirali unutar mreže. Zamislite to kao određeni kodeks ponašanja i procedure koje ljudi prate tokom razgovora.
Ovi protokoli definišu različite aspekte komunikacije, od strukture paketa podataka, načina identifikacije uređaja, do rešavanja grešaka i konflikata.
Mrežni protokoli se mogu svrstati u tri osnovne kategorije: protokole za komunikaciju, bezbednost i upravljanje.
#1. Komunikacijski Protokoli
Ovi protokoli su usmereni na omogućavanje razmene podataka i informacija između uređaja unutar mreže. Oni određuju kako se podaci formatiraju, šalju i primaju, čime se obezbeđuje efikasna komunikacija. Neki od primera su HTTP/HTTPS, FTP, TCP i UDP.
#2. Bezbednosni Protokoli
Bezbednosni protokoli su razvijeni da zaštite poverljivost i autentičnost podataka koji putuju kroz mrežu. Oni uspostavljaju sigurne kanale za komunikaciju i obezbeđuju da osetljive informacije ne budu izložene presretanju ili zloupotrebi.
Primeri uključuju SSL/TLS za šifrovanje, SSH za siguran daljinski pristup i sigurne verzije protokola e-pošte kao što su SMTPS i POP3S.
#3. Protokoli Upravljanja
Protokoli upravljanja se koriste za administraciju, praćenje i kontrolu mrežnih uređaja i resursa. Oni pomažu mrežnim administratorima da efikasno konfigurišu i rešavaju probleme sa mrežnim komponentama.
U ovu kategoriju spadaju DHCP za dinamičku dodelu IP adresa, SNMP za upravljanje mrežnim uređajima, ICMP za dijagnostičke svrhe i BGP za informacije o rutiranju i dostupnosti.
Hajde da detaljnije razmotrimo neke uobičajene protokole iz svake kategorije.
Komunikacijski Protokoli
HTTP
HTTP (Hypertext Transfer Protocol) je temeljni protokol za komunikaciju između web pregledača i servera.
To je protokol aplikativnog sloja koji funkcionise na vrhu OSI modela.
Kada unesete URL u svoj web pregledač i pritisnete enter, pregledač šalje HTTP zahtev web serveru, koji zatim obrađuje taj zahtev i vraća HTTP odgovor sa traženim informacijama.
Ove informacije mogu biti web stranice, slike, video snimci ili bilo koji drugi resurs koji se nalazi na serveru.
HTTP je protokol bez stanja, što znači da se svaki zahtev od klijenta ka serveru tretira kao zasebna i izolovana transakcija.
Server ne čuva nikakve informacije o prethodnim zahtevima od istog klijenta. Ova jednostavnost je jedan od razloga široke upotrebe HTTP-a.
HTTP definiše različite metode zahteva, kao što su GET (za preuzimanje podataka), POST (za slanje podataka na obradu), PUT (za ažuriranje resursa), DELETE (za uklanjanje resursa), i druge. Ove metode određuju vrstu operacije koju klijent želi da izvrši na serveru.
HTTP odgovori obično sadrže statusni kod koji ukazuje na ishod zahteva.
Na primer, statusni kod 200 označava uspešan zahtev, dok 404 znači da traženi resurs nije pronađen.
HTTP je tokom godina doživeo nekoliko verzija, pri čemu je HTTP/1.1 najčešće korišćena verzija već duže vreme.
HTTP/2 i HTTP/3 (takođe poznat kao QUIC) su razvijeni radi poboljšanja performansi.
HTTPS
HTTPS (Hypertext Transfer Protocol Secure) je proširenje HTTP protokola koji se koristi za bezbednu komunikaciju preko računarskih mreža.
On dodaje sloj sigurnosti standardnom HTTP protokolu šifrovanjem podataka koji se razmenjuju između pregledača i web servera koristeći kriptografske protokole kao što su SSL/TLS. Na ovaj način, čak i ako neko presretne prenos podataka, neće moći lako da ga pročita ili dešifruje.
HTTPS uključuje oblik autentifikacije servera.
Kada se pregledač poveže na web lokaciju putem HTTPS-a, web lokacija predstavlja digitalni sertifikat koji je izdao pouzdan izdavalac sertifikata (CA).
Ovaj sertifikat potvrđuje identitet web lokacije, čime se osigurava da se klijent povezuje sa predviđenim serverom, a ne sa zlonamernim serverom.
Web lokacije koje koriste HTTPS se identifikuju pomoću „https://“ na početku njihove URL adrese. Upotreba ovog prefiksa ukazuje na to da web lokacija koristi sigurnu vezu.
HTTPS obično koristi port 443 za komunikaciju, dok HTTP koristi port 80. Web serveri mogu lako da razlikuju bezbedne i nebezbedne veze koristeći ovu razliku.
Pretraživači kao što je Google daju prednost web lokacijama koje koriste HTTPS u svom rangiranju pretrage.
Pretraživači takođe mogu da upozore korisnike kada bezbedna HTTPS web stranica sadrži elemente (slike ili skripte) koji se serviraju preko nezaštićene HTTP veze. Ovo je poznato kao „mešoviti sadržaj“ i može ugroziti bezbednost.
Za više informacija o tome kako dobiti SSL sertifikat za web lokaciju, slobodno posetite odgovarajuću stranicu.
FTP
Protokol za prenos datoteka (FTP) je standardni mrežni protokol koji se koristi za prenos datoteka između klijenta i servera u računarskoj mreži.
FTP radi po modelu klijent-server. To znači da klijent uspostavlja vezu sa drugim računarom (serverom) kako bi zatražio i preneo datoteke.
FTP koristi dva porta za komunikaciju i može raditi u dva režima: aktivni i pasivni režim.
Port 21 se koristi za kontrolnu vezu gde se komande i odgovori razmenjuju između klijenta i servera.
Aktivni režim je tradicionalni režim koji radi na principu klijent-server modela. Ovde se otvara dodatni port (obično u opsegu 1024-65535) za prenos podataka.
Pasivni režim se, s druge strane, često koristi kada se klijent nalazi iza zaštitnog zida ili NAT uređaja, a server otvara nasumični port visokog broja za prenos podataka.
FTP obično zahteva autentifikaciju za pristup datotekama na serveru. Korisnici moraju da unesu korisničko ime i lozinku za prijavu.
Neki FTP serveri takođe podržavaju anonimni pristup. U tom slučaju, korisnici se mogu prijaviti pomoću generičkog korisničkog imena kao što je „anonymous“ ili „FTP“ i koristiti svoju adresu e-pošte kao lozinku.
FTP podržava dva načina prenosa podataka: ASCII režim i binarni režim.
ASCII režim se koristi za tekstualne datoteke, a binarni režim za netekstualne datoteke, kao što su slike i izvršne datoteke. Režim se podešava na osnovu tipa datoteke koja se prenosi.
Tradicionalni FTP nije bezbedan protokol jer prenosi podatke, uključujući korisnička imena i lozinke, u običnom tekstu.
Sigurni FTP (SFTP) i FTP preko SSL/TLS (FTPS) su sigurnije alternative koje šifruju prenos podataka radi zaštite osetljivih informacija.
Za detaljnije poređenje SFTP i FTPS protokola, pogledajte odgovarajući članak.
TCP
Protokol za kontrolu prenosa (TCP) je jedan od glavnih protokola transportnog sloja u IP paketu.
On ima glavnu ulogu u obezbeđivanju pouzdanog i uređenog prenosa podataka između uređaja preko IP mreža.
TCP uspostavlja vezu između pošiljaoca i primaoca pre nego što započne bilo kakav prenos podataka. Ovo uspostavljanje veze uključuje trosmerno rukovanje (SYN, SYN-ACK, ACK) i proces prekida veze kada je razmena podataka završena.
Takođe podržava full-duplex komunikaciju koja omogućava da se podaci šalju i primaju istovremeno u oba smera unutar uspostavljene veze.
TCP prati mrežne uslove i prilagođava brzinu prenosa kako bi izbegao zagušenje mreže.
Ovaj protokol uključuje mehanizme za proveru grešaka radi otkrivanja i ispravljanja oštećenja podataka tokom prenosa. Ako se utvrdi da je segment podataka oštećen, prijemnik zahteva ponovni prenos.
TCP koristi brojeve portova za identifikaciju određenih servisa ili aplikacija na uređaju. Brojevi portova pomažu u usmeravanju dolaznih podataka do odgovarajuće aplikacije.
Prijemnik u TCP vezi šalje potvrde (ACK) da potvrdi prijem segmenata podataka. Ako pošiljalac ne primi ACK u određenom vremenu, ponovo prenosi segment podataka.
TCP održava informacije o stanju veze i na strani pošiljaoca i na strani primaoca. Ove informacije pomažu u praćenju redosleda segmenata podataka i upravljanju vezom.
IP
IP (Internet Protocol) je osnovni protokol koji omogućava komunikaciju i razmenu podataka unutar računarskih mreža, uključujući globalnu mrežu koju poznajemo kao internet.
IP koristi sistem numeričkog adresiranja za identifikaciju uređaja unutar mreže. Ove numeričke adrese se nazivaju IP adresama i mogu biti IPv4 ili IPv6.
IPv4 adrese su obično u obliku četiri skupa decimalnih brojeva (npr. 192.168.1.1), dok su IPv6 adrese duže i koriste heksadecimalni zapis.
IP usmerava pakete podataka između uređaja u različitim mrežama.
Ruteri i svičevi igraju glavnu ulogu u usmeravanju ovih paketa ka njihovim predviđenim odredištima na osnovu njihovih IP adresa.
IP generalno koristi metodologiju komutacije paketa. To znači da se podaci razbijaju u manje pakete za prenos preko mreže. Svaki paket sadrži izvornu i odredišnu IP adresu, što omogućava ruterima da donose odluke o prosleđivanju.
IP se smatra protokolom bez veze. On ne uspostavlja posvećenu vezu između pošiljaoca i primaoca pre prenosa podataka.
Svaki paket se tretira nezavisno i može ići različitim rutama do svog odredišta.
UDP
UDP (User Datagram Protocol) je lagan i bez veze protokol koji pruža način za slanje podataka preko mreže bez uspostavljanja formalne veze.
Za razliku od TCP protokola, UDP ne uspostavlja vezu pre slanja podataka. Jednostavno pakuje podatke u datagrame i šalje ih na odredište.
Ne garantuje isporuku podataka i ne implementira mehanizme za otkrivanje i ispravljanje grešaka. Ako se paket izgubi ili stigne van reda, na aplikativnom sloju je da to reši.
UDP ima manje troškove od TCP-a jer ne uključuje funkcije kao što su kontrola toka, ispravljanje grešaka ili potvrde. To ga čini bržim, ali manje pouzdanim.
Takođe nema ugrađene mehanizme za kontrolu zagušenja, što znači da je moguće preplaviti mrežu UDP saobraćajem, što može dovesti do zagušenja.
UDP se obično koristi u situacijama kada su mala latencija i brz prenos podataka važniji od garantovane isporuke. Neki od uobičajenih primera su audio i video streaming u realnom vremenu, online igre, DNS i neke IoT aplikacije.
Najbolja karakteristika UDP-a je njegova mogućnost multipleksiranja. On omogućava da više aplikacija na istom uređaju koristi isti UDP port, što razlikuje tokove podataka pomoću brojeva portova.
Hajde da razumemo UDP na jednostavnom primeru.
Zamislite da želite da pošaljete poruku svom prijatelju preko bučnog igrališta koristeći skakutavu loptu. Odlučujete se za UDP, što je kao da bacite loptu bez formalnog razgovora. Evo kako to funkcioniše:
- Napišete svoju poruku na komad papira i umotate je oko lopte.
- Bacate loptu u pravcu svog prijatelja. Ne čekate da je vaš prijatelj uhvati ili potvrdi da ju je primio; samo je bacite i nadate se da će je uhvatiti.
- Lopta se odbija i stiže do vašeg prijatelja, koji pokušava da je uhvati. Ali ponekad se, zbog buke, može odbiti od njihove ruke ili stići van reda.
- Vaš prijatelj čita poruku na papiru, i ako je uspešno uhvatio loptu, dobija poruku. Ako ne, možda je propusti, a vi to nećete znati jer niste imali način da proverite.
U ovom primeru:
Lopta predstavlja UDP protokol, koji šalje podatke bez uspostavljanja formalne veze.
Slanje lopte bez čekanja na odgovor je kao da je UDP bez veze i ne osigurava isporuku.
Mogućnost da lopta odskoči ili se izgubi simbolizuje nedostatak pouzdanosti u UDP-u.
Vaš prijatelj koji čita poruku je poput aplikativnog sloja koji rukuje podacima primljenim preko UDP-a, koji se može baviti bilo kojim podacima koji nedostaju.
Bezbednosni Protokoli
SSH
SSH (Secure Shell) je mrežni protokol koji se koristi za bezbednu komunikaciju između klijenta i servera preko nezaštićene mreže. On pruža način za daljinski pristup i upravljanje uređajima preko interfejsa komandne linije sa visokim nivoom bezbednosti.
SSH koristi kriptografske tehnike za autentifikaciju i klijenta i servera. To osigurava da se povezujete sa ispravnim serverom i da server može da potvrdi vaš identitet pre nego što vam odobri pristup.
Svi podaci koji se prenose preko SSH veze su šifrovani, što otežava presretanje i praćenje razmene podataka.
Izvor slike: Stackoverflow
SSH koristi par ključeva za autentifikaciju. Par ključeva se sastoji od javnog ključa (koji se deli sa serverom) i privatnog ključa (koji čuvate u tajnosti).
Za detalje o funkcionisanju, pogledajte članak o SSH prijavljivanju bez lozinke.
Kada se povežete na SSH server, vaš klijent koristi vaš privatni ključ da dokaže vaš identitet.
Pored toga, SSH takođe podržava tradicionalnu autentifikaciju korisničkim imenom i lozinkom. Međutim, ovo je manje bezbedno i često se ne preporučuje, posebno za servere koji su izloženi internetu.
SSH podrazumevano koristi port 22 za komunikaciju, ali to se može promeniti iz bezbednosnih razloga. Promena broja porta može pomoći u smanjenju automatizovanih napada.
SSH se obično koristi za daljinsku administraciju servera, prenos datoteka (sa alatima kao što su SCP i SFTP) i siguran pristup interfejsima daljinske komandne linije.
Široko se koristi u administraciji operativnih sistema sličnih Unix-u, a dostupan je i na Windows-u putem različitih softverskih rešenja.
SMTP
SMTP (Simple Mail Transfer Protocol) je standardni protokol odgovoran za slanje odlaznih poruka e-pošte sa klijenta ili servera e-pošte na server e-pošte na strani primaoca.
SMTP je osnovni deo komunikacije putem e-pošte i radi u kombinaciji sa drugim protokolima e-pošte, kao što su IMAP/POP3, kako bi omogućio kompletan životni ciklus e-pošte, uključujući slanje, primanje i čuvanje poruka e-pošte.
Kada sastavite poruku e-pošte i kliknete na „pošalji“ u svom klijentu e-pošte, on koristi SMTP da prenese poruku na server vašeg dobavljača e-pošte.
SMTP koristi port 25 za nešifrovanu komunikaciju i port 587 za šifrovanu komunikaciju (koristeći STARTTLS). Port 465 se takođe koristio za šifrovanu SMTP komunikaciju, ali je manje uobičajen.
Mnogi SMTP serveri zahtevaju autentifikaciju za slanje e-pošte kako bi sprečili neovlašćeno korišćenje. Koriste se metode autentifikacije kao što su korisničko ime i lozinka ili sigurnije metode kao što je OAuth.
Ovi SMTP serveri se često koriste kao releji, što znači da prihvataju odlazne poruke e-pošte od klijenata (npr. vaše aplikacije za e-poštu) i prosleđuju ih na server e-pošte primaoca. Ovo pomaže u usmeravanju e-pošte preko interneta.
Komunikacija se može obezbediti šifrovanjem putem TLS-a ili SSL-a, posebno kada se šalju osetljive ili poverljive informacije putem e-pošte.
Protokoli Upravljanja
POP3
POP3 (Post Office Protocol version 3) je jedan od najčešćih protokola za preuzimanje e-pošte koji se koristi za preuzimanje e-poruka sa servera e-pošte u aplikaciju klijenta e-pošte.
POP3 je dizajniran da radi na način „spremi i prosledi“. On preuzima e-poštu sa servera i obično ih briše sa servera nakon što sačuva kopiju na uređaju klijenta.
Neki klijenti e-pošte pružaju opciju da ostave kopiju e-pošte na serveru, ali to nije podrazumevano ponašanje.
POP3 koristi port 110 za nešifrovanu komunikaciju. Port 995 se obično koristi za sigurnu POP3 komunikaciju pomoću TLS/SSL.
POP3 je protokol bez stanja. To znači da ne prati e-poruke koje ste već preuzeli. Svaki put kada se povežete sa serverom, on preuzima sve nepročitane poruke. To može dovesti do problema sa sinhronizacijom ako pristupate e-pošti sa više uređaja.
POP3 je prvenstveno dizajniran za preuzimanje e-pošte iz prijemnog sandučeta. Možda ne podržava preuzimanje e-poruka iz drugih fascikli na serveru, kao što su poslate stavke ili nacrti.
Pošto POP3 ne sinhronizuje fascikle e-pošte između servera i klijenta, radnje preduzete na jednom uređaju (npr. brisanje e-pošte) neće se odraziti na druge uređaje.
Preporučuje se korišćenje sigurne verzije POP3 (POP3S ili POP3 preko SSL/TLS), koja šifruje komunikaciju između klijenta e-pošte i servera radi poboljšanja bezbednosti.
POP3 se danas ređe koristi u poređenju sa IMAP-om (Internet Message Access Protocol). IMAP pruža naprednije funkcije, kao što je sinhronizacija fascikli, i omogućava više uređaja da efikasnije upravljaju istim poštanskim sandučićem.
BGP
BGP (Border Gateway Protocol) je standardizovani spoljni protokol mrežnog prolaza koji se koristi u umrežavanju za razmenu informacija o rutiranju i dostupnosti između autonomnih sistema (AS).
Autonomni sistem je skup IP mreža i rutera pod kontrolom jedne organizacije koja predstavlja zajedničku politiku rutiranja na internetu.
BGP je protokol za vektor putanje. To znači da prati putanju (listu autonomnih sistema) koju paketi podataka prolaze da bi stigli do svog odredišta. Ove informacije pomažu BGP ruterima da donose odluke o rutiranju na osnovu smernica i atributa putanje.
Primarno se koristi za određivanje najboljeg puta kojim podaci prolaze kada prelaze više mreža kojima upravljaju različite organizacije ili ISP-ovi.
BGP takođe podržava agregaciju ruta, što pomaže u smanjenju veličine globalne tabele rutiranja sumiranjem više IP prefiksa u jednu najavu rute.
BGP protokol koristi različite mehanizme za sprečavanje petlji rutiranja, uključujući upotrebu atributa AS path i split-horizon pravila.
BGP se koristi i na javnom internetu i u privatnim mrežama.
Na javnom internetu se koristi za razmenu informacija o rutiranju između ISP-ova i velikih mreža. U privatnim mrežama se koristi za interno rutiranje i povezivanje na internet preko graničnog rutera.
DHCP
DHCP (Dynamic Host Configuration Protocol) se koristi za automatsko dodeljivanje IP adresa i drugih podešavanja mrežne konfiguracije uređajima na TCP/IP mreži.
DHCP proces generalno uključuje četiri glavne faze:
DHCP Discover
Kada se uređaj pridruži mreži, on šalje DHCP Discover emitovanu poruku da pronađe dostupne DHCP servere.
DHCP Offer
DHCP serveri na mreži odgovaraju na poruku DHCP Discover sa DHCP ponudom. Svaki server pruža IP adresu i povezane opcije konfiguracije.
DHCP Request
Uređaj bira jednu od DHCP ponuda i šalje poruku DHCP Request izabranom serveru, tražeći ponuđenu IP adresu.
DHCP Acknowledgment
DHCP server potvrđuje zahtev tako što šalje poruku DHCP Acknowledgment, čime potvrđuje dodelu IP adrese.
Hajde da razumemo princip rada DHCP-a na jednostavnom primeru.
Zamislite da imate kućnu Wi-Fi mrežu i želite da se vaši uređaji (kao što su telefoni i laptopovi) povežu na nju bez ručnog podešavanja mrežnih postavki svakog uređaja. Tu na scenu stupa DHCP:
- Recimo da se vaš pametni telefon upravo pridružio vašoj kućnoj Wi-Fi mreži.
- Pametni telefon šalje poruku koja kaže: „Hej, ja sam nov ovde. Može li neko da mi da IP adresu i druge detalje o mreži?“
- Vaš Wi-Fi ruter, koji deluje kao DHCP server, čuje zahtev. On odgovara: „Naravno, imam dostupnu IP adresu, a evo i drugih mrežnih podešavanja koja su vam potrebna – kao što su maska podmreže, podrazumevani mrežni prolaz i DNS server.“
- Pametni telefon prihvata ove informacije i automatski se konfigurise sa dodeljenom IP adresom i mrežnim podešavanjima.
Pametni telefon je sada spreman da koristi internet i komunicira sa drugim uređajima na vašoj kućnoj mreži.
ICMP
ICMP (Internet Control Message Protocol) je protokol mrežnog sloja koji se koristi u IP paketu da omogući komunikaciju i pruži povratne informacije o statusu mrežnih operacija.
ICMP se uglavnom koristi za prijavljivanje grešaka i pružanje dijagnostičkih informacija u vezi sa obradom IP paketa.
Na primer, ako ruter naiđe na problem prilikom prosleđivanja IP paketa, generiše ICMP poruku o grešci i šalje je nazad izvoru paketa.
Uobičajene ICMP poruke o grešci uključuju „Destination Unreachable“, „Time Exceeded“ i „Parameter Problem“.
Jedna od najpoznatijih upotreba ICMP-a je komanda „ping“ (koja se koristi za proveru dostupnosti hosta).
Ova ping komanda šalje poruke ICMP Echo Request odredišnom hostu, a ako je host dostupan, trebalo bi da odgovori porukom ICMP Echo Reply. Ovo je jednostavan način za testiranje mrežne povezanosti.
ICMP se takođe koristi za otkrivanje jedinice maksimalnog prenosa putanje (PMTU). PMTU je maksimalna veličina IP paketa koji se može preneti bez fragmentacije duž putanje.
ICMP poruke kao što su „Fragmentation Needed“ i „Packet Too Big“ se koriste za određivanje odgovarajućeg MTU-a za datu putanju, što pomaže da se izbegne fragmentacija i optimizuje prenos podataka.
Ove poruke se, takođe, mogu koristiti za praćenje vremena koje je potrebno paketima da putuju od izvora do odredišta i nazad. U tu svrhu se koristi poruka „Time Exceeded“.
SNMP
SNMP (Simple Network Management Protocol) je protokol aplikativnog sloja za upravljanje i nadgledanje mrežnih uređaja i sistema.
SNMP radi koristeći model menadžer-agent. Postoje dve glavne komponente:
SNMP menadžer
Menadžer je odgovoran za postavljanje zahteva i prikupljanje informacija od SNMP agenata. Takođe može podešavati konfiguracione parametre za agente.
SNMP agent
Agent je softverski modul ili proces koji se pokreće na mrežnim uređajima. On čuva informacije o konfiguraciji i performansama uređaja. Agent odgovara na zahteve SNMP menadžera.
MIB (Management Information Base) je hijerarhijska baza podataka koja definiše strukturu i organizaciju upravljanih objekata na mrežnom uređaju. Služi kao referenca i za SNMP menadžere i za agente, što osigurava da međusobno razumeju podatke.
Postoje tri verzije SNMP-a koje se široko koriste:
SNMPv1: Originalna verzija SNMP-a koja koristi stringove zajednice za autentifikaciju. Nedostaju joj sigurnosne karakteristike i smatra se manje sigurnom.</p