Differences

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

Link to this comparison view

gsr:laboratoare:laborator-03 [2016/10/26 16:45]
alexandru.carp
gsr:laboratoare:laborator-03 [2016/10/27 13:21] (current)
alexandru.carp
Line 3: Line 3:
 ====== Laborator 03: Serviciile de DHCP si SSH ====== ====== Laborator 03: Serviciile de DHCP si SSH ======
  
-===== Demo: Funcționarea dhclient =====+===== 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. Clientul de DHCP este reprezentat în Linux de comanda ''​dhclient''​. La o rulare a comenzii ''​dhclient''​ este interogat serverul DHCP pentru transmiterea unei adrese.
Line 12: Line 33:
 ip a s ip a s
 </​code>​ </​code>​
-Interfața activă este cea care are adresa IP din rețeaua ''​172.16.4.0/​24''​. 
  
 Apoi dezactivăm configurația interfeței:<​code>​ Apoi dezactivăm configurația interfeței:<​code>​
Line 31: Line 51:
 unde ''<​interface>''​ este numele interfeței. unde ''<​interface>''​ este numele interfeței.
  
-===== Verificare configurare ​server de DHCP =====+==== b) Configurare ​server de DHCP ====
  
 <​note>​ <​note>​
-TODO: Referiri la masinile virtuale din OpenStack+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>​ </​note>​
  
-Urmăriți adresele IP pe interfața ​''​TODO'' ​a fiecărei mașini virtuale. Urmăriți în fișierul ''/​etc/​network/​interface''​ configurația pentru interfața ​''​TODO'' ​a fiecărei mașini virtuale.+Instalati serverul ​''​isc-dhcp-server'' ​pe masina ​''​Sn-R''​.
  
-Urmăriți ​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.+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. 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, ​comenzile<​code>​ +Folosiți, pe client, ​comanda 
-sudo ifdown eth2 +<​code>​ 
-sudo ifup eth2+sudo dhclient eth0
 </​code>​ </​code>​
-pentru dezactivarea și reactivarea interfeței și, deci pentru reinterogarea serverului DHCP, care duce la conduce la generarea de noi mesaje de jurnalizare.+pentru reinterogarea serverului DHCP, care duce la conduce la generarea de noi mesaje de jurnalizare.
  
-===== Configurare server de DHCP =====+===== 03. SSH =====
  
-Modificațconfigurația serverului ​''​DHCP'' ​astfel încât acesta ​să furnizeze adrese în subnet-ul ''​1.1.1.0/24''​, în range-ul ''​1.1.1.2-1.1.1.50''​. Adresa IP a serverului DHCP pe interfața ​''​eth2'' ​trebuie ​să fie ''​1.1.1.1''​.+==== 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.
 +</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> <note tip>
-Va trebui ca pe serverul DHCP să modificați șconfigurația interfeței ''​eth2''​ în fișierul ''/​etc/​network/​interfaces''​.+Dacă simț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>​
  
-Pentru aceasta, dezactivați interfața:<​code>​ +/* 
-sudo ip link set dev eth2 down +==== Adăugarea cheii asistentului pentru conectare la mașina virtuală ==== 
-sudo ip add flush dev eth2+ 
 +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ă ​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>​ </​code>​
-faceți modificarea în fișierul ''/​etc/​network/​interfaces''​ și apoi refaceți configurația<​code>​ +unde: 
-sudo ifup eth2+  * ''​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>​ </​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>​
  
 +<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