This shows you the differences between two versions of the page.
|
rl:labs:07:contents:02 [2013/11/13 19:50] razvan.deaconescu [02. Adresare IP și rutare] |
rl:labs:07:contents:02 [2025/11/16 17:43] (current) laura.ruse |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ==== 03. Adresare IP și rutare ==== | + | ==== 2. [10p] Generare cheie publică și autentificare === |
| - | Dorim să realizăm conectivitate și între stațiile ''red'' și ''green''. Întrucât cele două stații sunt în rețele locale diferite, va trebui să configurăm stația ''host'' ca //default gateway// pe fiecare stație. | + | În contul utilizatorului ''corina'' de pe stația ''blue'' generați o pereche cheie publică/cheie privată SSH prin rularea comenzii<code bash> |
| - | + | corina@blue:~$ ssh-keygen -t rsa | |
| - | Pentru a adăuga //default gateway// pe stația ''red'' folosiți comenzile:<code> | + | Generating public/private rsa key pair. |
| - | root@host:~# go red | + | 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. | ||
| [...] | [...] | ||
| - | root@red:~# ip route add default via 10.10.10.1 | + | </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ă). |
| - | </code> | + | |
| - | <note> Adresa IP ''10.10.10.1'' reprezintă IP-ul interfeței ''veth-red'' de pe ''host''.</note> | + | |
| - | Intrați pe ''green'' și executați:<code> | + | 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. |
| - | root@host:~# go green | + | |
| - | [...] | + | |
| - | root@red:~# ip route add default via 10.10.20.1 | + | |
| - | </code> | + | |
| - | <note> Adresa IP ''10.10.20.1'' reprezintă IP-ul interfeței ''veth-green'' de pe ''host''.</note> | + | |
| - | Testați conectivitatea între ''green'' și ''red'' (intrați pe ''red'' și executați comanda ''ping'' către stația ''green''). Observați că nu merge. Motivul pentru care nu există conectivitate este reprezentat de faptul că stația ''host'' nu are activată rutarea (nu trimite pachetele ce vin de pe o interfață pe altă interfață). Pentru a activa rutarea pe ''host'':<code> | + | Aceștia sunt pașii pe care îi veți urma pentru a configura conectare SSH pe bază de chei: |
| - | root@host:~# echo 1 > /proc/sys/net/ipv4/ip_forward | + | - generare pereche de chei SSH (folosind comanda ''ssh-keygen'') |
| - | </code> | + | - copiere cheie publică în contul de la distanță (în fișierul ''.ssh/authorized_keys'') |
| + | - conectare la distanță (folosind comanda ''ssh'') | ||
| - | Testați din nou conectivitatea între ''red'' și ''green'', observând că funcționează. | + | <note important> |
| + | De obicei cheia se copiază la distanță folosind ''ssh-copy-id'', dar în cazul nostru, pe ''student@host'' a fost dezactivată autentificarea cu parolă, deci nu va funcționa ''ssh-copy-id''. | ||
| - | Porniți comanda ''ping'' pe ''red'' către ''green''. Deschideți un nou terminal și executați pe ''host'' comanda:<code> | + | Prin urmare, va trebui să copiați manual cheia publică a corinei (''/home/corina/.ssh/id_rsa.pub'') în fișierul ''/home/student/.ssh/authorized_keys'' de pe host. |
| - | root@host:~# tcpdump -i veth-red | + | |
| - | listening on veth-red, link-type EN10MB (Ethernet), capture size 65535 bytes | + | **Atenție:** nu ștergeți nimic din fișierul authorized_keys de pe host, altfel riscați să vă tăiați accesul la VM! |
| - | 18:46:48.783576 IP red.local > 10.10.20.2: ICMP echo request, id 434, seq 163, length 64 | + | </note> |
| - | 18:46:48.783622 IP 10.10.20.2 > red.local: ICMP echo reply, id 434, seq 163, length 64 | + | |
| + | <hidden> | ||
| + | <solution> | ||
| + | <code bash> | ||
| + | corina@blue:~$ cat .ssh/id_rsa.pub | ||
| + | (copy key) | ||
| + | |||
| + | student@host:~$ vim .ssh/authorized_keys | ||
| + | (paste key) | ||
| + | |||
| + | corina@blue:~$ ssh -l student host | ||
| + | [...] | ||
| + | student@host:~$ | ||
| </code> | </code> | ||
| - | + | </solution> | |
| - | Observați pachetele de tip ''ICMP echo request/reply'' ce trec prin stația ''host'' (sau altfel zis stația ''host'' le rutează). | + | </hidden> |