= Capitolul 3: Networking = **Alocare de timp**: 4 ore [[https://docs.google.com/presentation/d/1TBHHac1BIv07fZLPEvTEI2L6F6CwWp3mJpfxKVLeRA8/pub?start=false&loop=false&delayms=3000|Slide-uri de prezentare]] == Hands on (0) == * Rulați comanda ''ls | cat''. * Ce observați? * Rulați comanda ''ls | cat | cat | cat | cat''. * Ce observați? * Rulați comanda ''ls -l /etc | less''. * Ce observați? * Navigați similar ca în paginile de manual. * Rulați comanda ''ls -lR / | less''. * Ce observați? * Rulați comanda ''cat /proc/cpuinfo | less''. * Ce informații puteți afla? * Folosiți comanda ''ls'' și comanda ''wc'' pentru a afla numărul de intrări din directorul curent. * hint: man pages * Rulați comanda ''yes a''. * Apăsați Ctrl-z. * Rulați ''jobs''. * Rulați comanda ''fg''. * Apăsați Ctrl-c. * Ce observați? * Rulați comanda ''yes b''. * Deschideți un alt terminal. Aflați PID-ul procesului. * Rulați comanda ''kill -STOP $PID'', unde ''$PID'' este PID-ul aflat anterior * Ce observați că s-a întâmplat cu procesul ''yes''? * Rulați comanda ''kill -l''. * Repetați experimentul și înlocuiți STOP cu numărul corespunzător aflat. * Pentru al doilea experiement, evident PID-ul nu va mai fi același. == Hands on (1) == === Inspectare configurații curente === * Inspectați configurările de rețea curente de pe mașina fizică. Afișați informațiile: * de nivel 2 - legatură de date (adresa MAC) * de nivel 3 - rețea (adresa IP, masca de rețea și gateway-ul implicit) * de nivel 7 - aplicații (server DNS). * pentru a schimba configurările de rețea, trebuie să fim root. Pentru a le inspecta, în general, nu este nevoie. * Folosiți ''ifconfig'' pentru a afla adresa MAC, adresa IP, și masca de rețea. Ce interfață este cea relevantă? * Adresa MAC se mai numește și adresă fizică sau adresă hardware. Folosiți ''route'' pentru a afla gateway-ul implicit. === One-liner === * Folosind pipes (|), ''grep'' și ''cut'' scrieți o comandă care afișeaza MAC-ul interfeței eth0. * De asemenea, scrieți o comandă care afișează adresele IP de pe interfețele active. == Hands on (2) == === Configurari === * Configurați dinamic, temporar, interfața de rețea eth1 a mașinii fizice. Testați folosind ping. === Pe mașina virtuală === * Configurarea rețelei este o operațiune critică sistemului, deci are nevoie de privilegii de root * Configurați static temporar mașina virtuală cu următorii parametri: ''adresa IP 192.168.100.10 masca de rețea 255.255.255.0. '' * interfața nu este pornită. Va trebui să o puneți în starea UP. * gateway-ul implicit va fi 192.168.100.1 * serverul DNS va fi 8.8.8.8. Suprascrieți orice server existent. * Testați setările anterioare. === Configurări permanente === * Faceți setările de la exercițiul anterior permanente. Restartați mașina virtuală. Testați conectivitatea. === DNS === * Aflați care este serverul de nume pentru host-ul ''rosedu.org''. * Aflați care este serverul de mail pentru ''cs.pub.ro''. * Interogați serverul de nume al ''cs.pub.ro'' pentru a afla adresa ''koala.cs.pub.ro''. === Static hosts === * Folosind fișierul de configurare statică a asocierilor host-IP, setați ''google.ro'' la 127.0.0.1. * Testați în browser. * Fără a modifica același fișier, faceți ca google.ro să fie accesibil din nou. (Hint: man //nsswitch.conf//). Testați în browser. == Hands on (3) == * Pentru fiecare din intrările de mai jos specificaţi: * adresa de reţea şi adresa de broadcast * prima şi ultima adresa alocabilă * numărul total de adrese alocabile * 100.50.100.50/24 * 10.20.50.80/30 * 72.36.18.9/28 * 81.27.9.3/17 * Aveţi la dispoziţie un spaţiu /16. Se doresc scheme de adresare care irosesc cât mai puţine adrese. Ce mască aţi alege pentru următoarele cerinţe? * Cat mai multe retele cu minim 100 statii * Cat mai multe retele cu minim 63 statii * Minim 10 retele (cu numar maxim de statii) * Minim 256 de retele (cu numar maxim de statii) == Hands on (4) == === SSH pe stațiile locale === * Instalați pe mașina locală pachetul ''openssh-server''. * Aflați de la colegul din dreapta dvs adresa IP a mașinii locale și conectați-vă prin SSH. Folosiți utilizatorul ''student'' cu parola ''student''. După conectare, creați un fișier cu numele dvs în home-ul de pe mașina remote. * Dacă nu vă puteți conecta la calculatorul colegului, acesta va trebui să ruleze comenzile: * ''sudo initctl reload-configuration'' * ''sudo service ssh start'' === SSH neinteractiv === * Generați o pereche de chei ssh, folosind configurările implicite. * Configurați sistemul din dreapta astfel încât la conectarea prin ssh să nu ceară parola. Testați. * Copiați, folosind ''scp'' fișierul creat anterior de pe mașina din dreapta dvs pe mașina locală. Nu trebuie să vă ceară parola. === scp === * Copiați de pe calculatorul din dreapta folderul: /etc/network, folosind o singură comandă ''scp''. Consultați manualul scp. == Hands on (5) == === Inspectare locală === * Folosind ''netstat'' și manualul acestuia, listați toate porturile TCP în starea //listening//. Afișați valorile numerice ale porturilor. Afișați numele proceselor care ascultă pe acele porturi. === Inspectare la distanță === * Folosind ''nmap'' și manualul acestuia, aflați ce porturi sunt deschise pe serverul ''rosedu.org''. === Inspectare rețea locală === * Listați toate stațiile pornite în rețeaua din care face parte calculatorul dvs (mașina fizică). == Resurse utile == * [[:home|Wiki-ul cursului]]