Differences

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

Link to this comparison view

rl:labs:08:contents:06 [2020/12/01 10:56]
iulia.florea
rl:labs:08:contents:06 [2023/11/05 12:55] (current)
vlad_iulius.nastase
Line 1: Line 1:
-==== 6. [5pBlocare servicii necriptate ​====+==== 06. [10pExtindere port forwarding ​====
  
-După cum ați observat la punctul anterior, traficul pentru protocoalele telnet ​și FTP este trafic în clar, necriptat, putându-se afla cu ușurință credențialele unui anumit cont și comenzile rulate.+Dorim să accesăm din Internet/​exterior stațiile ''​green'' ​și ''​blue''​ prin SSH folosindu-ne de stația ''​host''​. Vom folosi: 
 +  * portul ''​20022''​ de pe stația ''​host''​ pentru a face //port forwarding// ​ pe portul 22 al stației ''​green'';​ 
 +  * portul ''​30022''​ de pe stația ''​host''​ pentru a face //port forwarding// ​ pe portul 22 al stației ''​blue''​.
  
-Ne propunem să blocăm accesul de la stația ''​red''​ către stația ''​green''​ pentru aceste servicii, configurând ruterul dintre cele două stații, adică stația ''​host''​. Practic vom configura pe stația ''​host''​ opțiuni de firewall cu ajutorul utilitarului ''​iptables''​. 
  
-Autentificați-vă prin SSH ca ''​root''​ pe stația ''​host''​. Pentru a bloca accesul la serviciul telnet (port 23) destinat stației ''​green'',​ rulați pe stația ''​host''​ comanda de mai jos. Comanda adaugă regula ''​iptables''​ corespunzătoare.<​code bash> +Pe modelul [[:rl:labs:09:contents:05|exercițiului anterior]]realizați configurarea necesară pentru ​această extindere de port forwardingVerificați prin conectare de pe ''​fep.grid.pub.ro''​ (echivalentul Internet-ului/exteriorului) pe porturile respectiv ​''​20022''​ și ''​30022'' ​de pe stația ''​host''​.
-root@host:~# iptables -A FORWARD -d green -p tcp --dport telnet -j REJECT +
-</​code>​ +
- +
-Pentru a verifica adăugarea regulii de mai sus, rulați pe stația ''​host''​ comanda<​code bash> +
-root@host:~# iptables -L FORWARD +
-Chain FORWARD (policy ACCEPT) +
-target ​    prot opt source ​              ​destination ​         +
-REJECT ​    ​tcp ​ --  anywhere ​            ​green ​               tcp dpt:telnet reject-with icmp-port-unreachable +
-</​code>​ +
- +
-Pentru a afișa informații și despre pachetele prelucrate și interfețele folosite, rulați pe stația ''​host''​ comanda<​code bash> +
-root@host:~# iptables -L FORWARD -v +
-Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) +
- pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination ​         +
-    0     0 REJECT ​    ​tcp ​ --  any    any     ​anywhere ​            ​green ​               tcp dpt:telnet reject-with icmp-port-unreachable +
-</​code>​ +
- +
-Pentru a afișa informații în format numeric (pentru nume de stații și nume de porturi)rulați pe stația ''​host''​ comanda<​code bash> +
-root@host:​~#​ iptables -L FORWARD -v -n +
-Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) +
- pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination ​         +
-    0     0 REJECT ​    ​tcp ​ --  *      *       ​0.0.0.0/​0 ​           192.168.2.2 ​         tcp dpt:23 reject-with icmp-port-unreachable +
-</​code>​ +
-De acum înainte recomandăm folosirea acestor opțiuni (''​-v -n''​) ​pentru ​listarea regulilor ''​iptables''​. +
- +
-Pentru a verifica blocarea traficului telnet către ''​green'',​ rulați pe stația ​''​red''​ comanda<​code bash> +
-telnet green +
-</​code>​ +
- +
-Vă apare un mesaj de forma<​code>​ +
-Trying 192.168.2.2... +
-telnet: Unable to connect to remote host: Connection refused +
-</​code>​ semnificând faptul că se încearcă realizarea conexiunii dar conexiunea este respinsă +
- +
-Pentru a vedea că regula de blocare a funcționat,​ rulați din nou pe stația ​''​host''​ comanda<​code bash> +
-root@host:​~#​ iptables -L FORWARD -v -n +
-Chain FORWARD ​(policy ACCEPT 0 packets, 0 bytes) +
- pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination ​         +
-    2   120 REJECT ​    ​tcp  ​--  *      *       ​0.0.0.0/0            192.168.2.2 ​         tcp dpt:23 reject-with icmp-port-unreachable +
-</​code>​ +
-Observați, în output-ul comenzii, că există acum valori diferite de 0 în coloana ''​pkts''​ și ''​bytes'',​ semn că au fost pachete prelucrate de această regulă, deci blocate. +
- +
-Pentru a verifica funcționarea în continuare a altor conexiuni (diferite de telnetde la ''​red''​ la ''​green'',​ rulați ​pe stația ​''​red'' ​comenzile<​code bash> +
-ftp green +
-ssh -l student green +
-</​code>​ +
- +
-Dorim să blocăm ​și celălalt serviciu necriptat, FTP. Adăugați o regulă ​''​iptables'' ​similară pentru a bloca, ​pe stația ''​host''​, traficul FTP destinat stației ''​green''​. După adăugarea regulii folosiți ''​iptables -L FORWARD -n -v''​ pentru a valida adăugarea regulii.+
  
 <note tip> <note tip>
-Pentru ​această regulă puteți transmite argumentul ​''​21'' ​opțiunii ​''​%%--%%dport'' ​sau chiar numele ​''​ftp''​. ​Asocierea între port (număr) șprotocol (nume) se găsește în fișierul ​''​/​etc/​services''​.+Pentru ​a afla adresele IP ale stațiilor ''​green'' ​și ''​blue'' ​rulați comanda de afișare a configurării interfeței ​''​eth0'' ​pe fiecare stațieVerificați, pentru siguranța, faptul că există conectivitate între ele și stația ​''​host''​.
 </​note>​ </​note>​
- 
-De pe stația ''​red''​ verificați blocarea traficului FTP către stația green folosind comanda<​code bash> 
-ftp green 
-</​code>​ 
  
 <​hidden>​ <​hidden>​
 <​solution>​ <​solution>​
-<code bash> +Adăugăm cele două reguli noi pentru //port forwarding//:​<code bash> 
-root@host:​~#​ iptables -A FORWARD ​-d green -p tcp --dport ​ftp -j DROP +root@host:​~#​ iptables ​-t nat -A PREROUTING ​-i eth0 -p tcp --dport ​20022 -j DNAT --to-destination 192.168.2.2:​22 
-root@host:​~#​ iptables -L FORWARD ​-n -v +root@host:​~#​ iptables ​-t nat -A PREROUTING -i eth0 -p tcp --dport 30022 -j DNAT --to-destination 192.168.3.2:​22 
-Chain FORWARD ​(policy ACCEPT ​94 packets, ​10307 bytes)+root@host:​~#​ iptables -t nat -L PREROUTING ​-n -v 
 +Chain PREROUTING ​(policy ACCEPT ​packets, ​bytes)
  pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination ​          pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination ​        
-    ​2   120 DROP       tcp  --  ​*      ​*       ​0.0.0.0/​0 ​           192.168.2.2          tcp dpt:23 +    ​1    60 DNAT       tcp  --  ​eth0   *       ​0.0.0.0/​0 ​           ​0.0.0.0/​0 ​           tcp dpt:10022 to:192.168.1.2:22 
-    0     ​0 ​DROP       tcp  --  ​*      ​*       ​0.0.0.0/​0 ​           192.168.2.2 ​         tcp dpt:21+    0     ​0 ​DNAT       tcp  --  ​eth0   *       ​0.0.0.0/​0 ​           ​0.0.0.0/​0 ​           tcp dpt:20022 to:192.168.2.2:22 
 +    0     0 DNAT       ​tcp ​ --  eth0   ​* ​      ​0.0.0.0/​0 ​           0.0.0.0/​0 ​           ​tcp dpt:30022 to:​192.168.3.2:​22 
 +</​code>​ 
 +Verificăm conectivitatea către cele două noi stații de pe ''​fep.grid.pub.ro'':<​code bash> 
 +razvan@einherjar:​~$ ssh $ADRESA_IP_MV -p 20022 
 +root@host.local'​s password:  
 +[...] 
 +root@green:​~# ​
  
-root@red:~# ftp green +razvan@einherjar:~$ ssh $ADRESA_IP_MV -p 30022 
-^C +root@host.local'​s password:  
- +[...] 
-root@host:~# iptables -L FORWARD -n -v +root@blue:~#
-Chain FORWARD (policy ACCEPT 94 packets, 10307 bytes) +
- pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination ​         +
-    2   120 DROP       ​tcp ​ --  *      *       0.0.0.0/0            192.168.2.2 ​         tcp dpt:23 +
-    ​2 ​  120 DROP       ​tcp ​ --  *      *       ​0.0.0.0/​0 ​           192.168.2.2 ​         tcp dpt:21+
 </​code>​ </​code>​
 </​solution>​ </​solution>​
 </​hidden>​ </​hidden>​
rl/labs/08/contents/06.1606812977.txt.gz · Last modified: 2020/12/01 10:56 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