This shows you the differences between two versions of the page.
rl:labs:09:contents:06 [2014/12/11 13:45] mihai.carabas [06. [10p] Extindere port forwarding] |
rl:labs:09:contents:06 [2023/11/05 13:08] (current) vlad_iulius.nastase |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 06. [10p] Extindere port forwarding ==== | + | ==== 06. [5p] Accesare de pagini web folosind curl ==== |
- | Dorim să accesăm de pe stația ''host'' stațiile ''green'' și ''blue'' prin SSH. Vom folosi: | + | Utilitarul ''wget'' este folosit pentru a descărca fișiere prin intermediul web. Utilitarul ''curl'' îndeplinește un rol similar, doar că afișează în mod implicit conținutul resurselor la consolă. Este indicat pentru afișarea de pagini web (format HTML) sau alte fișiere în format text. |
- | * 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 fep.grid.pub.ro pe porturile respectiv ''20022'' și ''30022'' de pe stația ''host''. | + | Spre exemplu, dacă vrem să afișăm conținutul paginii de la adresa ''http://red/index.html'' vom folosi comanda:<code bash> |
+ | root@host:~# curl http://red/index.html | ||
+ | <h1>Laborator 10 - pe red</h1> | ||
+ | </code> | ||
+ | Observăm că output-ul comenzii ''curl'' este conținutul fișierului ''index.html'' descărcat anterior cu ''wget''. | ||
- | <note tip> | + | Un exemplu în mod particular util este aflarea adresei IP (externe) prin interogarea site-ului ''icanhazip.com'':<code bash> |
- | 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 și stația ''host''. | + | root@host:~# curl icanhazip.com |
- | </note> | + | 141.85.225.204 |
- | + | ||
- | <solution -hidden> | + | |
- | 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 | + | |
- | root@host:~# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 30022 -j DNAT --to-destination 192.168.3.2:22 | + | |
- | root@host:~# iptables -t nat -L PREROUTING -n -vChain PREROUTING (policy ACCEPT 0 packets, 0 bytes) | + | |
- | pkts bytes target prot opt in out source destination | + | |
- | 1 60 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:10022 to:192.168.1.2:22 | + | |
- | 0 0 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:20022 to:192.168.2.2:22 | + | |
- | 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> | </code> | ||
- | Verificăm conectivitatea către cele două noi stații de pe ''fep.grid.pub.ro'':<code bash> | + | Observăm că în urma interogării site-ului ''icanhazip.com'', output-ul comenzii ''curl'' este adresa noastră IP externă (rutabilă). |
- | razvan@einherjar:~$ ssh $ADRESA_IP_MV -p 20022 | + | |
- | root@host.local's password: | + | |
- | [...] | + | |
- | root@green:~# | + | |
- | razvan@einherjar:~$ ssh $ADRESA_IP_MV -p 30022 | + | În general output-ul întors de ''curl'' poate fi prelucrat folosind filtre de text (''grep'', ''cut'', ''tr'', ''sort'', ''awk'', ''sed'' etc.) pentru a obține informațiile de interes. |
- | root@host.local's password: | + | |
- | [...] | + | |
- | root@blue:~# | + | |
- | </code> | + | |
- | </solution> | + |