This shows you the differences between two versions of the page.
rl:labs:07:contents:02 [2013/11/13 18:53] mihai.carabas [02. Adresare IP și rutare] |
rl:labs:07:contents:02 [2023/11/05 12:42] (current) vlad_iulius.nastase |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 02. Adresare IP și rutare ==== | + | ==== 2. [10p] Generare cheie publică și autentificare === |
- | Configurați câte o adresă IP din clasa 10.10.20.0/24 pe legătura dintre ''green'' și ''host''. Verificați conectivitatea între ''green'' și ''host''. | + | În contul utilizatorului ''corina'' de pe stația ''blue'' generați o pereche cheie publică/cheie privată SSH prin rularea comenzii<code bash> |
- | <note warning>Nu uitați să verificați nivelul //Legătură de date// folosind comanda ''ip link''</note> | + | 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ă). | ||
- | Pentru a putea exista conectivitate între ''red'' și ''green'' trebuie sa configurăm ruta implicită pe ambele stații. | + | 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 ''red'' ș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 red | + | - 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.10.1 | + | - conectare la distanță (folosind comanda ''ssh'') |
- | </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> | + | <note important> |
- | root@host:~# go green | + | Autentificarea cu parolă a fost dezactivată pe ''student@host''! |
- | [...] | + | |
- | 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> | + | 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:~# echo 1 > /proc/sys/net/ipv4/ip_forward | + | |
- | </code> | + | |
- | Testați din nou conectivitatea între ''red'' și ''green'', observând 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> | ||
- | Porniți comanda ''ping'' pe ''red'' către ''green''. Deschideți un nou terminal și executați pe ''host'' comanda:<code> | + | <hidden> |
- | root@host:~# tcpdump -i veth-red | + | <solution> |
- | listening on veth-red, link-type EN10MB (Ethernet), capture size 65535 bytes | + | <code bash> |
- | 18:46:48.783576 IP red.local > 10.10.20.2: ICMP echo request, id 434, seq 163, length 64 | + | corina@blue:~$ ssh-copy-id student@host |
- | 18:46:48.783622 IP 10.10.20.2 > red.local: ICMP echo reply, id 434, seq 163, length 64 | + | student@host's password: |
- | </code> | + | Now try logging into the machine, with "ssh 'student@host'", and check in: |
- | Observați pachetele de tip ''ICMP echo request/reply'' ce trec prin stația ''host'' (sau altfel zis stația ''host'' le rutează). | + | ~/.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:~$ | ||
+ | |||
+ | </code> | ||
+ | </solution> | ||
+ | </hidden> |