This shows you the differences between two versions of the page.
rl:labs:09:contents:06 [2020/09/01 18:20] iulia.florea |
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 din Internet/exterior stațiile ''green'' și ''blue'' prin SSH folosindu-ne de stația ''host''. 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''. | + | |
+ | 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''. | ||
- | Pe modelul [[:rl:labs:09:contents:05|exercițiului anterior]], realizați configurarea necesară pentru această extindere de port forwarding. Verificați prin conectare de pe ''fep.grid.pub.ro'' (echivalentul Internet-ului/exteriorului) pe porturile respectiv ''20022'' și ''30022'' de pe stația ''host''. | + | Un exemplu în mod particular util este aflarea adresei IP (externe) prin interogarea site-ului ''icanhazip.com'':<code bash> |
- | + | root@host:~# curl icanhazip.com | |
- | <note tip> | + | 141.85.225.204 |
- | 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''. | + | |
- | </note> | + | |
- | + | ||
- | <hidden> | + | |
- | <solution> | + | |
- | 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 -v | + | |
- | Chain 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> | + | |
- | </hidden> | + |