Differences

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

Link to this comparison view

rl:labs:08:contents:04 [2020/12/01 16:02]
iulia.florea
rl:labs:08:contents:04 [2023/11/05 12:54] (current)
vlad_iulius.nastase
Line 1: Line 1:
-==== 4. [5pCopiere fișiere cu diverse protocoale: durată și consum de resurse ​====+==== 04. [10pConfigurare incorectă a translatării ​====
  
-Ne propunem să măsurăm timpul de copiere și consumul de resurse ​pentru ​un transfer realizat între două stații folosindpe rândtransfer direct, FTP și SSH. În directorul home al utilizatorului ''​student''​ de pe stația ''​green''​ există un fișier ''​file-100M.dat''​. Vom transfera acest fișier în directorul home al utilizatorului ''​student''​ de pe stația ''​host''​. Vom folosi transfer direct, transfer FTP și transfer SSH. Pentru fiecare caz, stația ''​host''​ va rula server-ul, iar stația ''​green''​ clientul.+Comanda folosită mai sus pentru ​translatarela [[:​rl:​labs:​09:​contents:​01]]are neajunsuri ​pe care le vom identifica mai jos.
  
-<note tip> 
-Dați copy-paste la comenzile de mai jos ca să vă asigurați că le scrieți corect. Pentru paste folosiți, în terminal, combinația de taste ''​Shift+Insert''​. 
-</​note>​ 
  
-**Transfer direct**+Pe stația ''​green''​ capturăm traficul pe interfața ''​green-eth0''​ folosind comanda ''​tcpdump'':<​code bash> 
 +root@green:​~#​ tcpdump -i green-eth0 
 +tcpdump: verbose output suppressed, use -v or -vv for full protocol decode 
 +listening on green-eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 
 +</​code>​
  
-Pentru transfer direct vom porni un server simplu TCP pe stația ''​host'' ​și un client pe stația ​''​green''​; vom folosi utilitarul ''​netcat'',​ prescurtat și ''​nc''​. Rulați pe stația ''​host''​, în contul utilizatorului ''​student'',​ comanda<code bash> +Pe stația ''​red'' ​executăm comanda ​''​ping'' ​către ​stația ''​green''​:<code bash> 
-student@host:~$ nc -l 12345 > file-100M-nc.dat +root@red:~# ping -c 2 green 
-</​code> ​Comanda deschide un server TCP care ascultă conexiuni pe portul ''​12345''​. Comanda rămâne activă în așteptarea unei conexiuni de la un client.+PING green (192.168.2.2) 56(84) bytes of data. 
 +64 bytes from green (192.168.2.2):​ icmp_req=1 ttl=63 time=0.155 ms 
 +64 bytes from green (192.168.2.2):​ icmp_req=2 ttl=63 time=0.086 ms 
 +[...] 
 +</​code>​
  
-De pe stația ''​green''​, din contul utilizatorului ''​student'',​ transferați fișierul și măsurați timpul de transfer și consumul de resurse prin rularea ​comenzii((În cazul unui transfer prin rețea folosind ​''​netcat'' ​nu se face verificare de integritate (//​integrity check//). Există riscul (mic, dar există) ca fișierul să nu fie transferat corespunzător. De aceea e bine să verificați integritatea acestuia prin calcularea sumei de control (//​checksum//​) folosind, de exemplu, utilitarul ''​sha512sum''​.))<​code ​bash+În acest moment, ​pe stația ''​green'' ​avem captura pachetelor în output-ul ​comenzii ''​tcpdump''​:<​code>​ 
-student@green:~$ /​usr/​bin/​time -v cat file-100M.dat | nc host 12345+11:​18:​54.535064 IP host > green: ​ICMP echo request, id 633, seq 17, length 64 
 +11:18:54.535092 IP green > host: ICMP echo reply, id 633, seq 17, length 64
 </​code>​ </​code>​
  
-Comanda ​de mai sus trimite un fișier comenzii ​''​nc'', ​iar comanda ​''​nc'' ​are rolul unui client TCP care se conectează la stația ''​host'' ​pe portul ​''​12345''​.+Observăm că adresa sursă a pachetelor ​de tip ''​ICMP echo request''​ este stația ''​host'', ​nu stația ​''​red''​. Acest lucru se întâmplă din cauză că atunci când am activat NAT nu am specificat pentru ce tip de trafic să aplice politica de translatare. Astfel ​stația ''​host'' ​aplică politica de NAT pentru tot traficul care o tranzitează. Dorim să aplicăm politica doar pentru pachetele ce **ies** în Internet, adică cele ale căror **interfață de ieșire** este interfața ​''​eth0''​. Vom șterge vechea regulă de NAT și vom adăuga o regulă corectă.
  
-**Transfer FTP** +Pentru ​ștergerea vechii reguli ​de NAT rulăm ​pe stația ''​host'' ​comanda<code bash> 
- +root@host:~# iptables ​-t nat -D POSTROUTING ​-j MASQUERADE 
-Pentru ​transfer FTP, serverul ​de FTP este deja pornit ​pe stația ''​host''​. De pe stația ''​green'',​ din contul utilizatorului ''​student'',​ transferați fișierul și măsurați timpul de transfer și consumul de resurse prin rularea comenzii<code bash> +</code> 
-student@green:~$ /​usr/​bin/​time ​-v curl -T file-100M.dat -u student:​student ftp://host/file-100M-ftp.dat+Verificăm faptul că nu mai există comanda<​code bash> 
 +root@host:~# iptables ​-t nat -L POSTROUTING -n -v 
 +Chain POSTROUTING (policy ACCEPT 1 packets, 328 bytes) 
 + pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination
 </​code>​ </​code>​
  
-**Transfer SSH** +Adăugăm din nou regula de NATdar de data aceasta vom specifica să aplice politica de NAT pachetelor ce ies prin interfaț''​eth0'' ​stației ''​host''​:<code bash> 
- +root@host:~# iptables ​-t nat -A POSTROUTING -o eth0 -j MASQUERADE 
-Pentru transfer SSHserverul ​de SSH este deja pornit și configurat pe stația ''​host''​. De pe stația ''​green''​, în contul utilizatorului ''​student'',​ transferați fișierul și măsurați timpul de transfer și consumul de resurse prin rularea comenzii<code bash> +</​code>​ 
-student@green:~$ /​usr/​bin/​time ​-v scp file-100M.dat student@host:file-100M-scp.dat+Verificați că regula a fost inserată:<​code bash> 
 +root@host:~# iptables ​-t nat -L POSTROUTING -n -v 
 +Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) 
 + pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination 
 +    0     0 MASQUERADE ​ all  --  *      eth0    0.0.0.0/​0 ​           0.0.0.0/0
 </​code>​ </​code>​
 +Observăm prezența interfaței ''​eth0''​ în coloana ''​out''​. Înainte apărea caracterul ''​*'',​ adică orice interfață.
  
-Urmăriți timpii ​de rulare ​și consumul de memorie și de procesor pentru cele trei cazuri de mai sus. Observați valorile ridicate pentru SSH pentru timpul utilizator (//User time//) și procentul de procesor (//Percent of CPU//). Acesta valori ridicate se datorează componentei ​de criptare a SSH: această componentă asigură securizarea datelor cu un cost de reducere de performanță.+Repetați testul ​de la începutul exercițiului ​și arătați că pachetele trimise ​de la ''​red''​ către ''​green''​ au adresele IP sursă/destinație nemodificate (nu mai fac trecerea prin NAT), în vreme ce pachetele ce ies în Internet sunt translatate.
rl/labs/08/contents/04.1606831326.txt.gz · Last modified: 2020/12/01 16:02 by iulia.florea
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