This is an old revision of the document!
Thread nou? Nu. Pentru o ușoară parcurgere a mesajelor, folosiți thread-urile de discuții existente în cadrul forumului, fără a crea altele. În consecință, thread-urile (subiectele de discuții) nou create vor fi șterse.
Căutare. Căutați pe forum informația pe care doriți să o obțineți, înainte să puneți o întrebare. De cele mai multe ori, cineva a mai întrebat același lucru. În fiecare thread al forumului aveți informații despre cum puteți căuta în forum.
Printscreen/poză? Nu. În cazul în care doriți să publicați un printscreen pe forum, recomandăm folosirea site-urilor pentru partajarea gratuită a imaginilor, precum imgur sau alternativele sale, publicând pe forum doar link către printscreen. Pozele inserate în răspunsuri, vor fi șterse.
Actualizări. Urmăriți atât forumul cât și modificările aduse enunțului/checker-ului, modificări ce sunt publicate și explicate în paragrafele de mai jos.
Regulament. Înainte și în timpul realizării temei, vă rugăm să parcurgeți indicațiile legate de realizarea temelor, încluzând ce înseamnă o temă copiată și cum penalizăm temele copiate. Folosiți cu încredere forumurile de pe cs.curs.pub.ro pentru întrebări și neclarități legate de teme.
Întrebări frecvente. În timpul realizării temei, când vă loviți de probleme și aveți nevoie de suportul echipei de USO, parcurgeți și lista de întrebări frecvente întâlnite în cadrul temelor. Să țineți cont, va rugăm, și de recomandările de comunicare electronică.
Ajutor reciproc. Vă încurajăm ca atunci când găsiți soluția la o problemă pe care ați postat-o anterior pe forum să postați și soluția găsită. De asemenea dacă știți răspunsul la întrebările colegilor sunteți încurajați să le răspundeți.
ip address show).
Actualizări utilitar uso: versiunea v16 - “Gold Blackbird”
Actualizări checker: versiunea 3
enp0s8.i386/ubuntu, ci doar cu numele.
uso
uso, consultați instrucțiunile de utilizare.Descărcare mașină virtuală și informații despre aceasta
Testarea temei se va face doar pe mașina virtulă (aici) autentificat ca utilizator student, folosind utilitarul uso. Acesta poate fi executat în orice moment pentru a verifica dacă au fost rezolvate corect task-urile. Nu lucrați autentificat ca utilizator root în sistem, la nicio temă. Din acest motiv există posibilitatea să nu vă treacă testele. Pe de altă parte, nu este o metoda de siguranță să lucrați autentificat ca utilizator root din motive de securitate și/sau permisiuni.
Utilitarul uso implementează testele doar pentru task-urile temei curente. La fiecare temă nouă, pentru a folosi utilitarul uso, primul pas este să porniți tema folosind comanda sudo uso start. În caz contrar, nu veți avea actualizat checker-ul pentru tema curentă.
Verificați versiunea utilitarului uso cât și a checker-ului, afișată la rularea comenzii sudo uso start sau sudo uso check, pe prima linie a output-ului. Asigurați-vă că aveți ultima versiune înainte de a continua lucrul pentru temă. Versiunea actuală este specificată în secțiunea Informații generale prezentă în enunțul temei. Pentru situațiile în care nu dispuneți de ultima versiune a utilitarului uso sau checker-ului, rulați sudo uso update.
Finalizarea temei se realizează prin rularea comenzii sudo uso submit și încărcarea codului returnat de această comandă (32 de caractere alfanumerice), în formularul din secțiunea Informații generale. Pentru a evita transcrierea eronată a codului returnat de checker, recomandăm copierea acestuia din interfața mașinii host conectată prin SSH către mașina guest după cum urmează:
Pe parcusul acestei teme vom folosi virtualizarea bazată pe containere. Există mai multe proiecte care automatizează lucrul cu containere Linux, iar unul dintre cele mai populare este Docker. Docker este un proiect open source început în 2013 și, în momentul de față este foarte folosit și în industrie (Google, Amazon, Microsoft). Vom folosi containere pentru această temă pentru a da senzația că avem mai multe mașini virtuale conectate la mașina virtuală de USO (usovm), cu multiple interfețe de rețea pe care le vom configura în diverse moduri cu scopul de a comunica între ele sau în Internet. În realitate, un container nu este o mașină virtuală.
docker images;docker run -it image;docker stop/start CONTAINER_NAME;Ctrl+P Ctrl+Q;docker attach CONTAINER_NAME;docker ps;docker ps -a;docker rm;docker rmi.
i386/ubuntu:latest folosind comanda docker pull.uso-base care folosește imaginea descărcată la punctul anterior. Containerul trebuie să rămână pornit. Urmăriți exemplul de aici.inetutils-ping, iproute2, openssh-server, sshpass , vim și sudo pe containerul uso-base.student pe containerul uso-base cu parola student. Setați directorul home al acestuia la /home/student și shellul la /bin/bash.ssh între mașina virtuală de USO (usovm) și containerul uso-base folosind userul student.uso-base cu numele uso/ubuntu. Hint: docker commit
Checkerul va genera la prima sa rulare 3 containere uso1, uso2 și uso3 care folosesc imaginea creată la Task 1. Vă puteți atașa la oricare dintre ele folosind comanda docker attach CONTAINER_NAME. În cazul în care ați făcut o configurație greșită și doriți reinițializarea containerelor, ștergeți-le (docker stop uso1 uso2 uso3 && docker rm uso1 uso2 uso3) și rulați din nou checkerul.
eth1 a containerului uso1, a 11-a adresă asignabilă din rețeaua 192.168.42.0/24.eth1 a containerului uso2, a 12-a adresă asignabilă din rețeaua 192.168.42.0/24. Testați conectivitatea între cele 2 containere prin intefețele eth1 folosind comanda ping.ssh cu credențialele student:student de pe userul 'student'. Conexiunea va folosi adresa IP asignată intefețelor eth1, nu eth0.ssh, de pe userul student, fără parolă, la cele 2 containere uso1 și uso2 pe IP-urile configurate pe intefețele eth1. Conexiunea trebuie să se poată realiza pentru userul student de pe containere.ssh, de pe userul student, fără parolă, la containerul uso2 pe IP-ul configurat pe intefeța eth1. Conexiunea trebuie să se poată realiza pentru userul root de pe container.
uso1 și uso2 trebuie să fie pornite la finalul acestui task. Interfețele eth1 ale celor două containere trebuie să aibă configurată câte o singură adresă IP.
eth0 de pe containerul uso3.eth1 a containerului uso3 o adresă liberă, la alegere, din rețeaua 192.168.42.0/24. Hint: Adresa 192.168.42.1 este asignată intefeței usobridge de pe host (usovm). Un container nu poate fi rebootat, testați faptul că ați făcut configurările corecte folosind comanda service networking restart în containerul uso3.uso3 să aibă conexiune la internet. Testați folosind comanda ping -c 2 8.8.8.8. Configurarea trebuie să fie permanentă.uso2 altfel încât comanda ping google.com să se execute cu succes. /home/student/tema3/ de pe mașina virtuală de USO (usovm), cu numele iface-info.sh care afișează informații despre o interfață de rețea primită ca parametru. Rezultatul trebuie să respecte următorul format (exact 3 linii):student@usovm:~$ /home/student/tema3/iface-info.sh enp0s8 MAC: 08:00:27:0E:C4:CA IP: 172.28.128.4 Netmask: 255.255.255.0
Restricții și precizări:
stdout;Gimme more args la stderr;stderr mesajul No such interface;1;0;ip address show);08:00:27:0E:C4:CA, nu 08:00:27:0e:c4:ca;lo se va afișa MAC-ul acesteia ca fiind 00:00:00:00:00:00 (așa cum raportează ip address show).iface-info.sh pentru a putea primi două argumente. Primul argument este numele unei interfețe, iar al doilea este numele unui container pornit. Hint: docker execRestricții și precizări suplimentare față de primul subpunct:
stderr mesajul No such container;No such container;
În urma primei rulări a checkerului pentru acest task, pe mașina virtuală de USO (usovm) veți găsi fișierul /home/student/1024_gmail_passwords.txt.
/home/student/1024_gmail_passwords.txt în toate cele 3 containere uso1, uso2 și uso3 în directorul /var/passwords/<CONTAINER_NAME>, unde <CONTAINER_NAME> este numele containerului. De exemplu, pentru containerul uso1, fișierul se va găsi în urma copierii la calea /var/passwords/uso1/1024_gmail_passwords.txt de pe containerul uso1./uso/1024_yahoo_passwords.txt de pe containerul uso3 în directorul /home/student/ de pe host (mașina virtuală de USO).usovm) astfel încât să fie posibilă conectarea la containerele uso1 și uso2 folosind numele lor, nu doar adresele IP (setate la Taskul #2) ale interfețelor eth1 de pe containere. De exemplu:student@usovm:~$ ping uso1 PING uso1 (192.168.42.11) 56(84) bytes of data. 64 bytes from uso1 (192.168.42.11): icmp_seq=1 ttl=64 time=0.047 ms 64 bytes from uso1 (192.168.42.11): icmp_seq=2 ttl=64 time=0.052 ms
/home/student/tema3/keys de pe mașina virtuală de USO (usovm). NU setați niciun passphrase pentru ele.student de pe host (mașina virtuală de USO) să se poată conecta pe containerul uso1 ca userul student , fără parolă, folosind cheile generate la subpunctul anterior.Asigurați-vă că ați submis tema și ați încărcat codul aferent submisiei în formularul din secțiunea de Informații generale. Acest lucru este necesar ori de câte ori modificați tema și o submiteți din nou (detalii aici), până la termenul limită. În caz contrar, punctajul aferent temei va fi nul (0 puncte).