Differences

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

Link to this comparison view

rl:labs:08:contents:11 [2020/09/13 07:15]
iulia.florea
rl:labs:08:contents:11 [2023/11/05 12:57] (current)
vlad_iulius.nastase
Line 1: Line 1:
-==== 11. [5pBlocare SSH ====+==== 11. [BONUS - 10pTranslatare selectivă de adrese ​====
  
-Ne propunem ca stația ''​green''​ să nu fie acesibilă nici prin SSH. Pentru aceasta adăugați pe stația ​''​host'' ​o regulă ​''​iptables''​ care va bloca traficul aferent serviciului SSH (portul 22).+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.
  
-<hidden+<note tip
-<​solution>​ +Informații despre folosirea ''​SNAT''​ și diferența dintre ''​SNAT''​ și ''​MASQUERADE''​ găsiți [[http://​www.netfilter.org/​documentation/​HOWTO/​NAT-HOWTO-6.html|aici]]. 
-<code bash> +</note>
-root@host:~# iptables ​-A FORWARD ​-d green -p tcp --dport ssh -j DROP +
-</​code>​ +
-</​solution>​ +
-</hidden>+
  
-Verificați adăugarea regulii ​''​iptables''​ și apoi verificați de pe stația ''​red'' ​blocarea traficului SSH către stația ''​green''​.+Ștergeți regula anterioară de tip ''​MASQUERADE''​ și folosiți reguli ​de tip ''​SNAT''​ pentru a face următoarele translatări:​ 
 +  * 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 ''​cs.pub.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>​ <​hidden>​
 <​solution>​ <​solution>​
-<code bash> +Ș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> 
-root@host:​~#​ iptables -L FORWARD ​-n -v +root@host:​~#​ iptables ​-t nat -F POSTROUTING 
-Chain FORWARD ​(policy ACCEPT ​94 packets, ​10307 bytes)+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 
 +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 
 +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 
 +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 ​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 +    ​0     0 SNAT       tcp  --  *      ​eth0    192.168.1.2 ​         ​0.0.0.0/​0 ​           ​to:​192.168.56.101:​45000-50000 
-    0   120 DROP       tcp  --  *      ​*       0.0.0.0/​0 ​           192.168.2.2          tcp dpt:21 +    0     0 SNAT       ​tcp ​ --  *      eth0    ​192.168.2.2 ​         ​0.0.0.0/​0 ​           to:192.168.56.101:​50000-55000 
-    0     ​0 ​DROP       ​tcp  ​-- ​ *      ​*       0.0.0.0/​0 ​           192.168.2.2          tcp dpt:22+    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>​
  
-root@red:~# ssh green +Pornim ''​tcpdump''​ pentru a captura mesaje destinate ''​cs.pub.ro''​ pe portul ''​80'',​ aferent HTTP:<code bash> 
-^C +root@host:​~# ​tcpdump ​-n -i any ip dst host cs.pub.ro and tcp dst port 80 
- +[...] 
-root@host:​~# ​iptables -L FORWARD ​-n -v +16:​43:​45.683809 IP 192.168.1.2.43031 > 141.85.166.61.80:​ Flags [.], ack 1461, win 17520, length ​0 
-Chain FORWARD (policy ACCEPT 94 packets, 10307 bytes) +16:43:45.683836 IP 192.168.56.101.45000 > 141.85.166.61.80:​ Flags [.], ack 1461, win 17520, length ​0 
- pkts bytes target ​    prot opt in     ​out ​    ​source ​              ​destination ​         +16:43:45.684033 IP 192.168.1.2.43031 > 141.85.166.61.80:​ Flags [.], ack 2921, win 20440, length ​0 
-      120 DROP       ​tcp ​ --  *      *       0.0.0.0/0            ​192.168.2.2 ​         tcp dpt:23 +16:43:45.684041 IP 192.168.56.101.45000 > 141.85.166.61.80:​ Flags [.], ack 2921, win 20440, length ​0 
-    2   120 DROP       ​tcp ​ --  *      *       0.0.0.0/0            ​192.168.2.2 ​         tcp dpt:21 +[...] 
-    3   180 DROP       ​tcp ​ --  *      *       0.0.0.0/0            ​192.168.2.2          tcp dpt:22+16:​44:​12.865807 IP 192.168.2.2.60147 > 141.85.166.61.80Flags [.], ack 4105, win 23256, length ​0 
 +16:44:12.865811 IP 192.168.56.101.50000 > 141.85.166.61.80:​ Flags [.], ack 4105, win 23256, length ​0 
 +16:​44:​12.885166 IP 192.168.2.2.60147 > 141.85.166.61.80Flags [.], ack 5473, win 25992, length ​0 
 +16:44:12.885175 IP 192.168.56.101.50000 > 141.85.166.61.80:​ Flags [.], ack 5473, win 25992, length ​0 
 +[...] 
 +16:​44:​27.929672 IP 192.168.3.2.59957 > 141.85.166.61.80:​ Flags [.], ack 5473, win 25992, length ​0 
 +16:44:27.929683 IP 192.168.56.101.59957 > 141.85.166.61.80:​ Flags [.], ack 5473, win 25992, length ​0 
 +16:​44:​27.929902 IP 192.168.3.2.59957 > 141.85.166.61.80Flags [.], 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>​ </​hidden>​
rl/labs/08/contents/11.1599970502.txt.gz · Last modified: 2020/09/13 07:15 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