Differences

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

Link to this comparison view

rl:labs:09:contents:11 [2013/12/01 20:17]
razvan.deaconescu [11. [BONUS - 10p] Translatare selectivă de adrese]
rl:labs:09:contents:11 [2023/11/05 13:10] (current)
vlad_iulius.nastase
Line 1: Line 1:
-==== 11. [BONUS - 10p] Translatare selectivă de adrese ​====+==== 11. [BONUS - 10p] Upload prin FTP ====
  
-Pentru situația în care adresa IP exterioară a gateway-ului este adresă statică (nu dinamică) ​se recomandă ​folosirea acțiunii ​''​SNAT'' ​în loc de ''​MASQUERADE'' ​la translatarea de adrese. Pe lângă aceasta, SNAT are avantajul precizării unui spațiu de adrese care să fie noile adrese (cele substituite) ​și a porturilor.+Dorim ca pe lângă download, să uploadăm fișiere prin FTP. Din rațiuni de securitate, ​nu se recomandă ​upload anonim, ci doar cu autentificare. 
 + 
 +În directorul home al utilizatorului ​''​bogdan''​ de pe stația ​''​host'' ​se găsește fișierul ''​bogdan-ftp-data-3M.dat''​. Folosiț''​curl''​ pentru ​uploada acest fișier în directorul home al utilizatorului ''​ana''​ de pe stația ''​red''​.
  
 <note tip> <note tip>
-Informații despre folosirea ''​SNAT''​ șdiferențdintre ​''​SNAT''​ ș''​MASQUERADE'' ​găsiți [[http://​www.netfilter.org/​documentation/​HOWTO/​NAT-HOWTO-6.html|aici]].+Căutați, în pagina de manual ​comenzii ​''​curl''​șirul ''​upload-file''​.
 </​note>​ </​note>​
  
-Ștergeți regula anterioară de tip ''​MASQUERADE''​ și folosiți reguli de tip ''​SNAT''​ pentru a face următoarele translatări:​ +După ce ați realizat upload-ul, descărcațprin FTP, din directorul home al utilizatorului ​''​ana''​, fișierul ​''​bogdan-ftp-data-3M.dat''​ în directorul home al utilizatorului ​''​corina''​ de pe stația ''​host''​.
-  * conexiunile TCP către Internet de la stația ''​red''​ să iasă prin porturi din spațiul ''​45000-50000'';​ +
-  * conexiunile TCP către Internet de la stația ''​green''​ să iasă prin porturi ​din spațiul ​''​50000-55000''​+
-  * conexiunile TCP către Internet de la stația ''​blue''​ să iasă prin porturi din spațiul ​''​55000-60000''​+
-  * toate celelalte conexiuni să fie realizate ​în mod obișnuit, având ca adresă sursă adresa IP de exterior a stației ​''​host'' ​(această regulă trebuie să fie ultima). +
- +
-Verificați translatarea corectă inițiind conexiuni HTTP (folosind ''​wget''​) către http://​www.upb.ro ​de pe fiecare dintre cele trei stații de tip container (''​red'',​ ''​green''​ și ''​blue''​) și folosind ''​tcpdump'' ​pe stația ''​host'' ​pentru a captura traficul aferent.+
  
 +<​hidden>​
 <​solution -hidden> <​solution -hidden>
-Ștergem regula ​de tip ''​MASQUERADE'',​ adăugăm cele patru reguli de tip ''​SNAT'' ​și verificăm prezența acestora în tabela ​''​nat'':<​code bash> +Folosim comanda ​de mai jos pentru a uploada fișierul ''​bogdan-ftp-data-3M.dat'' ​prin FTP:<code bash> 
-root@host:~# iptables ​-t nat -F POSTROUTING +bogdan@host:~$ curl --user ana:student ​--upload-file bogdan-ftp-data-3M.dat ftp://red/ 
-root@host:~# iptables -t nat -A POSTROUTING -s 192.168.1.2 ​-p tcp -o eth0 -j SNAT --to-source 192.168.56.101:45000-50000 +  % Total    % Received % Xferd  Average Speed   ​Time ​   Time     ​Time  Current 
-root@host:​~#​ iptables -t nat -A POSTROUTING -s 192.168.2.2 -p tcp -o eth0 -j SNAT --to-source 192.168.56.101:​50000-55000 +                                 ​Dload ​ Upload ​  ​Total ​  ​Spent ​   Left  Speed 
-root@host:​~#​ iptables -t nat -A POSTROUTING -s 192.168.3.2 -p tcp -o eth0 -j SNAT --to-source 192.168.56.101:​55000-60000 +100 3072k    ​0 ​    ​0  ​100 3072k      ​0 ​ 24.6M --:--:-- --:--:-- --:--:-- 26.0M
-root@host:​~#​ iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.56.101 +
-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 SNAT       ​tcp ​ --  *      eth0    192.168.1.2 ​         0.0.0.0/​0 ​           to:​192.168.56.101:​45000-50000 +
-    0     ​0 ​SNAT       ​tcp ​ --  *      eth0    192.168.2.2 ​         ​0.0.0.0/​0 ​           to:192.168.56.101:50000-55000 +
-    0     0 SNAT       ​tcp  ​--  ​* ​     eth0    192.168.3.2 ​         0.0.0.0/​0 ​           to:192.168.56.101:55000-60000 +
-    0     0 SNAT       ​all  ​--  ​* ​     eth0    0.0.0.0/​0 ​           0.0.0.0/​0 ​           to:192.168.56.101+
 </​code>​ </​code>​
- +Verificăm, în contul utilizatorului ​''​ana'' ​de pe stația ​''​red'' ​că fișierul este acolo:<code bash> 
-Pornim ​''​tcpdump''​ pentru a captura mesaje destinate ''​www.upb.ro''​ pe portul ​''​80''​, aferent HTTP:<code bash> +ana@red:~$ ls -l 
-root@host:~# tcpdump ​-n -i any ip dst host www.upb.ro and tcp dst port 80 +total 8200 
-[...] +-rw-r--r-- 1 ana ana 5242880 Nov 26 19:49 ana-ftp-file-5M.dat 
-16:43:45.683809 IP 192.168.1.2.43031 > 141.85.166.61.80Flags [.], ack 1461, win 17520, length 0 +-rw------- ​ana ana 3145728 Nov 26 19:52 bogdan-ftp-data-3M.dat 
-16:​43:​45.683836 IP 192.168.56.101.45000 ​141.85.166.61.80:​ Flags [.]ack 1461win 17520, length 0 +</code> 
-16:43:​45.684033 IP 192.168.1.2.43031 ​141.85.166.61.80:​ Flags [.], ack 2921, win 20440, length 0 +Apoi descărcamprin FTPfișierul în directorul home al utilizatorului ''​corina''​ de pe stația ''​host''​:<code bash
-16:43:45.684041 IP 192.168.56.101.45000 > 141.85.166.61.80Flags [.], ack 2921, win 20440, length 0 +corina@host:~$ curl --user ana:student ftp://​red/​bogdan-ftp-data-3M.dat --output bogdan-ftp-data-3M.dat 
-[...] +  % Total    % Received % Xferd  Average Speed   ​Time ​   Time     ​Time ​ Current 
-16:​44:​12.865807 IP 192.168.2.2.60147 > 141.85.166.61.80:​ Flags [.], ack 4105, win 23256, length 0 +                                 Dload  Upload ​  ​Total ​  ​Spent ​   Left  Speed 
-16:​44:​12.865811 IP 192.168.56.101.50000 > 141.85.166.61.80:​ Flags [.], ack 4105, win 23256, length 0 +100 3072k  100 3072k    ​    0  22.6M      ​--:--:-- --:--:-- --:--:-- 23.8M 
-16:​44:​12.885166 IP 192.168.2.2.60147 > 141.85.166.61.80:​ Flags [.], ack 5473, win 25992, length ​0 +corina@host:~$ ls -l 
-16:44:12.885175 IP 192.168.56.101.50000 > 141.85.166.61.80:​ Flags [.], ack 5473, win 25992, length ​0 +total 3072 
-[...] +-rw-rw-r-- 1 corina corina 3145728 Nov 26 21:54 bogdan-ftp-data-3M.dat
-16:44:27.929672 IP 192.168.3.2.59957 > 141.85.166.61.80Flags [.], ack 5473, win 25992, length 0 +
-16:44:27.929683 IP 192.168.56.101.59957 > 141.85.166.61.80Flags [.], ack 5473, win 25992, length 0 +
-16:44:​27.929902 IP 192.168.3.2.59957 > 141.85.166.61.80:​ Flags [.], ack 6841, win 28728, length 0 +
-16:44:27.929918 IP 192.168.56.101.59957 > 141.85.166.61.80:​ Flags [.], ack 6841, win 28728, length 0+
 </​code>​ </​code>​
-Observăm că translatarea TCP se face în spațiul de porturi definit prin regulile de mai sus. 
 </​solution>​ </​solution>​
 +</​hidden>​
rl/labs/09/contents/11.1385921831.txt.gz · Last modified: 2013/12/01 20:17 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