Proiect GSR (temporar)

Informații generale

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

Actualizări enunț:

  • 03.11.2016 - Versiunea 1.0 a enunțului
  • 12.01.2017 - Versiunea 2.0 a enunțului

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):

  1. Creare cont (dacă nu există deja) la cs.curs.pub.ro/my
  2. Creare cont în OpenStack și logare în sistem:
    1. Din meniul din dreapta, unde se vede logo-ul OpenStack, apasați butonul Create User
    2. Asteptați câteva momente și dați click pe butonul Check Status
    3. 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
    4. Vă logați cu numele de utilizator și parola creată anterior
  3. Din meniul din stanga se navigheaza la ComputeInstances
  4. Din meniul din dreapta sus se apasa butonul Launch Instance
  5. Din fereastra Launch Instance se selecteaza urmatoarele optiuni:
    1. Availability Zone: GP
    2. Instance Name: dns, mail sau web în funcție de ce mașină virtuală creați
    3. Flavor: m1.tiny
    4. Instance count: 1
    5. Instance Boot Source: Boot from Image
    6. Image Name: GSR Template (Debian 8.6.0) (username: student / password: student)
    7. Din tab-ul Networking, din lista Available Networks se selecteaza rețeaua vlan9
    8. Se apasa butonul Launch pentru creare instantei masinii virtuale
    9. După crearea instanțelor virtuale, partea din dreapta a meniului ComputeInstances 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

  1. Fiecare student va instala bind9 pe mașina definită ca și server de DNS
  2. 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).
    1. numele nameserver-ului va fi dns.sX.gsr
    2. adresa IP a nameserverului va fi adresa alocată mașinii virtuale de către OpenStack
  3. 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
  4. Trebuie definite intrări în DNS pentru serverul de e-mail și web, sub forma mail.sX.gsr și web.sX.gsr
  5. Mașinile virtuale ale fiecărui student trebuie să folosească ca și resolver nameserverul proaspăt creat
  6. 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
  7. 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

  1. Fiecare student își va configura propriul MTA (postfix) care să accepte mesaje pentru domeniul lor
  2. Fiecare student va configura Dovecot pentru citirea mesajelor folosind protocolul POP3
  3. Fiecare MTA va trebuie să fie relay pentru cele 3 servere alocate fiecărui student
  4. 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.
  5. Crearea a doi utilizatori locali pe fiecare mașină și verificarea că pot trimite sau citi e-mail-uri din conturile utilizatorilor creați
  6. 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

  1. Pe mașina cu rol de E-mail server, fiecare student va exporta un director cu numele /mnt/exported
  2. Pe masinile cu rol de DNS server și Web server, se va monta directorul exportat în /mnt/nfs/remote
  3. 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)

  1. Instalați Apache pe mașina cu rol de Web server și asigurați-vă că serviciul rulează pe portul 80.
  2. 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.
  3. Configurați în Apache un site de tip virtual host accesibil folosind URL-urile static.web.sX.gsr și www.static.web.sX.gsr.
    1. 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)
    2. Sursa HTML a site-ului se va găsi în directorul /var/www/static/
  4. Configurați în Apache un site de tip virtual host accesibil folosind URL-urile shared.web.sX.gsr și www.shared.web.sX.gsr.
    1. 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)
    2. 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)
    3. Conținutul paginii HTML trebuie să poată fi modificat din orice locație prin NFS
  5. Configurați serverul Apache pentru a stoca log-uri în fișiere separate pentru fiecare din cele două site-uri
  6. 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.
  7. 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)

  1. Creați CSR-uri pentru a genera certificate digitale pentru fiecare dintre serverele de web și mail
    1. Pentru serverul de web, CSR-ul va fi creat pentru numele static.web.sX.gsr
  2. După crearea CSR-urilor, folosiți aplicația de la adresa http://elf.cs.pub.ro:8090/ pentru a obtine certificatele aferente
  3. Folosiți cele două certificate obținute pentru a configura serverele de mail și web
    1. Configurați serverul de POP3 să folosească SSL/TLS pentru securizarea conexiunii cu clienții
    2. 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
    3. Configurați serverul de web pentru a servi site-ul static.web.sX.gsr folosind HTTPS
  4. Testarea pentru email se va realiza în modul următor (pașii pot fi reproduși de voi local):
    1. Echipa de GSR va trimite un email către student@mail.sX.gsr
    2. Email-ul se va trimite doar dacă serverul de mail este configurat corect cu certificatul semnat mai sus
    3. 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
  5. Testarea pentru web se va realiza în modul următor (pașii pot fi reproduși de voi local):
    1. Echipa de GSR va accesa site-ul https://static.web.sX.gsr și va verifica certificatul oferit de serverul web
  6. Testarea intermediară se poate realiza și folosind OpenSSL sclient

Task 07 (Securitate și hardening)

  1. 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
  2. Instalați fail2ban pe serverul de mail și configurați-l pentru a
    1. bloca tempotar accesul stațiilor după 3 autentificare eșuate prin SSH
    2. trimite o notificare prin email pentru fiecare autentificare realizată cu succes
gsr/tmp/proiect.txt · Last modified: 2017/01/12 20:40 by george.milescu
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