Differences

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

Link to this comparison view

rl:labs:08:contents:05 [2020/09/13 07:24]
iulia.florea
rl:labs:08:contents:05 [2023/11/05 12:55] (current)
vlad_iulius.nastase
Line 1: Line 1:
-==== 5. [10p] Download și upload de director folosind ''​scp'' ​====+==== 05. [10p] Port forwarding ​====
  
-**Indicație**: Pentru download-ul și upload-ul unui director folosiți opțiunea ''​-r''​ a comenzii ''​scp''​.+La exercițiile de până acum am folosit NAT pentru a permite stațiilor cu adrese private dintr-o rețea locală să acceseze Internetul. NAT poate fi folosit ​și pentru a permite unei stații din rețeaua locală să fie accesată din Internet, adică să se inițieze conexiuni din Internet. Acest proces poartă numele de //port forwarding//​.
  
-Vom folosi două directoare:​ +Dorim să putem accesa prin SSH, din Internet, stația ​''​red''​. Acest lucru nu este posibil în mod implicit întrucât stația ​''​red'' ​are adresă IP privată. Soluția este "​deschiderea unui port" ​pe gateway (adică ​stația ''​host''​) și redirectarea acestui port (//port forwarding//​) către portul aferent serviciului SSH (portul TCP ''​22''​de pe stația ''​red''​.
-  * directorul ​''​assignment/'' ​din directorul home al utilizatorului ​''​student'' ​de pe stația ''​host''​+
-  * directorul ''​solution/'' ​din directorul home al utilizatorului ''​corina''​ de pe stația ''​blue''​.+
  
-Din contul ''​corina''​ de pe stația ''​blue''​, **descărcați** directorul ​''​assignment/'' ​**din** directorul home al utilizatorului ​''​student'' ​de pe stația ''​host''​.+Vom aplica ​pe stația ''​host'' ​o regulă prin care redirectăm traficul ce vine către ​''​host'' ​pe portul ​''​10022'' ​către portul ''​22''​ (SSH) al stației ''​red'' ​(adresa IP ''​192.168.1.2''​):<​code bash> 
 +root@host:​~#​ iptables -t nat -A PREROUTING -p tcp --dport 10022 -j DNAT --to-destination 192.168.1.2:​22 
 +</​code>​
  
-<​hidden>​ +Verificăm aplicarea regulii prin consultarea lanțului ''​PREROUTING''​ din tabela NAT:<code bash> 
-<​solution>​ +root@host:~# iptables ​-t nat -L PREROUTING -n -v 
-<code bash> +Chain PREROUTING (policy ACCEPT 1 packets, 474 bytes) 
-corina@blue:~$ scp -r student@host:​assignment . + pkts bytes target ​    ​prot opt in     ​out ​    ​source ​              ​destination ​         
-quadratic.txt ​                                ​100% ​  ​17 ​    0.0KB/s   ​00:​00 ​    +    0     0 DNAT       ​tcp ​ --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:10022 to:​192.168.1.2:​22 
-cubic.txt                                     ​100% ​  ​24 ​    0.0KB/s   ​00:​00 ​    +</​code>​
-linear.txt                                    100%    8     0.0KB/s   00:00    ​+
  
-corina@blue:~$ ls +Pentru a verifica rezultatul de mai sus, de pe ''​fep.grid.pub.ro''​ deschidem un nou terminal și ne conectăm prin SSH folosind portul ''​10022''​ la stația ''​host'':<​code bash> 
-assignment ​ blue-file-10M.dat  ​host-file-10M.dat  solution+mihai.carabas@fep:~$ ssh -l student $ADRESA_IP_MV ​-p 10022  
 +root@192.168.138.129'​s password: 
 +[...] 
 +root@red:​~#​ 
 +</​code>​ unde ''​$ADRESA_IP_MV''​ este adresa IP a masinii virtuale obținută din dashboard-ul OpenStack. 
 +<spoiler Pentru rulare masina virtuala VMware local> 
 +Daca rulați VMware local, ''​$ADRESA_IP_MV''​ este adresa interfeței ''​eth0''​ a stației ''​host''​. 
 +</​spoiler>​ 
 + 
 +Observăm că în urma autentificării ne găsim pe stația ''​red''​. //Port forwarding//​ a funcționat. 
 + 
 +Folosim comanda de conectare SSH la stația ''​host''​ de pe stația ''​green'':<​code bash> 
 +root@green:​~#​ ssh -l student host -p 10022 
 +[...] 
 +root@red:​~# ​
 </​code>​ </​code>​
-</​solution>​ 
-</​hidden>​ 
  
-Din contul ​''​corina'' ​de pe stația ''​blue''​**uploadați** directorul ​''​solution/''​ **în** directorul home al utilizatorului ​''​student''​ de pe stația ''​host''​.+Observăm că și de pe stația ​''​green'' ​am accesat ​stația ''​red'' ​prin //port forwarding//​. Dorim să limităm //port forwarding//​ doar pentru conexiuni de la stațiile din Internet. Pentru aceasta trebuie să actualizăm regula de //port forwarding//​. 
 + 
 +Ștergeți regula de //port forwarding//​ și adăugați o regulă nouă care să permită ​**doar** stațiilor din Internet să acceseze prin //port forwarding//​ stația ''​red''​. 
 + 
 +<note tip> 
 +Aplicați regula doar pentru pachetele ce **sosesc** pe interfața ​''​eth0''​. Adică ''​eth0''​ este interfața de **intrare**. Folosiți opțiunea ''​-i''​ a ''​iptables''​ pentru precizarea interfeței de **intrare**. 
 +</​note>​ 
 + 
 +Realizați apoi din nou conectare SSH pe portul ''​10022'' ​al stației ​''​host'' ​de pe ''​fep.grid.pub.ro''​ și de pe stația ''​green''​. Dacă ați configurat corect, nu va merge conexiunea SSH de pe stația ''​green''​ dar va merge în continuare de pe ''​fep.grid.pub.ro''​. 
 <​hidden>​ <​hidden>​
 <​solution>​ <​solution>​
-<code bash> +Ștergem vechea regulă și aplicăm regula nouă, ce ține cont de interfața de intrare:<code bash> 
-corina@blue:~$ scp -r solution student@host: ​       +root@host:~# iptables ​-t nat -D PREROUTING -p tcp --dport 10022 -j DNAT --to-destination 192.168.1.2:​22 
-quadratic.txt                                 ​100% ​  ​15 ​    0.0KB/s   ​00:​00 ​    +root@host:~# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 10022 -j DNAT --to-destination 192.168.1.2:​22 
-cubic.txt                                     ​100% ​  ​23 ​    0.0KB/s   00:00     +root@host:​~#​ iptables -t nat -L PREROUTING -n -v 
-linear.txt                                    100%    6     0.0KB/s   00:00    ​+Chain PREROUTING (policy ACCEPT 1 packets, 474 bytes) 
 + pkts bytes target ​    ​prot opt in     ​out ​    ​source ​              ​destination ​         
 +    0     0 DNAT       ​tcp ​ --  eth0   ​* ​      0.0.0.0/0            0.0.0.0/0            tcp dpt:10022 to:192.168.1.2:22 
 +</code> 
 +Verificăm conectarea de la ''​fep.grid.pub.ro''​ și de la stația ''​green''​. Prima merge în continuare, dar a doua nu mai merge:<​code bash> 
 +mihai.carabas@fep:​~$ ssh $ADRESA_IP_VM -p 10022 
 +root@host.local'​password 
 +[...] 
 +root@red:~#
  
-corina@blue:~ssh student@host ls +root@green:~ssh -l student host -p 10022 
-assignment +ssh: connect to host host port 10022: Connection refused
-blue-file-10M.dat +
-file-100M-ftp.dat +
-file-100M-nc.dat +
-file-100M-scp.dat +
-host-file-10M.dat +
-solution+
 </​code>​ </​code>​
 </​solution>​ </​solution>​
 </​hidden>​ </​hidden>​
rl/labs/08/contents/05.1599971071.txt.gz · Last modified: 2020/09/13 07:24 by iulia.florea
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