Differences

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

Link to this comparison view

rl:labs:08:contents:10 [2020/12/01 16:04]
iulia.florea removed
rl:labs:08:contents:10 [2024/10/29 14:41] (current)
eduard.dumistracel [10. [10p] Tunel SSH invers]
Line 1: Line 1:
-==== 10. [5pȘtergere reguli adăugate ​====+==== 10. [10pTunel SSH invers ​====
  
-Pentru a permite tot traficul către stația ''​green'',​ ștergeți pe stația ''​host''​ toate regulile ''​iptables'' ​din lanțul ''​FORWARD''​. Folosiți opțiunea ''​-F'' ​(//flush//) a comenzii ''​iptables''​Practic revenim ​la situația inițială, fără reguli ''​iptables'' ​pe stația ​''​host''​. Folosiți comanda ''​iptables -L FORWARD -n -v''​ pentru a valida ștergerea regulilor din lanțul ''​FORWARD''​.+Sunt situații în care dorim ca o stație să fie accesibilă ​din exterior, dar este dificil să obținem un port în gateway ​(pentru ​//port forwarding//): fie din rațiuni administrative,​ fie din motive de securitate. Pentru ​permite totuși o conexiune din exterior, se poate crea un tunel SSH inversTunel SSH invers înseamnă următorii pași: 
 +  * se creează o conexiune SSH de la o stație cu adresă IP privată la un server extern cu adresă IP publică, 
 +  * se deschide un port pe serverul cu adresă IP publică 
 +  * traficul către acel port este tunelat prin conexiunea SSH către ​stația ​cu adresă IP privată
  
-<​solution>​+Dorim să permitem conectarea la stația ''​red''​ din Internet pe SSH. Vom crea o conexiune SSH "​directă"​ de la stația ''​red''​ la contul vostru de pe ''​fep.grid.pub.ro''​. Prin această conexiune veți tunela invers traficul SSH către ''​red''​ permițând conexiunea din exterior. 
 + 
 +Pentru început, de pe stația ''​red''​ creăm o conexiune SSH directă către contul de pe ''​fep.grid.pub.ro''​ (identic cu cel de pe ''​cs.curs.pub.ro''​):​
 <code bash> <code bash>
-root@host:~# iptables ​-F FORWARD +root@red:~# ssh -l $USERNAME fep.grid.pub.ro -R 100XY:​localhost:​22 
-root@host:~# iptables ​-L FORWARD ​--v +[...] 
-Chain FORWARD (policy ACCEPT ​packets, ​bytes) +$USERNAME@fep.grid.pub.ro'​s password 
- pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination ​         +Last login: Mon Sep  9 09:55:37 2013 from 141.85.225.214 
-root@host:~# +[$USERNAME@fep-62-2 ~]$ ss -tln | grep 100XY 
-</​code>​ +tcp        ​     127.0.0.1:​100XY ​            ​0.0.0.0:​* ​                  ​LISTEN ​     ​ 
-</solution>​+tcp        0      0 ::​1:​100XY ​                  :::​* ​                       LISTEN 
 +</​code> ​unde ''​$USERNAME''​ este numele contului de pe ''​fep.grid.pub.ro''​/''​cs.curs.pub.ro'',​ iar ''​XY''​ este un identificator numeric unic al stației din laborator (dacă nu aveți pe monitorul stației din laborator un identificator discutați cu asistentul). Introduceți parola corespunzătoare contului vostru de pe ''​fep.grid.pub.ro''/''​cs.curs.pub.ro''​.
  
-După ștergerea regulilor verificați funcționarea serviciilor telnet, FTP, SSH prin conectare de la stația ​''​red'' ​la stația ''​green''​.+Observăm că se deschide portul ​''​100XY'' ​pe ''​fep.grid.pub.ro''​. Acest port va fi folosit pentru tunelul invers care ne va duce pe stația ''​red''​.
  
-<​solution>​ +Argumentul ''​-R 100XY:​localhost:​22''​ transmis comenzii ''​ssh''​ are următoarea semnificație
-<code bash> +   * ''​100XY''​ - portul de pe server pe care se vor asculta conexiuni care vor fi tunelate invers; 
-root@red:~# ftp green +   * ''​localhost''​ - stația către care vor fi trimise pachetele primite prin tunel (chiar stația locală); 
-Connected to green. +   * ''​22''​ - portul către care vor fi trimise pachetele primite prin tunel (adică portul SSH local).
-220 (vsFTPd 2.3.5+
-Name (green:root): ^C+
  
-root@red:~# ssh green +După ce alți colegi rulează comenzile similare vă veți putea conecta pe stația ''​red'' a acestora folosind portul deschis de ei; discutați cu alți colegi ca să vă spună ce port au deschis. Pentru aceasta, veți folosi stația fizică și vă veți conecta pe contul de pe ''​fep.grid.pub.ro''​.
-root@green'​s ​password: ​+
  
-root@red:~# telnet green +<note important>​ 
-Trying 192.168.2.2..+Pe ''​fep.grid.pub.ro''​ rulează un load balancer pentru SSHDin acest motiv este posibil să intrați pe "​celălalt"​ sistemVerificați că numele de host din prompt corespunde cu cel pe care l-ați folosit inițial la crearea tunelului: adică ambele să fie ''​fep-62-2''​ sau ''​fep-62-1''​. ​Pentru siguranță folosim și comanda ''​ss'':<​code bash> 
-Connected to green. +[$USERNAME_COLEG@fep-62-2 ~]$ ss -tln | grep 100ZT 
-Escape character is '^]'. +tcp        0      0 127.0.0.1:100ZT             0.0.0.0:​* ​                  ​LISTEN 
-Ubuntu 12.04.3 LTS +tcp        0      0 ::​1:​100ZT ​                  :::​* ​                       LISTEN
-green login^CConnection closed by foreign host.+
 </​code>​ </​code>​
-</solution>+În output-ul comenzii de mai sus ''​100ZT''​ este portul deschis de coleg. 
 +</note> 
 + 
 +După conectarea colegului la ''​fep'',​ realizăm o conexiune prin tunelul SSH pe portul ''​100ZT''​ deschis de coleg:<​code bash> 
 +[$USERNAME_COLEG@fep-62-2 ~]$ ssh -l student localhost -p 100ZT 
 +Warning: Permanently added '​[localhost]:​100ZT'​ (RSA) to the list of known hosts. 
 +root@localhost'​s password:  
 +[...] 
 +root@red:​~#​ 
 +</​code>​ 
 +În cadrul conexiunii ni se cere parola utilizatorului ''​root''​ de pe stația ''​red''​ (adică parola ''​student''​). 
 + 
 +În final ați accesat stația ''​red''​ a colegului, o stația cu adresă IP privată inaccesibilă din exterior. Pentru aceasta ați folosit o altă stație (care ar putea fi din altă rețea) pentru a se conecta la ''​fep.grid.pub.ro''​ și de acolo la ''​red''​ prin intermediul tunelului invers creat inițial. 
 + 
 +Creați un fișier pe stația ''​red''​ proaspăt accesată, iar colegul poate verifica faptul că, într-adevăr,​ ați accesat container-ul său prin tunelul SSH invers pe care l-a creat anterior.
rl/labs/08/contents/10.1606831455.txt.gz · Last modified: 2020/12/01 16:04 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