Differences

This shows you the differences between two versions of the page.

Link to this comparison view

gsr:laboratoare:laborator-03 [2016/10/06 15:51]
george.milescu
gsr:laboratoare:laborator-03 [2016/10/27 13:21] (current)
alexandru.carp
Line 2: Line 2:
  
 ====== Laborator 03: Serviciile de DHCP si SSH ====== ====== Laborator 03: Serviciile de DHCP si SSH ======
 +
 +===== 01. Pregatirea infrastructurii virtuale (OpenStack) =====
 +
 +Incepand cu acest laborator vom lucra si pe topologia virtuala OpenStack. Aceeasi topologie va fi folosita si la proiect.
 +Acest task are ca scop crearea infrastructurii virtuale.
 +
 +<​note>​
 +Fiecare student va avea propriul subnet, din care va aloca adrese pentru masinile virtuale. Puteti gasi alocarea aici:
 +https://​docs.google.com/​spreadsheets/​d/​14QgTyn41hzinWqHaUQ16kf9_UeUcwXNQ__MR5C6Q70U/​pubhtml
 +</​note>​
 +
 +<​note>​
 +Pentru crearea contului, a masinilor virtuale si a legaturilor dintre ele, urmati pasii de aici:
 +http://​ocw.cs.pub.ro/​courses/​gsr/​resurse/​proiect
 +</​note>​
 +
 +===== 02. DHCP =====
 +
 +==== a) Demo: Funcționarea dhclient ====
 +
 +<​note>​
 +Executati acest demo pe masina fizica din laborator.
 +</​note>​
 +
 +Clientul de DHCP este reprezentat în Linux de comanda ''​dhclient''​. La o rulare a comenzii ''​dhclient''​ este interogat serverul DHCP pentru transmiterea unei adrese.
 +
 +Pentru a testa această funcționalitate,​ vom dezactiva configurația curentă și apoi vom face o nouă configurație.
 +
 +Pentru dezactivare identificăm interfața activă prin rularea comenzii<​code>​
 +ip a s
 +</​code>​
 +
 +Apoi dezactivăm configurația interfeței:<​code>​
 +sudo ip a f dev <​interface>​
 +</​code>​
 +unde ''<​interface>''​ este numele interfeței.
 +
 +Apoi solicităm o nouă adresă IP pentru interfață folosind comanda<​code>​
 +sudo dhclient <​interface>​
 +</​code>​
 +unde ''<​interface>''​ este numele interfeței.
 +
 +Putem urmări în ''/​var/​log/​syslog''​ mesajele afișate de clientul ''​DHCP''​.
 +
 +Dacă dorim să dăm release la configurație,​ putem folosi comanda<​code>​
 +sudo dhclient -r <​interace>​
 +</​code>​
 +unde ''<​interface>''​ este numele interfeței.
 +
 +==== b) Configurare server de DHCP ====
 +
 +<​note>​
 +Acest task se va executa pe infrastructura virtuala.
 +Masina ''​Sn-R''​ va are rol de server DHCP, iar masina ''​D''​ va avea rol de client DHCP.
 +</​note>​
 +
 +Instalati serverul ''​isc-dhcp-server''​ pe masina ''​Sn-R''​.
 +
 +Creati configurația serverului de DHCP în ''/​etc/​default/​isc-dhcp-server''​ și în ''/​etc/​dhcp/​dhcpd.conf''​. Verificați că serverul este pornit și ascultă conexiuni pe portul ''​68''​ UDP.
 +
 +Urmăriți în fișierele de tip jurnal de pe fiecare sistem (''/​var/​log/​syslog''​) mesaje afișate de clientul și serverul DHCP.
 +
 +Folosiți, pe client, comanda
 +<​code>​
 +sudo dhclient eth0
 +</​code>​
 +pentru reinterogarea serverului DHCP, care duce la conduce la generarea de noi mesaje de jurnalizare.
 +
 +===== 03. SSH =====
 +
 +==== a) Conectare prin SSH între mașina virtuală ''​Sn-R''​ și ''​D''​ ===
 +
 +Încercați să vă conectați prin SSH de pe mașina virtuală ''​Sn-R''​ pe masina virtuala ''​D''​ folosind o comandă de forma<​code>​
 +ssh student@192.168.N.X
 +</​code>​
 +
 +Acum încercați și invers, să vă conectați de pe mașina virtuală ''​D''​ pe masina virtuala ''​Sn-R''​
 +
 +Apoi configurați autentificarea fără parolă (pe bază de chei) de la utilizatorul ''​student''​ de pe mașina virtuală ''​Sn-R''​ la utilizatorul ''​student''​ și la utilizatorul ''​root''​ de pe mașina virtuală ''​D''​. Va trebui să ajungă cheia publică a utilizatorului ''​student''​ de pe masina virtuala ''​Sn-R''​ în fișierul ''​~/​.ssh/​authorized_keys''​ din directorul home al utilizatorilor ''​student''​ și ''​root''​ pe mașina virtuală ''​D''​.
 +
 +<note tip>
 +Dacă simțiți că "​scârțâiți",​ pentru documentare despre folosirea SSH recomandăm să urmariți [[:​rl:​labs:​08|laboratorul 8 de RL: Securizarea unui server]].
 +</​note>​
 +
 +/*
 +==== Adăugarea cheii asistentului pentru conectare la mașina virtuală ====
 +
 +Obiectivul acestui exercițiu este ca asistentul să ajungă pe mașina voastră virtuală de pe laptop-ul său. Pentru aceasta trebuie să faceți două lucruri:
 +  - Să adăugați cheia publică a asistentului (vă va da el link la cheie) în contul utilizatorului ''​student''​ de pe mașina virtuală.
 +  - Să folosiți DNAT (//port forwarding//​) pe **sistemul fizic** astfel încât conexiunile pe portul ''​2222''​ pe sistemul fizic să ajungă pe portul ''​22''​ pe mașina virtuală.
 +
 +Pentru pasul 2, pe **sistemul fizic** folosiți o comandă de forma<​code>​
 +sudo iptables -t nat -A PREROUTING -i ethX -p tcp --dport 2222 -j DNAT --to-destination <​IP-vm>:​22
 +sudo sysctl -w net.ipv4.ip_forward=1
 +</​code>​
 +unde:
 +  * ''​ethX''​ este ''​eth0''​ sau ''​eth1''​ sau ''​eth2''​ este interfața de Internet a sistemului fizic, cu o adresă din spațiul ''​172.16.4.0/​22''​
 +  * ''<​IP-vm>''​ este adresa IP a mașinii virtuale (adresa din rețeaua ''​192.168.56.0/​24''​
 +
 +Iar pe **mașina virtuală** rulați comanda de mai jos pentru a crea o rută din mașina virtuală către rețeaua fizică<​code>​
 +sudo ip route add 172.16.4.0/​22 via 192.168.56.1
 +</​code>​
 +Cu această rută veți permite pachetelor să se întoarcă din mașina virtuală către cheia SSH a asistentului.
 +
 +Asistentul va încerca conexiunea la adresa IP a sistemului vostru fizic pe portul ''​2222''​ și, dacă e totul bine, va ajunge pe mașina voastră virtuală.
 +
 +<note tip>
 +Dacă simțiți că scârțâiți legat de NAT/DNAR, informații despre folosirea ''​iptables''​ pentru DNAT găsiți în [[:​rl:​labs:​09|laboratorul 9 de RL: Translatarea de adrese]].
 +</​note>​
 +
 +<note tip>
 +Dacă greșiți ceva în configurarea iptables, curățați regulile folosind comanda<​code>​
 +sudo iptables -t nat -F
 +</​code>​
 +</​note>​
 +*/
 +
 +====  b) Configurare remote logging pentru SSH ====
 +
 +Configurați daemon-ul syslog de pe mașina virtuală ''​D''​ să livreze mesajele de jurnalizare emise de SSH (de facilitatea ''​auth''​) către daemonul de syslog de pe masina virtuala ''​Sn-R''​. Adică daemonul de syslog de pe masina virtuala ''​Sn-R''​ va fi listener pentru mesajele livrate de pe mașina virtuală ''​D''​.
 +
 +Realizați conexiuni SSH de pe mașina virtuala ''​Sn-R''​ spre mașina virtuală ''​D''​ pentru a declanșa mesaje de jurnalizare.
 +
 +/*
 +==== Bonus: Conectare cu X Forwarding ====
 +
 +Realizați o conexiune SSH care folosește X Forwarding **de la sistemul fizic** la mașina virtuală. Porniți utilitarul ''​xterm''​. Instalați orice pachete sunt necesare pentru a permite rularea utilitarului ''​xterm''​.
 +*/
 +
 +==== Bonus: Pornirea manuală a sshd ===
 +
 +Porniți serviciul SSH manual, pe mașina virtuală ''​D'',​ folosind executabilul ''/​usr/​sbin/​sshd''​ astfel incat să asculte conexiuni pe portul ''​22''​. Încercați conexiuni către masina virtuala ''​D''​ de pe masina virtuala ''​Sn-R''​.
 +
 +Rulați serverul de SSH sub ''​strace''​ (eventual folosind opțiunea ''​-f''​) și urmăriți ce se întâmplă atunci când se încearcă noi conexiuni.
 /* /*
  
gsr/laboratoare/laborator-03.txt · Last modified: 2016/10/27 13:21 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