Differences

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

Link to this comparison view

rl:labs:08:contents:04 [2013/09/18 18:39]
razvan.deaconescu
rl:labs:08:contents:04 [2023/11/05 12:54] (current)
vlad_iulius.nastase
Line 1: Line 1:
-==== 4. Ștergere regulă FTP ====+==== 04. [10p] Configurare incorectă a translatării ​====
  
-Dorim să permitem accessul FTP către stația ''​green''​. Pentru aceasta ​pe stația ''​host''​ trebuie ștearsă regula ''​iptables'' ​care blochează traficul FTP.+Comanda folosită mai sus pentru translatare,​ la [[:​rl:​labs:​09:​contents:​01]],​ are neajunsuri ​pe care le vom identifica mai jos.
  
-Ștergeți regula ''​iptables''​ aferentă. Pentru a șterge o regulă folosiți comanda ''​iptables''​ cu opțiunea ''​-D''​ (//​delete//​) urmată de restul argumentelor;​ practic, comanda este identică celei de adăugare, doar că folosiți opțiunea ''​-D''​ în locul opțiunii ''​-A''​. 
  
-<​solution ​-hidden>​ +Pe stația ''​green''​ capturăm traficul pe interfața ''​green-eth0''​ folosind comanda ''​tcpdump'':​<code bash> 
-<code bash> +root@green:~# tcpdump ​-green-eth0 
-root@host:~# iptables ​-D FORWARD -d green -p tcp --dport ftp -j DROP+tcpdump: verbose output suppressed, use -v or -vv for full protocol decode 
 +listening on green-eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
 </​code>​ </​code>​
-</​solution>​ 
  
-După ștergerea regulii verificați realizarea conexiunii prin FTP de la stația ''​red'' ​la stația ''​green''​+Pe stația ''​red'' ​executăm comanda ''​ping''​ către ​stația ''​green''​:<code bash> 
-<​solution -hidden>​ +root@red:​~# ​ping -c 2 green 
-<code bash> +PING green (192.168.2.256(84bytes of data
-root@red:​~# ​ftp green +64 bytes from green (192.168.2.2)icmp_req=1 ttl=63 time=0.155 ms 
-Connected to green. +64 bytes from green (192.168.2.2): icmp_req=2 ttl=63 time=0.086 ms 
-220 (vsFTPd ​2.3.5) +[...]
-Name (green:root): student +
-331 Please specify the password+
-Password: +
-230 Login successful+
-Remote system type is UNIX. +
-Using binary mode to transfer files. +
-ftp> ls +
-200 PORT command successfulConsider using PASV+
-150 Here comes the directory listing. +
-226 Directory send OK. +
-ftp> quit +
-221 Goodbye.+
 </​code>​ </​code>​
-</solution>+ 
 +În acest moment, pe stația ''​green''​ avem captura pachetelor în output-ul comenzii ''​tcpdump'':<​code>​ 
 +11:​18:​54.535064 IP host > green: ICMP echo request, id 633, seq 17, length 64 
 +11:​18:​54.535092 IP green > host: ICMP echo reply, id 633, seq 17, length 64 
 +</code> 
 + 
 +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 translatare. Astfel 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ă. 
 + 
 +Pentru ștergerea vechii reguli de NAT rulăm pe stația ''​host''​ comanda<​code bash> 
 +root@host:​~#​ iptables -t nat -D POSTROUTING -j MASQUERADE 
 +</​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>​ 
 + 
 +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> 
 +root@host:​~#​ iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 
 +</​code>​ 
 +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.1379518767.txt.gz · Last modified: 2013/09/18 18:39 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