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 02:20]
razvan.deaconescu
uso:laboratoare:new:08-net:nice-to-know [2018/11/26 10:49] (current)
dragos.dimitriu [1. Configurare statică adrese IP]
Line 1: Line 1:
 ===== Nice to Know ===== ===== Nice to Know =====
  
-==== 1. whois ====+==== 1. Configurare statică adrese IP ==== 
 + 
 +Mașinile virtuale ''​tom''​ și ''​jerry''​ dispun de o interfață numită ''​enp0s9''​ care este o legătură doar între cele două sisteme. Vom configura această interfață cu adresele ''​1.1.1.1/​24''​ (''​tom''​) și ''​1.1.1.2/​24''​ (''​jerry''​) ca mai jos: 
 + 
 +<code bash> 
 +student@tom:​~$ ip a s enp0s9 
 +4: enp0s9: <​BROADCAST,​MULTICAST>​ mtu 1500 qdisc noop state DOWN group default qlen 1000 
 +    link/ether 08:​00:​27:​f6:​24:​73 brd ff:​ff:​ff:​ff:​ff:​ff 
 +student@tom:​~$ sudo ip a a 1.1.1.1/24 dev enp0s9 
 +[sudo] password for student: 
 +student@tom:​~$ sudo ip link set dev enp0s9 up 
 +student@tom:​~$ ip a s enp0s9 
 +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 
 +    inet 1.1.1.1/24 scope global enp0s9 
 +       ​valid_lft forever preferred_lft forever 
 +    inet6 fe80::​a00:​27ff:​fef6:​2473/​64 scope link 
 +       ​valid_lft forever preferred_lft forever 
 + 
 +student@jerry:​~$ ip a s enp0s9 
 +4: enp0s9: <​BROADCAST,​MULTICAST>​ mtu 1500 qdisc noop state DOWN group default qlen 1000 
 +    link/ether 08:​00:​27:​e7:​a2:​26 brd ff:​ff:​ff:​ff:​ff:​ff 
 +student@jerry:​~$ sudo ip a a 1.1.1.2/24 dev enp0s9 
 +[sudo] password for student: 
 +student@jerry:​~$ sudo ip l s dev enp0s9 up 
 +student@jerry:​~$ ip a s enp0s9 
 +4: enp0s9: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc fq_codel state UP group default qlen 1000 
 +    link/ether 08:​00:​27:​e7:​a2:​26 brd ff:​ff:​ff:​ff:​ff:​ff 
 +    inet 1.1.1.2/24 scope global enp0s9 
 +       ​valid_lft forever preferred_lft forever 
 +    inet6 fe80::​a00:​27ff:​fee7:​a226/​64 scope link 
 +       ​valid_lft forever preferred_lft forever 
 +</​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''​). 
 + 
 +După aceasta verificăm de pe fiecare stație conectivitatea la celelaltă stație folosind comanda ''​ping'':​ 
 +<​code>​ 
 +student@tom:​~$ ping 1.1.1.2 
 +PING 1.1.1.2 (1.1.1.2) 56(84) bytes of data. 
 +64 bytes from 1.1.1.2: icmp_seq=1 ttl=64 time=0.530 ms 
 +64 bytes from 1.1.1.2: icmp_seq=2 ttl=64 time=0.945 ms 
 +^C 
 +--- 1.1.1.2 ping statistics --- 
 +2 packets transmitted,​ 2 received, 0% packet loss, time 1016ms 
 +rtt min/​avg/​max/​mdev = 0.530/​0.737/​0.945/​0.209 ms 
 + 
 +student@jerry:​~$ ping 1.1.1.1 
 +PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data. 
 +64 bytes from 1.1.1.1: icmp_seq=1 ttl=64 time=0.737 ms 
 +64 bytes from 1.1.1.1: icmp_seq=2 ttl=64 time=0.395 ms 
 +^C 
 +--- 1.1.1.1 ping statistics --- 
 +2 packets transmitted,​ 2 received, 0% packet loss, time 1001ms 
 +rtt min/​avg/​max/​mdev = 0.395/​0.566/​0.737/​0.171 ms 
 +</​code>​ 
 + 
 +Pe o interfață pot fi adăugate mai multe adrese IP. 
 + 
 +**[1a]** Adăugați pe interfața ''​enp0s9''​ de pe sistemele ''​tom''​ și ''​jerry'',​ respectiv adresele IP ''​10.11.12.13/​16''​ și ''​10.11.14.15/​16''​. Folosiți comanda ''​ip a s enp0s9''​ pentru verificare. Verificați conectivitatea între cele două sisteme folosind cele două adrese IP nou introduse. 
 + 
 +**[1b]** Faceți //flush// și dezactivați interfața ''​enp0s9''​ pe sistemele ''​tom''​ și ''​jerry''​. Folosiți comanda ''​ip a s enp0s9''​ pentru verificare. 
 + 
 +**[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. 
 + 
 +==== 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 36: Line 145:
 </​code>​ </​code>​
  
-==== 2Autentificarea ​fără parolă ====+==== 4Autentificare 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 84: 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 105: 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 124: Line 233:
 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.1542759636.txt.gz · Last modified: 2018/11/21 02:20 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