This shows you the differences between two versions of the page.
gsr:resurse:proiect [2016/11/10 19:46] george.milescu [Task 03 - E-mail (0.3 puncte)] |
gsr:resurse:proiect [2017/02/01 13:57] (current) george.milescu [Task 06 - SSL/TLS (0.6 puncte)] |
||
---|---|---|---|
Line 4: | Line 4: | ||
<note important> | <note important> | ||
- | Deadline: **26 Noiembrie (evaluare mid-term), în sesiune (evaluare end-term)**\\ | + | Deadline: **24 Noiembrie (evaluare mid-term), 04 Februarie (evaluare end-term)**\\ |
- | Timp de lucru: **3 săptămâni (pentru mid-term)**\\ | + | Timp de lucru: **3 săptămâni (pentru mid-term), 3 săptămâni (pentru end-term)**\\ |
Punctaj: **2.5 puncte** din nota finală (1 punct la evaluarea mid-term și 1.5 puncte la evaluarea end-term\\ | Punctaj: **2.5 puncte** din nota finală (1 punct la evaluarea mid-term și 1.5 puncte la evaluarea end-term\\ | ||
Forum pentru intrebari: [[http://cs.curs.pub.ro/2016/mod/forum/view.php?f=621|http://cs.curs.pub.ro/2016/mod/forum/view.php?f=621]] | Forum pentru intrebari: [[http://cs.curs.pub.ro/2016/mod/forum/view.php?f=621|http://cs.curs.pub.ro/2016/mod/forum/view.php?f=621]] | ||
Line 14: | Line 14: | ||
* **03.11.2016 - Versiunea 1.0 a enunțului** | * **03.11.2016 - Versiunea 1.0 a enunțului** | ||
+ | * **12.01.2017 - Versiunea 2.0 a enunțului** | ||
</note> | </note> | ||
Line 56: | Line 57: | ||
{{ :gsr:resurse:instances_overview.jpg?700 |}} | {{ :gsr:resurse:instances_overview.jpg?700 |}} | ||
- | ===== Cerințe ===== | + | ===== Cerințe mid-term ===== |
==== Task 01 - Setup VM (0.1 puncte) ==== | ==== Task 01 - Setup VM (0.1 puncte) ==== | ||
Line 63: | Line 64: | ||
- | ==== Task 02 - DNS (0.3 puncte) ==== | + | ==== Task 02 - DNS (0.4 puncte) ==== |
Instalare și configurare server DNS | Instalare și configurare server DNS | ||
Line 74: | Line 75: | ||
- Mașinile virtuale ale fiecărui student trebuie să folosească ca și resolver nameserverul proaspăt creat | - Mașinile virtuale ale fiecărui student trebuie să folosească ca și resolver nameserverul proaspăt creat | ||
- Fiecare server de DNS va avea configurată o zonă //slave// pentru domeniul **gsr**, iar master-ul se va afla la adresa **10.9.46.19** | - Fiecare server de DNS va avea configurată o zonă //slave// pentru domeniul **gsr**, iar master-ul se va afla la adresa **10.9.46.19** | ||
- | - Fiecare DNS server va trebui să fie **slave** pentru un alt domeniu al unui alt student, astfel încât fiecare domeniu de tip **s//X//.gsr** să aibe cel puțin două NS-uri. Pentru a configura serverele master/slave, vă rugam să lucrați în echipe de câte doi. ATENȚIE: doar acest subpunct presupune lucrul în echipă. Restul exercițiilor sunt individuale. | + | - Fiecare DNS server va trebui să fie **slave** pentru un alt domeniu al unui alt student, astfel încât fiecare domeniu de tip **s//X//.gsr** să aibe cel puțin două NS-uri. Pentru a configura serverele master/slave, vă rugam să lucrați în echipe de câte doi. ATENȚIE: doar acest subpunct presupune lucrul în echipă. Restul exercițiilor (unde nu este menționat în mod explicit lucrul în echipa) sunt individuale. |
==== Task 03 - E-mail (0.4 puncte) ==== | ==== Task 03 - E-mail (0.4 puncte) ==== | ||
Line 82: | Line 83: | ||
- Fiecare student va configura Dovecot pentru citirea mesajelor folosind protocolul POP3 | - Fiecare student va configura Dovecot pentru citirea mesajelor folosind protocolul POP3 | ||
- Fiecare MTA va trebuie să fie relay pentru cele 3 servere alocate fiecărui student | - Fiecare MTA va trebuie să fie relay pentru cele 3 servere alocate fiecărui student | ||
- | - Fiecare MTA trebuie să fie configurat astfel încât să fie **relay** pentru alt domeniu (de exemplu mail.s1.gsr să fie relay pentru s5.sX.gsr și tot așa până când fiecare domeniu are un MX principal si unul secundar) | + | - Fiecare MTA trebuie să fie configurat astfel încât să fie **relay** pentru alt domeniu (de exemplu mail.s1.gsr să fie relay pentru s5.gsr și tot așa până când fiecare domeniu are un MX principal si unul secundar). Pentru a configura serverele MX principale/secindare, vă rugam să lucrați în echipe de câte doi. ATENȚIE: doar acest subpunct presupune lucrul în echipă. Restul exercițiilor (unde nu este menționat în mod explicit lucrul în echipa) sunt individuale. |
- Crearea a doi utilizatori locali pe fiecare mașină și verificarea că pot trimite sau citi e-mail-uri din conturile utilizatorilor creați | - Crearea a doi utilizatori locali pe fiecare mașină și verificarea că pot trimite sau citi e-mail-uri din conturile utilizatorilor creați | ||
- Configurarea Dovecot pe masina mail.sX.gsr astfel încât cei doi utilizatori creați anterior să poată citi mesajele via POP3 | - Configurarea Dovecot pe masina mail.sX.gsr astfel încât cei doi utilizatori creați anterior să poată citi mesajele via POP3 | ||
Line 92: | Line 93: | ||
- Pe masinile cu rol de **DNS server** și **Web server**, se va monta directorul exportat în **///mnt/nfs/remote//** | - Pe masinile cu rol de **DNS server** și **Web server**, se va monta directorul exportat în **///mnt/nfs/remote//** | ||
- Directorul exportat trebuie să poată fi montat doar de pe cele două mașini indicate | - Directorul exportat trebuie să poată fi montat doar de pe cele două mașini indicate | ||
+ | |||
+ | |||
+ | ===== Cerințe end-term ===== | ||
+ | |||
+ | Partea a doua a proiectului depinde de funcționarea corectă a tuturor exercițiilor din prima parte (task-01 - task-04). Asigurați-vă că aveți funcționalitatea completă de la mid-term înainte de a vă apuca de partea a doua. Asigurați-vă că aveți adresele IP trecute în mod corect în formularul de la task-01. | ||
+ | |||
+ | |||
+ | ==== Task 05 - Web (0.6 puncte) ==== | ||
+ | |||
+ | - Instalați Apache pe mașina cu rol de Web server și asigurați-vă că serviciul rulează pe portul 80. | ||
+ | - Adaugați două intrări în serverul de DNS configurat la task-ul 02 pentru a putea accesa site-urile **static.web.sX.gsr** și **shared.web.sX.gsr** ce vor fi găzduite pe mașina cu rol de web server. | ||
+ | - Configurați în Apache un site de tip virtual host accesibil folosind URL-urile **static.web.sX.gsr** și **www.static.web.sX.gsr**. | ||
+ | - Site-ul va avea o singură pagină HTML statică, cu textul "This site is static.web.sX.gsr for student X" (unde X este numărul studentului din catalog) | ||
+ | - Sursa HTML a site-ului se va găsi în directorul ''/var/www/static/'' | ||
+ | - Configurați în Apache un site de tip virtual host accesibil folosind URL-urile **shared.web.sX.gsr** și **www.shared.web.sX.gsr**. | ||
+ | - Site-ul va avea o singură pagina HTML statică, cu textul "This site is shared.web.sX.gsr for student X" (unde X este numărul studentului din catalog) | ||
+ | - Sursa HTML a site-ului se va găsi în directorul ''/mnt/nfs/remote/www/shared'' (director care e montat prin NFS în cadrul task-ului 04) | ||
+ | - Conținutul paginii HTML trebuie să poată fi modificat din orice locație prin NFS | ||
+ | - Configurați serverul Apache pentru a stoca log-uri în fișiere separate pentru fiecare din cele două site-uri | ||
+ | - Configurați serverul bind de pe masina de DNS astfel încât la accesarea **www1.static.web.sX.gsr** să fie afișat site-ul static al unui coleg. ATENȚIE: doar acest subpunct presupune lucrul în echipă. Restul exercițiilor (unde nu este menționat în mod explicit lucrul în echipa) sunt individuale. | ||
+ | - Instalați serverul Apache pe mașina **email** și configurați-l în mod **reverse proxy** așa încat, la accesarea **www2.static.web.sX.gsr** să fie afișat conținutul site-ului **static.web.sX.gsr**. Trebuie realizate îi configurarile de DNS corespunzătoare. Site-ul **www2.static.web.sX.gsr** trebuie să fie hostat pe mașina de email. | ||
+ | |||
+ | ==== Task 06 - SSL/TLS (0.6 puncte) ==== | ||
+ | - Creați CSR-uri pentru a genera certificate digitale pentru fiecare dintre serverele de web și mail | ||
+ | - Pentru serverul de web, CSR-ul va fi creat pentru numele **static.web.sX.gsr** | ||
+ | - După crearea CSR-urilor, folosiți aplicația de la adresa http://elf.cs.pub.ro:8090/ pentru a obtine certificatele aferente | ||
+ | - Folosiți cele două certificate obținute pentru a configura serverele de mail și web | ||
+ | - Configurați serverul de POP3 să folosească SSL/TLS pentru securizarea conexiunii cu clienții | ||
+ | - Configurati serverul de SMTP să folosească TLS (STARTTLS) pentru a primi emailuri, cât și pentru a trimite mesaje folosind TLS atunci când serverul de la destinație suportă acest protocol | ||
+ | - Configurați serverul de web pentru a servi site-ul **static.web.sX.gsr** folosind HTTPS | ||
+ | - Testarea pentru email se va realiza în modul următor (pașii pot fi reproduși de voi local): | ||
+ | - Echipa de GSR va trimite un email către student@mail.**s//X//**.gsr | ||
+ | - Email-ul se va trimite doar dacă serverul de mail este configurat corect cu certificatul semnat mai sus | ||
+ | - Fiecare student trebuie să răspundă la acel email trimitând un mesaj înapoi la adresa de la care a trimis echipa email-ul inițial | ||
+ | - Testarea pentru web se va realiza în modul următor (pașii pot fi reproduși de voi local): | ||
+ | - Echipa de GSR va accesa site-ul **https://static.web.sX.gsr** și va verifica certificatul oferit de serverul web | ||
+ | - Testarea intermediară se poate realiza și folosind OpenSSL ''sclient'' | ||
+ | - Certificatul RootCA este urmatorul: {{:gsr:resurse:root_ca.txt|}} | ||
+ | |||
+ | ==== Task 07 - Securitate și hardening (0.3 puncte) ==== | ||
+ | - Configurați un firewall pe serverul de web pentru a loga un mesaj corespunzător fiecărei conexiuni deschise către portul 80 al serverului | ||
+ | - Instalați fail2ban pe serverul de **mail** și configurați-l pentru a | ||
+ | - bloca tempotar accesul stațiilor după 3 autentificare eșuate prin SSH | ||
+ | - trimite o notificare prin email pentru fiecare autentificare realizată cu succes |