Differences

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

Link to this comparison view

rl:labs:08:contents:04 [2020/12/01 10:11]
iulia.florea
rl:labs:08:contents:04 [2023/11/05 12:54] (current)
vlad_iulius.nastase
Line 1: Line 1:
-==== 4. [5pBlocare completă a traficului ​====+==== 04. [10pConfigurare incorectă a translatării ​====
  
-Pentru început verificați că stația ''​red''​ poate accesa alte stații din rețea. Rulați comanda<​code bash> +Comanda folosită mai sus pentru translatare,​ la [[:rl:labs:​09:​contents:01]], are neajunsuri pe care le vom identifica mai jos.
-root@red:~# ping -c 2 green +
-PING green (192.168.2.2) 56(84) bytes of data. +
-64 bytes from green (192.168.2.2)icmp_req=1 ttl=63 time=0.076 ms +
-64 bytes from green (192.168.2.2)icmp_req=2 ttl=63 time=0.067 ms+
  
---- green ping statistics --- 
-2 packets transmitted,​ 2 received, 0% packet loss, time 999ms 
-rtt min/​avg/​max/​mdev = 0.067/​0.071/​0.076/​0.009 ms 
-</​code>​ 
  
-Asocierile între porturi și protocoale (''​21''​ și FTP, ''​22''​ și SSH, ''​23''​ și telnet) sunt cele implicite. Acest lucru nu împiedică însă un administrator să configureze un serviciu să asculte pe un port diferit de cel implicit. Pentru a preveni transferul de fișiere și conectare de la distanță pe stația ''​red'' ​vom bloca accesul la toate porturile. Pentru aceasta vom configura stația ''​host'' ​pentru a bloca **întreg** traficul de la stația ​''​red''​.  +Pe stația ''​green'' ​capturăm traficul pe interfaț''​green-eth0'' ​folosind comanda ​''​tcpdump''​:<code bash> 
- +root@green:~# tcpdump ​-i green-eth0 
-<​hidden>​ +tcpdumpverbose output suppressed, use -v or -vv for full protocol decode 
-<​solution>​ +listening on green-eth0, link-type EN10MB ​(Ethernet)capture size 65535 bytes
-<code bash> +
-root@host:~# iptables ​-A FORWARD ​-s red -j REJECT +
-root@host:~# iptables ​-L FORWARD ​--+
-Chain FORWARD ​(policy ACCEPT 0 packetsbytes+
- pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination ​         +
-    0     0 REJECT ​    ​all ​ --  *      *       ​192.168.1.2 ​         0.0.0.0/​0 ​           reject-with icmp-port-unreachable+
 </​code>​ </​code>​
-Comanda blochează întreg traficul **de la** stația ''​red''​ (opțiunea ''​-s''​) pe care stația ''​host''​ l-ar fi rutat (lanțul ''​FORWARD''​). 
-</​solution>​ 
-</​hidden>​ 
  
-Verificați că stația ''​red'' ​nu poate accesa alte stații. Rulați comenzile<code bash>+Pe stația ''​red'' ​executăm comanda ''​ping''​ către ​stația ''​green'':​<code bash>
 root@red:~# ping -c 2 green root@red:~# ping -c 2 green
 PING green (192.168.2.2) 56(84) bytes of data. PING green (192.168.2.2) 56(84) bytes of data.
-From host (192.168.1.1icmp_seq=1 Destination Port Unreachable +64 bytes from green (192.168.2.2): icmp_req=1 ttl=63 time=0.155 ms 
-From host (192.168.1.1icmp_seq=2 Destination Port Unreachable+64 bytes from green (192.168.2.2): icmp_req=2 ttl=63 time=0.086 ms 
 +[...] 
 +</​code>​
  
---- green ping statistics --+În acest moment, pe stația ''​green''​ avem captura pachetelor în output-ul comenzii ''​tcpdump'':<​code>​ 
-2 packets transmitted0 received+2 errors100% packet losstime 999ms+11:​18:​54.535064 IP host > green: ICMP echo requestid 633seq 17length 64 
 +11:​18:​54.535092 IP green > host: ICMP echo replyid 633, seq 17, length 64 
 +</​code>​
  
-root@red:~# telnet green +Observăm că adresa sursă a pachetelor de tip ''​ICMP echo request''​ este stația ''​host'',​ nu stația ''​red''​Acest lucru se întâmplă din cauză că atunci când am activat NAT nu am specificat pentru ce tip de trafic să aplice politica de translatareAstfel stația ''​host''​ aplică politica de NAT pentru tot traficul care o tranziteazăDorim să aplicăm politica doar pentru pachetele ce **ies** în Internet, adică cele ale căror **interfață de ieșire** este interfața ''​eth0''​Vom șterge vechea regulă de NAT și vom adăuga o regulă corectă.
-Trying 192.168.2.2..+
-telnet: Unable to connect to remote host: Connection refused+
  
-root@red:~# ftp green +Pentru ștergerea vechii reguli de NAT rulăm pe stația ''​host''​ comanda<​code bash> 
-ftpconnect: Connection refused +root@host:~# iptables -t nat -D POSTROUTING -j MASQUERADE 
-ftpexit+</​code>​ 
 +Verificăm faptul că nu mai există comanda<​code bash> 
 +root@host:~# iptables -t nat -L POSTROUTING -n -v 
 +Chain POSTROUTING (policy ACCEPT 1 packets, 328 bytes) 
 + pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination 
 +</code>
  
-root@red:~# ssh -l student green +Adăugăm din nou regula de NAT, dar de data aceasta vom specifica să aplice politica de NAT pachetelor ce ies prin interfața ''​eth0''​ a stației ''​host'':<​code bash> 
-ssh: connect to host green port 22: Connection refused+root@host:~# iptables ​-t nat -A POSTROUTING -o eth0 -j MASQUERADE
 </​code>​ </​code>​
-Observați că nu mai sosesc pachete de răspuns (sunt respinse de stația ''​host''​)deci traficul ​de la stația ''​red'' ​este blocat.+Verificați că regula a fost inserată:<code bash> 
 +root@host:​~#​ iptables -t nat -L POSTROUTING -n -v 
 +Chain POSTROUTING ​(policy ACCEPT 0 packets, 0 bytes) 
 + pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination 
 +    0     0 MASQUERADE ​ all  --  *      eth0    0.0.0.0/​0 ​           0.0.0.0/0 
 +</​code>​ 
 +Observăm prezența interfaței ''​eth0''​ în coloana ''​out''​. Înainte apărea caracterul ''​*'', ​adică orice interfață. 
 + 
 +Repetați testul ​de la începutul exercițiului și arătați că pachetele trimise de la ''​red'' ​către ''​green''​ au adresele IP sursă/​destinație nemodificate (nu mai fac trecerea prin NAT), în vreme ce pachetele ce ies în Internet sunt translatate.
rl/labs/08/contents/04.1606810283.txt.gz · Last modified: 2020/12/01 10:11 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