Proiect GSR
Deadline:
24 Noiembrie (evaluare mid-term), 04 Februarie (evaluare end-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
Forum pentru intrebari:
http://cs.curs.pub.ro/2016/mod/forum/view.php?f=621
Scopul proiectului
Scopul proiectului pentru cursul GSR este crearea unei rețele de mici dimensiuni în care să ruleze serviciile acoperite de curs și pentru care se face practică în laborator.
Testare
Testarea proiectului se va realiza de fiecare stundent în parte. Nu vor fi disponibile checkere sau teste automate.
Testarea finală a proiectului pentru notare se va realiza în cadrul celor două sesiuni de evaluare (mid-term și end-term) de către echipa curslui de GSR împreuna cu fiecare student în parte.
Topologia de rețea necesară
Fiecare student trebuie să creeze 3 (trei) mașini virtuale numite web, dns și mail folosind template-ul GSR Template (Debian 8.6.0).
Toate mașinile virtuale trebuie conectate în rețeaua vlan9.
Pașii necesari pentru a crea rețeaua virtuală sunt următorii (pașii sunt descriși și aici):
-
Creare cont în OpenStack și logare în sistem:
Din meniul din dreapta, unde se vede logo-ul OpenStack, apasați butonul Create User
Asteptați câteva momente și dați click pe butonul Check Status
După ce vă apare mesajul “
User created successfuly, you can go to Dashboard and start using Openstack.”, click mai jos pe link-ul
Go to dashboard
Vă logați cu numele de utilizator și parola creată anterior
Din meniul din stanga se navigheaza la Compute → Instances
Din meniul din dreapta sus se apasa butonul Launch Instance
Din fereastra Launch Instance se selecteaza urmatoarele optiuni:
Availability Zone: GP
Instance Name: dns, mail sau web în funcție de ce mașină virtuală creați
Flavor: m1.tiny
Instance count: 1
Instance Boot Source: Boot from Image
Image Name: GSR Template (Debian 8.6.0) (username: student / password: student)
Din tab-ul Networking, din lista Available Networks se selecteaza rețeaua vlan9
Se apasa butonul Launch pentru creare instantei masinii virtuale
După crearea instanțelor virtuale, partea din dreapta a meniului Compute → Instances ar trebui sa arate ca în figura de mai jos
Cerințe mid-term
Task 01 - Setup VM (0.1 puncte)
Creați cele trei mașini virtuale conform indicațiilor din secțiunea de mai sus. După pornirea mașinilor, notați-vă adresele IP alocate mașinilor virtuale de către OpenStack și completați formularul acesta https://goo.gl/forms/i5wvYgIwlBiHOJf42.
Task 02 - DNS (0.4 puncte)
Instalare și configurare server DNS
Fiecare student va instala
bind9 pe mașina definită ca și server de
DNS
Fiecare student își va configura un domeniu numit
sX (unde
X este numărul de catalog al studentului, aflat în coloana “Nr. Crt.”. Pentru accesarea catalogului, link-ul este disponibil pe pagina principală a cursului de GSR pe Moodle;
http://cs.curs.pub.ro/2016/course/view.php?id=197).
numele nameserver-ului va fi dns.sX.gsr
adresa IP a nameserverului va fi adresa alocată mașinii virtuale de către OpenStack
Fiecare namserver configurat va trebui să răspundă pentru domeniul său și sa fie resolver recursiv pentru cele 3 mașini virtuale create de fiecare + 127.0.0.1, dar nu și pentru restul mașinilor din 10.9.0.0/16
Trebuie definite intrări în
DNS pentru serverul de
e-mail și
web, sub forma
mail.sX.gsr și
web.sX.gsr
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
DNS server va trebui să fie
slave pentru un alt domeniu al unui alt student, astfel încât fiecare domeniu de tip
sX.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)
Instalare și configuare server e-mail
Fiecare student își va configura propriul MTA (postfix) care să accepte mesaje pentru domeniul lor
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 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
Configurarea Dovecot pe masina mail.sX.gsr astfel încât cei doi utilizatori creați anterior să poată citi mesajele via POP3
Task 04 - File Sharing (0.1 puncte)
Configurare server NFS
Pe mașina cu rol de E-mail server, fiecare student va exporta un director cu numele /mnt/exported
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
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
-
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.sX.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):
-
Testarea intermediară se poate realiza și folosind OpenSSL sclient
-
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