Differences

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

Link to this comparison view

rl:labs:11 [2021/11/22 13:37]
cosmin.prunaru [Pregătire infrastructură de laborator]
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) ======
  
 +  * [[ https://​curs.upb.ro/​2023/​mod/​feedbackadm/​view.php?​id=9386 | Feedback CA]]
 +  * [[ https://​curs.upb.ro/​2023/​mod/​feedbackadm/​view.php?​id=9388 | Feedback CB]]
 +  * [[ https://​curs.upb.ro/​2023/​mod/​feedbackadm/​view.php?​id=9390 | Feedback CC]]
 +  * [[ https://​curs.upb.ro/​2023/​mod/​feedbackadm/​view.php?​id=9392 | Feedback CD]]
  
-  * [[ https://​curs.upb.ro/​mod/​feedbackadm/​view.php?​id=25122 | Feedback CA]] +===== Cunoștințe și abilități ce vor fi dobândite =====
-  * [[ https://​curs.upb.ro/​mod/​feedbackadm/​view.php?​id=25125 | Feedback CB]] +
-  * [[ https://​curs.upb.ro/​mod/​feedbackadm/​view.php?​id=25128 | Feedback CC]]+
  
-<​hidden> ​+  * Administrarea resurselor cloud folosind consola grafică. 
 +  * Securitate în cloud. 
 +  * Configurarea rutării în cloud. 
 +  * Accesarea serviciilor de transfer de fișiere (FTP).
  
-Arhiva laboratorului se găsește [[ https://​drive.google.com/​file/​d/​1guW9Kx3S8PATZ_ljmPmadP16rq7pWd42/​view?​usp=sharing | aici]] +===== Pregătire infrastructură de laborator =====
-</​hidden>​+
  
 +  * 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.  ​
  
-===== Cunoștințe ​și abilitățce vor fi dobândite =====+<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 mici, cifre șcratimă. ​
  
-  * Descoperirea de informații despre o anumită rețea, entitate +Vă puteți afla ID-ul accesând linkul ​**"​https://​rl.vladn.st/​get/<​email>"​** </​note>​
-  ​Folosirea utilitarelor în linia de comandă în Linux (whois, nmap, wireshark) +
-  ​Descoperirea vulnerabilităților +
-  ​Înțelegerea tipului de atac MiTM (Man in the Middle) folosind ARP spoofing și DNS spoofing+
  
-===== Cheat sheet =====+===== Introducere ​=====
  
-  * {{:rl:​rl_cheatsheet.pdf|Cheat Sheet}}+Servicii de cloud existente: 
 +  * Google Cloud Platform 
 +  * Microsoft Azure 
 +  * Amazon Web Services.
  
 +Vom discuta mai departe despre **Google Cloud Platform** (GCP). Serviciile pe care le vom folosi în cadrul laboratorului:​
  
-===== Pregătire infrastructură de laborator ===== +  ​Google Compute Engine 
-<​hidden>​  +  * NetworkingVPCCloud NAT
- 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 7"); +
-      * În meniul din stânga, la Sources, căutați ''​RL 2020''​ ș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>​ +
-</​hidden>​+
  
-  * Vom rula o masină virtuală local folosind [[https://​www.virtualbox.org/​ | VirtualBox]] sau [[https://​vmware.pub.ro/​ | VMWare]] (Detalii mai jos). Descărcați arhiva cu resursele mașinii de [[ https://​rl-checker.root.sx/​share/​RL_2021_VM.zip | aici]].+Alte servicii în cloud-ul GCP:
  
-<spoiler Detalii rulare masina virtuala VMware local> +  ​Cloud Storage 
-  ​Deschideți VMware și porniți mașina virtuală ''​RL_lab''​. +  * DatabasesAlloyDB, Cloud SQL, Cloud Bigtable 
-  * 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+  NetworkingCloud DNSCloud CDN 
-    Autentificați-vă în mașina virtuală folosind contul ''​root''​ cu parola ''​student''​. +  Cloud Monitoring
-    * 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 student@$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. +
-    ​Schimbati utilizatorul curent ca ''​root''​ folosind comanda <code bash>​student@host:​~$ sudo su</​code>​ +
-</​spoiler>​+
  
-<spoiler Detalii rulare masina virtuala VirtualBox local> +O listă completă a tuturor serviciilor oferite ​de Google poate fi consultată aici 
-  * Deschideți VirtualBox și porniți mașina virtuală ''​RL_lab''​. +[[https://cloud.google.com/​terms/​servicesGCP Services]]
-  * 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: +
-    * Vom adauga o regula de port forwarding pentru ​putea accesa masina prin SSH de pe statia Host +
-    * Cu masina virtuala oprita deschidem **Settings -> Network -> Advanced -> Port Forwarding** si adaugam urmatoarea regula+
-    ​{{ ​:rl:​labs:​port_forward_virtual_box.png?​600 ​Port forwarding pentru acces SSH de pe Host }}+
  
-    * De pe sistemul fizic, deschideți un terminal și realizați o sesiune SSH folosind:<​code bash> 
-student@mjolnir:​~$ ssh -p 10022 student@localhost 
-</​code>​ 
-    * Schimbati utilizatorul curent ca ''​root''​ folosind comanda <code bash>​student@host:​~$ sudo su</​code>​ 
-</​spoiler>​ 
-  * 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''​) 
  
-<​note>​ +**(Google) Compute Engine** oferă capacitate dinamică computațională în cloud. De asemenea, pentru ​dezvolta și lansa aplicații nu mai ai nevoie să îți achiziționezi hardware-ulacest serviciu punându-ți la dispoziție:​ servere virtuale, configurarea securității ​și networking, ajustarea spațiului de stocare. 
-Pentru ​vedea cum accesați stațiile ''​red''​''​green'' ​și ''​blue'' ​(containere Docker configurate peste mașina virtuală ​VMware - stația ''​host''​) urmăriți ​indicațiile din [[:​rl:​info:​resurse:vm-laborator#​instructiuni_de_utilizare|pagina cu instrucțiuni de utilizare ​mașinii virtuale]].+ 
 +{{ :​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 scalabile. Fiecare 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ș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>​ + 
-Conturile ​de acces la mașina virtuală (stația ''​host''​) sunt (''​username:​parola''​): + 
-  * ''​root:​student''​ + 
-  * ''​student:​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 subnet, există 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 ''​root'' ​pentru ​conectare pe toate stațiileAveți nevoie ​de drepturi privilegiate ​pentru ​configurareFolosiți contul ''​student''​ doar unde vi se cere explicit.+**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. ​   
 + 
 +Prestabilit,​ fiecare firewall permite tot traficul de ieșire ș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:​11|Laboratorul 11]]** **[[:​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.1637581028.txt.gz · Last modified: 2021/11/22 13:37 by cosmin.prunaru
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