Differences

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

Link to this comparison view

rl:labs:09:contents:05 [2013/11/26 11:30]
razvan.deaconescu [05. Exercițiu port forwarding (DNAT)]
rl:labs:09:contents:05 [2023/11/05 13:08] (current)
vlad_iulius.nastase
Line 1: Line 1:
-==== 06Extindere port forwarding ​====+==== 05[5p] Accesare URL conținând caractere speciale ​====
  
-Dorim să accesăm de pe stația ''​host''​ stațiile ''​green''​ și ''​blue''​ prin SSH. Vom folosi: +Unele URL-uri pot avea caractere interpretate special în shell rezultând într-un comportament ciudat la descărcare.
-  * portul ''​20022''​ de pe stația ''​host''​ pentru a face //port forwarding// ​ pe portul 22 al stației ''​green'';​ +
-  * portul ''​30022''​ de pe stația ''​host''​ pentru a face //port forwarding// ​ pe portul 22 al stației ''​blue''​.+
  
-Realizați configurarea necesară pentru această extindere de port forwarding. Verificați prin conectare de pe stația ​fizică pe porturile respectiv ​''​20022'' ​și ''​30022''​ de pe stația ​''​host''​.+Pentru a evidenția acest lucru, ​pe stația ''​host'' ​folosițpentru a descărca resursa de la link-ul ​''​%%http://​localhost/​login.php?​name=Lab10&​email=rl@upb.ro%%''​:<code bash> 
 +root@host:~#  wget http://​localhost/​login.php?​name=Lab10&​email=rl@upb.ro 
 +[1] 3284 
 +root@host:​~#​ --2013-12-05 09:​02:​10-- ​ http://​localhost/​login.php?​name=Lab10 
 +Resolving localhost (localhost)... 127.0.0.1 
 +Connecting to localhost (localhost)|127.0.0.1|:​80... connected. 
 +HTTP request sent, awaiting response... 200 OK 
 +Length: 72 [text/​html] 
 +Saving to: `login.php?​name=Lab10' 
 + 
 +100%[======================================>​] 72          --.-K/​s ​  in 0s       
 + 
 +2013-12-05 09:02:10 (13.3 MB/s) - `login.php?​name=Lab10' ​saved [72/72] 
 + 
 + 
 +[1]+  Done                    wget http://​localhost/​login.php?​name=Lab10 
 +root@host:​~#​ 
 +</​code>​
  
 <note tip> <note tip>
-Pentru a afla adresele IP ale stațiilor ''​green''​ și ''​blue''​ rulați comanda ​de afișare a configurării interfeței ''​eth0''​ pe fiecare stație. Verificați, pentru ​siguranța, faptul că există conectivitate între ele șstația ​''​host''​.+După output-ul comenzii ​de mai, pentru a vă reapărea prompt-ul consoleiapăsațpe ''​Enter'' ​ca să vă reapară prompt-ul.
 </​note>​ </​note>​
  
-<​solution -hidden>​ +Observați că procesul intră în background (linia cu ''​[1] 3284''​ înseamnă că a fost pornit un job). Acest lucru se întâmplă întrucât simbolul ''&''​ (//ampersand//) nu este escapat și se folosește rolul său special din shell: pornirea unui proces în background. Se observă din output că este separată comanda înainte de ''&'',​ adică rezultă comanda ''​wget http://​localhost/​login.php?​name=Lab10''​. 
-Adăugăm cele două reguli noi pentru ​//port forwarding//:<code bash> + 
-root@host:​~# ​iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 20022 -j DNAT --to-destination 192.168.2.2:22 +Ștergeți fișierul descărcat prin comanda de mai sus:<code bash> 
-root@host:​~# ​iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 30022 -j DNAT --to-destination 192.168.3.2:22 +root@host:​~# ​ls 
-root@host:​~# ​iptables -t nat -L PREROUTING -n -vChain PREROUTING (policy ACCEPT 0 packets, 0 bytes) +PacketTracer5 ​ folder ​ login.php?​name=Lab10 
- pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination ​         +root@host:​~# ​rm login.php\?​name\=Lab10 
-    ​1 ​   60 DNAT       ​tcp  ​--  eth0   ​* ​      0.0.0.0/0            0.0.0.0/0            tcp dpt:10022 to:192.168.1.2:22 +root@host:​~# ​ls 
-    ​0 ​    0 DNAT       ​tcp ​ --  eth0   ​* ​      0.0.0.0/0            0.0.0.0/0            tcp dpt:20022 to:192.168.2.2:22 +PacketTracer5 ​ folder 
-    ​0 ​    0 DNAT       ​tcp ​ --  eth0   ​* ​      0.0.0.0/0            0.0.0.0/0            tcp dpt:30022 to:192.168.3.2:22+</​code>​ 
 + 
 +Folosiți [[http://​steve-parker.org/sh/escape.shtml|escaping în shell]] pentru a folosi în mod corect URL-ul și pentru a descărca resursa disponibilă la acel link
 + 
 +Fișierul final descărcat trebuie să arate în acest fel (să conțină //Lab10// și //rl@upb.ro//)Folosiți ''​cat log<​TAB>''​ pentru rula comanda de mai jos, ca să obțineți ​//​autocompletion//​ din partea shell-ului (''<​TAB>''​ înseamnă apăsarea tastei ''​TAB''​):<code bash> 
 +root@host:~# cat login.php\?​name\=Lab10\&​email\=rl@upb.ro 
 +<​html>​ 
 +<​body>​ 
 + 
 +Welcome Lab10<​br>​ 
 +Your email address is: rl@upb.ro 
 +</body> 
 +</html> 
 +</​code>​ 
 + 
 +<​hidden>​ 
 +<​solution>​ 
 +Cel mai simplu este să plasăm întregul URL între apostroafe:<code bash> 
 +root@host:~# wget '​http://​localhost/​login.php?​name=Lab10&​email=rl@upb.ro'
 </​code>​ </​code>​
-Verificăm conectivitatea către cele două noi stații ​de pe stația fizică:<code bash> +Resursa ​de la acel URL se va descărca în mod corect:<code bash> 
-razvan@einherjar:​~$ ssh $ADRESA_IP_MV -p 20022 +root@host:~# cat /​var/​www/​login.php  
-root@host.local'​s password +<​html>​ 
-[...] +<​body>​
-root@green:​~# ​+
  
-razvan@einherjar:​~ssh $ADRESA_IP_MV -p 30022 +Welcome <?php echo $_GET["​name"​];​ ?><​br>​ 
-root@host.local'​s password +Your email address is<?php echo $_GET["​email"​]; ?> 
-[...+</​body>​ 
-root@blue:​~#​+</​html>​
 </​code>​ </​code>​
 </​solution>​ </​solution>​
 +</​hidden>​
rl/labs/09/contents/05.1385458255.txt.gz · Last modified: 2013/11/26 11:30 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