Differences

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

Link to this comparison view

uso:cursuri:curs-12 [2017/12/09 13:58]
razvan.deaconescu
uso:cursuri:curs-12 [2023/01/09 00:11] (current)
sergiu.weisz
Line 1: Line 1:
-====== Curs 12 - Considerente hardware. Mașini virtuale ​=======+====== Curs 12 - Administrarea spatiului de stocare ​=======
  
-  * [[http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-12/curs-12-handout.pdf | Slide-uri curs]] +  ​* [[https://​docs.google.com/​presentation/​d/​1RXPvEXsuRNRrdo3VsfG_EtUHS9en4ncd/​edit?​usp=sharing&​ouid=108131427433094834232&​rtpof=true&​sd=true| Slide-uri curs]] 
-  * [[http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-12/curs-12-handout-4on1-notes.pdf | Handout 4on1 and notes space]] +  * **Cuvinte cheie**: HDD, SSD, Partiționare,​ Formatare, MBR, GPT, RAID, Back-up, LVM, mount, umount 
-  * [[http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-12/curs-12-handout-8on1.pdf | Handout 8on1]] +  * **Suport de curs** 
-  * **Cuvinte cheie**: ​hardwareplacă ​de bazămagistrală (//bus//)procesormemorie (RAM)hard disk\cmd{dd}system on a chipmașină virtuală//host//, //guest//, //hypervisor//, VMware, VirtualBox, ''​.vmdk'',​ ''​.vmx'', ​''​.vdi''​''​.vbox''​''​vboxmanage'',​ NAT, //host-only//, //bridged//, Open Virtualization Format+    * [[https://​github.com/​systems-cs-pub-ro/​carte-uso/​releases| Utilizarea sistemelor de operare]] 
 +        * Capitolul 10 - Administrarea spațiului de stocare  
 + 
 +<​HTML>​ 
 +<​center>​ 
 +<iframe src="​https://​docs.google.com/​presentation/​d/​e/​2PACX-1vTTVzrqv76petP3yVxZ76OvlBZae1pPfMxV3IhLVta7DKdtACTsaZc11DM4ofRRuQ/​embed?​start=false&​loop=false&​delayms=3000"​ frameborder="​0"​ width="​480"​ height="​389"​ allowfullscreen="​true"​ mozallowfullscreen="​true"​ webkitallowfullscreen="​true"></​iframe>​ 
 +</​center>​ 
 +</​HTML>​ 
 + 
 +/* 
 +  * [[https://​drive.google.com/​open?​id=1aN0VW-LvefVPyJKyI_mFjFTlKEjbu8oM|Handouts 3on1 and notes space]] 
 +  * [[https://​drive.google.com/​open?​id=1ilzrwOlni4nnUUgO6g_X_fB6Ktg0sqZD|Handouts 6on1]] 
 +  * **Cuvinte cheie**:  
 + 
 +*/ 
 + 
 +/* 
 +  * **Suport de curs** 
 +    * [[http://​elf.cs.pub.ro/​uso/​res/​carte/​uso_cap-13-auto.pdf|Capitolul 13: Automatizarea sarcinilor]] 
 +*/ 
 + 
 +/* 
 + 
 +====== Curs 11 - Elemente de securitate ======= 
 + 
 +  ​* [[http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-11/curs-11-handout.pdf | Slide-uri curs]] 
 +  * [[http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-11/curs-11-handout-4on1-notes.pdf | Handout 4on1 and notes space]] 
 +  * [[http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-11/curs-11-handout-8on1.pdf | Handout 8on1]] 
 +  * **Cuvinte cheie**: ​securitateprivilegii, principii ​de securitateagențiobiecte''​umask''​autentificareautorizarecontrolul accesului''​root''​''​sudo'',​ parole, //password cracking//, //passphrase//, ''​/etc/passwd'',​ ''​/etc/shadow'', ​criptografiecriptaredecriptare, //plain text//, //ciphertext//, chei simetrice, chei asimetrice, semnătură digitală, semnare, verificare
   * **Suport de curs**   * **Suport de curs**
     * [[http://​books.google.com/​books?​id=_JFGzyRxQGcC | Introducere în sisteme de operare]]     * [[http://​books.google.com/​books?​id=_JFGzyRxQGcC | Introducere în sisteme de operare]]
-      * [[http://​books.google.com/​books?​id=_JFGzyRxQGcC&​pg=PA185 | Capitolul ​Analiza hardware a sistemului]] +      * [[http://​books.google.com/​books?​id=_JFGzyRxQGcC&​pg=PA279 | Capitolul ​10 Elemente de securitate]]
-    * [[http://​www.amazon.com/​Virtual-Machines-Versatile-Platforms-Architecture/​dp/​1558609105 | Virtual Machines -- Versatile Platforms for Systems and Processes]] +
-      * Capitolul 1 -- Introduction to Virtual Machines +
-      * Capitolul 8 -- System Virtual Machines +
-  * **Alte resurse** +
-    * http://​www.binarytides.com/​linux-commands-hardware-info/​ +
-    * http://​www.binarytides.com/​linux-command-check-disk-partitions/​ +
-    * http://​www.cyberciti.biz/​faq/​linux-command-to-find-the-system-configuration-and-hardware-information/​ +
-    * https://​www.virtualbox.org/​manual/​ch08.html+
  
 <​HTML>​ <​HTML>​
   <​center>​   <​center>​
-    <iframe src="​https://​docs.google.com/​viewer?​url=https://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-12/curs-12-handout.pdf&​embedded=true"​ width="​600"​ height="​480"​ style="​border:​ none;">​+    <iframe src="​https://​docs.google.com/​viewer?​url=http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-11/curs-11-handout.pdf&​embedded=true"​ width="​600"​ height="​480"​ style="​border:​ none;">​
     </​iframe>​     </​iframe>​
   </​center>​   </​center>​
Line 58: Line 78:
 </​note>​ </​note>​
  
-==== Afișarea ​de informații despre placa de bază ====+==== Folosire umask pentru configurarea permisiunilor ​de creare ​====
  
-Placa de bază este suportul pentru alte componente hardwarePlaca de bază dispune de socluri ​(''​socket'',​ ''​slot''​) unde pot fi adăugate alte componente hardware (precum procesor sau module de memorie) sau controllere care fac legătura cu alte componente (precum controller SCSI pentru hard disk).+Unul dintre cele mai importante principii în securitate ​este principiul celui mai mic privilegiu (//least privilege//​)Pentru aceasta, inclusiv în sistemul ​de fișiere (fișiere, directoare),​ se recomandă permisiuni ​(drepturi de acces minime). Acestea pot fi schimbate folosind comanda ​''​chmod''​. Dorimînsă, să putem configura permisiunile implicite la crearea intrărilor în sistemul de fișiere. Pentru aceasta folosim comanda ​''​umask''​.
  
-Comenzi prin care putem afișa informații despre componentele hardware conectate la magistralele (''​bus''​) plăcii de bază sunt ''​lspci'' ​și ''​lsusb''​. Rularea acestor comenzi în mașina virtuală duce la afișarea componentelor hardware **virtuale** conectate la placa de bază:<​code>​ +La o rulare simplă, comanda ​''​umask'' ​ne afișează valoarea sa:<​code>​ 
-student@uso-demo:​~$ ​lspci +student@uso-demo:​~$ ​umask 
-00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02) +0022
-00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/​Triton II] +
-00:01.1 IDE interface: Intel Corporation 82371AB/​EB/​MB PIIX4 IDE (rev 01) +
-00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter +
-00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02) +
-00:04.0 System peripheral: InnoTek Systemberatung GmbH VirtualBox Guest Service +
-00:05.0 Multimedia audio controller: Intel Corporation 82801AA AC'97 Audio Controller (rev 01) +
-00:06.0 USB controller: Apple Inc. KeyLargo/​Intrepid USB +
-00:07.0 Bridge: Intel Corporation 82371AB/​EB/​MB PIIX4 ACPI (rev 08) +
-00:08.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02) +
-00:0d.0 SATA controller: Intel Corporation 82801HM/HEM (ICH8M/​ICH8M-E) SATA Controller [AHCI mode] (rev 02) +
- +
-student@uso-demo:​~$ lsusb +
-Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet +
-Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub+
 </​code>​ </​code>​
 +Comanda ''​umask''​ indică permisiunile care vor fi **absente** în momentul creării unor intrări. Regulile de stabilire a permisiunilor de creare sunt:
 +  * pentru fișiere: 666 & ~umask (adică 666 **ȘI logic** cu masca negată)
 +  * pentru directoare: 777 & ~umask (adică 777 **ȘI logic** cu masca negată)
  
-În output-ul comenzii putem vedea informații despre hardware-ul expus de mașina virtualăîn special controllerele care se regăsesc pe placa de rețea. Observăm controllere pentru+Pentru ''​umask = 0022''​''​~umask = 7755''​. Rezultă permisiunile ​de creare
-  * placa video (''​VGA''​) +  * pentru fișiere: ​''​666 & 7755 = 0644''​ 
-  * plăcile de rețea (''​Ethernet''​) de 1 Gb (gigabit)sunt două plăci de rețea, expuse prin interfețele de rețea ​''​eth0'' ​și ''​eth1''​ +  * pentru directoare: ''​777 & 7755 = 0755''​
-  * SATA (controller pentru hard disk)+
  
-Pentru a afișa informații extinse hardware despre componentele sistemului, cel mai bine este să folosim comanda ''​lshw''​. Pentru început, pe mașina virtuală, trebuie să instalăm pachetul ''​lshw''​:<​code>​ +Putem verifica acest lucru creând un fișier și un director:<​code>​ 
-student@uso-demo:​~$ ​sudo apt-get install lshw+student@uso-demo:​~$ ​touch test-file 
 +student@uso-demo:​~$ mkdir test-dir 
 +student@uso-demo:​~$ ls -l 
 +total 4 
 +drwxr-xr-x 2 student student 4096 Jan  5 11:31 test-dir 
 +-rw-r--r-- 1 student student ​   0 Jan  5 11:31 test-file
 </​code>​ </​code>​
 +Observăm că fișierul (''​test-file''​) a fost creat cu permisiunile ''​%%rw-r--r--%%''​ (adică ''​644''​) iar directorul (''​test-dir''​) a fost creat cu permisiunile ''​%%rwxr-xr-x%%''​ (adică ''​755''​). Adică valorile așteptate.
  
-Printr-o simplă rulare a comenzii ​''​lshw'' ​vom afișa informații despre întreg hardware-ul sistemului<​code>​ +În ideea de //least privilege//,​ este uzual să oferim permisiuni doar utilizatorului (''​user''​și nici o permisiune pentru ''​group''​ și ''​others''​. Pentru aceasta stabilim valoarea ''​umask''​ la ''​077'',​ folosind comanda<​code>​ 
-student@uso-demo:​~$ ​sudo lshw  +student@uso-demo:​~$ ​umask 077 
-uso-demo ​                  +student@uso-demo:~$ umask 
-    descriptionComputer +0077
-    width: 32 bits +
-    ​capabilities:​ smbios-2.5 +
-  *-core +
-[...]+
 </​code>​ </​code>​
 +Observăm din a doua comandă că acum valoarea ''​umask''​ este alta.
  
-Pentru a afișa informații despre hardware în format tabelar, mai ușor de urmărit, folosim opțiunea ​''​-short''​ la comanda ''​lshw''<​code>​ +Creăm un nou fișier și un nou director și verificăm aplicarea noii valori a ''​umask'' ​pentru stabilirea permisiunilor de creare:<​code>​ 
-student@uso-demo:​~$ ​sudo lshw -short +student@uso-demo:​~$ ​touch test-file-2 
-H/W path        Device ​     Class       ​Description +student@uso-demo:​~$ mkdir test-dir-2 
-=================================================== +student@uso-demo:​~$ ls -l  
-                            system ​     Computer +total 
-/0                          bus         ​Motherboard +drwxr-xr-student student 4096 Jan  5 11:31 test-dir 
-/0/0                        memory ​     500MiB System memory +drwx------ ​student student 4096 Jan  5 11:36 test-dir-2 
-/0/1                        processor ​  ​Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz +-rw-r--r-- ​student student ​   ​0 ​Jan  ​11:31 test-file 
-/​0/​100 ​                     bridge ​     440FX 82441FX PMC [Natoma] +-rw------- 1 student student ​   ​Jan  5 11:36 test-file-2
-/​0/​100/​1 ​                   bridge ​     82371SB PIIX3 ISA [Natoma/​Triton II] +
-/​0/​100/​1.1 ​                 storage ​    ​82371AB/​EB/​MB PIIX4 IDE +
-/0/100/                   ​display ​    ​VirtualBox Graphics Adapter +
-/​0/​100/​3 ​       eth0        network ​    ​82540EM Gigabit Ethernet Controller +
-/​0/​100/​4 ​                   generic ​    ​VirtualBox Guest Service +
-/​0/​100/​5 ​                   multimedia ​ 82801AA AC'97 Audio Controller +
-/​0/​100/​6 ​                   bus         ​KeyLargo/​Intrepid USB +
-/​0/​100/​6/​1 ​     usb1        bus         OHCI PCI host controller +
-/​0/​100/​6/​1/​1 ​               input       USB Tablet +
-/​0/​100/​7 ​                   bridge ​     82371AB/​EB/​MB PIIX4 ACPI +
-/0/100/       ​eth1 ​       network ​    ​82540EM Gigabit Ethernet Controller +
-/​0/​100/​d ​                   storage ​    ​82801HM/​HEM (ICH8M/​ICH8M-E) SATA Controller [AHCI mode] +
-/0/           ​scsi0 ​      ​storage ​     +
-/0/2/​0.0.0 ​     /​dev/​sda ​   disk        8589MB VBOX HARDDISK +
-/0/2/0.0.0/1    ​/​dev/​sda1 ​  ​volume ​     7806MiB EXT4 volume +
-/0/​2/​0.0.0/​2 ​   /​dev/​sda2 ​  ​volume ​     383MiB Extended partition +
-/​0/​2/​0.0.0/​2/​ /​dev/​sda5 ​  ​volume ​     383MiB Linux swap / Solaris partition +
-/0/3            scsi2       ​storage ​     +
-/​0/​3/​0.0.0 ​     /​dev/​cdrom ​ disk        DVD reader+
 </​code>​ </​code>​
-Ni se afișează informații despre componentele hardware ale sistemului: placă de bază, controllere,​ memorie RAM, hard disk. Putem afișa informații detaliate ​și despre fiecare componentă în parte, așa cum vom vedea mai jos.+Observăm că fișierul (''​test-file-2''​) a fost creat cu permisiunile ''​%%rw-------%%''​ (adică ''​600''​) iar directorul (''​test-dir''​) a fost creat cu permisiunile ''​%%rwx------%%''​ (adică ''​700''​). Adică valorile așteptaterezultate în urma calculului:​ 
 +  * pentru fișier: ''​%%666 & ~umask = 666 & ~0077 = 666 & 7700 = 600 = rw-------%%''​ 
 +  * pentru director: ''​%%777 & ~umask =777 & ~0077 = 777 & 7700 = 700 = rwx------%%''​ 
 + 
 +Valoarea ''​umask''​ este configurată funcție de nevoile utilizatorului ținând cont și de principiul celui mai mic privilegiu.
  
 <​note>​ <​note>​
-Alte comenzi care afișează informații despre componentele hardware ale sistemului sunt comenzile ​''​dmidecode'',​ ''​inxi'' ​și ''​hwinfo''​. ​Dacă nu sunt instalate le puteți instala folosind comenzi precum cele de mai jos:<​code>​ +Valoarea ''​umask''​ este pe 4 cifre în octal. Prima cifră este aferentă biților speciali (''​setuid'',​ ''​setgid''​''​sticky''​) folosiți în permisiuniNu insistăm pe acest lucru. Puteți găsi informații în secțiunile aferente din [[http://​man7.org/​linux/​man-pages/man1/​chmod.1.html|pagina de manual a chmod]].
-sudo apt-get install dmidecode +
-sudo apt-get install inxi +
-sudo apt-get install hwinfo +
-</code>+
 </​note>​ </​note>​
  
 <​note>​ <​note>​
-Detalii despre comnezile ​de afișare de informații despre hard discuri găsiți și la link-ul indicat ca resursă utilă în partea ​de sus a paginii: http://www.binarytides.com/​linux-commands-hardware-info/​+Pentru configurarea persistentă a valorii ''​umask''​ se recomandă plasarea comenzii ​de configurare într-un fișier de configurare a sesiunii ​de shell (precum ''​~/.bashrc''​).
 </​note>​ </​note>​
-==== Afișarea de informații despre procesor ​====+==== Folosire John the Ripper pentru password cracking ​====
  
-Pentru ​afișinformații despre procesorul sistemului ​putem folosi ​comanda ​''​lscpu''<​code>​ +Din perspectiva atacatorului (sau unui [[http://​www.computerhope.com/​jargon/​e/​ethihack.htm|hacker etic]]) este util să putem "​sparge"​ parolele dintr-un sistem. Dacă ajungem să avem acces la baza de date cu parole ​unui sistem ​putem încerca spargerea acestora. Un utilitar pentru acest lucru este [[http://​www.openwall.com/​john/​|John the Ripper]]. 
-student@uso-demo:​~$ ​lscpu + 
-Architecture: ​         i686 +Pentru a folosi ''​john'' ​întâi îl vom instala:<​code>​ 
-CPU op-mode(s): ​       32-bit +student@uso-demo:​~$ ​sudo apt-get install john 
-Byte Order: ​           Little Endian +Reading package lists... Done 
-CPU(s):                ​1 +Building dependency tree        
-On-line CPU(slist:   0 +[...] 
-Thread(s) per core:    ​1 +Setting up john-data ​(1.8.0-2... 
-Core(s) per socket: ​   1 +Setting up john (1.8.0-2...
-Socket(s): ​            1 +
-Vendor ID:             ​GenuineIntel +
-CPU family: ​           6 +
-Model: ​                42 +
-Model name:            Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz +
-Stepping: ​             7 +
-CPU MHz:               2491.852 +
-BogoMIPS: ​             4983.70 +
-Hypervisor vendor: ​    KVM +
-Virtualization type:   ​full +
-L1d cache: ​            32K +
-L1i cache: ​            32K +
-L2 cache: ​             256K +
-L3 cache: ​             3072K+
 </​code>​ </​code>​
  
-Comanda ne afișează tipul procesorului expus de mașina virtualăAcesta este un procesor single coreși este mapat direct peste procesorul fizic (adică al sistemului fizic peste care rulează mașina virtuală). De aceeaoutput-ul acestei comenzi va diferi depinzând de sistemul fizic pe care rulează mașina virtuală.+John vine în mod implicit cu un dicționar ​de parole comune de folosit în fișierul ''/​usr/​share/​john/​password.lst''<​code>​ 
 +student@uso-demo:​~$ head -20 /​usr/​share/​john/​password.lst  
 +#!comment: This list has been compiled by Solar Designer of Openwall Project 
 +#!comment: in 1996 through 2011.  It is assumed to be in the public domain. 
 +#​!comment:​ 
 +#!comment: This list is based on passwords most commonly seen on a set of Unix 
 +#!comment: systems in mid-1990'​ssorted for decreasing number of occurrences 
 +#​!comment: ​(that is, more common passwords are listed first).  It has been 
 +#!comment: revised to also include common website passwords from public lists 
 +#!comment: of "top N passwords"​ from major community website compromises that 
 +#!comment: occurred in 2006 through 2010. 
 +#​!comment:​ 
 +#!comment: Last update: 2011/11/20 (3546 entries) 
 +#​!comment:​ 
 +#!comment: For more wordlistssee http://​www.openwall.com/​wordlists/​ 
 +123456 
 +12345 
 +password 
 +password1 
 +123456789 
 +12345678 
 +1234567890 
 +student@uso-demo:~$ wc -l /​usr/​share/​john/​password.lst 
 +3559 /​usr/​share/​john/​password.lst 
 +</​code>​ 
 +Există fișiere de parole mai bune care, în general, costă bani.
  
-În output-ul comenzii ne sunt afișate informații despre procesor, precum numărul ​de core-uri, numărul modelului, frecvența, dimensiunea memoriei cache.+Aceste parole ​sunt parole frecvente folosite ​de utilizatori și care pot fi ușor sparte cu John.
  
-Aceste informații pot fi afișate ​și cu ajutorul comenzii ​''​lshw''<​code>​ +Pentru verificare, să creăm doi utilizatori (''​ana'' ​și ''​bogdan''​) ​cu parole relativ comune ​''​test123'' ​și ''​qazwsx'':​<​code>​ 
-student@uso-demo:​~$ sudo lshw -class cpu +student@uso-demo:​~$ sudo useradd ​--d /home/ana -s /bin/bash ana 
-  *-cpu                    +student@uso-demo:~$ sudo useradd ​-m -d /​home/​bogdan -s /bin/bash bogdan 
-       productIntel(R) Core(TM) i5-2520M CPU @ 2.50GHz +student@uso-demo:~$ less /​usr/​share/​john/​password.lst 
-       vendorIntel Corp+student@uso-demo:~$ echo "ana:test123"​ | sudo chpasswd 
-       physical id+student@uso-demo:~$ echo "​bogdan:qazwsx"​ | sudo chpasswd 
-       bus infocpu@0 +student@uso-demo:~$ id ana 
-       version6.10.7 +uid=1001(ana) gid=1001(ana) groups=1001(ana) 
-       ​serial0002-06A7-0000-0000-0000-0000 +student@uso-demo:~$ id bogdan 
-       size2500MHz +uid=1002(bogdan) gid=1002(bogdan) groups=1002(bogdan)
-       width: 32 bits +
-       capabilitiesfpu fpu_exception wp vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 rdtscp constant_tsc nonstop_tsc pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx hypervisor lahf_lm+
 </​code>​ </​code>​
  
-Informațiile despre procesor sunt accesibile, în mod tradițional,​ în sistemul de fișiere ''/​proc'',​ prin intermediul fișierului ''/​proc/​cpuinfo'':<​code>​ +Mai sus am creat cei doi utilizatori cu parolele dorite.
-student@uso-demo:​~$ cat /​proc/​cpuinfo  +
-processor : 0 +
-vendor_id : GenuineIntel +
-cpu family : 6 +
-model : 42 +
-model name : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz +
-[...] +
-</​code>​+
  
 <​note>​ <​note>​
-Folosirea oricăror dintre cele trei comenzi de mai sus este aproximativ echivalentă. O folosim pe cea cu care ne simțim cel mai confortabil.+Comanda ''​chpasswd'' ​este o comandă care schimbă/​actualizează parola unuia sau mai mulți utilizatori. Parola primește la intarea standard linii în forma ''<​username>:<​password>''​ și actualizează parola utilizatorului ''<​username>''​ cu valoarea ''<​password>''​.
 </​note>​ </​note>​
  
-Dacă ne interesează să aflăm pe scurt, numărul de core-uri/procesoare din sistem, respectiv arhitectura hardware a sistemuluifolosim comenzile<​code>​ +Parolele utilizatorilor sunt stocate în forma criptată (//hash//) în fișierul ''/​etc/​shadow''​accesibil doar cu permisiuni privilegiate<​code>​ 
-student@uso-demo:​~$ ​nproc +student@uso-demo:​~$ ​tail -2 /etc/shadow 
-1+tail: cannot open ‘/​etc/​shadow’ for reading: Permission denied 
 +student@uso-demo:​~$ ls -l /​etc/​shadow 
 +-rw-r----- ​root shadow 1276 Jan  5 11:59 /​etc/​shadow 
 +student@uso-demo:​~$ sudo tail -2 /​etc/​shadow 
 +ana:​$6$Lz4VGpO.$NhGn3XzSJ8dRd.EURfPRnPPlU3rvTG5C7xEvvh8taiPCLEFb0V2LAFG.6s.GlXWZqby326wvZm91QMDoCXCoU0:​16805:​0:​99999:​7:::​ 
 +bogdan:​$6$AJ8cjSHz$QdI1KrolofQtAk4F2bHweL7vxzGYcM3gHxfLgRiUzR7UtEugUZyWARc66zo8YMEiMmAWob5PJMlaoUyA8rfCx.:​16805:​0:​99999:​7:::​ 
 +</​code>​ 
 +Dacă avem acces la hash-urile parolelor putem încerca spargerea lor cu John. În cazul de față vom reuși pentru că parolele sunt foarte simple:<​code>​ 
 +student@uso-demo:​~$ sudo tail -2 /etc/shadow > shadow-entries 
 +student@uso-demo:​~$ cat shadow-entries  
 +ana:​$6$Lz4VGpO.$NhGn3XzSJ8dRd.EURfPRnPPlU3rvTG5C7xEvvh8taiPCLEFb0V2LAFG.6s.GlXWZqby326wvZm91QMDoCXCoU0:​16805:​0:​99999:​7:::​ 
 +bogdan:​$6$AJ8cjSHz$QdI1KrolofQtAk4F2bHweL7vxzGYcM3gHxfLgRiUzR7UtEugUZyWARc66zo8YMEiMmAWob5PJMlaoUyA8rfCx.:​16805:​0:​99999:​7:::​
  
-student@uso-demo:​~$ ​arch +student@uso-demo:​~$ ​/​usr/​sbin/​john -wordlist:/​usr/​share/​john/​password.lst shadow-entries 
-i686+Created directory: /​home/​student/​.john 
 +Loaded 2 password hashes with 2 different salts (crypt, generic crypt(3) [?/32]) 
 +Press '​q'​ or Ctrl-C to abort, almost any other key for status 
 +test123 ​         (ana) 
 +qazwsx ​          ​(bogdan) 
 +2g 0:00:00:33 100% 0.05959g/s 62.93p/s 71.51c/s 71.51C/s pretty..celtic 
 +Use the "​--show"​ option to display all of the cracked passwords reliably 
 +Session completed
 </​code>​ </​code>​
 +Mai sus, pentru început, am extras cele două intrări din ''/​etc/​shadow''​ și apoi am folosit John ca să încercăm spargerea lor. În mod așteptat, parolele fiind simple, John a reușit spargerea lor.
 +
 +În general, un atacator va încerca să obțină accesul la baza de date cu parole. Chiar dacă acestea sunt criptate, atacatorul va încerca să le spargă. Doar parolele puternice (cu multe caractere dintr-un set mai mare) pot supraviețui suficient de mult timp unui atacator. Chiar și așa, se recomandă actualizarea parolelor după o perioadă de 6 luni sau 1 an.
  
 <​note>​ <​note>​
-La fel cum am precizat mai sus, informații depsre procesor putem afla și folosind comenzile ​''​dmidecode''​''​inxi'' ​și ''​hwinfo''​.+John are diverse opțiuni care permit scheme de alterare a parolelor din wordlist-uri. Aceste scheme prelungesc posibilitățile de parole încercate; de exemplu înlocuirea ​''​a'' ​cu ''​@'' ​sau ''​e'' ​cu ''​3''​. Cu un word list bun, multe parole pot fi sparte relativ rapid.
 </​note>​ </​note>​
 +==== Criptare/​decriptare folosind chei simetrice ====
  
-Dacă dorim să vedem încărcarea sistemului și utilizarea procesoruluiputem folosi comanda ​''​top'' ​sau ''​htop''​. Aceste comenzi au avantajul că ne afișează și procesele sistemului și putem identifica procesele care consumă procesor și care afectează performanța sistemului ​(așa numitele //CPU hogs//).+Pentru securizarea informației transmise sau stocate este recomandat ca aceasta ​să fie criptată. În Internetfoarte multe site-uri folosesc acum ''​HTTPS''​ (HTTP securizat). Pentru date locale se pot folosi utilitare de criptare.
  
-Pentru a afișa sumar informații despre utilizarea procesorului putem folosi comanda ​''​mpstat''​:<​code>​ +Un utilitar folosit pentru criptare (și alte operații criptografice) este ''​openssl''​. ​Cu ''​openssl''​ putem cripta și folosind chei simetrice și chei asimetrice.
-student@uso-demo:​~$ mpstat +
-Linux 3.16.0-4-586 (uso-demo) 12/05/2015 _i686_ (1 CPU)+
  
-06:02:14 PM  CPU    %usr   ​%nice ​   %sys %iowait ​   %irq   ​%soft ​ %steal ​ %guest ​ %gnice ​  %idle +Pentru testare, să creăm un fișier //plain text// (ușor de citit):<​code>​ 
-06:02:14 PM  all    0.25    0.00    0.13    0.70    0.00    0.02    0.00    0.00    0.00   98.91+student@uso-demo:~$ echo "This is my life's biggest secretI have no life" > plain.txt 
 +student@uso-demo:​~$ cat plain.txt  
 +This is my life's biggest secret: I have no life
 </​code>​ </​code>​
-În output-ul de mai sus, mare parte din procesor este liberă (''​idle''​):​ ''​98.91%''​ din timpul de procesor este marcat ''​idle''​. 
-==== Afișarea de informații despre memorie ==== 
  
-Pentru a afla informații despre memoria RAM a sistemului putem folosi comanda ​''​lshw''​:<​code>​ +Pentru a cripta accest fișier, folosim algoritmul ​''​AES'' ​(//Advanced Encryption Standard//​),​ un standard de facto de criptare, cu ajutorul comenzii<​code>​ 
-student@uso-demo:​~$ ​sudo lshw -class memory +student@uso-demo:​~$ ​openssl enc -e -aes-256-cbc -in plain.txt -out encrypted.dat 
-  ​*-memory ​               ​ +enter aes-256-cbc encryption password: 
-       descriptionSystem memory +Verifying - enter aes-256-cbc encryption password: 
-       physical id0 +student@uso-demo:​~$ ls -l encrypted.dat  
-       size500Mi+-rw------- 1 student student 80 Jan  5 12:17 encrypted.dat 
 +student@uso-demo:~$ xxd encrypted.dat ​ 
 +00000005361 6c74 6564 5f5f 6b32 c1b2 6580 bcfe  Salted__k2..e... 
 +0000010f988 bd4d 4432 9aa3 8925 0097 4262 1732  ...MD2...%..Bb.2 
 +0000020119a c5c8 f5de bca0 3a9e 4d96 57c7 1e1f  ........:​.M.W... 
 +0000030: 3e22 e8ec eeec 3905 4e93 3ee8 fb5e c04a  >"​....9.N.>​..^.J 
 +0000040: e443 955f c693 7171 fa10 f5ac ded1 f947  .C._..qq.......G
 </​code>​ </​code>​
 +În prima comandă am realizat criptarea fișierului ''​plain.txt''​ în fișierul ''​encrypted.dat''​. Utilitarul ne-a cerut cheia de criptare și apoi a realizat criptarea în fișierul ''​encrypted.dat''​. Fișierul este un fișier binar; putem urmări conținutul său folosind comanda ''​xxd''​.
  
-Din păcate comanda ne oferă informații minimale despre memoria RAMDacă ne interesează viteza de acces, numărul de module ​și alte informațiiputem folosi comanda ​''​dmidecode''​. ​Din păcate, pe mașina virtuală nu afișează informații extinse, dar putem afla informații ​mai multe rulând comanda pe un sistem Linux instalat nativ:<​code>​ +De obicei vom șterge fișierul ''​plain.txt'' ​și apoi vom decriptala nevoie, fișierul ​''​encrypted.dat''​. ​Facem acest lucru folosind comenzile de mai jos<​code>​ 
-razvan@einherjar:~$ sudo dmidecode ​--type memory +student@uso-demo:~$ rm plain.txt  
-# dmidecode 3.+student@uso-demo:~$ openssl enc -d -aes-256-cbc -in encrypted.dat -out plain.txt 
-Getting SMBIOS data from sysfs+enter aes-256-cbc decryption password
-SMBIOS 2.6 present. +student@uso-demo:~$ cat plain.txt ​ 
- +This is my life's biggest secretI have no life
-Handle 0x0005, DMI type 16, 15 bytes +
-Physical Memory Array +
- LocationSystem Board Or Motherboard +
- Use: System Memory +
- Error Correction Type: None +
- Maximum Capacity: 8 GB +
- Error Information Handle: Not Provided +
- Number Of Devices: 2 +
- +
-Handle 0x0006, DMI type 17, 28 bytes +
-Memory Device +
- Array Handle: 0x0005 +
- Error Information Handle: Not Provided +
- Total Width: 64 bits +
- Data Width: 64 bits +
- Size: 4096 MB +
- Form Factor: SODIMM +
- Set: None +
- Locator: ChannelA-DIMM0 +
- Bank LocatorBANK 0 +
- TypeDDR3 +
- Type Detail: Synchronous +
- Speed: 1333 MHz +
- Manufacturer:​ Samsung +
- Serial Number: 66313530 +
- Asset Tag: Unknown +
- Part Number: M471B5273CH0-CH9 ​  +
- Rank: Unknown +
-[...]+
 </​code>​ </​code>​
-În output-ul comenzii ''​dmidecode''​ putem afla numărul de sloturi (''​bank''​)fabricantulvitezatipul.+Observăm că, după ștergerea fișierului //plain text// inițialși după operația de decriptare căreia i-am transmis cheia folosită la pasul anterioram obținut fișierul inițial.
  
-Tot cu ajutorul comenzii ​''​dmidecode'' ​putem afișinformații despre memoria cache a sistemului:<​code>​ +<​note>​ 
-razvan@einherjar:~$ sudo dmidecode ​-t cache+Sunt și alți algoritmi posibili pentru criptare simetrică folosind comanda ​''​openssl''​. Pentru ​a-i determina folosim comanda<​code>​ 
 +student@uso-demo:~$ openssl enc -help
 </​code>​ </​code>​
 +</​note>​
  
-Dacă ne interesează informații despre utilizarea memoriei sistemului, ​putem folosi comanda ''​free''​:<​code>​ +Dacă dorim să stocăm fișierul criptat într-o formă de fișier text (dar tot criptat) ​putem realiza o codificare [[https://​en.wikipedia.org/​wiki/​Base64|base64]] a acestuia. Pentru aceasta, folosim pentru criptare și decriptare comenzile în forma de mai jos:<​code>​ 
-student@uso-demo:​~$ ​free -m +student@uso-demo:​~$ ​openssl enc -e -base64 -aes-256-cbc -in plain.txt -out encrypted.dat 
-             total       ​used ​      ​free ​    ​shared ​   buffers ​    ​cached +enter aes-256-cbc encryption password
-Mem          500        270        230          4         ​24 ​       196 +Verifying ​enter aes-256-cbc encryption password
--/+ buffers/​cache        48        451 +student@uso-demo:~$ cat encrypted.dat ​ 
-Swap         ​382 ​         0        382 +U2FsdGVkX18HD7U8AkSTfWFQEryHAjfJ7hQlWZQSdMvmdwZSES76zQz7JioIultg 
-</​code>​ +x4sLDHbAA6xTo8ioX3gG/​L+7REMUuN46hUXCBB+G1c4=
-Comanda afișează totalul de memorie RAM a sistemului și cât din acesta este folosit. În cazul nostru avem ''​500''​ de MB de memorie RAM, dintre care sunt folosiți ''​270''​ MB și sunt disponibili ''​230''​ MB.+
  
-Detalii despre utilizarea memoriei RAM găsim în fișierul ''/​proc/​meminfo'':<​code>​ +student@uso-demo:​~$ ​openssl enc -d -base64 -aes-256-cbc -in encrypted.dat -out plain.txt 
-student@uso-demo:​~$ ​cat /​proc/​meminfo ​ +enter aes-256-cbc decryption password
-MemTotal        512596 kB +student@uso-demo:~$ cat plain.txt ​ 
-MemFree         ​236044 kB +This is my life's biggest secretI have no life
-MemAvailable    468944 kB +
-Buffers: ​          25296 kB +
-Cached: ​          ​201248 kB +
-[...]+
 </​code>​ </​code>​
  
-Informații despre utilizarea memoriei sistemului aflăm și prin folosirea comenzilor ​''​top''​ sau ''​htop''​. Aceste comenzi au avantajul că ne afișează și procesele sistemului și putem identifica procesele care consumă memorie și care afectează performanța sistemului (așa numitele //memory hogs//).  +Observăm mai sus că avem o formă ASCII a fișierului criptat ​''​encrypted.dat''​. 
-==== Afișarea de informații despre discuri ​====+==== Criptare/​decriptare folosind chei asimetrice ​====
  
-La fel ca mai sus pentru afișa informații detaliate despre discurile sistemului putem folosi comanda ''​lshw'':<​code>​ +Criptarea cu chei simetrice are avantajul vitezei dar dezavantajul că trebuie ​știută ​(și partajată între cel care criptează și cel care decripteazăcheia de criptareMai mult, dacă acea cheie este slabă, un atacator poate sparge cheia și decripta fișierul.
-student@uso-demo:​~$ sudo lshw -class disk -class storage -class volume -short +
-H/W path        Device ​     Class       ​Description +
-=================================================== +
-/​0/​100/​1.1 ​                 storage ​    ​82371AB/​EB/​MB PIIX4 IDE +
-/​0/​100/​d ​                   storage ​    ​82801HM/​HEM ​(ICH8M/​ICH8M-ESATA Controller [AHCI mode] +
-/0/2            scsi0       ​storage ​     +
-/0/2/0.0.0      /​dev/​sda ​   disk        8589MB VBOX HARDDISK +
-/​0/​2/​0.0.0/​1 ​   /​dev/​sda1 ​  ​volume ​     7806MiB EXT4 volume +
-/​0/​2/​0.0.0/​2 ​   /​dev/​sda2 ​  ​volume ​     383MiB Extended partition +
-/​0/​2/​0.0.0/​2/​5 ​ /​dev/​sda5 ​  ​volume ​     383MiB Linux swap / Solaris partition +
-/0/3            scsi2       ​storage ​     +
-/0/3/0.0.0      /​dev/​cdrom ​ disk        DVD reader +
-</​code>​+
  
-Alte comenzi ​cu un output similar sunt:<​code>​ +Criptarea ​cu chei asimetrice folosește cheia publică pentru criptare; oricine poate astfel cripta. Pentru decriptare se folosește cheia privată și doar cel care o deține poate decripta.
-student@uso-demo:​~$ sudo fdisk -l+
  
-Disk /dev/sda8 GiB, 8589934592 bytes, 16777216 sectors +Pentru aceasta, vom folosi tot utilitarul ''​openssl''​. Vom folosi algoritmul ''​RSA''​ (//Rivest-Shamir-Adleman//​) pentru criptarea asimetrică. Pentru început vom genera cheia privată și cheia publică:<​code>​ 
-Unitssectors of 1 * 512 = 512 bytes +student@uso-demo:~$ openssl genrsa -out privkey 2048 
-Sector size (logical/​physical): 512 bytes / 512 bytes +Generating RSA private key, 2048 bit long modulus 
-I/O size (minimum/​optimal):​ 512 bytes / 512 bytes +......................................................+++ 
-Disklabel typedos +.....................+++ 
-Disk identifier0x1aaa7728+e is 65537 (0x10001) 
 +student@uso-demo:~$ cat privkey  
 +-----BEGIN RSA PRIVATE KEY----- 
 +MIIEowIBAAKCAQEA4o1PEkzZawYItZFdxsPwA/7kbffcDLQOSCtbdORA23uO6zk8 
 +[...] 
 +-----END RSA PRIVATE KEY----- 
 +student@uso-demo:~$ openssl rsa -pubout -in privkey -out pubkey 
 +writing RSA key 
 +student@uso-demo:~$ cat pubkey  
 +-----BEGIN PUBLIC KEY----- 
 +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4o1PEkzZawYItZFdxsPw 
 +A/​7kbffcDLQOSCtbdORA23uO6zk8+4WLYrc1tgh827N2qcW28UsIxaA2YlowXJu7 
 +[...] 
 +-----END PUBLIC KEY----- 
 +</​code>​
  
-Device ​    ​Boot ​   Start      End  Sectors ​ Size Id Type +Mai sus am generat cheia privată în fișierul ''​privkey''​ și cheia publică în fișierul ''​pubkey''​Cheia publică este derivată din cheia privată. Formatul în care sunt stocate cele 2 cheie se numește PEM (//Privacy-enhanced Electronic Mail//).
-/​dev/​sda1 ​ *        2048 15988735 15986688 ​ 7.6G 83 Linux +
-/dev/sda2       ​15990782 16775167 ​  ​784386 ​ 383M  5 Extended +
-/dev/sda5       ​15990784 16775167 ​  ​784384 ​ 383M 82 Linux swap / Solaris+
  
-student@uso-demo:​~$ ​sudo parted ​-+Ca să criptăm fișierul ''​plain.txt''​ folosind cheia publică din fișierul ''​pubkey'',​ vom rula comanda<​code>​ 
-Model: ATA VBOX HARDDISK (scsi) +student@uso-demo:​~$ ​openssl rsautl ​-encrypt -in plain.txt -out encrypted.dat -pubin -inkey pubkey ​
-Disk /dev/sda: 8590MB +
-Sector size (logical/​physical):​ 512B/512B +
-Partition Table: msdos +
-Disk Flags: ​+
  
-Number ​ Start   ​End ​    ​Size ​   Type      File system ​    ​Flags +student@uso-demo:​~$ ​xxd encrypted.dat ​ 
- ​1 ​     1049kB ​ 8186MB ​ 8185MB ​ primary ​  ​ext4 ​           boot +000000097e7 bc72 4d76 708f 5b2b 7437 b698 2937  ...rMvp.[+t7..)7 
- ​2 ​     8187MB ​ 8589MB ​ 402MB   ​extended +[...
- ​5 ​     8187MB ​ 8589MB ​ 402MB   ​logical ​  ​linux-swap(v1) +00000f0dfd0 3bfc f5b1 9a17 9655 2b9b e441 7bba  ..;​......U+..A{.
- +
- +
-student@uso-demo:​~$ ​sudo lsblk +
-NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT +
-sda      8:0    0    8G  0 disk  +
-├─sda1 ​  ​8:​1 ​   0  7.6G  0 part / +
-├─sda2 ​  ​8:​2 ​   0    1K  0 part  +
-└─sda5 ​  ​8:​5 ​   0  383M  0 part [SWAP] +
-sr0     ​11:​0 ​   1 1024M  0 rom   +
- +
-student@uso-demo:​~$ sudo lsblk -f +
-NAME   ​FSTYPE LABEL UUID                                 ​MOUNTPOINT +
-sda                                                       +
-├─sda1 ext4         ​4c03932f-ebdc-4d7d-bf4e-aa65f3889d73 / +
-├─sda2 ​                                                   +
-└─sda5 swap         ​709a57ff-ffc5-4cf2-bfd7-2850a842e41f ​[SWAP+
-sr0                                                       +
- +
-student@uso-demo:~$ sudo hwinfo --block --short +
-disk:                                                            +
-  /​dev/​sda ​            VBOX HARDDISK +
-partition:​ +
-  /​dev/​sda1 ​           Partition +
-  /​dev/​sda2 ​           Partition +
-  /​dev/​sda5 ​           Partition +
-cdrom: +
-  /​dev/​sr0 ​            VBOX CD-ROM+
 </​code>​ </​code>​
  
-Comenzile de mai sus ne afișează partițiile sistemului, cu diverse informații precum numele lor, spațiul ocupat, tipul de sistem de fișiere cu care este formatată partiția.+Fișierul criptat este un fișier binar; îl putem vizualiza folosind comanda ''​xxd''​.
  
-Dacă dorim să afișăm informații despre utilizarea spațiului despre partițiile sistemului putem face acest lucru doar pentru partițiile montate folosim comanda ​''​df'':<​code>​ +Pentru a decripta fișierul ''​encrypted.dat''​ înapoi în fișierul ''​plain.txt''​ folosind cheia privată din fișierul ​''​privkey'' ​vom rula comanda de mai jos:<​code>​ 
-student@uso-demo:​~$ ​df -hT +student@uso-demo:​~$ ​openssl rsautl ​-decrypt -in encrypted.dat -out plain.txt -inkey privkey 
-Filesystem ​    ​Type ​     Size  Used Avail Use% Mounted on +student@uso-demo:​~$ cat plain.txt  
-/​dev/​sda1 ​     ext4      7.4G  1.6G  5.5G  23% / +This is my life's biggest secret: I have no life
-udev           ​devtmpfs ​  ​10M ​    ​0 ​  ​10M ​  0% /dev +
-tmpfs          tmpfs     ​101M ​ 4.4M   ​96M ​  5% /run +
-tmpfs          tmpfs     ​251M ​    ​0 ​ 251M   0% /dev/shm +
-tmpfs          tmpfs     ​5.0M ​    ​0 ​ 5.0M   0% /run/lock +
-tmpfs          tmpfs     ​251M ​    ​0 ​ 251M   0% /​sys/​fs/​cgroup+
 </​code>​ </​code>​
- 
-O afișare ceva mai estetică obținem cu ajutorul comenzii ''​pydf''​. Pentru aceasta instalăm în prealabil pachetul ''​pydf'':<​code>​ 
-student@uso-demo:​~$ sudo apt-get install pydf 
-[...] 
- 
-student@uso-demo:​~$ pydf 
-Filesystem ​ Size  Used Avail Use%                                                    Mounted on 
-/​dev/​sda1 ​ 7555M 1589M 5560M 21.0 [##########​......................................] /  
-</​code>​ 
- 
-Comenzile ''​df''​ sau ''​pydf''​ ne afișează dimensiunea totală a unei partiții spațiul ocupat și spațiul disponibil, împreună cu un procent de utilizare a spațiului. 
  
 <​note>​ <​note>​
-Detalii despre comnezile de afișare de informații despre hard discuri găsițși la link-ul indicat ca resursă utilă în partea de sus a paginii: ​http://www.binarytides.com/linux-command-check-disk-partitions/​+Cheia privată, la fel cum este cheia/​parola în criptare simetrică, trebuie ​ținută în siguranță. O recomandare este ca o cheie privată să fie protejată ​și de un passphrase. Introducerea passphrase-ului condiționează folosirea cheii private. O altă recomandare este folosirea unui [[http://lifehacker.com/5529133/​five-best-password-managers|Password manager]] care să rețină toate parolele și cheile în mod sigur (să nu fie scrise plain text undeva) sub protecția unui master password.
 </​note>​ </​note>​
-==== Generarea de fișiere ​folosind ​comanda dd ====+==== Semnare/​verificare ​folosind ​chei asimetrice ​====
  
-Pentru situații ​de testare putem avea nevoie ​de fișiere de diferite dimensiuni. Pentru ​genera astfel de fișiere putem folosi comanda ''​dd'' ​și intrările speciale ''/​dev/​urandom'' ​și ''/​dev/​zero''​.+Un alt scenariu ​de folosire a cheilor asimetrice este pentru semnarea unor mesaje. Semnarea se face cu ajutorul cheii private (doar posesorul are acces) iar verificarea cu ajutorul cheii publice (oricine poate verifica). De obicei se transmite mesajul în plain text dar este de știut că cel care trimis mesajul chiar este cel care l-a trimis, ​și pentru aceea se atașează fișierul de tip semnătură mesajului.
  
-De exemplu, dacă dorim să generăm un fișier de ''​10MB'' ​plin cu zero-uri, vom folosi comanda<​code>​ +Vom folosi tot cheia privată ''​privkey'' ​și cheia publică ​''​pubkey'' ​de mai sus.
-student@uso-demo:​~$ dd if=/​dev/​zero of=zero-1OMB bs=1M count=10 +
-10+0 records in +
-10+0 records out +
-10485760 bytes (10 MB) copied, 0.0233232 s, 450 MB/s+
  
-student@uso-demo:​~$ ls -lh zero-1OMB  +Pentru semnarea mesajului ​vom folosi<​code>​ 
--rw-r--r-- 1 student student 10M Dec  5 18:09 zero-1OMB +student@uso-demo:​~$ ​openssl rsautl -sign -in plain.txt -out signature -inkey privkey ​ 
-</​code>​ +student@uso-demo:​~$ ​xxd signature ​ 
-Comanda ''​dd''​ citește din intrarea specială ''/​dev/​zero''​ zero-uri și le scrie în fișierul ''​zero-1OMB''​. Face acest lucru în ''​10''​ copieri de blocuri de câte ''​1M''​ (''​bs''​ înseamnă //block size//). +0000000: 910f be3f 6a47 b150 f239 8105 3d64 a60d  ...?jG.P.9..=d..
- +
-Dacă dorim să generăm un fișier de ''​5MB''​ plin cu date aleatoare, ​vom folosi ​comanda<​code>​ +
-student@uso-demo:​~$ ​dd if=/​dev/​urandom of=random-5MB bs=1M count=5 +
-5+0 records ​in +
-5+0 records ​out +
-5242880 bytes (5.2 MB) copied, 0.56655 s, 9.3 MB/s +
- +
-student@uso-demo:​~$ ​ls -lh random-5MB ​ +
--rw-r--r-- 1 student student 5.0M Dec  5 18:11 random-5MB +
-</​code>​ +
-Comanda ''​dd''​ citește din intrarea specială ''/​dev/​urandom''​ date aleatoare și le scrie în fișierul ''​random-5MB''​Face acest lucru în ''​5''​ copieri de blocuri de câte ''​1M''​ (''​bs''​ înseamnă //block size//). +
- +
-Putem folosi comanda ''​dd''​ și pentru dispozitive fiziceDe exemplu, dacă vrem să extragem sectorul 0 de pe un hard disc (adică primii 512 octeți) folosim comanda:<​code>​ +
-student@uso-demo:​~$ sudo dd if=/dev/sda of=mbr count=1 +
-1+0 records in +
-1+0 records out +
-512 bytes (512 B) copied, 0.00355612 s, 144 kB/s +
- +
-student@uso-demo:​~$ ls -lh mbr  +
--rw-r--r-- 1 root root 512 Dec  5 18:13 mbr +
-</​code>​ +
-Comanda ''​dd''​ citește din intrarea specială ''/​dev/​sda''​ date și le scrie în fișierul ''​random-5MB''​Face acest lucru într-o singură copiere de bloc de date; dimensiunea blocului este în mod implicit ''​512''​ așa că se vor copia exact ''​512''​ octețiA fost nevoie de permisiuni de ''​root''​ (prefixarea comenzii folosind ''​sudo''​) pentru că doar cu permisiuni dedicate putem citi de pe dispozitivile ce identifică discul sistemului. +
- +
-Putem valida că am extras sectorul 0 al hard discului folosind comanda ''​xxd''​ (care face //dump// în hexadecimal)Întrucât sectorul 0 este sectorul de boot acesta se va încheia cu semnătura de sector de boot, adică ''​0x55aa'',​ lucru observabil în output-ul comenzii ''​xxd'':<​code>​ +
-student@uso-demo:​~$ xxd mbr+
 [...] [...]
-00001f00000 0000 0000 0000 0000 0000 0000 55aa  ​..............U.+00000f07ffd 183f 26e4 221f c9dc 90b5 9510 7eca  ...?&.".......~.
 </​code>​ </​code>​
  
-Tot folosind comanda ''​dd''​ un sistem ce posedă unitate de CD și are un CD în unitate poate crea o imagine de tip ''​.iso''​ a CD-ului. Pentru aceasta folosim ​comanda<​code>​ +Pentru verificarea semnăturii vom folosi ​comanda<​code>​ 
-dd if=/​dev/​cdrom of=myimage.iso+student@uso-demo:​~$ openssl rsautl -verify -in signature -pubin -inkey pubkey  
 +This is my life's biggest secret: I have no life
 </​code>​ </​code>​
-Cu această comandă creăm fișierul ''​myimage.iso''​ ca fișier imagine al CD-ului aflat în unitatea de CD. 
- 
-<note warning> 
-Atenție la folosirea comenzii ''​dd''​ și care este fișierul destinație (în care se scrie). Există riscul să vă corupeți (potențial iremediabil) hard discul dacă folosiți ''/​dev/​sda''​ pe post de fișier destinație. 
-</​note>​ 
-==== Crearea unei mașini virtuale în VirtualBox ==== 
- 
-Pentru crarea unei mașini virtuale în VirtualBox folosim, de regulă, interfața grafică a VirtualBox. Pentru aceasta urmăm ca pași principali: 
-  * Crearea specificațiilor mașinii virtuale: memorie, hard disc, tip de sisteme de operare 
-  * Alegerea unui mediu de boot, de obicei o imagine de CD bootabil în format ''​.iso''​ 
-  * Pornirea mașinii virtuale (bootarea acesteia) și pornirea procesului de instalare 
- 
-Acești pași sunt descriși în video-ul de tip screencast de mai jos, accesibil direct la adresa https://​youtu.be/​xFkkeVoOC_A. 
- 
-<​html>​ 
-<​center>​ 
-<iframe width="​560"​ height="​315"​ src="​https://​www.youtube.com/​embed/​xFkkeVoOC_A"​ frameborder="​0"​ allowfullscreen>​ 
-</​iframe>​ 
-</​center>​ 
-</​html>​ 
- 
-==== Afișarea de informații despre mașinile virtuale VirtualBox ==== 
  
 <​note>​ <​note>​
-Comenzile indicate mai jos pot fi rulate doar pe un sistem fizic (Linux sau Windowsîn cadrul căruia a fost instalat VirtualBox.+Pentru criptare/​decriptare și semnare/​verifcare cu chei asimetrice putem folosi și suita [[https://​www.gnupg.org/​|GnuPG]] ​(//GNU Privacy Guard//).
 </​note>​ </​note>​
  
-În afara interfeței grafice în VirtualBox putem folosi comanda ''​vboxmanage''​ pentru a afișa informații și pentru a configura mașini virtuale VirtualBox. +*/
- +
-De exemplu, pentru a afișa mașinile virtuale existente în VirtualBox, rulăm comanda<​code>​ +
-razvan@einherjar:​~$ vboxmanage list vms +
-"​Windows-7"​ {2a9b2719-2c6c-42df-9f19-5febff6172bf} +
-"​Debian"​ {18565cc7-101d-4ac4-91b4-2ee317b7f9ae} +
-"​Debian 32 bit" {562696b3-efb8-42e4-8a66-519a98aa5ac8} +
-"​Xubuntu-14.04"​ {cd57aa75-82b0-4f07-8236-81517f2ee87d} +
-"SSS - Debian 32bit" {fa9dd108-fe13-4d12-adcd-84e29bcc3232} +
-"SSS - Windows 7 32bit" {4f27ec11-33a8-400d-a898-d252169ab52f} +
-"​Training - Linux Kernel Dev" {3645e7b4-482e-4bd2-aa73-f29e8b15288f} +
-"GSR Debian"​ {409a6ad1-3998-443b-9297-e46aa1d944e5} +
-"USO Demo" {e04f00a6-7530-45d0-95e6-56ba46d6810a} +
-"IOCLA Linux" {5ee0048a-6bd1-4dc6-bf1b-daffc1729066} +
-"USO Linux" {845446cb-0210-4f3b-8df0-91cd1c67b5e2} +
-</code> +
-Comanda afișează mașinile virtuale existente în sistemul gazdă împreună cu un identificator unic al acestora (numit UUID -- //​Universally Unique Identifier//​). +
- +
-Dacă vrem să afisăm doar mașinile virtuale care rulează, folosim comanda<​code>​ +
-razvan@einherjar:​!$ vboxmanage list runningvms +
-"USO Demo" {e04f00a6-7530-45d0-95e6-56ba46d6810a} +
-<​code>​ +
- +
-Dacă ne interesează să aflăm informații detaliate despre o mașină virtuală rulăm comanda<​code>​ +
-razvan@einherjar:​~$ vboxmanage showvminfo "USO Demo"​ +
-Name:            USO Demo +
-Groups: ​         / +
-Guest OS:        Debian (32-bit) +
-UUID:            e04f00a6-7530-45d0-95e6-56ba46d6810a +
-Config file:     /​home/​razvan/​vm/​vbox/​USO Demo/USO Demo.vbox +
-Snapshot folder: /​home/​razvan/​vm/​vbox/​USO Demo/​Snapshots +
-Log folder: ​     /​home/​razvan/​vm/​vbox/​USO Demo/Logs +
-Hardware UUID:   ​e04f00a6-7530-45d0-95e6-56ba46d6810a +
-Memory size:     ​512MB +
-[...] +
-</​code>​ +
-Comanda afișează o multitudine de informații despre mașina virtuală, practic tot ceea ce o definește. +
- +
-<​note>​ +
-Comanda ''​vboxmanage''​ are o mulțime de subcomenzi care pot fi folosite pentru inspectarea și configurarea mașinilor virtuale. Puteți folosi comanda<​code>​ +
-vboxmanage --help +
-</​code>​ +
-pentru a le parcurge pe toate, sau puteți consulta pagina de manual a comenzii<​code>​ +
-man vboxmanage +
-</​code>​ sau puteți accesa [[https://​www.virtualbox.org/​manual/​ch08.html|documentația VirtualBox]]. +
-</​note>​ +
- +
-==== Sumar comenzi Linux legate de hardware ==== +
- +
-Mai jos este un sumar al comenzilor Linux folosite pentru inspectarea componentelor harware ale sistemului. Sunt indicate comenzile pe tipuri de componente. +
- +
-^  Componentă hardware ​ ^  Comenzi pentru specificații ​ ^  Comenzi pentru monitorizare ​  ^ +
-^  Toate                   | ''​sudo lshw'' ​                     |  | +
-| :::                      | ''​sudo lshw -short'' ​                     | :::  | +
-| :::                      | ''​sudo dmidecode'' ​                | :::  | +
-| :::                      | ''​sudo hwinfo'' ​                | :::  | +
-| :::                      | ''​%%sudo hwinfo --short%%'' ​                | :::  | +
-| :::                      | ''​inxi'' ​                | :::  | +
-| :::                      | ''​inxi -F'' ​                | :::  | +
-^  Magistrale/​Controllere ​ | ''​sudo lscpi'' ​ | | +
-| :::                      | ''​sudo lsusb'' ​ | ::: | +
-^  Procesor ​               | ''​lspcu'' ​  | ''​top'' ​ | +
-| :::                      | ''​sudo lshw -class cpu''​ | ''​htop'' ​ | +
-| :::                      | ''​sudo dmidecode -t processor''​ | ''​mpstat'' ​ | +
-| :::                      | ''​%%sudo hwinfo --cpu%%''​ | | +
-| :::                      | ''​%%sudo hwinfo --cpu --short%%''​ |  ::: | +
-| :::                      | ''​%%inxi -Cxx%%''​ |  ::: | +
-| :::                      | ''​%%cat /​proc/​cpuinfo%%''​ |  ::: | +
-| :::                      | ''​%%nproc%%''​ |  ::: | +
-| :::                      | ''​%%arch%%''​ |  ::: | +
-^  Memorie ​                | ''​sudo lshw -class memory'' ​  | ''​free -m'' ​ | +
-| :::                      | ''​sudo dmidecode -t memory'' ​ | ''​cat /​proc/​meminfo''​ | +
-| :::                      | ''​sudo dmidecode -t cache'' ​ | ''​top''​ | +
-| :::                      | ''​%%sudo hwinfo --memory%%'' ​ | ''​htop''​ | +
-| :::                      | ''​sudo inxi -m'' ​ | | +
-^  Disc                    | ''​sudo lshw -class disk -class storage -class volume -short'' ​ | ''​df -hT'' ​ | +
-| :::                      | ''​sudo fdisk -l'' ​ | ''​pydf'' ​ | +
-| :::                      | ''​sudo parted -l'' ​ |  | +
-| :::                      | ''​sudo lsblk'' ​ | :::  | +
-| :::                      | ''​sudo lsblk -f'' ​ | :::  | +
-| :::                      | ''​%%sudo hwinfo --block --short%%'' ​ | :::  | +
-| :::                      | ''​inxi -DdoP'' ​ | :::  | +
uso/cursuri/curs-12.1512820710.txt.gz · Last modified: 2017/12/09 13:58 by razvan.deaconescu
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