Differences

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

Link to this comparison view

rl:labs:09:contents:10 [2013/11/26 15:25]
razvan.deaconescu created
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''​:<code bash> +root@host:~# apt-get install s-nail 
-root@red:~# ssh -l $USERNAME fep.grid.pub.ro -R 10022:​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 instalat, comanda ​''​mail'' ​este furnizată de acest pachet în mod implicit.
-[$USERNAME@fep-62-2 ~]$ netstat -tln | grep 10022 +
-tcp        0      0 127.0.0.1:​10022 ​            ​0.0.0.0:​* ​                  ​LISTEN ​      +
-tcp        0      0 ::​1:​10022 ​                  :::​* ​                       LISTEN +
-</​code> ​unde ''​$SUERNAME'' ​este numele contului de pe ''​fep.grid.pub.ro''​/''​cs.curs.pub.ro''​. Introduceți parola corespunzătoare.+
  
-Observăm că se deschide portul ​''​10022''​ 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''​.
  
-<​note ​important+<​note ​tip
-Dacă altcineva a rulat comanda de creare a tunelului, atunci a ocupat portul ​''​10022'' ​de pe server. În acest caz folosiți un alt port pe server (''​10122''​''​10222'' ​etc.).+Comanda ​''​mail'' ​din pachetul ​''​s-nail'' ​are opțiunea ​''​-r'' ​cu ajutorul căreia puteți preciza adresa de e-mail sursă care să fie folosită pentru trimiterea e-mail-ului.
 </​note>​ </​note>​
  
-Argumentul ''​-R 10022:​localhost:​22''​ transmis comenzii ''​ssh''​ are următoarea semnificație: +<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ți testa trimiterea de mail-uri în cadrul laboratorului.</​note>​
-   * ''​10022'' ​portul ​de pe server ​pe care se vor asculta conexiuni care vor fi tunelate invers; +
-   * ''​localhost''​ - stația către care vor fi trimise pachetele primite prin tunel (chiar stația locală); +
-   * ''​22'' ​portul către care vor fi trimise pachetele primite prin tunel (adică portul SSH local).+
  
-Discutați cu un coleg pentru ​se conecta pe ''​fep.grid.pub.ro''​ pe contul propriu și apoi de a se conecta către ''​red''​ folosind contul portul deschis mai sus (''​10022''​). Pentru aceasta, colegul va folosi ​stația ​fizică și se va conecta pe contul său la ''​fep.grid.pub.ro''​:<code bash> +<​note>​ 
-student@mjolnir:​~$ ssh -l $USERNAME_COLEG fep.grid.pub.ro +În forma sa simplă, protocolul SMTP nu face verificarea adresei sursă ​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.
-[...] +
-</code>+
  
-<note important>​ +Detalii despre fenomen șprevenirea //e-mail forging/​spoofing//​ găsiți [[http://www.cert.org/​tech_tips/​email_spoofing.html|aici]].
-Pe ''​fep.grid.pub.ro''​ rulează un load balancer pentru SSH. Din acest motiv este posibil să intraț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 școmanda ''​netstat''​:<code bash> +
-[$USERNAME_COLEG@fep-62-2 ~]$ netstat -tln | grep 10022 +
-tcp        0      0 127.0.0.1:​10022 ​            0.0.0.0:​* ​                  ​LISTEN +
-tcp        0      0 ::​1:​10022 ​                  :::​* ​                       LISTEN +
-</​code>​+
 </​note>​ </​note>​
  
-După conectarea colegului la ''​fep'',​ realizăm o conexiune prin tunelul SSH pe portul ''​10022''​ deschis:<code bash> +<​hidden>​ 
-[$USERNAME_COLEG@fep-62-2 ​~]ssh -l root localhost ​-p 10022 +<​solution>​ 
-Warning: Permanently added '​[localhost]:​10022'​ (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.1385472343.txt.gz · Last modified: 2013/11/26 15:25 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