Introducere

Demo

Secure Shell

  • Obiective:
    • Conectarea pe un server remote prin SSH
    • Transferarea de fișiere între un sistem local și un sistem remote.
      • Prin sistem local ne referim la sistemul fizic din laborator.
      • Prin sistem remote ne referim la un sistem aflat la distanță accesibil prin diverse protocoale de Internet, de exemplu SSH.
    • Generarea de chei publice/private.

# Generarea cheilor SSH #* Pe sistemul local generați local o pereche de chei RSA:

ssh-keygen -t rsa -b 1024

# -t rsa - specifică tipul cheii # -b 1024 - dimensiunea cheii # Generați cheia în calea implicită (/home/<user>/.ssh/id_rsa) # Suprascrieți cheia precedentă. # Nu setați passphrase (apăsați ENTER când vi se cere un passphrase) #* Pe sistemul local verificați că au fost generate cele două chei: <code bash> ls -l ~/.ssh </code> # Comanda trebuie să afișeze fișierele id_rsa și id_rsa.pub.

  1. SSH
    • De pe sistemul local, conectați-vă la sistemul remote (un container LXC):
      ssh -p <port> root@houdini.cs.pub.ro
      • Pentru a afla id-ul container-ului accesați pagina cu participanți
      • Parametrul -p este folosit pentru a specifica portul pe care ascultă serverul de SSH de pe sistemul remote. În caz că parametrul lipsește, este folosit portul implicit, 22.
      • <port> - este portul forwardat către mașina virtuală proprie de pe serverul houdini.cs.pub.ro, și este de forma: 4<id_mașină>22 (Ex: 40122).
      • root este utilizatorul de pe sistemul remote;
      • houdini.cs.pub.ro este sistemul remote la care vă conectați;
      • Parola pentru accesarea contului este student.
    • Observați formatul promptului:
      root@sysadmin-<id_mașină>:~#
      • root - este utilizatorul cu care v-ați logat
      • sysadmin-<id_mașină> - este hostname-ul containerului LXC
      • ~ - reprezintă directorul în care vă aflați (inițial este HOME-ul utilizatorului)
    • Ieșiți din cadrul conexiunii folosind combinația Ctrl+d sau comanda exit.
      • Trebuie să fiți iarăși pe sistemul propriu.
    • De pe sistemul local, copiați cheia publică la distanță folosind comanda:
      ssh-copy-id -p <port> root@houdini.cs.pub.ro
      • Dacă nu merge comanda de mai sus, folosiți comanda:
        cat ~/.ssh/id_rsa.pub | ssh -p <port> root@houdini.cs.pub.ro "mkdir ~/.ssh/ ; cat >> ~/.ssh/authorized_keys"
      • De pe sistemul local conectați-vă din nou pe sistemul remote (containerul LXC) folosind comanda:
        ssh -p <port> root@houdini.cs.pub.ro
      • Observați că nu vi s-a cerut parola, deoarece autentificarea se face folosind cheile publice/private.
  2. SCP
    • Pe sistemul local, adăugați numele vostru într-un fișier:
      echo <nume> > /tmp/name
    • De pe sistemul local copiați, folosind scp, fișierul pe sistemul remote:
      scp -P <port> /tmp/name root@houdini.cs.pub.ro:~
      • opțiunea este -P (adică majusculă – P mare)
      • <port> este portul folosit pentru conexiunea la sistemul remote (este cel descris în pagina cu participanți);
      • /tmp/name este fișierul transferat;
      • root este utilizatorul de pe sistemul remote;
      • houdini.cs.pub.ro este sistemul remote;
      • ~ este directorul de pe sistemul remote unde va fi salvat fișierul.
    • De pe sistemul local conectați-vă prin SSH la sistemul remote și verificați că fișierul s-a transferat cu succes. === Gestiunea serviciilor ===

* Pentru acest exercițiu trebuie să fiți conectați prin SSH pe sistemul remote (adică pe houdini.cs.pub.ro)

  • Următoarele comenzi se rulează pe sistemul remote
  • Obiective:
    • Gestiunea pachetelor - instalare, verificare
    • Gestiunea serviciilor
  1. Instalarea pachetelor
    • Confirmați că există instalat pachetul openssh-server:
      dpkg -l openssh-server
    • Afișați informații despre pachetele openssh-server și openssh-client:
      dpkg -l openssh*
    • Verificați dacă există deja instalat pachetul apache2:
      dpkg -l apache2
    • Dacă nu există, ca root, instalați pachetul apache2 folosind utilitarul apt:
      apt-get install apache2
      • Verificați din nou dacă a fost instalat
  2. Gestiunea serviciilor
    • Verificați dacă serverul apache2 rulează:
      ps -ef | grep apache2
    • Ca root, verificați portul pe care ascultă cereri:
      netstat -tlpn | grep apache2
    • Verificați fișierele de jurnalizare ale serviciului:
      cat /var/log/apache2/error.log
      • Dacă fișierul nu conține erori vizibil, atunci nu a apărut nici o eroare.
  3. Pornirea, oprirea și restartarea serviciilor
    • Ca root, opriți serviciul apache2:
      /etc/init.d/apache2 stop
      • Verificați că serverul s-a oprit, folosind comenzile de mai sus
    • Ca root, porniți din nou serviciul:
      /etc/init.d/apache2 start
      • Asigurați-vă că serverul a pornit cu succes
    • Ca root, reporniți serverul:
      /etc/init.d/apache2 restart

Apache

  • Obiective:
    • Adăugarea unei noi pagini HTML
    • Limitarea accesului la fișiere
  • Următoarele comenzi vor fi rulate ca root pe sistemul remote.

# Adăugarea de noi pagini #* Creați fișierul /var/www/name.html în care introduceți cu numele vostru:

echo "<html><body><h1>NUME's Page</h1></body></html>" > /var/www/name.html

# Înlocuiți NUME (din cadrul șirului NUME's Page) cu numele vostru. #* Faceți o cerere HTTP noului server: # Introduceți în browser URL-ul:

http://houdini.cs.pub.ro:4<id_mașină>80/name.html

#* Verificați că serverul întoarce pagina cu numele vostru

  1. Permisiuni
    • Verificați permisiunile fișierului nou creat:
      ls -l /var/www/name.html
    • Permiteți accesarea fișierului doar utilizatorului care deține fișierul:
      chmod 600 /var/www/name.html
      • Faceți o nouă cerere HTTP pentru fișierul name.html
    • Schimbați owner-ul fișierului în www-data:
      chown www-data /var/www/name.html
      • Accesați din nou site-ul

Extra

  1. Pe sistemul remote configurați apache2 să asculte cereri numai prin HTTPS, pe portul 443
    • Hint: pentru a putea răspunde la cereri HTTPS trebuie încărcat în apache2 modulul ssl
sesiuni/sysadmin/intro.txt · Last modified: 2014/07/07 17:25 by razvan