This shows you the differences between two versions of the page.
rl:labs:08:contents:06 [2020/12/01 10:11] iulia.florea removed |
rl:labs:08:contents:06 [2023/11/05 12:55] (current) vlad_iulius.nastase |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 6. [5p] Blocare completă a traficului ==== | + | ==== 06. [10p] Extindere port forwarding ==== |
- | Pentru început verificați că stația ''red'' poate accesa alte stații din rețea. Rulați comanda<code bash> | + | Dorim să accesăm din Internet/exterior stațiile ''green'' și ''blue'' prin SSH folosindu-ne de stația ''host''. Vom folosi: |
- | root@red:~# ping -c 2 green | + | * portul ''20022'' de pe stația ''host'' pentru a face //port forwarding// pe portul 22 al stației ''green''; |
- | PING green (192.168.2.2) 56(84) bytes of data. | + | * portul ''30022'' de pe stația ''host'' pentru a face //port forwarding// pe portul 22 al stației ''blue''. |
- | 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 modelul [[:rl:labs:09:contents:05|exercițiului anterior]], realizați configurarea necesară pentru această extindere de port forwarding. Verificați prin conectare de pe ''fep.grid.pub.ro'' (echivalentul Internet-ului/exteriorului) pe porturile respectiv ''20022'' și ''30022'' de pe stația ''host''. |
+ | |||
+ | <note tip> | ||
+ | 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ție. Verificați, pentru siguranța, faptul că există conectivitate între ele și stația ''host''. | ||
+ | </note> | ||
<hidden> | <hidden> | ||
<solution> | <solution> | ||
- | <code bash> | + | Adăugăm cele două reguli noi pentru //port forwarding//:<code bash> |
- | root@host:~# iptables -A FORWARD -s red -j REJECT | + | 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 0 packets, 0 bytes) | + | root@host:~# iptables -t nat -L PREROUTING -n -v |
+ | Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) | ||
pkts bytes target prot opt in out source destination | 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 | + | 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 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:~# | ||
+ | |||
+ | razvan@einherjar:~$ ssh $ADRESA_IP_MV -p 30022 | ||
+ | root@host.local's password: | ||
+ | [...] | ||
+ | root@blue:~# | ||
</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> | </solution> | ||
</hidden> | </hidden> | ||
- | |||
- | Verificați că stația ''red'' nu poate accesa alte stații. Rulați comenzile<code bash> | ||
- | root@red:~# ping -c 2 green | ||
- | PING green (192.168.2.2) 56(84) bytes of data. | ||
- | From host (192.168.1.1) icmp_seq=1 Destination Port Unreachable | ||
- | From host (192.168.1.1) icmp_seq=2 Destination Port Unreachable | ||
- | |||
- | --- green ping statistics --- | ||
- | 2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 999ms | ||
- | |||
- | root@red:~# telnet green | ||
- | Trying 192.168.2.2... | ||
- | telnet: Unable to connect to remote host: Connection refused | ||
- | |||
- | root@red:~# ftp green | ||
- | ftp: connect: Connection refused | ||
- | ftp> exit | ||
- | |||
- | root@red:~# ssh -l student green | ||
- | ssh: connect to host green port 22: Connection refused | ||
- | </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. |