Differences

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

Link to this comparison view

rl:labs:09:contents:04 [2013/11/28 08:43]
razvan.deaconescu [04. [10p] Configurare incorectă a translatării]
rl:labs:09:contents:04 [2024/12/04 17:52] (current)
laura.ruse [04. [15p] Descărcare recursivă de resurse web]
Line 1: Line 1:
-==== 04. [10pConfigurare incorectă a translatării ====+==== 04. [15pDescărcare recursivă de resurse web ====
  
-Comanda folosită mai sus pentru translatarela [[:​rl:​labs:​09:​contents:​01]],​ are neajunsuri pe care le vom identifica mai jos.+La adresa ''​%%http://​red/​folder%%''​ se află o structură de directoare și fișiere. Pe stația ''​host''​descărcați întreaga structură folosind o singură comandă ''​wget''​ cu parametrul corespunzător.
  
 +<note tip>
 +Pentru a identifica opțiunea corespunzătoare,​ căutați în pagina de manual a ''​wget''​ după șirul ''​recursive''​.
 +</​note>​
  
-Pe stația ''​green'' ​capturăm traficul pe interfața ​''​eth0'' ​folosind comanda ​''​tcpdump'':<​code bash> +Folosiți utilitarul ​''​tree'' ​pentru a lista conținutul directorului descărcat. Este posibil ca pachetul ​''​tree'' ​să fie deja instalat pe ''​host''​. Dacă nu este instalat, atunci puteți folosi următoarea comandă pentru a-l instala: 
-root@green:~# tcpdump ​-i eth0 +<code bash> 
-tcpdump: verbose output suppressed, use -v or -vv for full protocol decode +root@host:~# apt-get install tree
-listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes +
-11:​18:​54.535064 IP host > green: ICMP echo request, id 633, seq 17, length 64 +
-11:​18:​54.535092 IP green > host: ICMP echo reply, id 633, seq 17, length 64 +
-[...]+
 </​code>​ </​code>​
  
-Pe stația ''​red'' ​executăm comanda ​''​ping'' ​către stația ''​green''​:<code bash> +Când rulaț''​tree'' ​pe directorul descărcat observați prezența mai multor fișiere cu nume de forma ''​index.html?​C=S;​O=D''​. Aceste fișiere sunt fișiere de tip directory listing generate de serverul web și nu avem nevoie de ele. Ștergeți structura de directoare pe care tocmai ați descărcat-o pe stația ''​host'' ​și descărcați-o din nou ignorând aceste fișiere.
-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>​+
  
-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ța ''​eth0''​. Vom șterge vechea regulă de NAT și vom adăuga o regulă corectă.+<note tip> 
 +Urmăriți discuția de [[http://​stackoverflow.com/​questions/​273743/​using-wget-to-recursively-fetch-a-directory-with-arbitrary-files-in-it|aici]]. Să aveți în vedere și partea ​din discuția care conține șirul //​%%"​without the hostname"​%%//​. 
 +</​note>​
  
-Pentru ștergerea vechii reguli ​de NAT rulăm pe stația ''​host''​ comanda<​code ​bash+Structura ​de directoare trebuie să fie similară cu:<​code>​ 
-root@host:​~# ​iptables -t nat -D POSTROUTING -j MASQUERADE +root@host:​~# ​tree folder/ 
-</code> +folder
-Verificăm faptul că nu mai există comanda<​code bash> +├── embedded 
-root@host:​~#​ iptables -t nat -L POSTROUTING -n -v +│   ├── Qualcomm 
-Chain POSTROUTING (policy ACCEPT 1 packets, 328 bytes) +│   │   ├── Krait 
- pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination+│   │   │   └── info.txt 
 +│   │   └── Scorpion 
 +│   │   ​    ​└── info.txt 
 +│   └── TI 
 +│   ​    ​├── OMAP3 
 +│   ​    ​│   └── info.txt 
 +│   ​    ​└── OMAP4 
 +│   ​        ​└── info.txt 
 +└── mobile 
 +    ├── Apple 
 +    │   ├── iPadAir 
 +    │   │   └── info.txt 
 +    │   └── iPhone5S 
 +    │   ​    ​└── info.txt 
 +    └── Google 
 +        ├── Nexus4 
 +        │   └── info.txt 
 +        └── Nexus7 
 +            └── info.txt 
 + 
 +14 directories,​ 8 files
 </​code>​ </​code>​
  
-Adăugăm din nou regula de NAT, dar de data aceasta vom specifica să aplice politica de NAT pachetelor ce ies prin interfaț''​eth0'' ​a stației ''​host'':<​code bash> +<​hidden>​ 
-root@host:​~# ​iptables ​-t nat -A POSTROUTING -o eth0 -j MASQUERADE+<​solution>​ 
 +Pentru descărcarea inițială folosim comanda ​''​wget'' ​cu opțiunea ''​-r''​ apoi rulăm ''​tree'':<​code bash> 
 +root@host:​~# ​wget -r http://​red/​folder/​ 
 +[...] 
 +root@host:​~#​ tree red/ 
 +[...]
 </​code>​ </​code>​
-Verificați că regula a fost inserată:<code bash> +Ștergem vechea structură:<code bash> 
-root@host:​~# ​iptables ​-t nat -L POSTROUTING -n -v +root@host:​~# ​rm -fr folder/
-Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) +
- pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination +
-    0     0 MASQUERADE ​ all  --  *      eth0    0.0.0.0/​0 ​           0.0.0.0/0+
 </​code>​ </​code>​
-Observăm prezența interfaței ​''​eth0''​ în coloana ''​out''​. ​Înainte apărea caracterul ''​*'',​ adică orice interfață. +Ca să avem un output mai aranjat, rulăm următoarea comandă ​''​wget''​:<code bash> 
- +root@host:​~#​ wget -r -nH -np --reject "index.html*" http://​red/​folder/​ 
-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.+</​code>​ 
 +Se vor descărca astfel doar fișierele utilecele existente ​în structura de directoare de pe server. 
 +</​solution>​ 
 +</​hidden>​
rl/labs/09/contents/04.1385621038.txt.gz · Last modified: 2013/11/28 08:43 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