Differences

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

Link to this comparison view

rl:labs:08:contents:07 [2020/12/01 10:11]
iulia.florea removed
rl:labs:08:contents:07 [2023/11/05 12:56] (current)
vlad_iulius.nastase
Line 1: Line 1:
-==== 7. [5pTrafic criptat și necriptat ​====+==== 07. [10pFormat de pachete la port forwarding ​====
  
-Traficul generat de servicii ​se clasifică în **trafic criptat** ​și **trafic ​în clar**Traficul **în clar (necriptat)** poate fi interpretat și înțeles dacă este capturat. Traficul criptat nu poate fi interpretat în absența cheii de criptare; doar transmițătorul ​și receptorul cunosc cheia pentru a putea comunica.+La exercițiul [[rl:​labs:​09:​contents:​03|]] am observat cum se modifică adresa IP sursă și portul sursă ​în cazul translatării de adreseLa port forwarding vom observa cum se modifică adresa IP destinație (de aici și numele DNAT: ''​Destination NAT''​).
  
-Ne propunem să analizăm, ​din punctul de vedere al criptării traficului, următoarele protocoale/​servicii:​ +Vom captura traficul SSH inițiat ​din exterior ​tre stația ''​red''​, prin intermediul portului ''​10022''​ al stației ''​host''​. Este vorba de traficul înainte de //port forwarding//​. Pentru aceasta, pe stația ''​host'' ​vom folosi comanda<​code bash> 
-  * telnet (port TCP 23) +root@host:​~#​ tcpdump -n -i eth0 tcp dst port 10022 -w /​home/​student/​portfwd_eth0_output.pcap 
-  * SSH (port TCP 22) +</​code>​
-  * FTP (port TCP 21) +
- +
-Vom folosi ''​dsniff'',​ un utilitar cu ajutorul ​ruia putem captura în clar pachetele care trec printr-un anumit server, pentru a afișa datele transmise (username, parolă, comenzi). Vom folosi topologia de laborator și ne vom conecta de la stația ''​red'' ​la stația ''​green'' ​prin intermediul ​stației ''​host''​.+
  
-Pentru a porni procesul de captură, ​autentificați-vă ca ''​root'' ​pe stația ''​host'' ​și rulați ​comanda<​code bash> +Pe un alt terminal, tot pe stația ''​host'' ​capturăm traficul **după** //port forwarding//​pe interfața ''​veth-red''​ către portul SSH (''​22''​) al stației red. Pe stația ''​host'' ​folosim ​comanda<​code bash> 
-root@host:​~# ​dsniff ​-i veth-green+root@host:​~# ​tcpdump -n -i veth-red tcp dst port 22 -w /​home/​student/​portfwd_veth-red_output.pcap
 </​code>​ </​code>​
  
-Pentru ​comunicație prin telnetrulați ​pe stația ''​red'' ​comanda<code bash> +Pentru ​a genera traficde pe ''​fep.grid.pub.ro''​ realizăm o conexiune SSH la stația ​''​host''​ pe portul ''​10022'',​ conexiune ce va fi redirectată la portul ''​22''​ al stației ​''​red''​:<code bash> 
-root@red:​~# ​telnet green+mihai.carabas@fep:​~$ ssh -l student $ADRESA_IP_VM -p 10022 
 +root@host.local'​s password:  
 +[...] 
 +root@red:​~# ​
 </​code>​ </​code>​
-În urma rulării comenzii ați realizat o conexiune telnet de la stația ''​red''​ la stația ''​green''​ prin intermediul stației ''​host''​. La prompt-ul generat de comandă folosiți username-ul ''​student''​ și parola ''​student'';​ după aceea rulați comanda ''​ls''​ și apoi comanda ''​exit''​ pentru a închide conexiunea. Observați pe stația ''​host''​ captura credențialelor (username și parolă) transmise prin telnet între stațiile ''​red''​ și ''​green''​ => traficul telnet între cele două stații a fost **trafic în clar** și a fost capturat pe stația ''​host''​. 
  
-<​note ​tip+<​note ​important
-''​dsniff''​ capturează traficul de rețea șafișează credențialele doar la încheierea conexiunilor. Trebuie folosite comenzi de tipul ''​exit'' ​pentru a închide conexiunea ​și pentru ca ''​dsniff'' ​să afișeze credențialele. +Pentru a vizualiza capturile salvate în cele două fișiere copiați-le la voi local (pe calculatorul vostru) folosind ​''​scp''​ și deschideți-le cu utilitarul ​''​wireshark''​.
-</​note>​+
  
-Pentru comunicație prin FTP, rulați ​pe stația ''​red''​ comanda<​code bash> +<spoiler (click pentru expandare) Copiere fișiere din VM pe local
-root@red:~# ftp green +<​code ​bash>
-</code> +
-În urma rulării comenzii ați realizat o conexiune FTP de la stația ''​red''​ la stația ''​green''​ prin intermediul stației ''​host''​. La prompt-ul generat de comandă folosiți username-ul ''​student''​ și parola ''​student'';​ după aceea rulați comanda ''​ls''​ și apoi comanda ''​quit''​ pentru a închide conexiunea. Observați pe stația ''​host''​ captura credențialelor (username și parolă) transmise prin FTP între stațiile ''​red''​ și ''​green''​ => traficul FTP între cele două stații a fost **trafic în clar** și a fost capturat pe stația ''​host''​.+
  
-Pentru comunicație prin SSH, rulați pe stația ''​red''​ comanda<​code bash> +$USER_FEP@fep:~$ scp -i ~/​.ssh/​openstack.key ​student@$ADRESA_IP_VM:​portfwd_eth0_output.pcap .  # Dacă fișierul pf_eth0_output.pcap se află în directorul /​home/​student/​ 
-root@red:~# ssh -student ​green +$USER_FEP@fep:​~$ scp -~/.ssh/​openstack.key student@$ADRESA_IP_VM:​portfwd_veth-red_output.pcap ./   # Dacă fișierul pf_veth-red_output.pcap se află în directorul /​home/​student/​
-</code> +
-În urma rulării comenzii ați realizat o conexiune SSH de la stația ''​red''​ la stația ''​green''​ prin intermediul stației ''​host''​În sesiunea de shell deschisă la distanță, rulațcomanda ''​ls''​ și apoi comanda ''​exit''​ pentru a închide conexiuneaObservați că pe stația ''​host''​ ''​dsniff''​ nu afișează informații despre credențialele (username și parolă) transmise între stațiile ''​red''​ și ''​green''​ => traficul SSH între cele două stații a fost **trafic criptat** și **nu** a putut fi capturat pe stația ''​host''​.+
  
-Pe stația ''​host'',​ pentru a opri comanda ''​dsniff''​ folosiți combinația ​de taste ''​Ctrl+c''​.+student@lab-EG207-EG208:​~$ scp $USER_FEP@fep.grid.pub.ro:​portfwd_eth0_output.pcap ./  # Dacă fișierul portfwd_eth0_output.pcap se află în home-ul utilizatorului de pe fep. 
 +student@lab-EG207-EG208:​~$ scp $USER_FEP@fep.grid.pub.ro:​portfwd_veth-red_output.pcap ./  # Dacă fișierul portfwd_veth-red_output.pcap se află în home-ul utilizatorului ​de pe fep. 
 + 
 +</​code>​ 
 +</​spoiler>​  
 +</​note>​
  
 <​note>​ <​note>​
-Traficul telnet ​și FTP este trafic necriptat ​(în clar), în timp ce traficul SSH este trafic criptat.+Exemplu instalare ​și pornire ''​Wireshark'' ​(pe sisteme Debian)
 +<code bash> 
 +student@mjolnir:​~$ apt-get install wireshark 
 +student@mjolnir:​~$ wireshark portfwd_eth0_output.pcap & 
 +student@mjolnir:​~$ wireshark portfwd_veth-red_output.pcap & 
 +</​code>​
 </​note>​ </​note>​
 +
 +În capturile realizate de comenzile de mai sus, observăm cum se translatează adresa IP și portul destinație din perechea ''<​$ADRESA_IP_VM,​ 10022>''​ în perechea ''<​192.168.1.2,​ 22>''​.
rl/labs/08/contents/07.1606810311.txt.gz · Last modified: 2020/12/01 10:11 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