This shows you the differences between two versions of the page.
|
rl:labs:11 [2023/01/04 11:42] laurentiu.botezatu [Introducere] |
rl:labs:11 [2026/01/16 14:34] (current) vlad_andrei.badoiu [Laborator 11. Rutare Dinamică în Rețele IP] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ~~NOTOC~~ | ~~NOTOC~~ | ||
| - | ====== Laborator 11. Securitatea Rețelelor Locale ====== | + | ====== Laborator 11. Rutare Dinamică în Rețele IP ====== |
| + | * [[ https://curs.upb.ro/2025/mod/feedbackadm/view.php?id=3995 | Feedback CA]] | ||
| + | * [[ https://curs.upb.ro/2025/mod/feedbackadm/view.php?id=3997 | Feedback CB]] | ||
| + | * [[ https://curs.upb.ro/2025/mod/feedbackadm/view.php?id=3999 | Feedback CC]] | ||
| + | * [[ https://curs.upb.ro/2025/mod/feedbackadm/view.php?id=4001 | Feedback CD]] | ||
| - | * [[ https://curs.upb.ro/2021/mod/feedbackadm/view.php?id=15298 | Feedback CA]] | + | În cele ce urmează vom trece prin rutarea dinamică utilizând protocolul OSPF, precum și mecanismul de redistribuire a rutelor între diferite protocoale de rutare. După parcurgerea acestui laborator, vom avea o înțelegere clară a modului în care funcționează rutarea IP la nivel global, dincolo de rețelele locale, și a felului în care pachetele sunt direcționate eficient prin intermediul rețelelor interconectate folosind protocoale dinamice de rutare. |
| - | * [[ https://curs.upb.ro/2021/mod/feedbackadm/view.php?id=15301 | Feedback CB]] | + | |
| - | * [[ https://curs.upb.ro/2021/mod/feedbackadm/view.php?id=15304 | Feedback CC]] | + | |
| - | <hidden> | + | Bibliografie: |
| + | - [[https://beta.computer-networking.info/syllabus/default/principles/network.html#linkstate|Link State Routing]] | ||
| + | - [[https://beta.computer-networking.info/syllabus/default/protocols/routing.html|Routing]] | ||
| + | ===== Cunoștințe și abilități ce vor fi dobândite ===== | ||
| - | Arhiva laboratorului se găsește [[ https://drive.google.com/file/d/1guW9Kx3S8PATZ_ljmPmadP16rq7pWd42/view?usp=sharing | aici]] | + | * Înțelegerea utilității mecanismului de rutare dinamică. |
| - | </hidden> | + | |
| + | * Realizarea configurațiilor de bază ale protocolului OSPF. | ||
| - | ===== Cunoștințe și abilități ce vor fi dobândite ===== | + | * Configurarea redistribuirii rutelor în OSPF. |
| - | * Descoperirea de informații despre o anumită rețea, entitate | ||
| - | * Înțelegerea taxonomiei folosite în industrie pentru identificarea vulnerabilităților | ||
| - | * Folosirea utilitarelor în vederea descoperirii de vulnerabilități | ||
| - | * Înțelegerea tipului de atac MiTM (Man in the Middle) folosind ARP spoofing și DNS spoofing | ||
| - | ===== Cheat sheet ===== | ||
| - | * {{:rl:rl_cheatsheet.pdf|Cheat Sheet}} | + | ===== Exerciții ===== |
| + | ====De ce avem nevoie de rutare dinamică?==== | ||
| - | ===== Pregătire infrastructură de laborator ===== | + | * Ne reamintim din **Laboratorul 5 (Rutare)** că procesul de adăugare a rutelor statice pentru interconectarea mai multor rețele este unul manual și mecanic, în care administratorul de rețea trebuie să aibă o cunoaștere amplă asupra întregii topologii. |
| - | * **Reminder**: avem nevoie de o masina virtuală a laboratorului. Vă rugăm urmăriți [[:rl:info:resurse:vm-laborator|pagina aceasta pentru instrucțiuni]], apoi reveniți. | + | * Într-o infrastructură cu cel mult **10-15** rețele, acest lucru poate fi realizat manual, însă în cazul în care trebuie interconectate **sute sau mii** de rețele, așa cum se întâmplă în Internet, configurarea manuală a rutelor devine ineficientă. |
| - | | + | * Din acest motiv există mecanisme de **rutare dinamică**, bazate pe utilizarea unor protocoale de rutare dinamice precum OSPF, IS-IS, EIGRP, RIP pentru rutare internă sau BGP pentru rutare externă. |
| - | * Schimbati utilizatorul curent ca ''root'' folosind comanda <code bash> student@host:~$ sudo su</code> | + | * OSPF este un protocol des întâlnit în prezent pentru rutarea dinamică internă, fiind utilizat în interiorul unui sistem autonom, cum ar fi rețelele unui ISP, ale unei companii sau ale unei universități. |
| - | * Pentru a pregăti configurația de laborator, pe mașina virtuală (stația ''host'') folosiți comenzile următoare din contul utilizatorului ''root'' de pe stația ''host'' (puteți da copy/paste la comenzi în terminal):<code bash> | + | * OSPF este un protocol de tip **link-state**, care creează inițial **adiacențe cu routerele vecine**, folosindu-le ulterior pentru schimbul de informații de rutare. |
| - | root@host:~# update_lab --force | + | * Odată ce un router OSPF învață noi rute, acesta le va propaga către vecinii săi, informându-i despre existența unor noi destinații și despre calea optimă de acces către acestea. |
| - | root@host:~# start_lab lab11 | + | |
| - | </code> | + | |
| - | * Deschideți trei noi tab-uri în terminal (folosiți combinația de taste ''Ctrl+Shift+t''), și conectați-vă, din nou, la mașina virtuală folosind comanda ''ssh'' de mai sus. | + | |
| - | * De pe cele trei noi tab-uri, conectați-vă la cele trei containere (''red'', ''green'' și ''blue''). | + | |
| - | * Pentru o conectare mai usoara puteti folosi aliasul ''go'' (ex. ''go red'') | + | |
| - | <note> | + | ====01. [10 p] Cum vizualizam rutele dinamice pe un router Cisco?==== |
| - | În mod implicit folosiți contul ''root'' pentru conectare pe toate stațiile. Aveți nevoie de drepturi privilegiate pentru configurare. Folosiți contul ''student'' doar unde vi se cere explicit. | + | |
| - | </note> | + | |
| - | ===== Introducere ===== | + | Resursa: {{:rl:labs:pkt1_1_2_neredistribuite.pkt|}} |
| - | {{ :rl:labs:l11-header.png?700 |}} | + | |
| - | <note warning> | + | |
| - | Conform legilor în vigoare, scanarea IP-urilor în vederea obținerii de informații este ilegală. Pentru exercițiile de scanare utilizați doar IP-urile/Domeniile specificate în laborator. | + | |
| - | </note> | + | |
| - | Este estimat că la nivel global, companiile vor pierde aproximativ 10.5 trilioane de dolari până în 2025, o creștere de 15% per an. | + | * Ne reamintim că pentru a vizualiza tabela de rutare de pe un router Cisco se folosește comanda: |
| - | Odată cu necesitatea digitalizării lumii în care trăim numărul de aplicații utilizate în medie de un om a crescut considerabil. Această creștere a numărului de aplicații a venit însă și cu un risc crescut în fața atacurilor cibernetice. Fiecare aplicație nouă introdusă în infrastructura digitală a unei entități duce și la creșterea **suprafeței de atac** a acesteia. Prin [[https://en.wikipedia.org/wiki/Attack_surface|suprafața de atac]] se înțelege numărul total de puncte prin care o persoană neautorizată ar putea accesa un sistem. | ||
| - | Pentru a ne putea proteja în fața atacurilor cibernetice, este necesar să înțelegem fazele unui atac și ce reprezintă acestea. | + | show ip route |
| + | |||
| - | În încercarea unui atacator de a avea acces la un sistem, acesta va trece prin următoarele faze generale: | + | * Rutele statice apar listate cu litera **S** în față, iar rutele direct conectate cu litera **C**. |
| + | * Rutele dinamice nu au un singur caracter de identificare, deoarece acestea pot fi învățate prin mai multe protocoale de rutare dinamică. | ||
| + | * În funcție de protocolul utilizat pentru învățarea unei rute, în tabela de rutare pot apărea următoarele marcaje: | ||
| + | * **O** - rute învățate prin OSPF | ||
| + | * **D** - rute învățate prin EIGRP | ||
| + | * **R** - rute învățate prin RIP | ||
| + | * **i** - rute învățate prin IS-IS | ||
| + | * **B** - rute învățate prin BGP | ||
| + | * Pentru acest exercițiu, conectați-vă pe cele 3 routere din topologie și afișați tabelele de rutare ale acestora. | ||
| + | * Analizați informațiile afișate și răspundeți la următoarele întrebări: | ||
| + | - Ce tipuri de rute apar în tabela de rutare? | ||
| + | - Ce protocoale de rutare dinamică sunt utilizate? | ||
| + | - Stie fiecare router despre toate rețelele din topologie? | ||
| - | **1. Recunoașterea țintei** | + | ====02. [10 p] Trimiterea de pachete între rețele==== |
| - | În această fază se urmărește culegerea de informații pentru ținta în cauză. Informațiile de interes pentru un atacator constau în detecția de hardware și software prezente. Această fază este extrem de importantă deoarece pe baza detecției aplicațiilor se pot identifica posibilele vulnerabilități. | + | * Pentru început, folosind **ping**, testați conectivitatea: |
| + | * de la PC0 către Server0 (40.40.40.3); | ||
| + | * de la Laptop0 către PC1 (20.20.20.2). | ||
| + | * Observați că, în niciunul dintre cazuri, pachetele nu sunt livrate către destinație. | ||
| + | * Folosiți comanda **show running-config** pentru a vizualiza configurațiile curente ale celor trei routere. | ||
| + | * Se poate observa că sunt configurate protocoale de rutare dinamică după cum urmează: | ||
| + | * pe Router1 este configurat OSPF; | ||
| + | * pe Router2 este configurat EIGRP; | ||
| + | * pe Router0 este configurat OSPF pentru comunicarea cu Router1 și EIGRP pentru comunicarea cu Router2. | ||
| + | * Cu toate acestea, protocoalele de rutare nu fac schimb de informații între ele pe Router0, astfel încât rutele învățate de la Router1 nu sunt cunoscute de Router2 și invers. | ||
| + | * Acest comportament este normal, deoarece protocoale diferite de rutare dinamică nu schimbă informații implicit, având implementări diferite, algoritmi de calcul distincti și metrici de rutare specifice. | ||
| - | În cadrul fazei de recunoaștere ne întâlnim cu două standarde foarte importante: | + | ====03. [10 p] Redistribuirea rutelor între protocoalele de rutare==== |
| - | * **CPE(Common Platform Enumeration)** reprezintă o metoda structurată de indetificare a unui software/hardware. Eexemplu: ''cpe:2.3:a:microsoft:exchange_server:2016:cumulative_update_23:*:*:*:*:*:*'' reprezentând: ''part="o",vendor="microsoft",product="exchange_server",version="2016", update="cumulative_update_23",edition=NA,language=NA,sw_edition="NA", target_sw=NA,target_hw="NA",other=NA)'' | + | Resursa: {{:rl:labs:pkt1_3_redistribuite.pkt|}} |
| - | * **CVE(Common Vulnerabilities and Exposures)** reprezintă o metoda structurată de identificare a unei vulnerabilități. (exmplu: ''CVE-2022-21978'') | + | |
| - | Asocierea dintre cele două standarde este dată de faptul că unui **CPE** îi sunt asociate toate **CVE**-urile descoperite, spre exemplu pentru **CPE** folosit ca exemplu avem următoarele **CVE**-uri: | + | * Observați că, în noua topologie, dacă încercați să trimiteți pachetele testate în exercițiul anterior, acestea sunt acum livrate cu succes. |
| - | ''CVE-2022-21978, CVE-2022-21979, CVE-2022-21980, CVE-2022-24477, CVE-2022-24516, CVE-2022-30134, CVE-2022-34692, CVE-2022-41040, CVE-2022-41082, CVE-2022-41078, CVE-2022-41079, CVE-2022-41080, CVE-2022-41123'' | + | * Acest comportament este rezultatul redistribuirii rutelor între cele două protocoale de rutare dinamică. |
| + | * Redistribuirea reprezintă mecanismul prin care informațiile de rutare învățate printr-un protocol sunt transmise către un alt protocol de rutare. | ||
| + | * Redistribuirea se poate realiza: | ||
| + | * **One-way** - un protocol de rutare învață informațiile unui alt protocol; | ||
| + | * **Two-way** - ambele protocoale de rutare fac schimb de informații între ele. | ||
| + | * În continuare, conectați-vă pe Router1 și Router2 și afișați tabelele de rutare ale acestora. | ||
| + | * Pe Router1 se pot observa rute noi marcate cu O E2, ceea ce indică faptul că aceste rute au fost redistribuite în OSPF. | ||
| + | * Pe Router2 apar rute marcate cu D EX, semnificând că acestea au fost învățate prin redistribuirea rutelor în EIGRP. | ||
| + | * Tabela de rutare a Routerului Central rămâne neschimbată, deoarece acesta cunoaște deja toate rutele prin ambele protocoale configurate. | ||
| - | **2. Înarmarea pentru atac** | + | ====04. [20 p] Configurații de baza OSPF folosind metoda network ==== |
| - | Pe baza informațiilor obținute anterior, atacatorul va alege cele mai potrivite metode prin care va exploata vulnerabilitățile descoperite. | + | Resursa: {{:rl:labs:pkt_ospf.pkt|}} |
| - | **3. Livrarea atacului** | + | * În acest exercițiu veți configura o topologie simplă astfel încât să permiteți comunicarea end-to-end între toate stațiile. |
| + | * Configurațiile de bază (adrese IP, măști de rețea și default gateway-uri) sunt deja realizate. | ||
| + | * Singurul element neconfigurat rămâne rutarea dinamică pe cele două routere. | ||
| + | * Datele Topologiei: | ||
| + | * PC1 aparține rețelei 10.10.10.0/24 | ||
| + | * PC2 aparține rețelei 20.20.20.0/24 | ||
| + | * PC3 aparține rețelei 30.30.30.0/24 | ||
| + | * PC4 aparține rețelei 40.40.40.0/24 | ||
| + | * Rețeaua dintre routere este 50.50.50.0/30 | ||
| + | * Router0 va avea router-id 1.1.1.1 | ||
| + | * Router1 va avea router-id 2.2.2.2 | ||
| + | * Procesul OSPF utilizat va fi 1 | ||
| + | * Wildcard Mask | ||
| + | * Un wildcard mask este o mască inversă față de subnet mask, utilizată pe routerele Cisco pentru a specifica ce biți dintr-o adresă IP trebuie potriviți și ce biți pot fi ignorați. | ||
| + | * 0 – bitul trebuie să se potrivească exact | ||
| + | * 1 – bitul este ignorat | ||
| + | * EX: Subnet mask 255.255.255.0 -> Wildcard mask 0.0.0.255 | ||
| + | * Metoda de configurare OSPF | ||
| + | * OSPF poate fi configurat: | ||
| + | * per interfață | ||
| + | * prin specificarea explicită a rețelelor folosind comanda network. | ||
| + | * În acest exercițiu se va utiliza menționarea explicită a rețelelor. | ||
| + | * Configurația este de tip OSPF Single Area, astfel încât toate rețelele vor fi incluse în area 0. | ||
| + | * Pași de configurare | ||
| + | * Router1: | ||
| - | Prin livrarea atacului se înțelege orice metodă prin care atacatorul ar putea obține acces in sistem. Aici putem discuta despre exploatarea factorului uman prin mesaje de tip phising sau în funcție de vulnerabilitățile descoperite, acesta poate trimite diverse payload-uri către țintă. | ||
| - | Odată cu livrarea atacului, dacă acesta a avut succes, atacatorul își va putea exercita controlul asupra sistemului. | ||
| - | În cadrul acestui laborator vom trece prin toate fazele unui atac folosind utilitare cunoscute sau servicii puse la dispoziție de [[https://www.codaintelligence.com/|CODA Intelligence]]. | + | # Pentru a configura un protocol de rutare trebuie sa ne aflam in modul Global Config |
| + | en | ||
| + | conf t | ||
| + | # Pentru a iniția procesul de configurare OSPF trebuie setat un numar de proces | ||
| + | router ospf 1 | ||
| + | # Pentru a face parte dintr-un proces OSPF un router are nevoie de un ID pe care il putem configura manual folosind comanda router-id <id_router> | ||
| + | router-id 1.1.1.1 | ||
| + | # Pentru a configura protocolul să învețe și să distribuie rețelele direct conectate trebuie să le includem pe toate în area 0 folosind comanda **network <ip_retea> <wildcard_mask> area <nr_arie>** | ||
| + | network 30.30.30.0 0.0.0.255 area 0 | ||
| + | network 40.40.40.0 0.0.0.255 area 0 | ||
| + | network 50.50.50.0 0.0.0.3 area 0 | ||
| - | ===== Navigare ===== | ||
| - | **[[:rl:labs:11|Laboratorul 11]]** | ||
| - | {{page>:rl:labs:12:meta:nav&nofooter&noeditbutton}} | ||
| - | ===== Exerciții ===== | + | * Router0: |
| + | |||
| + | en | ||
| + | conf t | ||
| + | router ospf 1 | ||
| + | router-id 2.2.2.2 | ||
| + | network 10.10.10.0 0.0.0.255 area 0 | ||
| + | network 20.20.20.0 0.0.0.255 area 0 | ||
| + | network 50.50.50.0 0.0.0.3 area 0 | ||
| + | |||
| + | |||
| + | * După configurarea ambelor routere, testați conectivitatea între toate stațiile din rețea folosind **ping**. | ||
| + | |||
| + | ====05. [10 p] Vizualizarea tabelei de adiacențe OSPF==== | ||
| + | * Folosind topologia configurată anterior, conectați-vă pe fiecare router și utilizați comanda: **show ip ospf neighbor** pentru a vizualiza vecinii OSPF ai fiecărui router. | ||
| + | * Ce puteți observa în rezultatele afișate? | ||
| + | * În tabela de vecini OSPF pot fi observate **4** coloane importante: | ||
| + | * **Neighbor ID** - reprezintă router-id-ul OSPF al routerului vecin; | ||
| + | * **Pri** - indică prioritatea OSPF a vecinului în procesul de alegere a DR/BDR (implicit valoarea este 1); | ||
| + | * **State** - indică rolul vecinului (DR / BDR / DROther), precum și starea adiacenței. În mod normal, după stabilirea completă a relației, starea este FULL, dar la pornirea topologiei, tabela poate fi surprinsă temporar în starea 2-WAY, care reprezintă o stare intermediară. | ||
| + | * **Address** - adresa IP a interfeței vecinului, corespunzătoare legăturii cu routerul curent. | ||
| + | * Observați că, în acest caz, alegerea DR și BDR s-a realizat pe baza router-id-ului, deoarece ambii vecini au avut aceeași prioritate OSPF. Astfel: | ||
| + | * **Router0** devine Designated Router (DR); | ||
| + | * **Router1** devine Backup Designated Router (BDR). | ||
| + | |||
| + | <note> | ||
| + | * În rețelele OSPF de dimensiuni mari, atunci când un router învață o rută nouă, acesta ar trebui să o distribuie către toate celelalte routere din procesul OSPF. Acest mecanism ar genera un volum foarte mare de trafic de rutare, deoarece fiecare router care primește informația ar trebui, la rândul său, să o retransmită către ceilalți, rezultând un număr ridicat de mesaje redundante. | ||
| + | * Pentru a evita această problemă, OSPF utilizează un mecanism de alegere a unui Designated Router (DR), care este singurul responsabil cu distribuirea informațiilor de rutare către celelalte routere OSPF. Informațiile sunt transmise inițial către DR, care le propagă mai departe. De asemenea, este ales un Backup Designated Router (BDR), care preia automat rolul de DR în cazul apariției unei defecțiuni hardware sau a unei erori de configurare. | ||
| + | * Alegerea DR și BDR se face în funcție de prioritatea OSPF cea mai mare, iar în caz de egalitate, pe baza router-id-ului cel mai mare. | ||
| + | </note> | ||
| + | |||
| + | ====06. [20 p] Redistribuirea rutelor între OSPF și EIGRP==== | ||
| + | * Pentru acest exercițiu se va utiliza topologia și fișierul Packet Tracer (pkt) din **Exercițiul 1**, în care: | ||
| + | * pe Router1 este configurat protocolul OSPF; | ||
| + | * pe Router2 este configurat protocolul EIGRP; | ||
| + | * pe Router0 sunt configurate atât OSPF (pentru comunicarea cu Router1), cât și EIGRP (pentru comunicarea cu Router2). | ||
| + | * După cum ați observat în cadrul **Exercițiului 2**, în această topologie nu există comunicare end-to-end, din cauza lipsei redistribuirii rutelor între protocoalele de rutare. | ||
| + | * Scopul acestui exercițiu este realizarea configurațiilor necesare pentru schimbul de informații între cele două protocoale de rutare dinamică. Astfel: | ||
| + | * OSPF trebuie să învețe rutele cunoscute de EIGRP; | ||
| + | * EIGRP trebuie să învețe rutele cunoscute de OSPF; | ||
| + | * este necesară o redistribuire de tip Two-Way. | ||
| + | * Toate configurațiile vor fi realizate exclusiv pe Router0. | ||
| + | * Pași de configurare: | ||
| + | |||
| + | # Redistribuire din OSPF în EIGRP | ||
| + | en | ||
| + | conf t | ||
| + | # Intrarea în procesul EIGRP (asemănător cu intrarea în procesul OSPF) | ||
| + | router eigrp 10 | ||
| + | # Redistribuirea rutelor OSPF folosind metricile implicite EIGRP | ||
| + | redistribute ospf 1 metric 100000 100 255 1 1500 | ||
| + | # Redistribuire din EIGRP în OSPF | ||
| + | router ospf 1 | ||
| + | # Redistribuirea rutelor EIGRP (inclusiv rute classless - subnets) | ||
| + | redistribute eigrp 10 subnets | ||
| + | |||
| + | |||
| + | ====07. [20 p] Configurare OSPF folosind metoda per interfață==== | ||
| + | |||
| + | * Pentru acest exercițiu, descărcați din nou fișierul Packet Tracer (pkt) utilizat la Exercițiul 4. | ||
| + | * În cadrul acestui exercițiu veți realiza aceleași configurații OSPF, însă folosind metoda de configurare per interfață. | ||
| + | * Utilizând această metodă, nu mai este necesar să cunoaștem explicit rețelele direct conectate la router, ci doar interfețele active care au rețele asociate. | ||
| + | * Această abordare este utilă în special în situațiile în care topologia se modifică frecvent sau când se dorește un control mai clar asupra interfețelor participante în OSPF. | ||
| + | * Pași de configurare: | ||
| + | |||
| + | en | ||
| + | conf t | ||
| + | # Inițierea procesului OSPF | ||
| + | router ospf 1 | ||
| + | router-id <A.B.C.D> | ||
| + | # Activarea OSPF pe interfețe | ||
| + | interface gigabitEthernet0/0 | ||
| + | ip ospf 1 area 0 | ||
| + | interface gigabitEthernet0/1 | ||
| + | ip ospf 1 area 0 | ||
| + | interface gigabitEthernet0/2 | ||
| + | ip ospf 1 area 0 | ||
| - | {{namespace>:rl:labs:12:contents&nofooter&noeditbutton}} | + | * Folosiți comenzile de mai sus pentru a configura ambele routere, astfel: |
| + | * Router0 – router-id 1.1.1.1 | ||
| + | * Router1 – router-id 2.2.2.2 | ||
| + | * Verificați tabela de rutare: **show ip route** | ||
| + | * Verificați tabela de vecini OSPF: **show ip ospf neighbor** | ||
| + | * Confirmați că: | ||
| + | * adiacențele OSPF sunt în starea FULL; | ||
| + | * rutele OSPF sunt prezente în tabela de rutare; | ||
| + | * există conectivitate end-to-end între stațiile finale. | ||