Differences

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

Link to this comparison view

rl:labs:08:contents:11 [2020/12/01 10:47]
iulia.florea created
rl:labs:08:contents:11 [2023/11/05 12:57] (current)
vlad_iulius.nastase
Line 1: Line 1:
-==== 11. [5pCopiere fișiere cu diverse protocoale: durată și consum ​de resurse ​====+==== 11. [BONUS - 10pTranslatare selectivă de adrese ​====
  
-Ne propunem să măsurăm timpul de copiere și consumul de resurse pentru un transfer realizat între două stații folosind, pe rând, transfer 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 directtransfer FTP și transfer SSH. Pentru fiecare caz, stația ''​host''​ va rula server-ul, iar stația ''​green''​ clientul.+Pentru situația în care adresa IP exterioară a gateway-ului este adresă statică (nu dinamică) se recomandă folosirea acțiunii ''​SNAT'' ​în loc de ''​MASQUERADE'' ​la translatarea ​de adresePe lângă aceastaSNAT are avantajul precizării unui spațiu de adrese care să fie noile adrese (cele substituite) ​și a porturilor.
  
 <note tip> <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''​.+Informații despre folosirea ''​SNAT''​ șdiferența dintre ''​SNAT''​ și ''​MASQUERADE'' ​găsiți [[http://​www.netfilter.org/​documentation/​HOWTO/​NAT-HOWTO-6.html|aici]].
 </​note>​ </​note>​
  
-**Transfer direct**+Ștergeți regula anterioară de tip ''​MASQUERADE''​ și folosiți reguli de tip ''​SNAT''​ pentru a face următoarele translatări:​ 
 +  ​conexiunile TCP către Internet de la stația ''​red''​ să iasă prin porturi din spațiul ''​45000-50000'';​ 
 +  ​conexiunile TCP către Internet de la stația ''​green''​ să iasă prin porturi din spațiul ''​50000-55000'';​ 
 +  ​conexiunile TCP către Internet de la stația ''​blue''​ să iasă prin porturi din spațiul ''​55000-60000'';​ 
 +  ​toate celelalte conexiuni să fie realizate în mod obișnuit, având ca adresă sursă adresa IP de exterior a stației ''​host''​ (această regulă trebuie să fie ultima).
  
-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> +Verificați translatarea corectă inițiind conexiuni HTTP (folosind ​''​wget''​) către ''​cs.pub.ro''​ de pe fiecare dintre cele trei stații de tip container (''​red'', ​''​green'' ​și ''​blue''​și folosind ​''​tcpdump''​ pe stația ''​host'' ​pentru ​captura traficul aferent.
-student@host:​~$ nc -l 12345 > file-100M-nc.dat +
-</​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.+
  
-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> +<​hidden>​ 
-student@green:~/usr/bin/time -v cat file-100M.dat | nc host 12345+<​solution>​ 
 +Ștergem regula de tip ''​MASQUERADE'', ​adăugăcele patru reguli ​de tip ''​SNAT''​ și verificăm prezența acestora în tabela ​''​nat''​:<code bash> 
 +root@host:~# iptables -t nat -F POSTROUTING 
 +root@host:​~#​ iptables -t nat -A POSTROUTING -s 192.168.1.2 -p tcp -o eth0 -j SNAT --to-source 192.168.56.101:​45000-50000 
 +root@host:​~#​ iptables -t nat -A POSTROUTING -s 192.168.2.2 -p tcp -o eth0 -j SNAT --to-source 192.168.56.101:​50000-55000 
 +root@host:​~#​ iptables -t nat -A POSTROUTING -s 192.168.3.2 -p tcp -o eth0 -j SNAT --to-source 192.168.56.101:​55000-60000 
 +root@host:​~#​ iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.56.101 
 +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 SNAT       ​tcp ​ --  *      eth0    192.168.1.2 ​         0.0.0.0/0            to:​192.168.56.101:​45000-50000 
 +    0     0 SNAT       ​tcp ​ --  *      eth0    192.168.2.2 ​         0.0.0.0/0            to:​192.168.56.101:​50000-55000 
 +    0     0 SNAT       ​tcp ​ --  *      eth0    192.168.3.2 ​         0.0.0.0/0            to:​192.168.56.101:​55000-60000 
 +    0     0 SNAT       ​all  ​--  *      eth0    0.0.0.0/​0 ​           0.0.0.0/​0 ​           to:​192.168.56.101
 </​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''​. +Pornim ​''​tcpdump'' ​pentru a captura mesaje destinate ​''​cs.pub.ro''​ pe portul ''​80''​, aferent HTTP:<​code bash> 
- +root@host:​~#​ tcpdump -n -i any ip dst host cs.pub.ro and tcp dst port 80 
-**Transfer FTP** +[...] 
- +16:​43:​45.683809 IP 192.168.1.2.43031 > 141.85.166.61.80:​ Flags [.], ack 1461, win 17520, length 0 
-Pentru transfer FTPserverul 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+16:​43:​45.683836 IP 192.168.56.101.45000 > 141.85.166.61.80:​ Flags [.], ack 1461, win 17520, length 0 
-student@green:~$ /​usr/​bin/​time -v curl -T file-100M.dat -u student:student ftp://​host/​file-100M-ftp.dat+16:​43:​45.684033 IP 192.168.1.2.43031 > 141.85.166.61.80:​ Flags [.]ack 2921, win 20440, length 0 
 +16:43:45.684041 IP 192.168.56.101.45000 > 141.85.166.61.80:​ Flags [.]ack 2921win 20440, length 0 
 +[...] 
 +16:​44:​12.865807 IP 192.168.2.2.60147 ​141.85.166.61.80:​ Flags [.], ack 4105, win 23256, length 0 
 +16:44:12.865811 IP 192.168.56.101.50000 > 141.85.166.61.80Flags [.], ack 4105, win 23256, length 0 
 +16:44:12.885166 IP 192.168.2.2.60147 > 141.85.166.61.80:​ Flags [.], ack 5473, win 25992, length 0 
 +16:​44:​12.885175 IP 192.168.56.101.50000 > 141.85.166.61.80:​ Flags [.], ack 5473, win 25992, length 0 
 +[...] 
 +16:​44:​27.929672 IP 192.168.3.2.59957 > 141.85.166.61.80:​ Flags [.], ack 5473, win 25992, length 0 
 +16:​44:​27.929683 IP 192.168.56.101.59957 > 141.85.166.61.80:​ Flags [.], ack 5473, win 25992, length 0 
 +16:​44:​27.929902 IP 192.168.3.2.59957 > 141.85.166.61.80:​ Flags [.], ack 6841, win 28728, length 0 
 +16:​44:​27.929918 IP 192.168.56.101.59957 > 141.85.166.61.80:​ Flags [.], ack 6841, win 28728, length 0
 </​code>​ </​code>​
- +Observăcă translatarea TCP se face în spațiul de porturi definit prin regulile ​de mai sus
-**Transfer SSH** +</solution
- +</hidden>
-Pentru transfer SSH, serverul 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 surați timpul ​de transfer și consumul ​de resurse prin rularea comenzii<​code bash> +
-student@green:​~$ /​usr/​bin/​time -v scp file-100M.dat student@host:​file-100M-scp.dat +
-</code+
- +
-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ță.+
rl/labs/08/contents/11.1606812467.txt.gz · Last modified: 2020/12/01 10:47 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