Differences

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

Link to this comparison view

rl:labs:08:contents:07 [2013/09/18 19:01]
razvan.deaconescu
rl:labs:08:contents:07 [2023/11/05 12:56] (current)
vlad_iulius.nastase
Line 1: Line 1:
-==== 7. Permitere trafic SSH ====+==== 07. [10p] Format de pachete la port forwarding ​====
  
-În acest moment, traficul ​de la stația ''​red'' ​către celelalte stații din rețea este blocat.+La exercițiul [[rl:​labs:​09:​contents:​03|]] am observat cum se modifică adresa IP sursă și portul sursă în cazul translatării ​de adrese. La port forwarding vom observa cum se modifică adresa IP destinație (de aici și numele DNAT: ''​Destination NAT''​).
  
-Dorim să permitem ​traficul SSH de la stația ''​red'' ​către ​stația ''​green''​. ​Adăugați o regulă corespunzătoare ​pe stația ''​host''​+Vom captura ​traficul SSH inițiat din exterior către ​stația ''​red''​, prin intermediul portului ''​10022''​ al stației ''​host''​. ​Este vorba de traficul înainte de //port forwarding//​. Pentru aceasta, ​pe stația ''​host'' ​vom folosi comanda<code bash> 
- +root@host:​~# ​tcpdump ​--i eth0 tcp dst port 10022 -w /​home/​student/​portfwd_eth0_output.pcap
-<​solution -hidden>​ +
-<code bash> +
-root@host:​~# ​iptables ​-A FORWARD ​-s red -d green -p tcp --dport ssh -j ACCEPT+
 </​code>​ </​code>​
-</​solution>​ 
  
-După ce ați adăugat regulaîncercați realizarea unei conexiuni SSH de la stația ''​red'' ​la stația ''​green''​. Observați ​că nu se realizează conexiunea. +Pe un alt terminaltot pe stația ''​host'' ​capturăm traficul **după** //port forwarding//,​ pe interfaț''​veth-red''​ către portul SSH (''​22''​) al stației redPe stația ''​host''​ folosim comanda<code bash> 
- +root@host:~# tcpdump -n -i veth-red tcp dst port 22 -w /​home/​student/​portfwd_veth-red_output.pcap
-<​solution -hidden>​ +
-<code bash> +
-root@red:~# ssh green +
-^C+
 </​code>​ </​code>​
-</​solution>​ 
  
-Afișați lista de reguli ​''​iptables'' ​de pe stația ''​host'':<​code bash> +Pentru ​genera trafic, ​de pe ''​fep.grid.pub.ro'' ​realizăm o conexiune SSH la stația ''​host''​ pe portul ''​10022'',​ conexiune ce va fi redirectată la portul ''​22''​ al stației ''​red'':<​code bash> 
-iptables ​-L FORWARD ​-n -v+mihai.carabas@fep:​~$ ssh -l student $ADRESA_IP_VM ​-p 10022 
 +root@host.local'​s password:  
 +[...] 
 +root@red:​~# ​
 </​code>​ </​code>​
-De ce nu a reușit conexiunea? Țineți cont de ordinea regulilor afișate; sunt parcurse secvențial. 
  
-<solution ​-hidden>+<note important>​ 
 +Pentru a vizualiza capturile salvate în cele două fișiere copiați-le la voi local (pe calculatorul vostru) folosind ''​scp''​ și deschideți-le cu utilitarul ''​wireshark''​. 
 + 
 +<spoiler (click pentru expandare) Copiere fișiere din VM pe local>
 <code bash> <code bash>
-root@host:​~#​ iptables -L FORWARD -n -v 
-Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) 
- pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination ​         
-    3   252 DROP       ​all ​ --  *      *       ​192.168.1.2 ​         0.0.0.0/​0 ​           
-    0     0 ACCEPT ​    ​tcp ​ --  *      *       ​192.168.1.2 ​         192.168.2.2 ​         tcp dpt:22 
-</​code>​ 
-Regulile sunt parcurse secvențial. Conform primei reguli, tot traficul transmis de stația ''​red''​ este blocat. A doua regulă nu mai este parcursă. Trebuie să mutăm a doua regulă pe prima poziție. 
-</​solution>​ 
  
-Pentru rezolvarea problemei ștergețregula ''​iptables''​ introdusă anterior ​și **inserați** regula pe stația ''​host''​Pentru inserare folosițopțiunea ''​-I'' ​ a comenzii ''​iptables''​Verificați că acum conexiunea SSH între ''​red''​ și ''​green''​ va fi realizată.+$USER_FEP@fep:​~$ scp -~/​.ssh/​openstack.key student@$ADRESA_IP_VM:​portfwd_eth0_output.pcap ./   # Dacă fișierul pf_eth0_output.pcap se află în directorul /​home/​student/​ 
 +$USER_FEP@fep:​~$ scp -~/​.ssh/​openstack.key student@$ADRESA_IP_VM:​portfwd_veth-red_output.pcap ./   # Dacă fișierul pf_veth-red_output.pcap se află în directorul /​home/​student/​
  
-<​solution -hidden>​ +student@lab-EG207-EG208:~$ scp $USER_FEP@fep.grid.pub.ro:​portfwd_eth0_output.pcap ./  ​Dacă fișierul portfwd_eth0_output.pcap se află în home-ul utilizatorului de pe fep. 
-<code bash> +student@lab-EG207-EG208:~$ scp $USER_FEP@fep.grid.pub.ro:​portfwd_veth-red_output.pcap ./  # Dacă fișierul portfwd_veth-red_output.pcap se află în home-ul utilizatorului de pe fep.
-root@host:~# iptables ​-D FORWARD ​-s red -d green -p tcp --dport ssh -j ACCEPT+
  
-root@host:​~#​ iptables -L FORWARD -n -v +</​code>​ 
-Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) +</​spoiler> ​ 
- pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination ​         +</note>
-    0     0 ACCEPT ​    ​tcp ​ --  *      *       ​192.168.1.2 ​         192.168.2.2 ​         tcp dpt:22 +
-    ​6 ​  480 DROP       ​all ​ --  *      *       ​192.168.1.2 ​         0.0.0.0/0     +
  
-root@red:~# ssh green +<​note>​ 
-root@green'​s password:+Exemplu instalare și pornire ''​Wireshark''​ (pe sisteme Debian): 
 +<code bash> 
 +student@mjolnir:~$ apt-get install wireshark 
 +student@mjolnir:~$ wireshark portfwd_eth0_output.pcap & 
 +student@mjolnir:​~$ wireshark portfwd_veth-red_output.pcap &
 </​code>​ </​code>​
-</solution>+</note> 
 + 
 +În capturile realizate de comenzile de mai sus, observăm cum se translatează adresa IP și portul destinație din perechea ''<​$ADRESA_IP_VM,​ 10022>''​ în perechea ''<​192.168.1.2,​ 22>''​.
rl/labs/08/contents/07.1379520086.txt.gz · Last modified: 2013/09/18 19:01 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