Differences

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

Link to this comparison view

rl:labs:09:contents:03 [2013/11/26 15:26]
razvan.deaconescu removed
rl:labs:09:contents:03 [2023/11/05 13:06] (current)
vlad_iulius.nastase
Line 1: Line 1:
-==== 04Configurare incorectă a translatării ​====+==== 03[10p] Accesare serviciu web folosind wget ====
  
-Comanda folosită mai sus pentru translatare, la [[:​rl:​labs:​09:​contents:​01]],​ are neajunsuri ​pe care le vom identifica mai jos.+Sunt situații în care: 
 +  * vrem doar să descărcăm o resursă, nu să accesăm o pagină web și să o parcurgem;​ 
 +  * vrem să testăm serviciul web; 
 +  * nu avem acces la o interfață grafică (pe un server sau pe o mașină virtuală) pentru accesarea web; 
 +  * vrem să automatizăm,​ într-un script, procesul de acces al unor resurse în web.
  
-Pe stația ''​red''​ executăm comanda ​''​ping'' ​către stația ​''​green''​:<code bash> +În aceste situații, este util să folosim un client web în linie de comandă. Astfel de clienți web în linie de comandă sunt ''​wget'' ​sau ''​curl''​. ​În general aceste utilitare sunt folosite pentru descărcarea de fișiere sau alte resurse disponibile în web.
-root@red:~# ping -c 2 green +
-PING green (192.168.2.2) 56(84) bytes of data. +
-64 bytes from green (192.168.2.2):​ icmp_req=1 ttl=63 time=0.155 ms +
-64 bytes from green (192.168.2.2):​ icmp_req=2 ttl=63 time=0.086 ms +
-[...+
-</​code>​+
  
-Pe stația ''​green'' ​capturăm traficul ​pe interfaț''​eth0'' ​folosind comanda ​''​tcpdump'':<​code bash> +Pentru a descărca fișierul HTML accesat anterior (la [[:​rl:​labs:​09:​contents:​02]]) executați, pe stația ''​fep.grid.pub.ro''​, respectiv ​pe stația ''​host'' ​(urmăriți **promptul** pentru a determina stația), comenzile de mai jos (''​<​adresa-ip-mv>​'' ​o puteți obține din dashboard-ul OpenStack):<code bash> 
-root@green:~# tcpdump ​-i eth0 +[mihai.carabas@fep-62-2 ​~]$ wget http://<​adresa-ip-mv>:​8080 
-tcpdumpverbose output suppressed, use -v or -vv for full protocol decode +--2013-11-26 18:20:10--  ​http://<​adresa-ip-mv>:​8080/​ 
-listening on eth0, link-type EN10MB (Ethernet)capture size 65535 bytes +Connecting to <adresa-ip-mv>:​8080... connected. 
-11:18:54.535064 IP host green: ICMP echo request, id 633, seq 17, length 64 +HTTP request sentawaiting response... 200 OK 
-11:18:54.535092 IP green > host: ICMP echo reply, id 633, seq 17, length 64 +Length31 [text/​html] 
-[...]+Saving to‘index.html’ 
 + 
 +100%[======================================>] 31          --.-K/​s ​  in 0s      ​ 
 + 
 +2013-11-26 18:20:10 (4.92 MB/s) - ‘index.html’ saved [31/31] 
 + 
 +[mihai.carabas@fep-62-2 ~]$ cat index.html  
 +<h1>Laborator 10 - pe red</​h1>​ 
 + 
 +root@host:~# wget -q http://red/ 
 +root@host:​~#​ ls 
 +PacketTracer5 ​  index.html 
 +root@host:​~#​ cat index.html  
 +<​h1>​Laborator 10 - pe red</​h1>​
 </​code>​ </​code>​
 +Avem același conținut afișat în browser-ul web grafic: șirul //​Laboratorul 10 - pe red// formatat //heading 1//.
  
-Observăm că adresa sursă a pachetelor de tip ''​ICMP echo request'' ​este stația ​''​host''​, nu stația ''​red''​. ​Acest lucru se întâmplă din cauză că atunci când am activat NAT nu am specificat pentru ce tip de trafic să aplice politica ​de translatare. Astfel stația ​''​host'' ​aplică politica de NAT pentru ​tot traficul care o tranzitează. Dorim să aplicăm politica doar pentru pachetele ce **ies** în Internet, adică cele ale căror **interfață de ieșire** este interfaț''​eth0''​. ​Vom șterge vechea regulă de NAT și vom adăuga o regulă corectă.+<​note>​ 
 +În a doua comandă am folosit opțiunea ​''​-q'' ​''​wget'' ​pentru a dezactiva afișarea informații legate de transfer a ''​wget''​. ​Opțiunea trebuie folosită cu grijă. Informațiile ​de eroare furnizate ​de ''​wget'' ​sunt utile pentru ​depanare ​și sunt dezactivate la folosirea opțiunii ''​-q''​. 
 +</​note>​
  
-Pentru ​ștergerea vechii reguli ​de NAT rulăpe stația ''​host''​ comanda<​code bash> +La adresa ''​http://​red/​file.dat''​ se află un fișier cu dimensiunea ​de ''​1 KB''​. Descărcați fișierul ​pe stația ''​host'' ​folosind ''​wget''​. Folosiți ​comanda ​''​ls -l''​ pentru a verifica descărcarea corectă și dimensiunea sa. 
-root@host:​~# ​iptables ​-t nat -D POSTROUTING -j MASQUERADE + 
-</code> +<​hidden>​ 
-Verificăm faptul că nu mai există comanda<​code bash> +<​solution>​ 
-root@host:​~# ​iptables ​-t nat -L POSTROUTING ​--+<code bash> 
-Chain POSTROUTING (policy ACCEPT ​packets, 328 bytes) +root@host:​~# ​wget -q http://​red/​file.dat 
- pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination+root@host:​~# ​ls -l file.dat  
 +-rw-r--r-- 1 root root 1024 Nov 26 18:10 file.dat
 </​code>​ </​code>​
 +</​solution>​
 +</​hidden>​
  
-Adăugăm din nou regula ​de NAT, dar de data aceasta vom specifica să aplice politica de NAT pachetelor ce ies prin interfața ​''​eth0'' ​stației ''​host'':<​code bash> +Serverul web este configurat să folosească și conexiuni sigure (protocolul HTTPS). Descărcăm fișierul ​de mai sus (''​file.dat''​) pe stația ''​host'' ​folosind protocolul HTTPS:<code bash> 
-root@host:​~# ​iptables ​-t nat -A POSTROUTING ​-o eth0 -j MASQUERADE+root@host:​~# ​wget https://​red/​file.dat 
 +--2013-11-23 17:​50:​52-- ​ https://​red/​file.dat 
 +Resolving red (red)... 192.168.1.2 
 +Connecting to red (red)|192.168.1.2|:​443... connected. 
 +ERROR: cannot verify red's certificate,​ issued by `/​CN=red':​ 
 +  Self-signed certificate encountered. 
 +To connect to red insecurely, use `--no-check-certificate'​.
 </​code>​ </​code>​
-Verificați ​că regula ​fost inserată:<code bash> +Observăm ​că ni s-afișat o eroare că nu poate fi verificat certificatul. Această verificare poate fi eliminată folosind opțiunea ''​%%--%%no-check-certificate''​:<code bash> 
-root@host:​~# ​iptables ​-t nat -L POSTROUTING ​--+root@host:​~# ​wget --no-check-certificate https://​red/​file.dat 
-Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) +--2013-11-23 17:52:02--  ​https://​red/​file.dat 
- pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination +Resolving red (red)... 192.168.1.2 
-    ​0 ​    0 MASQUERADE ​ all  ​--  ​*      eth0    0.0.0.0/0            0.0.0.0/0 +Connecting to red (red)|192.168.1.2|:​443... connected. 
-</​code>​ +WARNING: cannot verify red's certificate,​ issued by `/CN=red'
-Observăm prezența interfaței ''​eth0''​ în coloana ''​out''​. ​Înainte apărea caracterul ''​*''​adică orice interfață.+  Self-signed certificate encountered. 
 +HTTP request sentawaiting response... 200 OK 
 +Length: 1024 (1.0K) 
 +Saving to: `file.dat'​
  
-Repetați testul de la începutul exercițiului și arătați că pachetele trimise de la ''​red''​ către ''​green''​ au adresele IP sursă/destinație nemodificate ​(nu mai fac trecerea prin NAT), în vreme ce pachetele ce ies în Internet sunt translatate.+100%[===================================================================================================================>​] 1,024       --.-K/s   in 0s 
 + 
 +2013-11-23 17:​52:​02 ​(18.2 MB/s- `file.dat' saved [1024/​1024] 
 +</​code>​
rl/labs/09/contents/03.1385472419.txt.gz · Last modified: 2013/11/26 15:26 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