Differences

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

Link to this comparison view

rl:labs:08:contents:04 [2020/09/13 07:23]
iulia.florea
rl:labs:08:contents:04 [2023/11/05 12:54] (current)
vlad_iulius.nastase
Line 1: Line 1:
-==== 4. [10p] Generare cheie publică și autentificare ​===+==== 04. [10p] Configurare incorectă a translatării ====
  
-În contul utilizatorului ''​corina''​ de pe stația ''​blue''​ generați o pereche cheie publică/cheie privată SSH prin rularea comenzii<​code bash> +Comanda folosită mai sus pentru translatare,​ la [[:rl:labs:09:contents:​01]], are neajunsuri pe care le vom identifica mai jos.
-corina@blue:~$ ssh-keygen -t rsa +
-Generating public/​private rsa key pair. +
-Enter file in which to save the key (/​home/​corina/​.ssh/​id_rsa) +
-Created directory '/​home/​corina/​.ssh'​. +
-Enter passphrase (empty for no passphrase) +
-Enter same passphrase again +
-Your identification has been saved in /​home/​corina/​.ssh/​id_rsa. +
-Your public key has been saved in /​home/​corina/​.ssh/​id_rsa.pub. +
-[...] +
-</​code>​ Folosiți ''​ENTER''​ pentru a folosi căile implicite. Nu folosiți passphrase (adică apăsați ''​ENTER''​ când vi se solicită passphrase-ul). Cheile sunt generate respectivîn fișierele, ''​.ssh/​id_rsa''​ (cheia privată) și ''​.ssh/​id_rsa.pub''​ (cheia publică).+
  
-Realizați operațiile necesare pentru a permite autentificarea pe bază de chei din contul utilizatorului ''​corina''​ de pe stația ''​blue''​ în contul utilizatorului ''​student''​ de pe stația ''​host''​. După aceea, verificați faptul că autentificarea se face pe baza de chei. 
  
-Aceștia sunt pașii pe care îi veți urma pentru a configura conectare SSH pe bază de chei: +Pe stația ''​green'' ​capturăm traficul pe interfaț''​green-eth0''​ folosind comanda ''​tcpdump''​:<code bash> 
-  - generare pereche de chei SSH (folosind comanda ​''​ssh-keygen''​+root@green:​~#​ tcpdump -i green-eth0 
-  - copiere cheie publică în contul de la distanță (folosind comanda ​''​ssh-copy-id''​+tcpdump: verbose output suppressed, use -v or -vv for full protocol decode 
-  - conectare la distanță (folosind comanda ''​ssh''​)+listening on green-eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 
 +</​code>​
  
-<​hidden>​ +Pe stația ''​red''​ executăm comanda ''​ping''​ către stația ''​green'':​<code bash> 
-<​solution>​ +root@red:~# ping -c 2 green 
-<code bash> +PING green (192.168.2.2) 56(84) bytes of data. 
-corina@blue:~$ ssh-copy-id student@host +64 bytes from green (192.168.2.2)icmp_req=1 ttl=63 time=0.155 ms 
-student@host'​s password:  +64 bytes from green (192.168.2.2)icmp_req=2 ttl=63 time=0.086 ms 
-Now try logging into the machine, with "ssh '​student@host'",​ and check in:+[...] 
 +</​code>​
  
-  ~/.ssh/authorized_keys+În acest moment, pe stația ''​green''​ avem captura pachetelor în output-ul comenzii ''​tcpdump'':<​code>​ 
 +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>
  
-to make sure we haven't added extra keys that you weren't expecting.+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ă.
  
-corina@blue:~$ ssh -l student host +Pentru ștergerea vechii reguli de NAT rulăm pe stația ''​host''​ comanda<​code bash> 
-[...] +root@host:~# iptables ​-t nat -D POSTROUTING -j MASQUERADE 
-student@host:~$+</​code>​ 
 +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>​
  
 +Adăugăm din nou regula de NAT, dar de data aceasta vom specifica să aplice politica de NAT pachetelor ce ies prin interfața ''​eth0''​ a stației ''​host'':<​code bash>
 +root@host:​~#​ iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
 </​code>​ </​code>​
-</solution+Verificați că regula a fost inserată:<code bash> 
-</hidden>+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> 
 +Observăm prezența interfaței ''​eth0''​ în coloana ''​out''​. Înainte apărea caracterul ''​*'',​ adică orice interfață. 
 + 
 +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.1599971039.txt.gz · Last modified: 2020/09/13 07:23 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