Differences

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

Link to this comparison view

rl:labs:08:contents:09 [2020/09/13 07:05]
iulia.florea
rl:labs:08:contents:09 [2023/11/05 12:57] (current)
vlad_iulius.nastase
Line 1: Line 1:
-==== 9. [5pTrafic criptat ​și necriptat ​====+==== 09. [10pConfigurare persistentă rutare ​și NAT ====
  
-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.+Configurările realizate până în acest moment sunt temporareLa repornirea stației ''​host''​ regulile de NAT se pierd. Dorim să configurăm ​în mod persistent rutarea ​și regulile NAT.
  
-Ne propunem să analizămdin punctul de vedere al criptării traficului, următoarele protocoale/servicii: +Pentru a configura în mod persistent rutarea pe stația ''​host''​edităm fișierul ''​/etc/​sysctl.conf''​ și decomentăm linia<​code>​ 
-  * telnet (port TCP 23) +net.ipv4.ip_forward=1 
-  * SSH (port TCP 22) +</​code>​ Astfel la fiecarea pornire a sistemului, rutarea va fi activată.
-  * FTP (port TCP 21)+
  
-Vom folosi ''​dsniff'',​ un utilitar cu ajutorul că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''​.+<note important>​ 
 +Rutarea nu se va activa în mod automat după ce decomentați linia din fișier. Trebuie să resetați sistemul sau să rulați comanda<​code bash> 
 +sysctl ​-
 +</​code> ​pentru a aplica modificările din fișierul de configurare ​''​/​etc/​sysctl.conf''​. 
 +</​note>​
  
-Pentru a porni procesul de captură, autentificați-vă ca ''​root'' ​pe stația ​''​host''​ și rulați ​comanda<​code bash> +Pentru a salva toate regulile ​''​iptables'' ​introduse în sistem se poate folosi comanda ​''​iptables-save''​. În mod implicit aceste reguli sunt afișate pe consolă. Noi le vom salva în ''/​etc/​iptables-rules''​ folosind ​comanda:<code bash> 
-root@host:​~# ​dsniff ​-i veth-green+root@host:​~# ​iptables-save > /​etc/​iptables-rules
 </​code>​ </​code>​
  
-Pentru comunicație prin telnet, rulați pe stația ​''​red''​ comanda<​code bash> +Regulile pot fi restaurate folosind comanda ​''​iptables-restore < /​etc/​iptables-rules''​. Așadar trebuie să configurăm sistemul să execute această ​comanda ​la pornire. Modul cel mai uzual pentru a face acest lucru este adăugarea acestei comenzi în fișierul de configurare al interfeței:​<code bash> 
-root@red:~# telnet green+root@host:~# cat /​etc/​network/​interfaces 
 +[...] 
 +# The primary network interface 
 +auto eth0 
 +iface eth0 inet dhcp 
 +        up iptables-restore < /​etc/​iptables-rules
 </​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> +După ce ați făcut toate configurările,​ reporniți stația ​''​host''​:
-''​dsniff''​ capturează traficul de rețea șafișează credențialele doar la încheierea conexiunilor. Trebuie folosite comenzi de tipul ''​exit''​ pentru a închide conexiunea șpentru ca ''​dsniff'' ​să afișeze credențialele. +
-</​note>​+
  
-Pentru comunicație prin FTP, rulați pe stația ''​red''​ comanda<​code bash> 
-root@red:~# ftp green 
-</​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> +<code bash> 
-root@red:~# ssh -l student green+Dashboard ​-> Drop Down in dreptul masinii virtuale -> Soft Reboot Instance
 </​code>​ </​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ți comanda ''​ls''​ și apoi comanda ''​exit''​ pentru a închide conexiunea. Observaț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''​. 
  
-<​note>​ +În urma repornirii stației ''​host'',​ va trebui sa rerulam scripturile de pregatire a infrastructurii pentru a recrea containerele. Vom vedea aplicată rutarea ​și regulile de NAT: (in cazul in care rutarea nu este activata, inseamna ca a fost suprascrisa de catre scripturile de pregatire a infrastructurii si va trebui s-o activati din nou)<​code bash> 
-Traficul telnet ​și FTP este trafic necriptat ​(în clar), în timp ce traficul SSH este trafic criptat+root@host:​~#​ sysctl net.ipv4.ip_forward 
-</note>+net.ipv4.ip_forward = 1 
 +root@host:​~#​ iptables -t nat -L -n -v 
 +Chain PREROUTING ​(policy ACCEPT 30 packets, 5694 bytes) 
 + pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination ​         
 +    0     0 DNAT       ​tcp ​ --  eth0   ​* ​      ​0.0.0.0/​0 ​           0.0.0.0/​0 ​           tcp dpt:10022 to:​192.168.1.2:​22 
 +    0     0 DNAT       ​tcp ​ --  eth0   ​* ​      ​0.0.0.0/​0 ​           0.0.0.0/​0 ​           tcp dpt:20022 to:​192.168.2.2:​22 
 +    0     0 DNAT       ​tcp ​ --  eth0   ​* ​      ​0.0.0.0/​0 ​           0.0.0.0/​0 ​           tcp dpt:30022 to:​192.168.3.2:​22 
 +    0     0 DNAT       ​tcp ​ --  eth0   ​* ​      ​0.0.0.0/​0 ​           0.0.0.0/​0 ​           tcp dpt:10023 to:​192.168.1.2:​23 
 +    0     0 DNAT       ​tcp ​ --  eth0   ​* ​      ​0.0.0.0/​0 ​           0.0.0.0/​0 ​           tcp dpt:20023 to:​192.168.2.2:​23 
 +    0     0 DNAT       ​tcp ​ --  eth0   ​* ​      ​0.0.0.0/​0 ​           0.0.0.0/​0 ​           tcp dpt:30023 to:​192.168.3.2:​23 
 + 
 +Chain INPUT (policy ACCEPT 2 packets534 bytes) 
 + pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination ​         
 + 
 +Chain OUTPUT (policy ACCEPT 16 packets, 958 bytes) 
 + pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination ​         
 + 
 +Chain POSTROUTING (policy ACCEPT 15 packets, 918 bytes) 
 + pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination ​         
 +    1    40 MASQUERADE ​ all  --  *      eth0    0.0.0.0/​0 ​           0.0.0.0/0 
 +</code>
rl/labs/08/contents/09.1599969911.txt.gz · Last modified: 2020/09/13 07:05 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