This shows you the differences between two versions of the page.
uso:laboratoare:new:08-net:basics [2018/11/21 00:32] liza_elena.babu |
uso:laboratoare:new:08-net:basics [2018/11/25 18:04] (current) elena.stoican [5. Conexiune SSH] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Need to Know ===== | + | ===== Basics ===== |
- | ==== ssh ==== | + | Dacă nu se precizează altfel, în această secțiune veți rula comenzile pe **stația fizică** (sau pe mașina virtuală ''uso'' dacă lucrați acasă). |
- | Având la dispoziție mașinile virtuale ''tom'' și ''jerry'', ne propunem, ca după | + | ==== 1. Interfețe de rețea ==== |
- | pornirea amândurora să aflăm adresele IP. Pentru a importa cele două mașini | + | |
- | virtuale urmăriți pașii de [[ https://ocw.cs.pub.ro/courses/uso/resurse/mv#procedura_import_fisier_ova_in_virtualbox | aici]]. | + | |
- | După importarea mașinilor, deschideți în paralel mașinile virtuale ''tom'' și ''jerry''. | + | ''ip'' este o comandă de Linux folosită pentru a afișa interfețele de rețea disponibile pe sistemul curent de operare. De aici putem afla informații esențiale legate de conectivitatea la internet. |
- | + | ||
- | Vrem să aflăm adresele IP ale celor 2 mașini virtuale. Pentru a face acest lucru folosim comanda | + | |
- | ''ip a s'' sau comanda ''ifconfig''. | + | |
+ | Pentru a afla adresa IP și masca de rețea a interfețelor sistemului folosim comanda | ||
<code bash> | <code bash> | ||
- | student@tom:~$ ifconfig | + | student@uso:~$ ip a s |
- | enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 | + | 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 |
- | inet 192.168.56.101 netmask 255.255.255.0 broadcast 192.168.56.255 | + | link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 |
- | inet6 fe80::a00:27ff:febf:7477 prefixlen 64 scopeid 0x20<link> | + | inet 127.0.0.1/8 scope host lo |
- | ether 08:00:27:bf:74:77 txqueuelen 1000 (Ethernet) | + | valid_lft forever preferred_lft forever |
- | RX packets 6284 bytes 8587309 (8.5 MB) | + | inet6 ::1/128 scope host |
- | RX errors 0 dropped 0 overruns 0 frame 0 | + | valid_lft forever preferred_lft forever |
- | TX packets 3536 bytes 245502 (245.5 KB) | + | 2: enp0s3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000 |
- | TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 | + | link/ether 08:00:27:49:1d:cd brd ff:ff:ff:ff:ff:ff |
- | + | 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 | |
- | enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 | + | link/ether 08:00:27:b1:36:c8 brd ff:ff:ff:ff:ff:ff |
- | inet 10.0.2.5 netmask 255.255.255.0 broadcast 10.0.2.255 | + | inet 10.0.2.4/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s8 |
- | inet6 fe80::a00:27ff:fe84:cd0a prefixlen 64 scopeid 0x20<link> | + | valid_lft 666sec preferred_lft 666sec |
- | ether 08:00:27:84:cd:0a txqueuelen 1000 (Ethernet) | + | inet6 fe80::9927:3d0d:77b5:8ca9/64 scope link noprefixroute |
- | RX packets 49745 bytes 74514906 (74.5 MB) | + | valid_lft forever preferred_lft forever |
- | RX errors 0 dropped 0 overruns 0 frame 0 | + | |
- | TX packets 32084 bytes 1935578 (1.9 MB) | + | |
- | TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 | + | |
- | + | ||
- | enp0s9: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 | + | |
- | inet6 fe80::a00:27ff:fe94:2ff3 prefixlen 64 scopeid 0x20<link> | + | |
- | ether 08:00:27:94:2f:f3 txqueuelen 1000 (Ethernet) | + | |
- | RX packets 0 bytes 0 (0.0 B) | + | |
- | RX errors 0 dropped 0 overruns 0 frame 0 | + | |
- | TX packets 36 bytes 9194 (9.1 KB) | + | |
- | TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 | + | |
- | + | ||
- | lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 | + | |
- | inet 127.0.0.1 netmask 255.0.0.0 | + | |
- | inet6 ::1 prefixlen 128 scopeid 0x10<host> | + | |
- | loop txqueuelen 1000 (Local Loopback) | + | |
- | RX packets 945 bytes 88159 (88.1 KB) | + | |
- | RX errors 0 dropped 0 overruns 0 frame 0 | + | |
- | TX packets 945 bytes 88159 (88.1 KB) | + | |
- | TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 | + | |
</code> | </code> | ||
- | - Luați adresa IP de pe mașina ''tom'' și dați ping la acea adresă de pe mașina ''jerry''. | + | Parametrii ''a'' și ''s'' sunt prescurtările de la ''address'' și ''show''. Astfel, semnificația comenzii ''ip a s'' se traduce în ''ip address show''. |
+ | |||
+ | Interfața **loopback** (cu numele ''lo'') este o interfață virtuală (**nu** una fizică). Scopul acestei interfețe este de a întoarce pachetele trimise către sistemul local, de obicei cu rol în testare. | ||
- | Vrem să ne conectăm prin ''ssh'' de pe mașina fizică pe una dintre mașinile virtuale. Primul pas este | + | Putem trimite comenzii ''ip a s'' ca parametru numele unei interfețe de rețea pentru a afișa informații doar despre acea interfață de rețea. Comanda de mai jos afișează informații despre interfața de loopback (''lo''): |
- | să aflăm adresa IP a mașinii virtuale. | + | |
<code bash> | <code bash> | ||
- | student@tom:~$ ip a s | + | student@uso:~$ ip a s lo |
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 | 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 | ||
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 | link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 | ||
Line 62: | Line 39: | ||
valid_lft forever preferred_lft forever | valid_lft forever preferred_lft forever | ||
inet6 ::1/128 scope host | inet6 ::1/128 scope host | ||
- | valid_lft forever preferred_lft forever | ||
- | 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 | ||
- | link/ether 08:00:27:bf:74:77 brd ff:ff:ff:ff:ff:ff | ||
- | inet 192.168.56.101/24 brd 192.168.56.255 scope global dynamic enp0s3 | ||
- | valid_lft 962sec preferred_lft 962sec | ||
- | inet6 fe80::a00:27ff:febf:7477/64 scope link | ||
- | valid_lft forever preferred_lft forever | ||
- | 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 | ||
- | link/ether 08:00:27:84:cd:0a brd ff:ff:ff:ff:ff:ff | ||
- | inet 10.0.2.5/24 brd 10.0.2.255 scope global enp0s8 | ||
- | valid_lft forever preferred_lft forever | ||
- | inet6 fe80::a00:27ff:fe84:cd0a/64 scope link | ||
- | valid_lft forever preferred_lft forever | ||
- | 4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 | ||
- | link/ether 08:00:27:94:2f:f3 brd ff:ff:ff:ff:ff:ff | ||
- | inet6 fe80::a00:27ff:fe94:2ff3/64 scope link | ||
valid_lft forever preferred_lft forever | valid_lft forever preferred_lft forever | ||
</code> | </code> | ||
+ | |||
+ | La câmpul ''inet'' din rezultatul rulării comenzii, putem observa adresa IP ''127.0.0.1''. De obicei, aceasta este adresa interfaței de loopback. | ||
<note> | <note> | ||
- | Observăm faptul că adresa IP a mașinii ''tom'' este ''192.168.56.101''. | + | De aici și glumele de pe internet cu ''There's no place like 127.0.0.1''. Pentru că fiecare sistem are propria interfață virtuală loopback, pe care o numim "acasă" |
</note> | </note> | ||
- | După ce am făcut acest lucru, deschidem un terminal pe mașina fizică. Să zicem că vrem să ne conectăm | + | === Conectivitatea la Internet === |
- | drept utilizatorul ''student'' pe mașina virtuală. Pentru a face acest lucru urmăriți pașii de mai jos. | + | |
- | Vi se va cere parola utilizatorului ''student'' de pe mașina virtuală care este ''student''. | + | Putem verifica conectivitatea la internet folosind utilitarul ''ping''. Acesta transmite pachete către o anumită adresa (dată ca parametru). Acest utilitar ne arată dacă pachetele trimise ajung la destinație și în cât timp. O adresă pe care o putem folosi întotdeauna este ''8.8.8.8'' (o adresă de la Google). |
<code bash> | <code bash> | ||
- | student@uso:~$ ssh student@192.168.56.101 | + | student@uso:~$ ping 8.8.8.8 |
- | The authenticity of host '192.168.56.101 (192.168.56.101)' can't be established. | + | PING 8.8.8.8 (8.8.8.8): 56 data bytes |
- | ECDSA key fingerprint is SHA256:sqi88F/jVZ+RiHMMkLGXidACSAHlfXHos2d+gwWcqoY. | + | 64 bytes from 8.8.8.8: icmp_seq=0 ttl=121 time=17.324 ms |
- | Are you sure you want to continue connecting (yes/no)? yes | + | 64 bytes from 8.8.8.8: icmp_seq=1 ttl=121 time=18.513 ms |
- | Warning: Permanently added '192.168.56.101' (ECDSA) to the list of known hosts. | + | ^C |
- | student@192.168.56.101's password: | + | --- 8.8.8.8 ping statistics --- |
- | Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-33-generic x86_64) | + | 2 packets transmitted, 2 packets received, 0.0% packet loss |
+ | round-trip min/avg/max/stddev = 17.324/17.919/18.513/0.594 ms | ||
+ | </code> | ||
- | * Documentation: https://help.ubuntu.com | + | Putem observa ca pachetele noastre au ajuns la destinație în 17ms. De aici putem trage concluzia că avem o conexiune la internet funcțională. |
- | * Management: https://landscape.canonical.com | + | |
- | * Support: https://ubuntu.com/advantage | + | |
- | System information as of Tue Nov 20 21:36:36 UTC 2018 | + | **[1a]** Aflați adresa IP a sistemului fizic (**nu** ''lo'') și dați un ping către adresa IP. |
- | System load: 0.07 Processes: 94 | + | **[1b]** Aflați adresele IP ale colegilor (minim 2) și dați ping către acele adrese IP. |
- | Usage of /: 50.4% of 9.78GB Users logged in: 1 | + | |
- | Memory usage: 35% IP address for enp0s3: 192.168.56.101 | + | |
- | Swap usage: 0% IP address for enp0s8: 10.0.2.5 | + | |
- | * Read about Ubuntu updates for L1 Terminal Fault Vulnerabilities | + | ==== 2. Urmărirea pachetelor ==== |
- | (L1TF). | + | |
- | - https://ubu.one/L1TF | + | Atunci când apelăm utilitarul ''ping'' cu o anumită adresă din internet, se trimit pachete până la aceasta. Dacă acestea nu ajung la destinație, ce concluzie putem trage? Că nu avem interfața configurată corespunzător? Dar dacă furnizorul de Internet (să spunem RDS) are o problemă sau nu ne-am plătit factura la internet? Trebuie să putem afla unde este problema. Care este punctul în care pachetele noastre se pierd. Putem afla această informație folosind utilitarul ''traceroute'', la fel ca mai jos: |
- | * Check out 6 great IDEs now available on Ubuntu. There may even be | + | <code bash> |
- | something worthwhile there for those crazy EMACS fans ;) | + | student@uso:~$ traceroute 8.8.8.8 |
+ | traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets | ||
+ | 1 danubiu12.lan (192.168.255.1) 3.677 ms 0.870 ms 0.808 ms | ||
+ | 2 10.0.0.1 (10.0.0.1) 1.991 ms 2.075 ms 1.908 ms | ||
+ | 3 10.30.1.209 (10.30.1.209) 3.720 ms 2.215 ms 1.959 ms | ||
+ | 4 10.220.137.28 (10.220.137.28) 21.973 ms | ||
+ | 10.220.137.30 (10.220.137.30) 15.755 ms | ||
+ | 10.220.128.72 (10.220.128.72) 15.574 ms | ||
+ | 5 213-154-130-234.rdsnet.ro (213.154.130.234) 17.572 ms 16.963 ms 18.208 ms | ||
+ | 6 74.125.242.241 (74.125.242.241) 17.910 ms 18.196 ms 16.700 ms | ||
+ | 7 108.170.238.135 (108.170.238.135) 15.377 ms | ||
+ | 108.170.225.23 (108.170.225.23) 18.141 ms | ||
+ | 209.85.142.19 (209.85.142.19) 19.790 ms | ||
+ | 8 google-public-dns-a.google.com (8.8.8.8) 16.774 ms 16.613 ms 15.950 ms | ||
+ | </code> | ||
- | - https://bit.ly/6-cool-IDEs | + | Putem observa calea pachetelor de la gateway-ul local (''192.168.255.1'', va fi altul în cazul vostru) până la serverele Google. |
- | 139 packages can be updated. | + | Putem apela același utilitar și cu un nume de domeniu: |
- | 40 updates are security updates. | + | <code bash> |
+ | student@uso:~$ traceroute google.com | ||
+ | traceroute to google.com (216.58.209.174), 64 hops max, 52 byte packets | ||
+ | 1 danubiu12.lan (192.168.255.1) 1.115 ms 0.817 ms 0.835 ms | ||
+ | 2 10.0.0.1 (10.0.0.1) 2.068 ms 2.027 ms 1.991 ms | ||
+ | 3 10.30.1.209 (10.30.1.209) 2.134 ms 3.027 ms 2.515 ms | ||
+ | 4 10.220.132.8 (10.220.132.8) 16.611 ms | ||
+ | 10.220.128.66 (10.220.128.66) 14.901 ms | ||
+ | 10.220.128.62 (10.220.128.62) 16.787 ms | ||
+ | 5 213-154-130-234.rdsnet.ro (213.154.130.234) 17.705 ms 16.165 ms 17.994 ms | ||
+ | 6 74.125.242.241 (74.125.242.241) 16.531 ms 18.200 ms 17.689 ms | ||
+ | 7 66.249.94.123 (66.249.94.123) 18.622 ms | ||
+ | 66.249.94.163 (66.249.94.163) 17.212 ms 16.840 ms | ||
+ | 8 bud02s21-in-f14.1e100.net (216.58.209.174) 15.921 ms 16.906 ms 16.412 ms | ||
+ | </code> | ||
+ | Ieșirea comenzii afișează și adresa publică a site-ului ''google.com''. | ||
- | Last login: Tue Nov 20 21:28:13 2018 | + | **[2a]** Afișați calea urmată de mașina virtuală către numele de domeniu ''realitatea.net'', către ''gandul.info'' și către ''bbc.com''. Observați care este mai apropiată (către care sunt mai puține //hop//-uri). |
- | student@tom:~$ | + | |
- | </code> | + | |
- | <note> | + | ==== 3. Default gateway ==== |
- | Atenție, adresa IP de mai sus va fi diferită în funcție de rețeaua în care se află vă aflați. | + | |
- | </note> | + | |
- | - Conectați-vă în același fel de pe mașina fizică pe cealaltă mașină virtuală. | + | Atunci când pachetele pleacă către Internet, sistemul trebuie să știe cui îi va trimite pachetele în mod implicit, adică să știe ''gateway-ul''. Această configurare se poate vedea folosind utilitarul ''ip'' cu opțiunea ''route show'', ca mai jos: |
- | - Conectați-vă de pe mașina ''tom'' pe mașina ''jerry'' folosind ''ssh''. | + | <code bash> |
+ | student@uso:~$ ip r s | ||
+ | default via 10.0.2.1 dev enp0s8 proto dhcp metric 100 | ||
+ | [...] | ||
+ | </code> | ||
+ | Mai sus am folosit forma prescurtată a comenzii ''ip route show'', adică ''ip r s''. | ||
- | ==== scp ==== | + | Putem observa că implicit pachetele se duc către adresa IP ''10.0.2.1''. |
- | Utilitarul ''scp'' (secure copy) este folosit pentru a copia fișiere de pe o stație pe alta. Există și | + | **[3a]** Afișați gateway-ul de pe mașina virtuală ''tom'' și de pe mașina virtuală ''jerry''. |
- | alte utilitare cu care putem face acest lucru, însă aceasta are avantajul că datele sunt transmise sigur, | + | |
- | folosind ''ssh''. | + | |
- | ''scp'' are o sintaxă asemănătoare cu ''cp'', și anume ''scp sursă destinație''. Folosind ''scp'' putem | + | ==== 4. DNS ==== |
- | copia fișiere de pe mașina noastră pe o altă mașină, fie de pe o altă mașină direct în mașina noastră. | + | |
- | Urmăriți pașii de mai jos pentru a copia un fișier de pe mașina fizică pe mașina virtuală ''tom''. | + | |
- | Pe mașina ''tom'': | + | Destinațiile din Internet sunt întotdeauna adrese IP. Pentru ca ne este greu sa reținem aceste adrese, se face o mapare între un nume și o adresă IP folosind seviciul DNS (//Domain Name System//). Dacă destinația este un nume, se face o cerere DNS pentru a afla adresa IP. |
+ | |||
+ | Putem vedea adresa serverului DNS in ''/etc/resolv.conf'', folosind comanda: | ||
<code bash> | <code bash> | ||
- | student@tom:~$: ip a s | + | student@uso:~$ cat /etc/resolv.conf |
- | 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 | + | [...] |
- | link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 | + | nameserver 127.0.0.53 |
- | inet 127.0.0.1/8 scope host lo | + | |
- | valid_lft forever preferred_lft forever | + | |
- | inet6 ::1/128 scope host | + | |
- | valid_lft forever preferred_lft forever | + | |
- | 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 | + | |
- | link/ether 08:00:27:bf:74:77 brd ff:ff:ff:ff:ff:ff | + | |
- | inet 192.168.56.101/24 brd 192.168.56.255 scope global dynamic enp0s3 | + | |
- | valid_lft 650sec preferred_lft 650sec | + | |
- | inet6 fe80::a00:27ff:febf:7477/64 scope link | + | |
- | valid_lft forever preferred_lft forever | + | |
- | 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 | + | |
- | link/ether 08:00:27:84:cd:0a brd ff:ff:ff:ff:ff:ff | + | |
- | inet 10.0.2.5/24 brd 10.0.2.255 scope global enp0s8 | + | |
- | valid_lft forever preferred_lft forever | + | |
- | inet6 fe80::a00:27ff:fe84:cd0a/64 scope link | + | |
- | valid_lft forever preferred_lft forever | + | |
- | 4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 | + | |
- | link/ether 08:00:27:94:2f:f3 brd ff:ff:ff:ff:ff:ff | + | |
- | inet6 fe80::a00:27ff:fe94:2ff3/64 scope link | + | |
- | valid_lft forever preferred_lft forever | + | |
</code> | </code> | ||
- | Luăm adresa IP a mașinii ''tom'' și apoi pe mașina fizică: | + | Putem face interogări la serverul DNS folosind utilitarul ''host''. Interogare directă este atunci când folosind numele de domeniu și obținem adresa IP; interogare inversă este atunci când folosim adresa IP ca să aflăm numele de domeniu. Mai jos sunt două exemple de interogare directă urmate de două exemple de interogare inversă: |
<code bash> | <code bash> | ||
- | student@uso:~$ echo "my first scp" > file.txt | + | student@uso:~$ host fsf.org |
- | student@uso:~$ cat file.txt | + | fsf.org has address 208.118.235.174 |
- | my first scp | + | fsf.org has IPv6 address 2001:4830:134:4::a |
- | student@tom:~$ scp file.txt student@TOTO:. | + | fsf.org mail is handled by 10 mail.fsf.org. |
- | student@192.168.56.101's password: | + | student@uso:~$ host kernel.org |
- | file.txt 100% 13 9.1KB/s 00:00 | + | kernel.org has address 198.145.29.83 |
+ | kernel.org mail is handled by 10 mail.kernel.org. | ||
+ | |||
+ | student@uso:~$ host swarm.cs.pub.ro | ||
+ | swarm.cs.pub.ro has address 141.85.227.118 | ||
+ | swarm.cs.pub.ro mail is handled by 10 swarm.cs.pub.ro. | ||
+ | student@uso:~$ host 209.132.180.180 | ||
+ | 180.180.132.209.in-addr.arpa domain name pointer proxy01.gnome.org. | ||
</code> | </code> | ||
- | <note> | ||
- | Atenție, după construcția ''student@192.168.56.101'' urmează '':.''. Așa specificăm unde pe mașina ''tom'' să fie | ||
- | copiat fișierul ''file.txt''. Dupa '':'' treceți calea din sistemul de fișiere al mașinii ''tom'' la care | ||
- | vreți ca fișierul să fie copiat. În cazul exemplului de mai sus, ''.'' ține loc de **directorul curent** | ||
- | care va fi ''/home/student''. | ||
- | </note> | ||
- | Ca să ne asigurăm că fișierul a fost transmis corect, inspectăm mașina ''tom'': | + | **[4a]** Afișați serverul DNS de pe mașina virtuală ''tom''. |
+ | **[4b]** Dați ping în ''facebook.com'' folosind numele și apoi folosind adresa IP. | ||
+ | |||
+ | **[4c]** Aflați adresa IP pentru numele de domeniu ''ocw.cs.pub.ro'', ''studenti.pub.ro'', ''insecure.org'', ''eu.org''. | ||
+ | |||
+ | ==== 5. Conexiune SSH ==== | ||
+ | |||
+ | Un mod semnificativ mai ușor de a folosi o mașina virtuală este următorul: având un terminal pe mașina fizică ne conectăm prin SSH la mașina virtuală. Astfel, trecerea de la mașina fizică la cea virtuală se reduce la schimbarea de tab-uri in terminal. Un alt avantaj este că putem folosi copy-paste fără probleme din terminal. | ||
+ | |||
+ | Pentru a ne conecta la mașina virtuală avem nevoie de 2 informații: | ||
+ | * numele utilizatorului (//username//) cu care vrem să fim autentificați pe mașina virtuală | ||
+ | * adresa mașinii virtuale (putem folosi ''ip a s'' pentru a afla adresa IP) | ||
+ | Sintaxa este de forma ''%%ssh <user>@<IP>%%'', unde ''%%<user>%%'' este numele de utilizator iar ''%%<IP>%%'' este numele de domeniu sau adresa IP corespunzătoare. | ||
+ | |||
+ | Vom face o conexiune SSH între stația fizică și mașina virtuală ''tom''. | ||
+ | |||
+ | <note important> | ||
+ | Pentru a face o conexiune SSH între stația fizică și mașina virtuală ''tom'' va trebui să avem interfața activată, pe mașina virtuală ''tom''. Pentru aceasta rulați comanda | ||
<code bash> | <code bash> | ||
- | student@tom:~$ ls | + | student@tom:~$ sudo dhclient enp0s8 |
- | file.txt uso.git utils vm-actions-log.txt | + | |
- | student@tom:~$ cat file.txt | + | |
- | my first scp | + | |
</code> | </code> | ||
+ | care va asigura obținerea, prin DHCP, a parametrilor de rețea pentru interfața ''enp0s8''. | ||
- | - Pe mașina virtuală ''jerry'' creați un fișier la calea ''/home/student''. Fiind pe mașina fizică, copiați acest fișier în directorul ''~/uso/labs/05-cli/support/need-to-know''.(Hint: fiți atenți sintaxa utilitarului ''scp'') | + | Folosind comanda |
- | - Copiați același fișier de mai devreme, ''file.txt'' de pe mașina fizică pe ''fep.grid.pub.ro''. Username-ul și parola sunt cele de pe platforma ''acs.curs.pub.ro''. (Hint: aici nu mai avem nevoie de adresa IP pentru ''fep.grid.pub.ro'') | + | <code bash> |
+ | student@tom:~$ ip a s enp0s8 | ||
+ | 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 | ||
+ | link/ether 08:00:27:71:db:21 brd ff:ff:ff:ff:ff:ff | ||
+ | inet 192.168.56.101/24 brd 192.168.56.255 scope global enp0s8 | ||
+ | valid_lft forever preferred_lft forever | ||
+ | inet6 fe80::a00:27ff:fe71:db21/64 scope link | ||
+ | valid_lft forever preferred_lft forever | ||
+ | </code> | ||
+ | aflăm adresa IP a mașinii virtuale ''tom''. În cazul de față este vorba de ''192.168.56.101''. | ||
- | Conectați-vă prin ''ssh'' pe ''fep.grid.pub.ro''. Vrem să aflăm utilizatorii care sunt contectați pe ''fep.grid.pub.ro''. | + | Este posibil ca adresa IP pentru mașina virtuală ''tom'' să fie alta în rularea voastră. Folosiți în continuare adresa IP obținută din rularea voastră. |
- | Pentru a face acest lucru vom folosi comanda ''who''. | + | </note> |
+ | Pentru a ne conecta de pe stația fizică la mașina virtuală ''tom'' folosim comanda: | ||
<code bash> | <code bash> | ||
- | student@uso:~$ ssh mr_perfect.perfection@fep.grid.pub.ro | + | student@uso:~$ ssh student@192.168.56.101 |
+ | The authenticity of host '192.168.56.101 (192.168.56.101)' can't be established. | ||
+ | ECDSA key fingerprint is SHA256:sqi88F/jVZ+RiHMMkLGXidACSAHlfXHos2d+gwWcqoY. | ||
+ | Are you sure you want to continue connecting (yes/no)? yes | ||
+ | Warning: Permanently added '192.168.56.101' (ECDSA) to the list of known hosts. | ||
+ | student@192.168.56.101's password: | ||
+ | [...] | ||
+ | student@tom:~$ | ||
+ | </code bash> | ||
+ | Ne-am conectat prin SSH la mașina virtuală ''tom'', lucru pe care îl vedem în prompt. | ||
- | * IMPORTANT - PLEASE READ CAREFULLY: | + | Pentru a ne deconecta de la mașina virtuală folosim comanda ''exit'' sau comanda ''logout'' sau folosim combinația de taste ''Ctrl+d'': |
- | * Spatiul de stocare a ajuns la limita maxima din cauza neglijentei dvoastra. Acesta nu este un spatiu de stocare personal. | + | <code bash> |
- | In data de 1.08.2018 se vor arhiva toate datele iar pe 1.09.2018 se vor sterge. | + | student@tom:~$ logout |
- | * If you are using GPU computing and TensorFlow technology, please use CUDA_VISIBLE_DEVICES | + | Connection to 192.168.56.101 closed. |
- | to limit the number of GPUs. Otherwise, you will be banned. | + | student@uso:~$ |
- | * Your sessions will be disconnected automatically after 60min on inactivity. | + | |
- | You can use "-o ServerAliveInterval 10" option if you need longer sessions.* | + | |
- | mr_perfect.perfection@fep.grid.pub.ro's password: | + | |
- | Last login: Tue Nov 20 22:23:44 2018 from 192.168.6.10 | + | |
- | -bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory | + | |
- | [mr_perfect.perfection@fep7-1 ~]$ who | + | |
- | mihai.niculescu1606 pts/0 Nov 20 20:03 (192.168.6.10) | + | |
- | mihai.niculescu1606 pts/1 Nov 20 20:01 (192.168.6.10) | + | |
- | george.pirtoaca pts/2 Nov 20 21:20 (192.168.6.10) | + | |
- | mihai.niculescu1606 pts/3 Nov 20 20:05 (192.168.6.10) | + | |
- | liviu.muresanu pts/10 Nov 20 22:04 (192.168.6.10) | + | |
- | mihai.niculescu1606 pts/14 Nov 20 19:05 (192.168.6.10) | + | |
- | laurentiu.stefan97 pts/15 Nov 20 20:55 (192.168.6.10) | + | |
- | bianca_mihaela.cauc pts/18 Nov 20 21:47 (192.168.6.10) | + | |
- | andrei.stancu1608 pts/19 Nov 20 22:05 (192.168.6.10) | + | |
- | cstaniloiu pts/20 Nov 20 22:14 (192.168.6.10) | + | |
- | liza_elena.babu pts/21 Nov 20 22:23 (192.168.6.10) | + | |
- | gheorghe.visinescu pts/23 Nov 20 22:16 (192.168.6.10) | + | |
- | tudor_antonio.barbu pts/25 Nov 20 22:24 (192.168.6.10) | + | |
- | root pts/79 Nov 20 18:19 (192.168.6.41) | + | |
</code> | </code> | ||
- | Folosim comanda ''exit'' pentru a ne deconecta. | + | **[5a]** Conectația la stația locală (conexiune pe interfața de loopback). Apoi deconectați-vă, |
- | ==== DNS ==== | + | **[5b]** Adăugați un utilizator nou pe mașina ''tom''. Conectați-vă de pe mașina locală pe mașina ''tom'' cu noul utilizator creat. |
- | Ne propunem să aflăm serverul DNS al sistemului fizic. Pentru a obține această informație inspectăm fișierul | + | **[5c]** Conectați-vă la mașina virtuală ''jerry'' de pe sistemul fizic. |
- | ''/etc/resolv.conf''. | + | |
+ | **[5d]** Conectați-vă de pe mașina virtuală ''tom'' la mașina virtuală ''jerry''. | ||
+ | |||
+ | ==== 6. wget ==== | ||
+ | |||
+ | Utilitarul ''wget'' descarcă conținutul unei pagini web. Un exemplu de folosire este: | ||
<code bash> | <code bash> | ||
- | student@uso:~$ cat /etc/resolv.conf | + | student@uso:~$ wget http://ipecho.net/plain |
- | # This file is managed by man:systemd-resolved(8). Do not edit. | + | --2018-09-02 16:08:55-- http://ipecho.net/plain |
- | # | + | Resolving ipecho.net (ipecho.net)... 146.255.36.1 |
- | # This is a dynamic resolv.conf file for connecting local clients to the | + | Connecting to ipecho.net (ipecho.net)|146.255.36.1|:80... connected. |
- | # internal DNS stub resolver of systemd-resolved. This file lists all | + | HTTP request sent, awaiting response... 200 OK |
- | # configured search domains. | + | Length: unspecified [text/plain] |
- | # | + | Saving to: ‘plain.1’ |
- | # Run "systemd-resolve --status" to see details about the uplink DNS servers | + | |
- | # currently in use. | + | |
- | # | + | |
- | # Third party programs must not access this file directly, but only through the | + | |
- | # symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way, | + | |
- | # replace this symlink by a static file or a different symlink. | + | |
- | # | + | |
- | # See man:systemd-resolved.service(8) for details about the supported modes of | + | |
- | # operation for /etc/resolv.conf. | + | |
- | nameserver 192.168.255.1 | + | plain.1 [ <=> ] 13 --.-KB/s in 0s |
- | search BlinkAP | + | |
+ | 2018-09-02 16:08:55 (1,48 MB/s) - ‘plain.1’ saved [13] | ||
+ | |||
+ | student@uso:~$ ls plain | ||
+ | plain | ||
+ | student@uso:~$ cat plain | ||
+ | 188.26.36.205 | ||
</code> | </code> | ||
- | Intrarea ''nameserver 141.85.0.82'' ne arată ca DNS-ul sistemului nostru are adresa IP ''141.85.0.82''. | + | |
- | Putem folosi comanda ''nslookup'' să | + | Dacă vrem să descărcăm direct |
- | vedem că adresa este într-adevăr cea din fișierul editat mai devreme. | + | |
<code bash> | <code bash> | ||
- | student@uso:~ $ nslookup www.google.com | + | student@uso:~$ wget -qO- http://ipecho.net/plain ; echo |
- | Server: 192.168.255.1 | + | 188.26.36.205 |
- | Address: 192.168.255.1#53 | + | |
- | + | ||
- | Non-authoritative answer: | + | |
- | Name: www.google.com | + | |
- | Address: 172.217.19.68 | + | |
</code> | </code> | ||
- | - Aduceți modificări asupra fișierului ''/etc/resolv.conf'' în așa fel încât adresa DNS-ului să fie ''8.8.8.8''. Verificați faptul că adresa serverului DNS a fost modificată. (Hint: aveți nevoie de drepturi privilegiate să modificați fișierul ''/etc/resolv.conf'') | + | **[6a]** Descărcați arhiva folosind ''wget'' de la link-ul [[http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2]]. |
- | - Folosind comanda ''host'', aflați adresa IP pentru ''www.facebook.com''. | + | |
- | - Rulați scriptul ''script.sh'' de la calea ''~/uso/labs/05-cli/support/need-to-know''. Încercați să reluați exercițiul 2. Ce se întâmplă? Inspectați sistemul și rezolvați problema. | + | **[6b]** Descărcați capitolul 11 din cartea de USO de la link-ul [[http://elf.cs.pub.ro/uso/res/carte/]]. |