Differences

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

Link to this comparison view

uso:laboratoare:new:08-net:nice-to-know [2018/11/21 08:47]
razvan.deaconescu
uso:laboratoare:new:08-net:nice-to-know [2018/11/26 10:49] (current)
dragos.dimitriu [1. Configurare statică adrese IP]
Line 11: Line 11:
 student@tom:​~$ sudo ip a a 1.1.1.1/24 dev enp0s9 student@tom:​~$ sudo ip a a 1.1.1.1/24 dev enp0s9
 [sudo] password for student: [sudo] password for student:
-student@spike:~$ sudo ip link set dev enp0s9 up +student@tom:~$ sudo ip link set dev enp0s9 up 
-student@spike:~$ ip a s enp0s9+student@tom:~$ ip a s enp0s9
 4: enp0s9: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc fq_codel state UP group default qlen 1000 4: enp0s9: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc fq_codel state UP group default qlen 1000
     link/ether 08:​00:​27:​f6:​24:​73 brd ff:​ff:​ff:​ff:​ff:​ff     link/ether 08:​00:​27:​f6:​24:​73 brd ff:​ff:​ff:​ff:​ff:​ff
Line 33: Line 33:
     inet6 fe80::​a00:​27ff:​fee7:​a226/​64 scope link     inet6 fe80::​a00:​27ff:​fee7:​a226/​64 scope link
        ​valid_lft forever preferred_lft forever        ​valid_lft forever preferred_lft forever
-<​code>​+</code>
  
 Mai sus, pentru fiecare stație am văzut că interfața nu are adresă IP și este dezactivată (''​state DOWN''​) (folosind comanda ''​ip a s''​ de la ''​ip address show''​). Apoi am adăugat adresă IP (folosind comanda ''​ip a a''​ de la ''​ip address add''​) și apoi am activat interfața (folosind comanda ''​ip l s''​ de la ''​ip link set''​). Apoi am afișat din nou parametrii interfeței (folosind tot ''​ip a s''​) și am văzut că interfața are acum adresă IP și că este activată (''​state UP''​). Mai sus, pentru fiecare stație am văzut că interfața nu are adresă IP și este dezactivată (''​state DOWN''​) (folosind comanda ''​ip a s''​ de la ''​ip address show''​). Apoi am adăugat adresă IP (folosind comanda ''​ip a a''​ de la ''​ip address add''​) și apoi am activat interfața (folosind comanda ''​ip l s''​ de la ''​ip link set''​). Apoi am afișat din nou parametrii interfeței (folosind tot ''​ip a s''​) și am văzut că interfața are acum adresă IP și că este activată (''​state UP''​).
Line 66: Line 66:
 **[1c]** Adăugați pe interfața ''​enp0s9''​ de pe sistemele ''​tom''​ și ''​jerry'',​ respectiv adresele IP ''​192.168.69.42/​28''​ și ''​192.168.69.43/​28''​. Folosiți comanda ''​ip a s enp0s9''​ pentru verificare. Verificați conectivitatea între cele două sisteme folosind cele două adrese IP nou introduse. **[1c]** Adăugați pe interfața ''​enp0s9''​ de pe sistemele ''​tom''​ și ''​jerry'',​ respectiv adresele IP ''​192.168.69.42/​28''​ și ''​192.168.69.43/​28''​. Folosiți comanda ''​ip a s enp0s9''​ pentru verificare. Verificați conectivitatea între cele două sisteme folosind cele două adrese IP nou introduse.
  
-==== 1. whois ====+==== 2. Scripturi pentru statistici rețea ==== 
 + 
 +Vrem să creăm niște scripturi pentru lucrul cu rețeaua. 
 + 
 +Pe stația fizică, creați scriptul ''​get_ifs_mac''​ care să aibă conținutul de mai jos: 
 + 
 +<file bash get_ifs_mac>​ 
 +#​!/​bin/​bash 
 + 
 +interfaces=$(ls /​sys/​class/​net) 
 + 
 +echo "​interface,​mac_address"​ 
 +for i in $interfaces;​ do 
 +    mac_address=$(cat /​sys/​class/​net/"​$i"/​address) 
 +    echo "​$i,​$mac_address"​ 
 +done 
 +</​file>​ 
 +Scriptul afișează, pentru toate interfețele sistemului, adresa MAC (numită și adresă hardware sau adresă fizică) în format CSV (numele interfeței și adresa MAC separate prin virgulă). 
 + 
 +Urmăriți scriptul de mai sus și înțelegeți ce face. 
 + 
 +Creați scriptul ''​get_ifs_mac''​ folosind conținutul de mai sus (fie îl descărcați,​ fie dați copy-paste) și acordați-i permisiuni de execuție:​ 
 +<code bash> 
 +student@uso:​~$ chmod +x get_ifs_mac 
 +</​code>​ 
 + 
 +Apoi rulați scriptul și veți obține un rezultat de forma: 
 +<code bash> 
 +student@tom:​~$ ./​get_if_mac 
 +interface,​mac_address 
 +enp0s3,​08:​00:​27:​4a:​7d:​2c 
 +enp0s8,​08:​00:​27:​71:​db:​21 
 +enp0s9,​08:​00:​27:​f6:​24:​73 
 +lo,​00:​00:​00:​00:​00:​00 
 +</​code>​ 
 + 
 +**[2a]** Pornind de la scriptul ''​get_ifs_mac''​ creați scriptul ''​get_ifs_packets''​ care afișează în format CSV, pentru fiecare interfață,​ numărul de pachete primite (''​rx''​) și numărul de pachete transmise (''​tx''​) 
 + 
 +<note tip> 
 +Găsiți, de exemplu, numărul de pachete primite, respectiv transmise pe/de pe interfața ''​enp0s3''​ în fișierele ''/​sys/​class/​net/​enp0s3/​statistics/​rx_packets''​ și ''/​sys/​class/​net/​enp0s3/​statistics/​tx_packets''​. 
 +</​note>​ 
 + 
 +**[2b]** Actualizați scriptul ''​get_ifs_mac''​ pentru a afișa informațiile de mai sus sortate **numeric** după numărul de pachete primite. 
 + 
 +==== 3. whois ====
  
 ''​whois''​ este o comandă de Linux folosită pentru a afla informați despre orice domeniu sau adresă IP din Internet. ''​whois''​ este o comandă de Linux folosită pentru a afla informați despre orice domeniu sau adresă IP din Internet.
Line 101: Line 145:
 </​code>​ </​code>​
  
-==== 2. Autentificare SSH fără parolă ====+==== 4. Autentificare SSH fără parolă ====
  
 Până în acest moment ați folosit protocolul ''​SSH''​ pentru a vă conecta remote de nenumărate ori. Până în acest moment ați folosit protocolul ''​SSH''​ pentru a vă conecta remote de nenumărate ori.
Line 149: Line 193:
 </​code>​ </​code>​
  
-**[2a]** Acum că ați reușit să vă autentificați fără parolă pe mașina ''​tom'',​ faceți același lucru și pe mașina vituală ''​jerry''​.+**[4a]** Acum că ați reușit să vă autentificați fără parolă pe mașina ''​tom'',​ faceți același lucru și pe mașina vituală ''​jerry''​.
  
-**[2b]** Conectați-vă prin SSH pe mașina ''​tom''​ de pe mașina ''​jerry''​. După cum vedeți, se cere parola utilizatorului. Realizați autentificarea fără parolă în ambele direcții pentru cele două mașini virtuale: ''​tom''​ și ''​jerry''​.+**[4b]** Conectați-vă prin SSH pe mașina ''​tom''​ de pe mașina ''​jerry''​. După cum vedeți, se cere parola utilizatorului. Realizați autentificarea fără parolă în ambele direcții pentru cele două mașini virtuale: ''​tom''​ și ''​jerry''​.
  
-**[2c]** Conectați-vă fără parolă de pe sistemul fizic pe contul vostru de pe ''​fep.grid.pub.ro''​.+**[4c]** Conectați-vă fără parolă de pe sistemul fizic pe contul vostru de pe ''​fep.grid.pub.ro''​.
  
-==== 3. Hostname ====+==== 5. Hostname ====
  
 După cum știți, hostname-ul unei mașini se poate observa din prompt-ul terminalui. Acesta se mai poate obține folosind comanda ''​hostnamectl''​. După ce modificăm hostname-ului este nevoie de redeschiderea unei noi sesiuni de shell care se încarce noua configurație. După cum știți, hostname-ul unei mașini se poate observa din prompt-ul terminalui. Acesta se mai poate obține folosind comanda ''​hostnamectl''​. După ce modificăm hostname-ului este nevoie de redeschiderea unei noi sesiuni de shell care se încarce noua configurație.
Line 170: Line 214:
 După ce ne-am deconectat, ne-am reconectat și acum noul hostname, vizibil în prompt, este ''​spike''​. După ce ne-am deconectat, ne-am reconectat și acum noul hostname, vizibil în prompt, este ''​spike''​.
  
-**[3a]** Schimbați hostname-ul celor două mașini virtuale ''​tom''​ și ''​jerry''​ în ''​rick''​ și ''​morty''​.+**[5a]** Schimbați hostname-ul celor două mașini virtuale ''​tom''​ și ''​jerry''​ în ''​rick''​ și ''​morty''​.
  
-**[3b]** Dorim să rulăm comanda ''​ping''​ între mașinile virtuale ''​tom''​ și ''​jerry''​ folosind hostname-ul în loc de adresa IP.+**[5b]** Dorim să rulăm comanda ''​ping''​ între mașinile virtuale ''​tom''​ și ''​jerry''​ folosind hostname-ul în loc de adresa IP.
 Pentru aceasta trebuie să instalați pachetul ''​avahi-daemon''​. Dacă ați instalat pachetul și e configurat corespunzător va merge ''​ping tom.local''​ și ''​ping jerry.local''​ (sau ''​rick.local''​ și ''​morty.local''​ pentru noile nume de stații). Pentru aceasta trebuie să instalați pachetul ''​avahi-daemon''​. Dacă ați instalat pachetul și e configurat corespunzător va merge ''​ping tom.local''​ și ''​ping jerry.local''​ (sau ''​rick.local''​ și ''​morty.local''​ pentru noile nume de stații).
  
-==== 4. SSH X11 forwarding ====+==== 6. SSH X11 forwarding ====
  
 X11 forwarding este folosit pentru a accesa interfața grafică a unei mașini de la distanță, prin intermediul protocolului SSH. X11 forwarding este folosit pentru a accesa interfața grafică a unei mașini de la distanță, prin intermediul protocolului SSH.
Line 188: Line 232:
  
 Apoi rulați comenzi cu interfață grafică ce vor rula pe sistemul colegului dar vor fi afișate pe sistemul vostru. Apoi rulați comenzi cu interfață grafică ce vor rula pe sistemul colegului dar vor fi afișate pe sistemul vostru.
 +
 +==== 7. Captură de trafic de rețea. Wireshark ====
 +
 +Utilitarul Wireshark este un utilitar grafic pentru captură și inspecție de trafic de rețea. Îl porniți folosind ''​sudo wireshark''​ fie din linia de comandă fie folosind ''​Alt+F2''​.
 +
 +<​note>​
 +Dacă nu există comanda ''​wireshark''​ va trebui să instalați utilitarul folosind comanda
 +<code bash>
 +student@uso:​~$ sudo apt install wireshark
 +</​code>​
 +</​note>​
 +
 +După ce porniți Wireshark activați, în interfața grafică, captura pe interfața de rețea principală (cea care asigură legătura la Internet). Apoi faceți conexiuni la diferite site-uri folosind un browser, sau folosiți ''​ping''​ sau folosiți comanda ''​host''​ pentru a genera trafic. Observați traficul capturat și prezentat grafic de Wireshark la nivel de pachet de date de rețea.
 +
 +Urmăriți informațiile de [[https://​www.wireshark.org/​docs/​wsug_html_chunked/​ChWorkDisplayFilterSection.html|aici]] și filtrați pachetele afișate după diferite metrici:
 +  * Filtrați doar pachetele care au ca adresă IP sursă adresa IP a ''​ocw.cs.pub.ro''​.
 +  * Filtrați doar pachetele HTTPS.
 +  * Filtrați doar pachetele de tip ICMP (cele folosite de ping).
uso/laboratoare/new/08-net/nice-to-know.1542782822.txt.gz · Last modified: 2018/11/21 08:47 by razvan.deaconescu
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