Differences

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

Link to this comparison view

rl:labs:08:contents:08 [2021/12/06 19:36]
cosmin.prunaru [8. [10p] Permitere trafic SSH]
rl:labs:08:contents:08 [2023/11/05 12:56] (current)
vlad_iulius.nastase
Line 1: Line 1:
-==== 8. [10p] Permitere trafic SSH ====+==== 08. [10p] Port forwarding pentru telnet ​====
  
-În acest moment, traficul ​SSH către ​stația ''​green'' ​este blocat.+În cadrul exercițiilor anterioare am activat //port forwarding//​ pentru serviciul ​SSH. Dorim ca stațiile ''​red'', ​''​green'' ​și ''​blue''​ să fie accesibile și prin ''​telnet''​ din Internet astfel: 
 +   * ''​red''​ să poată fi accesat folosind portul 10023 
 +   * ''​green''​ să poată fi accesat folosind portul 20023 
 +   * ''​blue''​ să poată fi accesat folosind portul 30023
  
-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''​.+Realizați configurațiile necesare pentru a permite //port forwarding//​ pentru ​''​telnet'' ​așa cum este descris mai sus.
  
-<hidden>​ +<note
-<​solution+Serviciul ''​telnet''​ ascultă în mod implicit conexiuni pe portul ''​23''​. Puteți observa acest lucru cu ajutorul uneia dintre comenzile de mai jos:<​code>​ 
-<​code ​bash+user@host:~$ grep -w '​telnet'​ /etc/services 
-root@host:~# iptables ​-A FORWARD -s red -d green -p tcp --dport ssh -j ACCEPT +telnet 23/tcp 
-</code> +tfido 60177/tcp # fidonet EMSI over telnet
-</solution>​ +
-</hidden>+
  
-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. +user@host:~$ getent services telnet 
- +telnet ​               23/tcp
-<​hidden>​ +
-<​solution>​ +
-<code bash> +
-root@red:~# ssh green +
-^C+
 </​code>​ </​code>​
-</solution>​ +</note>
-</hidden>+
  
-Afișați lista de reguli ​''​iptables'' ​de pe stația ''​host''​. De ce nu a reușit conexiunea? Țineți cont de ordinea regulilor afișate; sunt parcurse secvențial.+<​note>​ 
 +Exercițiul este academic. Nu este indicată folosirea ​''​telnet'' ​cu atât mai puțin //port forwarding//​ peste ''​telnet'' ​din rațiuni de securitate. 
 +</​note>​
  
-<​hidden>​ +Testați de pe ''​fep.grid.pub.ro''​ folosind comanda ''​telnet'':​<code bash> 
-<​solution>​ +mihai.carabas@fep:~# telnet <adresa-ip-vm> <port-redirectat>​
-<code bash> +
-root@host:~# iptables ​-L FORWARD -n -v +
-root@host:​~#​ iptables -L FORWARD -n -v +
-Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) +
- pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination ​         +
-    6   360 REJECT ​    ​all ​ --  *      *       ​192.168.1.2 ​         0.0.0.0/​0 ​           reject-with icmp-port-unreachable +
-    0     0 ACCEPT ​    ​tcp ​ --  *      *       ​192.168.1.2 ​         192.168.2.2 ​         tcp dpt:22+
 </​code>​ </​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>​ 
-</​hidden>​ 
  
-Pentru rezolvarea problemei ștergeți regula ​''​iptables'' ​introdusă anterior și **inserați** regula ​pe stația ​''​host''​. Pentru inserare folosiți opțiunea ​''​-I'' ​ a comenzii ​''​iptables''​. Verificați că acum conexiunea SSH între ​''​red'' ​și ''​green'' ​va fi realizată.+unde ''​<​adresa-ip-vm>​'' ​este adresa IP a mașinii virtuale vizibilă de pe fep iar ''​<​port-redirectat>​'' ​este portul care face redirectarea pe stația ''​host'' ​(''​10023'' ​sau ''​20023'' ​sau ''​30023''​).
  
-<​note ​hint+<​note ​important
-Pentru a șterge ​regulă puteți folosi opțiunea ''​-D''​. +Există ​latență de circa 10-15 secunde din momentul conectării până la apariția promptului ​''​telnet''​. ​Așteptați să apară promptul și apoi autentificați-vă cu username ​''​student'' ​și parolă ​''​student'' ​pentru a valida conectivitatea.
- +
-Pentru a insera o regulă folosiți opțiunea ''​-I''​ urmată de numele lanțului (''​INPUT''​''​OUTPUT'' ​sau ''​FORWARD''​),​ urmată de indexul poziției unde doriți plasată regulă (1, 2, 3, ...) și apoi urmată de specificarea regulii.+
 </​note>​ </​note>​
  
 <​hidden>​ <​hidden>​
 <​solution>​ <​solution>​
-<code bash> +Adăugăm cele trei noi reguli pentru redirectarea ''​telnet''​ și validăm adăugarea lor:<code bash> 
-root@host:​~#​ iptables -D FORWARD ​-s red -d green -p tcp --dport ​ssh -j ACCEPT +root@host:​~#​ iptables -t nat -A PREROUTING ​-i eth0 -p tcp --dport ​10023 -j DNAT --to-destination 192.168.1.2:​23 
-root@host:​~#​ iptables -I FORWARD ​-s red -d green -p tcp --dport ​ssh -j ACCEPT +root@host:​~#​ iptables -t nat -A PREROUTING ​-i eth0 -p tcp --dport ​20023 -j DNAT --to-destination 192.168.2.2:​23 
- +root@host:​~#​ iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 30023 -j DNAT --to-destination 192.168.3.2:​23 
-root@host:​~#​ iptables -L FORWARD ​-n -+root@host:​~#​ iptables ​-t nat -L PREROUTING ​-n -vChain PREROUTING ​(policy ACCEPT 0 packets, 0 bytes)
-Chain FORWARD ​(policy ACCEPT 0 packets, 0 bytes)+
  pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination ​          pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination ​        
-    ​0     0 ACCEPT ​    tcp  --  ​*      ​*       ​192.168.1.2 ​         192.168.2.2 ​         tcp dpt:22 +    ​2   120 DNAT       tcp  --  ​eth0   *       0.0.0.0/​0 ​           0.0.0.0/​0 ​           tcp dpt:10022 to:192.168.1.2:22 
-    ​6   360 REJECT ​    ​all  ​--  ​*      ​*       ​192.168.1.2 ​         0.0.0.0/​0 ​           ​reject-with icmp-port-unreachable ​   ​+    3   180 DNAT       ​tcp ​ --  eth0   ​* ​      ​0.0.0.0/​0 ​           0.0.0.0/​0 ​           tcp dpt:20022 to:192.168.2.2:22 
 +    8   480 DNAT       ​tcp ​ --  eth0   ​* ​      ​0.0.0.0/​0 ​           0.0.0.0/​0 ​           ​tcp dpt:30022 to:​192.168.3.2:22 
 +    ​    ​0 DNAT       ​tcp ​ ​--  ​eth0   *       0.0.0.0/​0 ​           0.0.0.0/​0 ​           tcp dpt:10023 to:192.168.1.2:23 
 +    0     0 DNAT       ​tcp ​ --  eth0   ​* ​      0.0.0.0/​0 ​           ​0.0.0.0/​0 ​           tcp dpt:20023 to:​192.168.2.2:​23 
 +    0     0 DNAT       ​tcp  ​--  ​eth0 ​  ​* ​      ​0.0.0.0/​0 ​           0.0.0.0/​0 ​           tcp dpt:30023 to:​192.168.3.2:​23 
 +</​code>​
  
-root@red:~# ssh -l student green +Testăm aplicarea celor trei reguli prin folosirea comenzii ''​telnet''​ pe stația fizică către porturile respectiv ''​10023'',​ ''​20023'',​ ''​30023'':<​code bash> 
-student@green'​s password:  +razvan@einherjar:~$ telnet $ADRESA_IP_VM 10023 
-Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.2.0-53-generic-pae i686)+[...] 
 +red login: ​student 
 +Password:  
 +[...
 +student@red:​~$
  
- * Documentation ​https://​help.ubuntu.com/ +razvan@einherjar:~$ telnet $ADRESA_IP_VM 20023 
-Last login: ​Thu Nov 14 14:18:53 2013 from 192.168.1.2 +[...] 
-student@green:​~$ ​logout +green login: ​student 
-Connection to green closed.+Password 
 +[...] 
 +student@green:​~$ 
 + 
 +razvan@einherjar:​~$ telnet $ADRESA_IP_VM 30023 
 +[...] 
 +blue login: student 
 +Password:  
 +[...] 
 +student@blue:​~$
 </​code>​ </​code>​
 </​solution>​ </​solution>​
 </​hidden>​ </​hidden>​
 +
rl/labs/08/contents/08.1638812196.txt.gz · Last modified: 2021/12/06 19:36 by cosmin.prunaru
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