This shows you the differences between two versions of the page.
rl:labs:07:contents:01 [2013/11/14 08:43] razvan.deaconescu [01. [10p] Configurare și ștergere adrese IP] |
rl:labs:07:contents:01 [2023/11/05 12:41] (current) vlad_iulius.nastase |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 01. [10p] Configurare și ștergere adrese IP ==== | + | ==== 1. [10p] Conectare SSH folosind cheie publică ==== |
- | Dorim, pentru început, să asigurăm conectivitate între stația ''host'' și ''red''. În acest tutorial vom folosi suita ''iproute'' de pe Linux pentru a realiza configurările frecvente de nivel 3 (adresare IP). | + | Dorim să realizăm o sesiune securizată shell la distanță (//remote shell//). |
- | Vom configura câte o adresă IP din clasa ''192.168.0.0/24'' pe interfețele de legătură dintre stația ''host'' și stația ''red''. Adică între ''host(veth-red)'' (interfața ''veth-red'' de pe stația ''host'') și ''red(eth0)'' (interfața ''eth0'' de pe stația ''red''). | + | <spoiler Sumar exerciții conectare SSH (dați click)> |
+ | Pentru exercițiile de conectare SSH, vom urma pașii: | ||
+ | - Conectare folosind SSH cu chei. Totul este configurat și vedem că merge. | ||
+ | - Copiere cheie pentru conectare SSH. Cheia există și vom face apoi conectare ca mai sus. | ||
+ | - Crearea cheie, copiere și conectare SSH. | ||
- | Pe interfața ''veth-red'' de pe stația ''host'' vom configura adresa IP ''192.168.0.1'' cu masca ''255.255.255.0'' (''/24'' în forma prefixată):<code> | + | Urmăm pașii în acest fel pentru a urmări întâi comenzile de conectare, sintaxa SSH și rolul său și apoi să investigăm cum se întâmplă lucrurile în spate. |
- | root@host:~# ip address add 192.168.0.1/24 dev veth-red | + | |
- | </code> | + | |
- | Observați că suita ''iproute2'' (adică utilitarul ''ip'') folosește masca în format prefixat: ''/24''. | + | |
- | Imediat după o configurare de rețea rulați o comandă pentru validarea configurării. În cazul nostru este comanda de afișare a configurării de nivel 3 (Rețea), adică a adresei IP:<code> | + | În cazul în care veți avea un cont pe un server și veți dori conectare SSH cu chei, veți urma doar pasul 3. |
- | root@host:~# ip address show dev veth-red | + | </spoiler> |
- | 47: veth-red: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 | + | |
- | link/ether 4e:1b:b8:d9:14:bb brd ff:ff:ff:ff:ff:ff | + | |
- | inet 192.168.0.1/24 scope global veth-red | + | |
- | </code> | + | |
- | Pe interfața ''eth0'' de pe stația ''red'' vom configura adresa IP ''192.168.0.2'' cu masca ''255.255.255.0'' (''/24'' în forma prefixată):<code> | + | Din contul ''student'' de pe stația ''red'' conectați-vă la stația ''host'' prin SSH prin rularea comenzii<code bash> |
- | root@host:~# go red | + | student@red:~$ ssh student@host |
[...] | [...] | ||
- | root@red:~# ip address add 192.168.0.2/24 dev eth0 | + | student@host:~$ |
- | 46: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 | + | </code> Observați faptul că v-ați conectat direct, fără parolă, întrucât autentificarea s-a realizat folosind cheie publică. Folosiți combinația de taste ''Ctrl+d'' sau comanda ''exit'' pentru a închide sesiunea de shell la distanță. |
- | link/ether 00:16:3e:8e:84:21 brd ff:ff:ff:ff:ff:ff | + | |
- | inet 192.168.0.2/24 scope global eth0 | + | Cheia publică folosită la conectare este disponibilă în fișierul ''~/.ssh/id_rsa.pub''. Pentru vizualizarea cheii rulați, pe stația ''red'' din contul utilizatorului ''student'', comanda<code bash> |
- | inet6 fe80::216:3eff:fe8e:8421/64 scope link | + | student@red:~$ cat ~/.ssh/id_rsa.pub |
- | valid_lft forever preferred_lft forever | + | ssh-rsa AAAAB3NzaC1[...] student@red |
</code> | </code> | ||
- | La fel, după o configurare de rețea, am rulat comanda de validare, în cazul acesta ''ip address''. | + | Un alt format de comandă SSH de conectare este cel de mai jos. Pe stația ''red'' rulați comanda<code bash> |
+ | student@red:~$ ssh -l student host | ||
+ | [...] | ||
+ | student@host:~$ | ||
+ | </code> La fel, închideți sesiunea de shell la distanță prin folosirea combinației de taste ''Ctrl+d''. | ||
- | Pentru a vă putea întoarce la consola stației ''host'' apăsați simultan tastele ''Ctrl+a'', eliberați-le, după care apăsați tasta ''q''. | + | La distanță, cheia publică este stocată, împreună cu alte chei publice folosite pentru conectare, în fișierul ''~/.ssh/authorized_keys''. Rulați comanda de mai jos pentru a confirma prezența cheii publice la distanță<code bash> |
- | + | student@red:~$ ssh -l student host "cat ~/.ssh/authorized_keys" | |
- | Pentru a testa conectivitatea între stațiile ''host'' și ''red'' folosim comanda ''ping'':<code> | + | ssh-rsa AAAAB3N[...] student@blue |
- | root@host:~# ping 192.168.0.2 | + | ssh-rsa AAAAB3N[...] student@green |
- | PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data. | + | ssh-rsa AAAAB3N[...] student@red |
- | ^C | + | ssh-rsa AAAAB3N[...] student@host |
- | --- 192.168.0.2 ping statistics --- | + | |
- | 2 packets transmitted, 0 received, 100% packet loss, time 1007ms | + | |
</code> | </code> | ||
- | Observați că nu există conectivitatea între cele două stații: pachetele sunt pierdute în întregime (''100% packet loss''). Motivul este că nu am activat interfețele, ci doar am realizat configurații de nivel 3. | ||
- | Urmăriți configurația de nivel 2 al interfețelor folosind comanda ''ip link'':<code> | + | Se observă că există cheia ''student@red'' în fișierul de la distanță de pe stația ''host'', deci se poate realiza autentificarea SSH pe bază de chei. |
- | root@host:~# ip link show dev veth-red | + | |
- | 10: veth-red: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 | + | |
- | link/ether 3e:03:f0:76:76:ab brd ff:ff:ff:ff:ff:ff | + | |
- | </code> | + | |
- | Observați că interfața nu este activă la nivelul 2 (Legătură de date). Pentru a activa interfața folosiți comanda:<code> | + | |
- | root@host:~# ip link set dev veth-red up | + | |
- | </code> | + | |
- | Testați din nou conectivitatea folosiți comanda ping. În continuare nu există conectivitate. Nu am activat interfața ''eth0'' de pe statia ''red''. Verificați configuratia de nivel 2 a interfaței ''eth0'' de pe ''red'' și activați nivelul 2 dacă este cazul, folosind comanda:<code bash> | + | |
- | root@red:~# ip link set dev eth0 up | + | |
- | </code> | + | |
- | Retestați conectivitatea între cele două stații. | + | |
- | + | ||
- | Dorim să resetăm configurația la configurația inițială. Pentru acesta rulați comanda<code> | + | |
- | # ip address flush dev INTERFACE | + | |
- | </code> unde ''INTERFACE'' este interfața ''eth0'' pe stația ''red'', respectiv interfața ''veth-red'' pe stația ''host''. Asigurați-vă că nu mai este configurată nici o adresă IP pe interfețe folosind comanda<code> | + | |
- | # ip address show dev INTERFACE | + | |
- | </code> | + |