Differences

This shows you the differences between two versions of the page.

Link to this comparison view

rl:labs:11 [2021/01/17 18:19]
vlad.traista [Exerciții]
rl:labs:11 [2024/01/09 08:27] (current)
cosmin.prunaru [Pregătire infrastructură de laborator]
Line 1: Line 1:
 ~~NOTOC~~ ~~NOTOC~~
  
-====== Laborator 11. Securitatea Rețelelor Locale ​======+====== Laborator 11. Google Cloud Platform (GCP) ======
  
-<​hidden>​ +  ​* [[ https://​curs.upb.ro/2023/​mod/​feedbackadm/​view.php?​id=9386 | Feedback CA]] 
-  ​* [[ https://​curs.upb.ro/​mod/​feedbackadm/​view.php?​id=25122 | Feedback CA]] +  * [[ https://​curs.upb.ro/2023/​mod/​feedbackadm/​view.php?​id=9388 | Feedback CB]] 
-  * [[ https://​curs.upb.ro/​mod/​feedbackadm/​view.php?​id=25125 | Feedback CB]] +  * [[ https://​curs.upb.ro/2023/​mod/​feedbackadm/​view.php?​id=9390 | Feedback CC]] 
-  * [[ https://​curs.upb.ro/​mod/​feedbackadm/​view.php?​id=25128 | Feedback CC]]+  * [[ https://​curs.upb.ro/​2023/​mod/​feedbackadm/​view.php?​id=9392 | Feedback CD]]
  
- +===== 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]] +  * Administrarea resurselor cloud folosind consola grafică. 
-</​hidden>​+  * Securitate în cloud
 +  * Configurarea rutării în cloud. 
 +  * Accesarea serviciilor de transfer de fișiere (FTP).
  
 +===== Pregătire infrastructură de laborator =====
  
-===== Cunoștințe și abilități ce vor fi dobândite =====+  * Vom crea o infrastructură de rețea în cloud-ul Google. 
 +  * Fiecare student va folosi contul propriu de pe [[https://​console.cloud.google.com/​|GCP]]. Pentru a putea crea infrastructura necesară veți primi un număr de credite pentru GCP.  ​
  
-  * Descoperirea de informații despre o anumită rețea, entitate +<note warning>​Fiecare student își va denumi resursele astfel //​student<​X>//​-[nume_resursa]. De exemplu //​student1-//​vpc. GCP acceptă în numele ​de obiecte doar litere micicifre și cratimă. ​
-  * Folosirea utilitarelor ​în linia de comandă în Linux (whoisnmap, wireshark) +
-  * Descoperirea vulnerabilităților +
-  * Înțelegerea tipului de atac MiTM (Man in the Middle) folosind ARP spoofing ​și DNS spoofing+
  
-===== Cheat sheet =====+Vă puteți afla ID-ul accesând linkul **"​https://​rl.vladn.st/​get/<​email>"​** </​note>​
  
-  * {{:​rl:​rl_cheatsheet.pdf|Cheat Sheet}}+===== Introducere =====
  
 +Servicii de cloud existente:
 +  * Google Cloud Platform
 +  * Microsoft Azure
 +  * Amazon Web Services.
  
-===== Pregătire infrastructură de laborator ===== +Vom discuta mai departe despre ​**Google Cloud Platform** (GCP). Serviciile ​pe care le vom folosi în cadrul laboratorului:
-  * Vom rula o masină virtuală în [[http://​cloud.curs.pub.ro | cloud-ul facultății]] ​ [[https://​cloud-controller.grid.pub.ro | link direct OpenStack]] +
-  ​Pentru a porni o astfel de masină urmăriți tutorialul de la [[https://​cloud.curs.pub.ro/​about/​tutorial-for-students/​ | această adresă]]. +
-    ​Când creați instanța de mașină virtuală (în fereastra "​Launch instance"​):​ +
-      ​Dați ce nume doriți instanței (e.g., "Lab 10"​);​ +
-      ​În meniul din stânga, la Sources, căutați ''​RL 2020 v3''​ și apăsați pe săgeată sus pentru a o selecta; +
-      * La flavor, este suficient ''​m1.small'' ​(ultimul din listă), nu aveți nevoie de mai multe procesoare sau memorie mare; +
-      * Conectați-vă la ''​fep'',​ apoi pe mașina virtuală proaspăt pornită prin IP-ul privat (''​10.9.x.x''​):<​code bash> +
-ssh -i ~/​.ssh/​openstack.key student@10.9.x.x +
-</​code>​ +
-  * 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> +
-root@host:​~#​ update_lab --force +
-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''​)+
  
-<spoiler Detalii rulare masina virtuala VMware local> +  ​Google Compute Engine 
-  ​Deschideți VMware și porniți mașina virtuală ''​RL_lab''​. +  * NetworkingVPCCloud NAT
-  * Dorim să folosim terminalul sistemului fizic și să lucrăm peste SSH cu mașina virtuală (denumită și ''​host''​). În acest fel vom putea folosi copy-paste în terminal sau alte facilități. Pentru aceasta urmați pașii de mai jos: +
-    * Autentificați-vă în mașina virtuală folosind contul ''​root''​ cu parola ''​student''​. +
-    * Aflați adresa IP a mașinii virtuale de pe interfața ''​eth0'':<​code bash> +
-root@host:​~#​ ifconfig eth0 +
-</​code>​ +
-    * De pe sistemul fizicdeschideți un terminal și realizați o sesiune SSH folosind:<​code bash> +
-student@mjolnir:​~$ ssh root@$ADRESA_IP_MV +
-</​code>​unde ''​$ADRESA_IP_MV''​ este adresa IP a mașinii virtuale așa cum ați obținut-o mai sus. +
-</​spoiler>​+
  
-<​note>​ +Alte servicii în cloud-ul GCP: 
-Pentru ​vedea cum accesați stațiile ''​red''​''​green''​ ș''​blue''​ (containerele Docker) urmăriți indicațiile din [[:rl:info:resurse:vm-laborator#​instructiuni_de_utilizare|pagina ​cu instrucțiuni de utilizare a mașinii virtuale]].+ 
 +  * Cloud Storage 
 +  * Databases: AlloyDB, Cloud SQL, Cloud Bigtable 
 +  * Networking: Cloud DNS, Cloud CDN 
 +  * Cloud Monitoring 
 + 
 +O listă completă ​tuturor serviciilor oferite de Google poate fi consultată aici : 
 +[[https://​cloud.google.com/​terms/​services| GCP Services]] 
 + 
 + 
 +**(Google) Compute Engine** oferă capacitate dinamică computațională în cloud. De asemenea, pentru a dezvolta șlansa aplicații nu mai ai nevoie să îți achiziționezi hardware-ulacest serviciu punându-țla dispoziție:​ servere virtuale, configurarea securității șnetworking, ajustarea spațiului de stocare. 
 + 
 +{{ :rl:labs:vpc-overview-example.png?​500 ​|}} 
 + 
 +**Virtual Private Cloud (VPC) Network** te ajută să pornești resursele GCP într-o rețea virtuală definită de tine. Această rețea seamănă ​cu o rețea tradițională unde poți configura spații ​de adrese, tabele de rutare, gateways ​și setări de securitate, dar are în plus beneficiile utilizării unui infrastructuri scalabileFiecare VPC creat este izolat logic de oricare alt VPC din cloud. 
 + 
 +Două sau mai multe VPC-uri pot comunica folosind **VPC Network Peering**. Rețelele VPC conectate folosind VPC Network Peering pot fi în același proiect sau proiecte diferite. \\ 
 +\\ 
 +Pot fi create două tipuri de rețele tip VPC: 
 +  * auto-mode - unde un subnet din fiecare regiune este automat alocat, subnet-ul fiind creat sub blocul de adrese 10.128.0.0/​9 .  
 +  * custom-mode - nu sunt create subnet-uri automat și utilizatorul poate avea control complet asupra clasei de IP-uri private utilizate pentru crearea VPC-ului.  
 + 
 +Având în vedere considerentele de mai sus, nu se pot conecta două rețele VPC create în auto-mode, dar se pot conecta două rețele, una creată auto-mode, cealaltă custom-mode cât timp nu folosesc adrese IP din aceeași clasă.  
 + 
 +3 tipuri de adrese IP: 
 + 
 +  * adrese IP private 
 +  * adrese IP publice. O adresă publică ce a fost atribuită unei instanțe pe care am închis-o va reveni în pool-ul inițial de adrese. Când vom reporni instanța, aceasta va avea o altă adresă IP publică. 
 +  * adrese IP publice statice sunt adrese IP publice care rămân asociate pe cont până în momentul în care alegi să renunți la ele.\\ 
 + 
 + 
 +<note tip> 
 +//Care este diferența între adrese IP private și adresele IP publice?//
 </​note>​ </​note>​
  
-<​note>​ + 
-Unde nu este precizat altfelparola comună pentru toate conturile folosite ​în cadrul laboratorului ​este ''​student''​.+ 
 + 
 +**Subnet** - interval de adrese IP într-un VPC. Poți să lansezi resursele GCP într-un subnet fie ales automat (auto-mode) fie creat la alegere (custom-mode). 
 + 
 +În GCP avem două tipuri de **IP-uri**:​ 
 + 
 +  * **Publice** (atunci când resursele trebuie să aibă acces direct în Internet, de exemplu serverele web). O adresă IP publică poate fi configurată pe interfața unei mașini virtuale create în GCP. Pot fi aplicate ulterior reguli de firewall pentru a putea controla accesul către acea mașină virtuală.  
 +  * **Private** (atunci când resursele nu trebuie să fie accesibile din Internet, de exemplu bazele de date) 
 + 
 + 
 +<​note ​important
 + 
 +În fiecare subnetexistă 4 IP-uri rezervate ​în intervalul primar : 
 + 
 +  * Prima este adresă de rețea 
 +  * A doua este rezervată ca adresă pentru default gateway. 
 +  * Penultima adresă este rezervată de către GCP pentru viitoare utilizări.  
 +  * Ultima este adresa de broadcast 
 </​note>​ </​note>​
  
-<​note>​ + 
-În mod implicit folosiți contul ''​student'' ​pentru ​conectare pe toate stațiileUnde este necesar ​(i.e., majoritatea configurărilor de sistem)puteți folosi ''​sudo su''​ pentru a ajunge într-un shell privilegiat.+**Cloud NAT**. Cloud NAT este o componentă a GCP care permite comunicarea între instanțele din VPC care nu folosesc adrese IP publice șInternet.\\ 
 +Cloud NAT oferă conectivitate în Internet ​pentru ​următoarele tipuri de resurse: 
 +  * Mașini virtuale din Compute Engine fără adrese IP publice/​externe asociate 
 +  * Clustere de Google Kubernetes Engine (GKE) 
 +  * Instanțe de Cloud Run (aplicații containerizate),​ Cloud Functions (code in the cloud/​FaaS),​ App Engine 
 + 
 + 
 +**Tabela de rutare**Fiecare subnet dintr-un VPC trebuie să aibă asociată o tabelă de rutare, definită în cadrul VPC network. 
 +Google Cloud folosește mai multe tipuri de rute: 
 + 
 +  * Generate de sistem 
 +      * Rute default ​0.0.0.0/0 pentru IPv4 sau ::/0 pentru IPv6) 
 +      * Rute pentru subrețea (create automat pentru fiecare subrețea) 
 +  * Rute personalizate (custom) 
 +      * Statice (către diverse destinații) 
 +      * Dinamice (sesiuni BGP către un Cloud Router) 
 +  * Rute peering 
 +  * Rute policy-based (către un Network Load Balancer din GCP). 
 + 
 +Un **VPC firewall** acționează ca un firewall virtual care controlează traficul pentru una sau mai multe instanțe. Putem adăuga reguli pentru fiecare firewall care să permită traficul către/de la instanțele asociate. ​   
 + 
 +Prestabilitfiecare firewall permite tot traficul de ieșire și blochează traficul ​de intrare.  
 +Acțiunile pentru o regulă din firewall pot fi ori "​allow"​ ori "​deny"​nu ambele.  
 + 
 +<note tip>​Pentru mai multe detalii despre funcționarea VPC-urilor șresursele GCP, urmăriți [[https://​www.youtube.com/​watch?​v=vACTtmLWiQY|tutorialul]]. 
 + 
 +Documentație GCP: 
 + 
 +[[https://​cloud.google.com/​curated-resources/​compute-engine?​hl=en|Compute Engine]]\\ 
 +[[https://​cloud.google.com/​vpc/​docs/​overview?​hl=en|VPC and Subnets]]\\ 
 +[[https://​cloud.google.com/​network-connectivity/​docs/​router/​concepts/​overview?​hl=en|Cloud Router]]\\
 </​note>​ </​note>​
 +
 +
 +===== Topologie =====
 +
 +{{ :​rl:​labs:​12:​gcp_infrastructure.png |}}
  
 ===== Navigare ===== ===== Navigare =====
  
-**[[:​rl:​labs:​12|Laboratorul ​12]]** +**[[:​rl:​labs:​11|Laboratorul ​11]]** 
-{{page>:​rl:​labs:​12:​meta:​nav&​nofooter&​noeditbutton}}+{{page>:​rl:​labs:​11:​meta:​nav&​nofooter&​noeditbutton}}
  
 ===== Exerciții ===== ===== Exerciții =====
  
-{{namespace>:​rl:​labs:​12:​contents&​nofooter&​noeditbutton}}+Acest laborator își propune configurarea unei rețele asemănătoare topoligiei de mai sus. 
 +Vom avea nevoie de crearea **unui VPC** cu **4 subnets**, unul în care va fi creată stația **Host**, iar apoi **câte un subnet** separat pentru **Red**, **Green** și **Blue**. 
 + 
 +Stația **Host** va fi folosită drept **Bastion**,​ o mașină virtuală folosită doar pentru a ne conecta prin Internet la celelalte mașini, **Red**, **Green** și **Blue**. 
 + 
 +Această va avea configurată o adresa IP publică, celelalte vor avea configurate doar adresa IP private, comunicând pe Internet cu ajutorul serviciului de **Cloud NAT**. 
 + 
 + 
 +Următoarele exerciții constituie pașii de parcurgere pentru ca la final să putem folosi rețeaua. 
  
 +{{namespace>:​rl:​labs:​11:​contents&​nofooter&​noeditbutton}}
  
rl/labs/11.1610900380.txt.gz · Last modified: 2021/01/17 18:19 by vlad.traista
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0