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:46]
octavian.guzu [3. Least privilege]
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 urmatoarevrem 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''​.  
 + <​code bash>  
 + ​student@tom:​~$ ip a s enp0s8  
 + 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  
 +     ineț 192.168.56.101/​24 brd 192.168.56.255 scope global enp0s8  
 +        valid_lft forever preferred_lft forever  
 +     inet6 fe80::​a00:​27ff:​fe71:​db21/​64 scope link  
 +        valid_lft forever preferred_lft forever  
 + </​code>​  
 +   
 +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ă.  
 +   
 +<note important>​ 
 + ​Verificați că vă puteți ​conecta prin ssh la ''​tom''​. **NU treceți mai departe dacă nu vă merge conexiunea**.  
 +</​note>​ 
 +   
 + ==== 2. SSH cu chei publice/​private ====  
 +   
 + ​**[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.  
 +   
 + <​code bash>  
 + ​student@uso:​~$ ssh-keygen  
 + ​Generating public/​private rsa key pair.  
 + Enter file in which to save the key (/​home/​student/​.ssh/​id_rsa): ​  
 + Enter passphrase (empty for no passphrase): ​  
 + Enter same passphrase again: ​  
 + 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  
 + The key's randomart image is:  
 + ​+---[RSA 2048]----+  
 + ​| ​                |  
 + ​| ​                |  
 + ​| ​         .  .   |  
 + ​| ​        + o+  o.|  
 + ​| ​       S +o +=+o|  
 + ​| ​    E * o..oo==o|  
 + ​| ​     = *..+..=o.|  
 + ​| ​      o B=.*o * |  
 + ​| ​       ++=* o= .|  
 + ​+----[SHA256]-----+  
 + </​code>​  
 +   
 + ​**[2b]** Copiați cheia publică creată mai devreme pe ''​tom''​, folosind ​''​ssh-copy-id''​. ''​HINT:​ ssh-copy-id user@ipaddress''​  
 +   
 + ​**[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. ​ 
 +   
 + ​**[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**
  
-Pentru a face o conexiune SSH între stația fizică și mașina virtuală ''​tom''​ va trebui să avem interfața activată, pe mașina virtuală ''​tom''​. Pentru aceasta rulați comanda 
-<code bash> 
-student@tom:​~$ sudo dhclient enp0s8 
-</​code>​ 
-care va asigura obținerea, prin DHCP, a parametrilor de rețea pentru interfața ''​enp0s8''​. 
  
-Folosind comanda + ==== 3. Least privilege ​ ====  
-<code bash> +   
-student@tom:​~$ ip a s enp0s8 + ​**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**.   
-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 + 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''​.  
-    inet 192.168.56.101/​24 brd 192.168.56.255 scope global enp0s8 +   
-       ​valid_lft forever preferred_lft forever + Î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:  
-    inet6 fe80::​a00:​27ff:​fe71:​db21/​64 scope link +   
-       ​valid_lft forever preferred_lft forever + <​code bash>  
-</​code>​ +   
-aflăm adresa IP a mașinii virtuale ''​tom''​. În cazul de față este vorba de ''​192.168.56.101''​. + ​student@uso:​~$ sudo chown student /​home/​student/​  
- + ​student@uso:​~$ sudo chgrp student /​home/​student/​  
-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ă. + ​student@uso:​~$ sudo chmod 700 /​home/​student/​  
- + ​student@uso:​~$ ls -l /home/  
-Verificati ca va puteti conecta prin ssh la TOM. **NU treceti mai departe daca nu va merge conexiunea**. + total 4  
- + ​drwx------ 23 student student 4096 dec  8 23:30 student  
-==== 2. SSH cu chei publice/​private ==== +   
- + </​code>​  
-**[2a]** Generati o pereche de chei ssh folosind ''​ssh-keygen'',​ apasati Enter de cateva ori: +   
- + 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''​.  
-<code bash> +   
-student@uso:​~$ ssh-keygen + ​**Principle of least privilege** se aplică ​foarte mult în zona de web. Se asigură ​astfel faptul ca dacă pagină ​a unui site a fost compromisă, nu va fi compromis ​întreg ​site-ul sau chiar întreg server-ul. 
-Generating public/​private rsa key pair. +
-Enter file in which to save the key (/​home/​student/​.ssh/​id_rsa):​  +
-Enter passphrase (empty for no passphrase):​  +
-Enter same passphrase again:  +
-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 +
-The key's randomart image is: +
-+---[RSA 2048]----+ +
-|                 | +
-|                 | +
-|          .  .   | +
-|         + o+  o.| +
-|        S +o +=+o| +
-|     E * o..oo==o| +
-|      = *..+..=o.| +
-|       o B=.*o * | +
-|        ++=* o= .| +
-+----[SHA256]-----+ +
-</​code>​ +
- +
-**[2b]** Copiati cheia publica create mai devreme pe TOM, folosind ''​ssh-copy-id''​. ''​HINT:​ ssh-copy-id user@ipaddress''​ +
- +
-**[2c]** Daca copierea a avut loc cu succes, conectati-va prin ssh la TOM. Veti observa ca autentificarea se face pe baze cheii publice si nu mai este ceruta parola. +
- +
-**[2d]** Creati un user nou pe masina TOM numit ''​gion'',​ cu ce parola doriti voi. +
- +
-**[2e]** Dezactivati autentificarea cu parola prin ssh. ''​HINT:​ /​etc/​ssh/​sshd_config''​. Incercati apoi sa va conectati prin ssh mai intai cu **student**,​ iar apoi cu **gion**. +
- +
- +
-==== 3. Least privilege ​ ==== +
- +
-**Principle of least privilege** se refera ​la faptul ​ca un utilizator, program, modul, etc va putea accesa doar informatiile si resursele necesare pentru ​desfasurarea activitatii ​**intentionate**.  +
- +
-Cu alte cuvinte, utilizatorul **student** va putea accesa doar fisierele si directoarele care il privesc, nu si cele ce contin ​date private ale altor utilizatori,​ de exemplu directorul ''/​home/​gion'',​ care este home-ul utilizatorului ''​gion''​. +
- +
-In Linux, acest lucru se defineste ​folosind permisiuni. Ne amintim de suita de comenzi ''​chown'',​ ''​chgrp'',​ ''​chmod''​ din laboratoarele trecute. Dorim de exemplu ​sa ii dam 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'' ​schimbam ​**ownerul** directorului,​ cu ''​chgrp''​ schimbat **group ownerul**, iar cu ''​chmod'' ​ii permitem doar utilizatorului ''​student' ​sa vada sau modifice ​continutul ​directorului ''/​home/​student''​. +
- +
-**Principle of least privilege** se aplica ​foarte mult in zona de web. Se asigura ​astfel faptul ca daca pagina ​a unui site a fost compromisa, nu va fi compromis ​intreg ​site-ul sau chiar intreg serve-ul.+
uso/laboratoare/new/10-sec/need-to-know.1544298388.txt.gz · Last modified: 2018/12/08 21:46 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