Differences

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

Link to this comparison view

uso:laboratoare:new:10-sec:need-to-know [2018/12/08 21:12]
octavian.guzu
uso:laboratoare:new:10-sec:need-to-know [2019/12/02 11:57] (current)
elena.stoican [1. SSH pe mașina tom]
Line 1: Line 1:
-===== Need to know ===== + ===== Need to know =====  
-Dacă nu se precizează altfel, în această secțiune veți rula comenzile pe **stația fizică** (sau pe mașina virtuală ''​uso''​ dacă lucrați acasă).+ Dacă nu se precizează altfel, în această secțiune veți rula comenzile pe **stația fizică** (sau pe mașina virtuală ''​uso''​ dacă lucrați acasă).  
 +   
 + ​Asigurați-vă că ați importat mașinile virtuale Tom și Jerry. Detalii în secțiunea [[uso:​laboratoare:​new:​10-sec:​setup|]].  
 +   
 + ==== 1. SSH pe mașina tom ====  
 +   
 + ​Înainte de exercițiile următoare, vrem să ne putem conecta la mașina ''​tom''​ prin ssh ca până acum, folosind parola. Porniți mașina ''​tom''​.  
 +   
 + ​Pentru a face o conexiune SSH între stația fizică și mașina virtuală ''​tom''​ va trebui să avem interfața activată, pe mașină virtuală ''​tom''​. Pentru aceasta rulați comanda de mai jos care vă asigură obținerea, prin DHCP, a parametrilor de rețea pentru interfața ''​enp0s8''​
  
-Asigurati-va ca ati importat masinile virtuale Tom si Jerry. Detalii in sectiunea [[uso:​laboratoare:​new:​10-sec:​setup|]]. 
  
-==== 1. SSH pe masina TOM ====+ <​code bash>  
 + ​student@tom:​~$ sudo dhclient enp0s8  
 + </​code> ​
  
-Inainte ​de exercitiile urmatoare, vrem sa ne putem conecta la masina TOM prin ssh ca pana acum, folosind parola. Porniti masina TOM. +   
- + ​Folosind comanda ​de mai jos aflăm adresa IP a mașinii virtuale ​''​tom''​. ​În cazul de fată este vorba de ''​192.168.56.101''​.  
-Pentru a face o conexiune SSH între stația fizică și mașina virtuală ''​tom''​ va trebui să avem interfațactivată, pe mașina virtuală ​''​tom''​. ​Pentru aceasta rulați comanda + <​code bash>  
-<code bash> + ​student@tom:​~$ ip a s enp0s8  
-student@tom:​~$ sudo dhclient enp0s8 + 3: enp0s8: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc fq_codel state UP group default qlen 1000  
-</​code>​ +     ​link/ether 08:​00:​27:​71:​db:​21 brd ff:​ff:​ff:​ff:​ff:​ff  
-care va asigura obținerea, prin DHCP, a parametrilor ​de rețea pentru interfața ​''​enp0s8''​. +     ineț 192.168.56.101/​24 brd 192.168.56.255 scope global enp0s8  
- +        valid_lft forever preferred_lft forever  
-Folosind comanda +     ​inet6 fe80::​a00:​27ff:​fe71:​db21/​64 scope link  
-<code bash> +        valid_lft forever preferred_lft forever  
-student@tom:​~$ ip a s enp0s8 + </​code>​  
-3: enp0s8: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc fq_codel state UP group default qlen 1000 +   
-    link/ether 08:​00:​27:​71:​db:​21 brd ff:​ff:​ff:​ff:​ff:​ff +Este posibil ca adresa IP pentru mașina virtuală ''​tom''​ să fie alta în rularea voastră. Folosiți în continuare adresa IP obținută din rularea voastră.  
-    ​inet ​192.168.56.101/​24 brd 192.168.56.255 scope global enp0s8 +   
-       ​valid_lft forever preferred_lft forever +<note important>​ 
-    inet6 fe80::​a00:​27ff:​fe71:​db21/​64 scope link + ​Verificați că vă puteți ​conecta prin ssh la ''​tom''​. **NU treceți ​mai departe ​dacă nu vă merge conexiunea**.  
-       ​valid_lft forever preferred_lft forever +</​note>​ 
-</​code>​ +  ​ 
-aflăm adresa IP a mașinii virtuale ''​tom''​. În cazul de față este vorba de ''​192.168.56.101''​. + ==== 2. SSH cu chei publice/​private ====  
- +  ​ 
-Este posibil ca adresa IP pentru mașina virtuală ''​tom''​ să fie alta în rularea voastră. Folosiți în continuare adresa IP obținută din rularea voastră. + **[2a]** Generați ​o pereche de chei ssh folosind ''​ssh-keygen''​, apăsați ''​Enter''​ de fiecare dată când vi se cere să introduceți date.  
- +   
-Verificati ca va puteti ​conecta prin ssh la TOM. **NU treceti ​mai departe ​daca nu va merge conexiunea**. + <​code bash>  
- + ​student@uso:​~$ ssh-keygen  
-==== 2. SSH cu chei publice/​private ==== + ​Generating public/​private rsa key pair.  
- + Enter file in which to save the key (/​home/​student/​.ssh/​id_rsa): ​  
-  * Generati ​o pereche de chei ssh folosind ''​ssh-keygen''​: + Enter passphrase (empty for no passphrase): ​  
- + Enter same passphrase again: ​  
-<code bash> + Your identification has been saved in /​home/​student/​.ssh/​id_rsa.  
-student@uso:​~$ ssh-keygen + Your public key has been saved in /​home/​student/​.ssh/​id_rsa.pub.  
-Generating public/​private rsa key pair. + The key fingerprint is:  
-Enter file in which to save the key (/​home/​student/​.ssh/​id_rsa):​  + ​SHA256:​Ob3LFt6KV0yTz006l8Zhjj8stJe6mKWsRmWoZs/​CDSk student@uso  
-Enter passphrase (empty for no passphrase):​  + The key's randomart image is:  
-Enter same passphrase again:  + ​+---[RSA 2048]----+  
-Your identification has been saved in /​home/​student/​.ssh/​id_rsa. + ​| ​                |  
-Your public key has been saved in /​home/​student/​.ssh/​id_rsa.pub. + ​| ​                |  
-The key fingerprint is: + ​| ​         .  .   |  
-SHA256:​Ob3LFt6KV0yTz006l8Zhjj8stJe6mKWsRmWoZs/​CDSk student@uso + ​| ​        + o+  o.|  
-The key's randomart image is: + ​| ​       S +o +=+o|  
-+---[RSA 2048]----+ + ​| ​    E * o..oo==o|  
-|                 | + ​| ​     = *..+..=o.|  
-|                 | + ​| ​      o B=.*o * |  
-|          .  .   | + ​| ​       ++=* o= .|  
-|         + o+  o.| + ​+----[SHA256]-----+  
-|        S +o +=+o| + </​code> ​ 
-|     E * o..oo==o| +   
-|      = *..+..=o.| + ​**[2b]** Copiați cheia publică creată mai devreme pe ''​tom'',​ folosind ''​ssh-copy-id''​. ''​HINT:​ ssh-copy-id user@ipaddress''​  
-|       o B=.*o * | +   
-|        ++=* o= .| + ​**[2c]** Dacă copierea a avut loc cu succes, conectați-vă prin ssh la ''​tom''​. Veți observa că autentificarea se face pe baze cheii publice și nu mai este cerută parola.  
-+----[SHA256]-----+ +   
-</​code>​+ ​**[2d]** Creați un user nou pe mașina ''​tom''​ numit ''​gion'',​ cu ce parolă doriți voi.  
 +   
 + ​**[2e]** Dezactivați autentificarea cu parolă prin ssh. ''​HINT:​ /​etc/​ssh/​sshd_config''​. Încercați apoi să vă conectați prin ssh mai întâi cu **student**,​ iar apoi cu **gion**. ​
  
  
 + ==== 3. Least privilege ​ ==== 
 +  ​
 + ​**Principle of least privilege** se referă la faptul că un utilizator, program, modul, etc va putea accesa doar informațiile și resursele necesare pentru desfășurarea activității **intenționate**.  ​
 +  ​
 + Cu alte cuvinte, utilizatorul **student** va putea accesa doar fișierele și directoarele care îl privesc, nu și cele ce conțin date private ale altor utilizatori,​ de exemplu directorul ''/​home/​gion'',​ care este home-ul utilizatorului ''​gion''​. ​
 +  ​
 + În Linux, acest lucru se definește folosind permisiuni. Ne amintim de suita de comenzi ''​chown'',​ ''​chgrp'',​ ''​chmod''​ din laboratoarele trecute. Dorim de exemplu să îi dăm drepturi doar utilizatorului student pe directorului sau de home: 
 +  ​
 + <​code bash> ​
 +  ​
 + ​student@uso:​~$ sudo chown student /​home/​student/ ​
 + ​student@uso:​~$ sudo chgrp student /​home/​student/ ​
 + ​student@uso:​~$ sudo chmod 700 /​home/​student/ ​
 + ​student@uso:​~$ ls -l /​home/ ​
 + total 4 
 + ​drwx------ 23 student student 4096 dec  8 23:30 student ​
 +  ​
 + </​code> ​
 +  ​
 + Cu ''​chown''​ schimbăm **ownerul** directorului,​ cu ''​chgrp''​ schimbat **group ownerul**, iar cu ''​chmod''​ îi permitem doar utilizatorului ''​student''​ să vadă sau modifice conținutul directorului ''/​home/​student''​. ​
 +  ​
 + ​**Principle of least privilege** se aplică foarte mult în zona de web. Se asigură astfel faptul ca dacă o pagină a unui site a fost compromisă,​ nu va fi compromis întreg site-ul sau chiar întreg server-ul. ​
uso/laboratoare/new/10-sec/need-to-know.1544296325.txt.gz · Last modified: 2018/12/08 21:12 by octavian.guzu
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