Differences

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

Link to this comparison view

uso:laboratoare:laborator-05:services [2021/11/02 08:57]
liza_elena.babu
uso:laboratoare:laborator-05:services [2023/11/02 19:54] (current)
vlad_iulius.nastase
Line 1: Line 1:
 ====== Servicii și clienți de rețea ====== ====== Servicii și clienți de rețea ======
  
-Dispozitivele pe care le folosim noi devin din ce în ce mai mici, mai eficiente și ieftine. Asta se întâmplă deoarece multe dintre aplicațiile care până nu de curând rulau pe calculatorul propriu s-au mutat în spațiu online. De exemplu, în loc să descărcăm filme și să le urmărim de pe calculator, folosim o aplicație cum ar fi Netflix pentru a transmite prin Internet filmul pe care vrem să îl urmărim. Un alt exemplu relevant este Google Drive, care ne permite să stocăm, să replicăm și să edităm documente într-o interfață web, în loc să le păstrăm local pe calculatorul pe care îl folosim. Toată puterea de procesare și tot spațiul de stocare s-a mutat de pe calculatorul propriu pe servere aflate în Internet.+Dispozitivele pe care le folosim noi devin din ce în ce mai mici, mai eficiente și ieftine. Asta se întâmplă deoarece multe dintre aplicațiile care până nu de curând rulau pe calculatorul propriu s-au mutat în spațiu online. De exemplu, în loc să descărcăm filme și să le urmărim de pe calculator, folosim o aplicație cum ar fi Netflix pentru a ne transmite prin Internet filmul pe care vrem să îl urmărim. Un alt exemplu relevant este Google Drive, care ne permite să stocăm, să replicăm și să edităm documente într-o interfață web, în loc să le păstrăm local pe calculatorul pe care îl folosim. Toată puterea de procesare și tot spațiul de stocare s-a mutat de pe calculatorul propriu pe servere aflate în Internet.
  
 Vom numi aceste aplicații care rulează în Internet **servicii**. Vom numi aceste aplicații care rulează în Internet **servicii**.
Line 53: Line 53:
   * Deschideți într-un editor de text pagina web descărcată pentru a vedea conținutul HTML.   * Deschideți într-un editor de text pagina web descărcată pentru a vedea conținutul HTML.
   * Descărcați pagina web de la adresa ''​%%www.facebook.com%%''​. Afișați conținutul fișierului descărcat.   * Descărcați pagina web de la adresa ''​%%www.facebook.com%%''​. Afișați conținutul fișierului descărcat.
- 
  
 <​note>​ <​note>​
Line 60: Line 59:
  
   * Descărcați pagina web de la adresa ''​%%http://​wttr.in/​%%''​. Afișați conținutul fișierului descărcat.   * Descărcați pagina web de la adresa ''​%%http://​wttr.in/​%%''​. Afișați conținutul fișierului descărcat.
-  * Descărcați fișierul ''​%%http://​elf.cs.pub.ro/​uso/​res/​final/​07-feb/heroes.csv%%''​. Ce tip de fișier este acesta?+  * Descărcați fișierul ''​%%http://​elf.cs.pub.ro/​uso/​res/​final/​141/ex5.csv%%''​. Ce tip de fișier este acesta?
  
 ===== Accesul la distanţă în linie de comandă ===== ===== Accesul la distanţă în linie de comandă =====
  
 <​note>​ <​note>​
-Pentru rularea acestui demo rulați în directorul ''​%%~/​uso-lab/​labs/​03-user/​lab-container%%''​ comanda ''​%%./​lab_prepare.sh install ssh%%''​. Pentru a ne conecta la infrastructura pentru această secțiune vom folosi comanda ''​%%./​lab_prepare.sh connect ssh%%''​+Pentru rularea acestui demo rulați în directorul ''​%%~/​uso-lab/​labs/​03-user/​lab-container/%%''​ comanda ''​%%./​lab_prepare.sh install ssh%%''​. Pentru a ne conecta la infrastructura pentru această secțiune vom folosi comanda ''​%%./​lab_prepare.sh connect ssh%%''​
 </​note>​ </​note>​
  
Line 78: Line 77:
 <code > <code >
 student@uso:​~$ hostname student@uso:​~$ hostname
-uso+uso.local
 student@uso:​~$ ssh root@10.10.10.3 student@uso:​~$ ssh root@10.10.10.3
 The authenticity of host '​10.10.10.3 (10.10.10.3)'​ can't be established. The authenticity of host '​10.10.10.3 (10.10.10.3)'​ can't be established.
Line 121: Line 120:
   * Autentificați-vă la stația cu adresa IP ''​%%12.12.12.3%%''​ folosind utilizatorul ''​%%student%%''​ și parola ''​%%student%%''​.   * Autentificați-vă la stația cu adresa IP ''​%%12.12.12.3%%''​ folosind utilizatorul ''​%%student%%''​ și parola ''​%%student%%''​.
  
-Observație:​ +<​note>​
 Atunci când ne conectăm la o stație folosind protocolul SSH este necesar să precizăm un nume de utilizator valid. Dacă utilizatorul nu există, serverul nu va preciza faptul că utilizatorul nu există pe sistem, ci va cere parola utilizatorului,​ dar nu va permite autentificarea la stație. De ce serverul SSH nu specifică dacă utilizatorul exista sau nu? Atunci când ne conectăm la o stație folosind protocolul SSH este necesar să precizăm un nume de utilizator valid. Dacă utilizatorul nu există, serverul nu va preciza faptul că utilizatorul nu există pe sistem, ci va cere parola utilizatorului,​ dar nu va permite autentificarea la stație. De ce serverul SSH nu specifică dacă utilizatorul exista sau nu?
 +</​note>​
  
 ==== Rularea unei singure comenzi prin SSH ==== ==== Rularea unei singure comenzi prin SSH ====
Line 158: Line 156:
 ==== Transferul fișierelor la distanţă ==== ==== Transferul fișierelor la distanţă ====
  
-Pentru a transfera fișiere la distanță folosim ''​%%scp%%''​ (secure copy). Comanda +Pentru a transfera fișiere la distanță folosim ''​%%scp%%''​ (secure copy). Comanda ''​%%scp%%''​ se folosește de protocolul SSH pentru transferul de date între stații, astfel ne putem folosi de modelul de autentificare de la SSH, ca în comanda de mai jos:
-''​%%scp%%''​ se folosește de protocolul SSH pentru transferul de date între stații, +
-astfel ne putem folosi de modelul de autentificare de la SSH, ca în comanda de +
-mai jos: +
  
 <code > <code >
Line 332: Line 326:
 Pentru a rula browserul ''​%%firefox%%''​ pe stația de la adresa ''​%%10.10.10.3%%'',​ ne-am conectat la aceasta folosind comanda ''​%%ssh%%''​ cu opțiunea ''​%%-X%%''​ și am pornit aplicația ca și când am porni-o local. Pentru a rula browserul ''​%%firefox%%''​ pe stația de la adresa ''​%%10.10.10.3%%'',​ ne-am conectat la aceasta folosind comanda ''​%%ssh%%''​ cu opțiunea ''​%%-X%%''​ și am pornit aplicația ca și când am porni-o local.
  
-<​note>​+Observație:​ 
 Nu putem să preluăm controlul unei aplicații dacă aceasta a fost pornită deja pe stația de la distanță, deoarece putem doar sa primim semnalul video pentru aplicații nou pornite. Nu putem să preluăm controlul unei aplicații dacă aceasta a fost pornită deja pe stația de la distanță, deoarece putem doar sa primim semnalul video pentru aplicații nou pornite.
-</​note>​+
  
 === Exercițiu - Controlul une ferestre la distanță === === Exercițiu - Controlul une ferestre la distanță ===
Line 340: Line 335:
 Deschideți aplicația grafică ''​%%qbittorrent%%''​ ca utilizatorul ''​%%student%%''​ pe stația ''​%%10.10.10.3%%''​. Deschideți aplicația grafică ''​%%qbittorrent%%''​ ca utilizatorul ''​%%student%%''​ pe stația ''​%%10.10.10.3%%''​.
  
 +===== Securizarea conexiunii la Internet folosind un VPN =====
  
 +<​note>​
 +Pentru rularea acestui demo rulați în directorul ''​%%~/​uso-lab/​labs/​03-user/​lab-container/​%%''​ comenzile ''​%%./​lab_prepare.sh install openvpn%%'',​ ''​%%./​lab_prepare.sh install openvpn-client1%%''​ și ''​%%./​lab_prepare.sh install openvpn-client2%%''​. Pentru a ne conecta la infrastructura necesară acestei secțiuni, vom folosi comanda ''​%%./​lab_prepare.sh connect openvpn-client1%%''​ pentru stația ''​%%openvpn-client1%%''​ și ''​%%./​lab_prepare.sh connect openvpn-client2%%''​ pentru a vă conecta la stația ''​%%openvpn-client2%%''​.
 +</​note>​
 +
 +O aplicație de tip VPN (//Virtual Private Network//) este o aplicație care permite crearea rețelelor de calculatoare în Internet fără ca acestea să fie neapărat în aceeași rețea fizică.
 +
 +Funcționalitatea unui VPN este încapsularea datelor trimise de către un calculator, criptarea și trimiterea lor către un server care le va trimite mai departe către destinație.
 +
 +Primul avantaj al folosirii unui VPN este "​ascunderea"​ traficului între client și serverul VPN-ului. Astfel, acesta nu mai pot fi văzute de alte entități până când ajung la serverul VPN. Mai mult, datele care se vor îndrepta spre o destinație pot să depășească anumite filtre bazate pe locație, deoarece locația de unde provin va fi înlocuită de serverul VPN.
 +
 +Al doilea avantaj al VPN-urilor este interconectarea facilă între calculatoare care se află în rețele locale diferite. De exemplu, pentru a juca un joc în LAN (Minecraft pe rețea), putem folosi un VPN, cum ar fi Hamachi((https://​www.vpn.net/​
 +)) , la care se conectează doi utilizatori. Serverul de VPN va primi datele de la clienți și le va trimite mai departe dintr-o rețea locală în alta.
 +
 +
 +==== Recapitulare - Identificarea adreselor IP ale interfețelor ====
 +
 +Identificați adresele IP configurate pe interfețele stațiilor ''​%%openvpn-client1%%''​ și ''​%%openvpn-client2%%''​.
 +
 +==== Recapitulare - Verificarea conexiunii între două stații ====
 +
 +Verificați conectivitatea între cele două stații folosind adresele IP identificate mai sus.
 +
 +<​note>​
 +Nu există conectivitate între cele două stații, deoarece acestea se află în rețele locale diferite.
 +</​note>​
 +
 +Pentru a porni VPN-ul, vom folosi comanda ''​%%openvpn%%''​. Rulați următoarea comandă pe ambele stații pentru a porni clientul de VPN:
 +
 +<code >
 +root@openvpn-client1:​~#​ openvpn --config ./​openvpn-client1.ovpn --daemon
 +root@openvpn-client1:​~#​ ip address show
 +1: lo: <​LOOPBACK,​UP,​LOWER_UP>​ mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
 +    link/​loopback 00:​00:​00:​00:​00:​00 brd 00:​00:​00:​00:​00:​00
 +    inet 127.0.0.1/8 scope host lo
 +       ​valid_lft forever preferred_lft forever
 +3: tun0: <​POINTOPOINT,​MULTICAST,​NOARP,​UP,​LOWER_UP>​ mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
 +    link/none
 +    inet 192.168.255.6 peer 192.168.255.5/​32 scope global tun0
 +       ​valid_lft forever preferred_lft forever
 +45: eth0@if46: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc noqueue state UP group default
 +    link/ether 02:​42:​0a:​0a:​0a:​0f brd ff:​ff:​ff:​ff:​ff:​ff link-netnsid 0
 +    inet 10.10.10.15/​24 brd 10.10.10.255 scope global eth0
 +       ​valid_lft forever preferred_lft forever
 +
 +root@openvpn-client2:​~#​ openvpn --config ./​openvpn-client2.ovpn --daemon
 +root@openvpn-client2:​~#​ ip address show
 +1: lo: <​LOOPBACK,​UP,​LOWER_UP>​ mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
 +    link/​loopback 00:​00:​00:​00:​00:​00 brd 00:​00:​00:​00:​00:​00
 +    inet 127.0.0.1/8 scope host lo
 +       ​valid_lft forever preferred_lft forever
 +2: tun0: <​POINTOPOINT,​MULTICAST,​NOARP,​UP,​LOWER_UP>​ mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
 +    link/none
 +    inet 192.168.255.10 peer 192.168.255.9/​32 scope global tun0
 +       ​valid_lft forever preferred_lft forever
 +47: eth0@if48: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc noqueue state UP group default
 +    link/ether 02:​42:​0b:​0b:​0b:​0f brd ff:​ff:​ff:​ff:​ff:​ff link-netnsid 0
 +    inet 11.11.11.15/​24 brd 11.11.11.255 scope global eth0
 +       ​valid_lft forever preferred_lft forever
 +</​code>​
 +Observăm că a apărut o nouă interfață de rețea în sistem care nu are o componentă fizică. Adresa IP setată pe această interfață este adresa care identifică stațiile în rețeaua VPN-ului. Observați că ambele adrese de pe interfețele ''​%%tun0%%''​ sunt foarte similare. Asta înseamnă că cele două stații sunt acum în aceeași rețea virtuală.
 +
 +==== Recapitulare - Verificarea conexiunii între două stații ====
 +
 +Testați conectivitatea de pe stația ''​%%openvpn-client1%%''​ cu stația ''​%%openvpn-client2%%''​. Folosiți adresele IP configurate pe interfețele ''​%%tun0%%''​ de pe fiecare stație.
 +
 +==== Modificarea drumului prin care trec datele ====
 +
 +Pentru a valida că datele chiar trec prin VPN, rulăm comanda ''​%%traceroute 8.8.8.8%%''​ și observăm că mesajele spre Internet nu trec prin interfața ''​%%eth0%%''​. Mesajele trec prin interfața ''​%%tun0%%'',​ ajung la serverul VPN identificat prin adresa ''​%%192.168.255.1%%''​ în pasul 1, iar abia apoi sunt lansate mai departe spre Internet.
 +
 +<code >
 +root@openvpn-client1:​~#​ traceroute 8.8.8.8
 +traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 + ​1 ​ 192.168.255.1 (192.168.255.1) ​ 6.033 ms  6.031 ms  5.881 ms
 + ​2 ​ 10.10.10.253 (10.10.10.253) ​ 8.582 ms  8.447 ms  8.306 ms
 + ​3 ​ 10.0.2.2 (10.0.2.2) ​ 8.165 ms  8.031 ms  7.808 ms
 + ​4 ​ * * *
 + ​5 ​ * * *
 + ​6 ​ r-c3550-l3-vlan11.bucharest.roedu.net (141.85.0.65) ​ 8.308 ms  5.578 ms  4.876 ms
 + ​7 ​ 172.31.255.93 (172.31.255.93) ​ 4.681 ms  6.882 ms  6.855 ms
 + ​8 ​ po-23.acc1.buc.roedu.net (37.128.225.225) ​ 16.711 ms  16.151 ms  16.751 ms
 + ​9 ​ bu-13.core2.buc.roedu.net (37.128.232.177) ​ 9.248 ms  9.268 ms  9.232 ms
 +10  hu-0-0-0-0.core3.nat.roedu.net (37.128.239.101) ​ 8.510 ms  8.466 ms  6.542 ms
 +11  te-0-6-0-1.peers1.nat.roedu.net (37.128.239.42) ​ 6.347 ms  5.894 ms  5.987 ms
 +12  google.interlan.ro (86.104.125.129) ​ 31.665 ms  31.614 ms  31.529 ms
 +13  108.170.252.65 (108.170.252.65) ​ 31.506 ms 108.170.251.193 (108.170.251.193) ​ 31.146 ms 108.170.252.1 (108.170.252.1) ​ 31.591 ms
 +14  172.253.73.153 (172.253.73.153) ​ 31.795 ms 74.125.37.197 (74.125.37.197) ​ 30.256 ms 74.125.37.167 (74.125.37.167) ​ 30.068 ms
 +15  dns.google (8.8.8.8) ​ 29.710 ms  34.122 ms  30.538 ms
 +</​code>​
 +Aceasta a fost o demonstrație a modului de lucru folosind ''​%%openvpn%%''​ în linie de comandă pentru configurarea unui VPN folosind fișiere de configurare. Aceasta nu este singura metodă de conectare la VPN, există implementări diferite, cum ar fi WireGuard((https://​www.wireguard.com/​
 +)) sau Cisco AnyConnect((https://​www.cisco.com/​c/​en/​us/​products/​security/​anyconnect-secure-mobility-client/​index.html
 +)) care oferă același serviciu dar implementat în mod diferit, oferind interfață grafică sau un mod facil de configurare.
  
uso/laboratoare/laborator-05/services.1635836223.txt.gz · Last modified: 2021/11/02 08:57 by liza_elena.babu
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