Differences

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

Link to this comparison view

rl:labs:09:contents:10 [2013/11/29 10:22]
razvan.deaconescu [10. [10p] Tunel SSH invers]
rl:labs:09:contents:10 [2024/12/04 17:52] (current)
laura.ruse [10. [15p] Trimitere e-mail cu adresă personalizată din linia de comandă]
Line 1: Line 1:
-==== 10. [10pTunel SSH invers ​====+==== 10. [15pTrimitere e-mail cu adresă personalizată din linia de comandă ​====
  
-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 securitatePentru a permite totuși o conexiune din exterior, se poate crea un tunel SSH invers. Tunel SSH invers înseamnă următorii pași: +La exercițiul anterior, mesajul primit apare ca sosind ​de la ''​bogdan@host''​Nu este foarte elegant ​și am vrea să schimbăm adresa expeditorului.
-  * 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ă+
  
-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 a specifica adresa expeditorului vom folosi comanda ​''​mail'' ​disponibilă în pachetul ​''​s-nail'' ​care permite ​această ​opțiune. Este posibil ca pachetul ​''​s-nail'' ​să fie deja instalat ​pe ''​host''​. Dacă nu este instalat, atunci puteți folosi următoarea comandă pentru a-l instala: 
- +<code bash> 
-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.r''​:<code bash> +root@host:~# apt-get install s-nail 
-root@red:~# ssh -l $USERNAME fep.grid.pub.ro -R 100XY:​localhost:​22 ​  +Reading package lists... Done 
 +Building dependency tree 
 [...] [...]
-$USERNAME@fep.grid.pub.ro'​s password:  +</​code>​ 
-Last login: Mon Sep  9 09:55:37 2013 from 141.85.225.214 +Odată ce pachetul ​''​s-nail'' ​a fost instalatcomanda ​''​mail''​ este furnizată de acest pachet în mod implicit.
-[$USERNAME@fep-62-2 ~]$ netstat -tln | grep 100XY +
-tcp        0      0 127.0.0.1:​100XY ​            ​0.0.0.0:​* ​                  ​LISTEN ​      +
-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''​.+
  
-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''​.+Trimiteți un mesaj la adresa voastră de e-mail astfel încât expeditorul mesajului să fie ''​bogdan.georgescu@rl.cs.pub.ro''​.
  
-Argumentul ​''​-R 100XY:​localhost:​22'' ​transmis comenzii ​''​ssh''​ are următoarea semnificație: +<note tip> 
-   * ''​100XY''​ - portul de pe server pe care se vor asculta conexiuni care vor fi tunelate invers; +Comanda ​''​mail'' ​din pachetul ​''​s-nail''​ are opțiunea ''​-r'' ​cu ajutorul ​reia puteți preciza adresa de e-mail sursă care să fie folosită pentru trimiterea e-mail-ului. 
-   ​* ​''​localhost''​ - stația ​tre care vor fi trimise pachetele primite prin tunel (chiar stația locală); +</​note>​
-   * ''​22'' ​portul către care vor fi trimise pachetele primite prin tunel (adică portul SSH local).+
  
-Discutați cu un coleg pentru ​a se conecta ​pe ''​fep.grid.pub.ro''​ pe contul propriu șapoi de a se conecta către ''​red''​ folosind contul portul deschis mai sus (''​100XY''​). Pentru aceasta, colegul va folosi stația fizică și se va conecta pe contul său la ''​fep.grid.pub.ro'':<​code bash> +<note tip>Puteți folosi ​un serviciu precum [[https://​temp-mail.org/​|Temp Mail]] ​pentru ​obținerea unei adrese de mail temporare ​pe care putețtesta trimiterea ​de mail-uri în cadrul laboratorului.</note>
-student@mjolnir:​~$ ssh -l $USERNAME_COLEG fep.grid.pub.ro +
-[...] +
-</codeunde ''​$USERNAME_COLEG''​ este numele contului de pe ''​fep.grid.pub.ro''/''​cs.curs.pub.ro''​ al colegului.+
  
-<​note ​important+<​note>​ 
-Pe ''​fep.grid.pub.ro''​ rulează un load balancer pentru SSHDin acest motiv este posibil să intrați pe "celălalt" sistem. Verificați că numele ​de host din promtp 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 ''​netstat'':<​code bash> +În forma sa simplă, protocolul SMTP nu face verificarea adresei sursă a utilizatoruluiDacă utilizatorul se conectează la //Mail Transfer Agent// de pe o stație considerată sigură (de exemplu chiar de pe stația locală -- //​localhost//​),​ atunci acesta poate folosi orice adresă. Pentru ​autentificare se folosește SMTP cu suport ​[[http://en.wikipedia.org/​wiki/​Simple_Authentication_and_Security_Layer|SASL]],​ care obligă autentificarea utilizatorului înainte de a folosi serviciul SMTP
-[$USERNAME_COLEG@fep-62-2 ~]$ netstat -tln | grep 100XY + 
-tcp        0      0 127.0.0.1:100XY             0.0.0.0:*                   ​LISTEN +Detalii despre fenomen și prevenirea ​//e-mail forging/​spoofing//​ găsiți [[http://​www.cert.org/​tech_tips/​email_spoofing.html|aici]].
-tcp        0      0 ::​1:​100XY ​                  :::​* ​                       LISTEN +
-</code>+
 </​note>​ </​note>​
  
-După conectarea colegului la ''​fep'',​ realizăm o conexiune prin tunelul SSH pe portul ''​100XY''​ deschis:<code bash> +<​hidden>​ 
-[$USERNAME_COLEG@fep-62-2 ​~]ssh -l root localhost ​-p 100XY +<​solution>​ 
-Warning: Permanently added '​[localhost]:​100XY'​ (RSA) to the list of known hosts. +Folosim comanda de mai jos pentru a transmite e-mail cu adresa de e-mail sursă schimbată:<code bash> 
-root@localhost'​s password:  +bogdan@host:~$ echo "Un nou e-mail de la RL" | mail -s "Test RL imbunatatit"​ -r bogdan.georgescu@rl.cs.pub.ro adresa.de.email@gmail.com
-[...+
-root@red:~#+
 </​code>​ </​code>​
-În cadrul conexiunii ni se cere parola utilizatorului ''​root''​ de pe stația ''​red''​ (adică parola ''​student''​). +La destinataradresa expeditorului va fi afișată ca fiind ''​bogdan.georgescu@rl.cs.pub.ro''​. 
- +</​solution>​ 
-În final colegul a accesat stația ''​red''​o stația cu adresă IP privată inaccesibilă din exterior. Pentru aceasta a 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.+</​hidden>​
rl/labs/09/contents/10.1385713374.txt.gz · Last modified: 2013/11/29 10:22 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