This is an old revision of the document!


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. #* De pe sistemul local copiați cheia publică (fișierul id_rsa.pub) în contul vostru de pe swarm.cs.pub.ro (adică pe sistemul remote) folosind comenzile:

ssh <user>@swarm.cs.pub.ro "mkdir .ssh"
scp ~/.ssh/id_rsa* <user>@swarm.cs.pub.ro:.ssh/

# user} este contul vostru de pe swarm.cs.pub.ro}. # SSH #* De pe sistemul local, conectați-vă la sistemul remote (un container LXC): <code bash> ssh -p <port> root@houdini.cs.pub.ro </code> # 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). #* Identificatorul container-ul folosit este disponibil în tabelul din pagina cu participanți. # 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:<code bash> cat ~/.ssh/id_rsa.pub | ssh -p <port> root@houdini.cs.pub.ro “mkdir ~/.ssh/ ; cat » ~/.ssh/authorized_keys” </code> # 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. # SCP #* Pe sistemul local, adăugați numele vostru într-un fișier: <code bash> echo <nume> > /tmp/name </code> #* De pe sistemul local copiați, folosind scp, fișierul pe sistemul remote: <code bash> scp -P <port> /tmp/name root@houdini.cs.pub.ro:~ </code> # 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 # Instalarea pachetelor #* Confirmați că există instalat pachetul openssh-server: <code bash> dpkg -l openssh-server </code> #* Afișați informații despre pachetele openssh-server și openssh-client: <code bash> dpkg -l openssh* </code> #* Verificați dacă există deja instalat pachetul apache2: <code bash> dpkg -l apache2 </code> #* Dacă nu există, ca root, instalați pachetul apache2 folosind utilitarul apt: <code bash> apt-get install apache2 </code> # Verificați din nou dacă a fost instalat

  1. 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.
  2. 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.1402934567.txt.gz · Last modified: 2014/06/16 19:02 by razvan