This is an old revision of the document!


Laborator 10: Securitate: hardening a server

2. Configurari server ssh (2p)

  • Comenzi/concepte/fișiere
    • /etc/ssh/sshd_config

Exerciții

  • [01]. Pe mașina virtuală modificați fișierul de configurare al serverului ssh și modificați portul pe care ascultă sshd în 2854. (Hint: /etc/ssh/sshd_config)
  • [02]. Pe mașina virtuală reporniți daemonul de ssh pentru ca schimbările anterioare să fie aplicate. (Hint: /etc/init.d/ssh)
  • [03]. De pe mașina fizică scanați porturile active pe mașina virtuală (scanați porturile între 1-3096) (Hint: man nmap, /PORT SPECIFICATION, /determine service). Va trebui să instalați pachetul nmap. Pe ce port ascultă daemonul de ssh ?
  • [04]. De pe mașina fizică conectați-vă pe mașina virtuală folosind contul student și noul port pe care ascultă sshd (Hint: man ssh). Deconectați-vă.
  • [05]. Pe mașina virtuală modificați fișierul de configurare al serverului de SSH astfel încât să nu fie permisă autentificarea folosind parole (Hint: man sshd_config, /Password).
  • [06]. Reporniți serverul de ssh și conectați-vă cu contul student de pe masina fizică pe contul nrush pe mașina virtuală. S-a realizat autentificarea ?
  • [07]. Pe mașina virtuală modificați fișierul de configurare al serverului de SSH astfel încât să nu fie permisă conectarea prin ssh în contul utilizatorului root (Hint: man sshd_config, /rootlogin). Testați.
  • [08]. Pe mașina virtuală modificați fișierul de configurare al serverului de SSH astfel încât să fie permisă conectarea prin ssh doar în contul utilizatorului student. Reporniți serverul și testați folosind utilizatorii eyoung și nrush (Hint: man sshd_config, /user).

3. Tunelare (1p)

Exerciții

  • [01]. Reconfigurați serverul ssh de pe mașina virtuală pentru a asculta conexiuni pe portul 22.
  • [02]. Instalați în mașina virtuală serverul web apache (Hint: apt-cache search apache | grep ^apache).
  • [03]. Pe mașina virtuală instalați pachetul elinks.
  • [04]. Pe mașina virtuală verificați că serverul apache rulează, folosind:
  • [04].a. netstat
  • [04].b. comanda elinks 127.0.0.1
  • [05]. Editați conținutul fișierului /var/www/html/index.html și puteți în el textul: “heimdall web server is up”.
  • [06]. Verificați aplicarea modirficărilor anterioare folosind elinks
  • [07]. Pe mașina fizică creați un tunel SSH care să aibă un capat pe stația fizica pe portul 8181 și celălalt capăt pe stația virtuala pe portul 80. Testați funcționarea tunelului utilizând un browser și mergând la adresa localhost:8181.

4. PAM (2.5p)

  • Comenzi/concepte/fișiere
    • /etc/pam.d/system-auth

Acest set de exerciții se desfășoară pe mașina fizică

Exerciții

  • [01]. Instalați modulul de PAM cracklib (Hint: cracklib).
  • [02]. Configurați cracklib în așa fel încât (Hint: /etc/pam.d/common-password, man pam_cracklib, /examples):
  • [02].a. parolele utilizatorilor să aibă minim 12 caractere (Hint: man pam_cracklib, /minlen)
  • [02].b. parolele utilizatorilor să aibă minim 3 cifre (Hint: man pam_cracklib, /dcredit)
  • [02].c. parolele utilizatorilor să aibă minim 2 litere mari (Hint: man pam_cracklib, /ucredit)
  • [02].d. parolele utilizatorilor să aibă minim 4 litere mici (Hint: man pam_cracklib, /lcredit)
  • [02].e. parolele utilizatorilor să aibă minim 3 caractere speciale (Hint: man pam_cracklib, /ocredit)
  • [03]. Autentificați-vă ca utilizator student și încercați să schimbați parola curentă cu:
  • [03].a. o parolă de 1 caracter
  • [03].b. o parolă care să nu corespundă cerințelor de mai sus
  • [03].c. o parolă care să corespundă cerințelor de mai sus
  • [04]. Instalați modulul de PAM mkhomedir (Hint: libpam-modules).
  • [06].a. Adăugați utilizatorul jonas.quinn fără a îi crea un director home.
  • [06].b. Autentificați-vă ca jonas.quinn. A fost creat directorul home al acestuia ?

5. Criptarea datelor. GNU Privacy Guard (GPG) (3p)

  • Comenzi/concepte/fișiere
    • GPG, PGP
    • cheie publică, cheie secretă
    • criptare, decriptare
    • semnare, verificare
    • ASCII armor
    • keyring

Tutorial

  • Folosiți gpg –list-keys pentru a lista cheile GPG curente ale utilizatorului student.
    • Dacă utilizatorul nu are chei GPG create, va fi generat directorul ~/.gnupg.

Breviar

Operații uzuale cu chei GPG:

  • generarea de chei
gpg --gen-key
  • editare de chei
gpg --edit-key <user-id>
  • ștergere de chei
gpg --delete-keys <user-id>
gpg --delete-secret-keys <user-id>
gpg --delete-secret-and-public-keys <user-id>
  • listare chei
gpg --list-keys
gpg --list-public-keys
gpg --list-secret-keys
  • exportare chei
gpg --export --armor --output my.pub <keyid>
gpg --export-secret-keys ...
  • importare chei
gpg --import my.pub
  • criptare (folosind cheia publică)
gpg --encrypt -r "Gogu <gogu@gogu.com>" --output info.dat.enc info.dat
gpg --encrypt -r "Gogu <gogu@gogu.com>" --armor --output info-armor.dat.enc info.dat
  • decriptare (folosind cheia privată)
gpg --decrypt -r "Gogu <gogu@gogu.com>" --output info.dat.dec info.dat.enc
  • semnare (folosind cheia privată)
gpg --sign -r "Gogu <gogu@gogu.com>" info.dat
gpg --sign --armor -r "Gogu <gogu@gogu.com>" info.dat
  • verificare (folosind cheia publică)
gpg --verify -r "Gogu <gogu@gogu.com>" info.dat.gpg
gpg --verify -r "Gogu <gogu@gogu.com>" info.dat.asc

Exerciții

Acest set de exerciții se desfășoară pe mașina fizică

  • [01]. Creați utilizatorii locali laurentiu și mihai.
  • [02]. Autentificat ca laurentiu:
  • [02].a. Generați o pereche de chei de criptare (prima opțiune la –gen-key) cu opțiunile implicite (2048 biți, cheia nu expiră, un nume/e-mail la alegere, un passphrase la alegere). (Hint: gpg –gen-key)
  • [02].b. Afișați cheile disponibile. (Hint: gpg –list-keys)
  • [02].c. Exportați cheia publică generată anterior în format armor în cadrul fișierului laur.pub. (Hint: gpg –export)
  • [03]. Autentificat ca mihai:
  • [03].a. Copiați fișierul laur.pub din home-ul utilizatorului laurentiu în home-ul propriu.
  • [03].b. Importați cheia publică a utilizatorului laurentiu.
  • [03].c. Listați cheile GPG proprii utilizatorului mihai.
  • [03].d. Folosiți dd pentru a genera fișierul gpg-test.dat cu dimensiunea de 1KB. Folosiți /dev/urandom pentru input.
  • [03].e. Folosiți GPG pentru a cripta fișierul gpg-test.dat în fișierul de ieșire gpg-test.enc. Folosiți cheia/UID-ul utilizatorului laurentiu.
  • [03].f. Folosiți GPG pentru a cripta fișierul în format armor cu ieșirea în gpg-test-armor.enc. Folosiți cheia/UID-ul utilizatorului laurentiu.
  • [04]. Autentificat ca laurentiu:
  • [04].a. Copiați fișierele gpg-test.dat, gpg-test.enc și gpg-test-armor.enc din home-ul utilizatorului mihai.
  • [04].b. Folosiți GPG pentru a decripta fișierul gpg-test.enc în fișierul de ieșire gpg-test.dec folosind cheia/UID-ul creat. Comparați (folosind diff sau cmp) fișierul gpg-test.dec și gpg-test.dat.
  • [04].c. Executați pasul anterior pentru fișierul gpg-test-armor.enc cu ieșirea în fișierul gpg-test-armor.dec.
  • [04].d. Semnați fișierul gpg-test.dat în format armor folosind cheia/UID-ul creat. Fișierul de ieșire va fi gpg-test.dat.asc.
  • [05]. Autentificat ca mihai:
  • [05].a. Copiați fișierul gpg-test.dat.asc din home-ul utilizatorului laurentiu.
  • [05].b. Verificați fișierul de semnătură folosind cheia importată anterior.

6. Intrusion Prevention: Fail2ban (1p)

  • Comenzi/concepte/fișiere
    • /etc/fail2ban/jail.conf

Exerciții

  • [01]. Pe mașina virtuală instalați fail2ban.
  • [02]. Pe mașina virtuală configurați fail2ban astfel încât (reporniți serviciul de fail2ban după realizarea configurărilor):
  • [02].a. să fie activ pentru autentificările încercate prin ssh
  • [02].b. să permită un număr maxim de 3 încercări
  • [02].c. să folosească un timp de ban de 300 de secunde
  • [02].d. Hint: /etc/fail2ban/jail.conf, bantime
  • [03]. Pe mașina virtuală reconfigurați serverul de SSH astfel încât să fie permise autentificările pe bază de parolă. Eliminați restricția de autentificare doar în contul utilizatorului student.
  • [04]. De pe mașina fizică încercați să vă autentificați pe mașina virtuală prin ssh folosind contul nrush. Introduceți de 3 ori la rând parola utilizatorului root in mod greșit.
  • [04].a. De ce credeți că s-a blocat conexiunea ssh după introducerea parolei a treia oară ?
  • [04]. Folosind ssh în mod verbose, încercați din nou să vă conectați de pe mașina fizică pe mașina virtuală folosind contul nrush. Ce observați ?
  • [05]. Conectați-vă la mașina virtuală în contul de root folosind interfața vmware. Afișați toate regulile iptables existente în acest moment. Hint: iptables -L.
  • [06]. Ștergeți din chain-ul fail2ban-ssh prima regulă care blochează accesul stației mjolnir.local. Hint: iptables -D fail2ban-ssh 1
  • [07]. De pe mașina fizică încercați să vă autentificați din nou pe mașina virtuală folosind contul nrush. Introduceți parola în mod corespunzător.
gsr/laboratoare/laborator-10.1483982008.txt.gz · Last modified: 2017/01/09 19:13 by alexandru.carp
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