This shows you the differences between two versions of the page.
rl:labs:07:contents:02 [2013/11/13 20:02] razvan.deaconescu [03. Adresare IP și rutare] |
rl:labs:07:contents:02 [2023/11/05 12:42] (current) vlad_iulius.nastase |
||
---|---|---|---|
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 tip> Adresa IP ''10.10.10.1'' reprezintă adresa IP a interfeței ''veth-red'' de pe stația ''host''.</note> | + | 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. |
- | Intrați pe stația ''green'' și executați:<code> | + | Aceștia sunt pașii pe care îi veți urma pentru a configura conectare SSH pe bază de chei: |
- | root@host:~# go green | + | - generare pereche de chei SSH (folosind comanda ''ssh-keygen'') |
- | [...] | + | - copiere cheie publică în contul de la distanță (<del>folosind comanda ''ssh-copy-id''</del>) |
- | root@red:~# ip route add default via 10.10.20.1 | + | - conectare la distanță (folosind comanda ''ssh'') |
- | </code> | + | |
- | <note tip> Adresa IP ''10.10.20.1'' reprezintă adresa IP a interfeței ''veth-green'' de pe stația ''host''.</note> | + | <note important> |
+ | Autentificarea cu parolă a fost dezactivată pe ''student@host''! | ||
- | Testați conectivitatea între stația ''green'' și stația ''red''. Accesați pe ''red'' și executați comanda ''ping'' către adresa IP a stației ''green''. Observați că nu funcționează. 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 stația ''host'' rulați comanda:<code> | + | 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:~# sysctl -w net.ipv4.ip_forward=1 | + | |
- | </code> | + | |
- | Testați din nou conectivitatea între ''red'' și ''green'' și observați că funcționează. | + | **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! |
+ | </note> | ||
+ | |||
+ | <hidden> | ||
+ | <solution> | ||
+ | <code bash> | ||
+ | corina@blue:~$ ssh-copy-id student@host | ||
+ | student@host's password: | ||
+ | Now try logging into the machine, with "ssh 'student@host'", and check in: | ||
+ | |||
+ | ~/.ssh/authorized_keys | ||
+ | |||
+ | to make sure we haven't added extra keys that you weren't expecting. | ||
+ | |||
+ | corina@blue:~$ ssh -l student host | ||
+ | [...] | ||
+ | student@host:~$ | ||
- | Porniți comanda ''ping'' de pe stația ''red'' către stația ''green''. Deschideți un nou terminal și executați pe stația ''host'' comanda:<code> | ||
- | root@host:~# tcpdump -i veth-red | ||
- | listening on veth-red, link-type EN10MB (Ethernet), capture size 65535 bytes | ||
- | 18:46:48.783576 IP red.local > 10.10.20.2: ICMP echo request, id 434, seq 163, length 64 | ||
- | 18:46:48.783622 IP 10.10.20.2 > red.local: ICMP echo reply, id 434, seq 163, length 64 | ||
</code> | </code> | ||
- | + | </solution> | |
- | Observați pachetele de tip ''ICMP echo request/reply'' care trec prin stația ''host'' (sau altfel zis stația ''host'' le rutează). | + | </hidden> |