This shows you the differences between two versions of the page.
rl:labs:08:contents:03 [2013/09/18 18:33] razvan.deaconescu |
rl:labs:08:contents:03 [2024/11/28 16:37] (current) florin.stancu [03. [10p] Format de pachete TCP la translatare] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 3. Blocare SSH ==== | + | ==== 03. [10p] Format de pachete TCP la translatare ==== |
- | 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). | + | Dorim să urmărim conținutul pachetelor TCP înainte și după translatarea de adrese. În plus față de exercițiul de mai sus, vrem să urmărim și porturile. Pentru aceasta vom genera pachete TCP (HTTP) folosind ''wget'' de pe stația ''red'' și vom captura pachetele folosind ''tcpdump'' pe stația ''host''. |
- | <solution -hidden> | + | Pe stația ''host'' capturați pe toate interfețele pachetele HTTP care au ca adresă destinație numele ''%%cs.pub.ro%%''. |
- | </solution> | + | <note tip> |
+ | Va trebui să folosiți argumentele ''%%ip dst host cs.pub.ro%%'' și ''tcp dst port 80'' la ''tcpdump''. Legați argumentele prin șirul ''and''. Urmăriți și [[https://cdn.comparitech.com/wp-content/uploads/2019/06/tcpdump-cheat-sheet-1.pdf|cheatsheet-ul de aici]]. | ||
+ | |||
+ | Folosiți opțiunea ''-n'' a ''tcpdump'' ca să afișați în format rezultatele în format numeric (adresă IP și port). Vă va fi mai ușor să urmăriți pachetele și translatarea de adrese. | ||
+ | </note> | ||
+ | |||
+ | Pe stația ''red'' folosiți ''wget'' pentru a obține pagina de la ''%%cs.pub.ro%%''. | ||
+ | |||
+ | Urmăriți translatarea adresei IP sursă și a portului sursă în cadrul capturii de pachete realizată cu ''tcpdump'' pe ''host''. | ||
+ | |||
+ | <note important> | ||
+ | O să existe o latență (2-3 secunde) la afișarea pachetelor capturate cu ''tcpdump'' datorată rezolvării DNS. Puteți folosi opțiunea ''-n'' a ''tcpdump'' pentru a dezactivarea rezolvarea DNS și pentru a elimina latența. | ||
+ | </note> | ||
+ | |||
+ | Observați în cadrul capturii că portul sursă, ales de stația ''red'' este același cu cel folosit în urma translatării de stația ''host''. În general implementările de NAT vor păstra portul în urma translatării. În cazul rar în care acel port este ocupat pe stația ''host'' (posibil datorită unei alte translatării) se va aloca un alt port. | ||
- | Verificați adăugarea regulii ''iptables'' și apoi verificați de pe stația ''red'' blocarea traficului SSH către stația ''green''. | + | Pe stația ''host'' capturați pe toate interfețele pachetele HTTP care au ca adresă numele ''%%cs.pub.ro%%''; nu contează dacă este sursă sau destinație, capturăm și pachetele de interogare și cele de răspuns; la fel, portul poate fi sursă sau destinație; folosiți ''ip host'' în loc de ''ip dst host'' și ''tcp port'' în loc de ''tcp dst port''. Pe stația ''red'' folosiți, din nou, ''wget'' pentru a obține pagina de la ''%%cs.pub.ro%%''. Urmăriți translatarea adresei IP sursă și a portului sursă pentru pachetele de interogare și translatarea adresei IP destinație și a portului destinație pentru pachetele de răspuns. |
- | <solution -hidden> | + | <hidden> |
+ | <solution> | ||
+ | Rulăm comanda ''tcpdump'' pe stația ''host'' și comanda ''wget'' pe stația ''red'':<code bash> | ||
+ | root@host:~# tcpdump -i any ip dst host cs.pub.ro and tcp dst port 80 | ||
+ | tcpdump: verbose output suppressed, use -v or -vv for full protocol decode | ||
+ | listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes | ||
+ | 16:01:43.895939 IP host.local.55630 > 141.85.241.57.http: Flags [S], seq 2218116970, win 14600, options [mss 1460,sackOK,TS val 25026596 ecr 0,nop,wscale 3], length 0 | ||
+ | 16:01:43.899247 IP red.55630 > 141.85.241.57.http: Flags [.], ack 3520002, win 14600, length 0 | ||
+ | 16:01:43.899254 IP host.local.55630 > 141.85.241.57.http: Flags [.], ack 3520002, win 14600, length 0 | ||
+ | 16:01:43.899809 IP red.55630 > 141.85.241.57.http: Flags [P.], seq 0:110, ack 1, win 14600, length 110 | ||
+ | 16:01:43.899817 IP host.local.55630 > 141.85.241.57.http: Flags [P.], seq 0:110, ack 1, win 14600, length 110 | ||
+ | [...] | ||
- | root@host:~# iptables -L FORWARD -n -v | + | root@red:~# wget cs.pub.ro |
- | Chain FORWARD (policy ACCEPT 94 packets, 10307 bytes) | + | --2013-11-23 14:03:22-- http://cs.pub.ro/ |
- | pkts bytes target prot opt in out source destination | + | Resolving cs.pub.ro (cs.pub.ro)... 141.85.241.57 |
- | 2 120 DROP tcp -- * * 0.0.0.0/0 192.168.2.2 tcp dpt:23 | + | Connecting to cs.pub.ro (cs.pub.ro)|141.85.241.57|:80... connected. |
- | 0 120 DROP tcp -- * * 0.0.0.0/0 192.168.2.2 tcp dpt:21 | + | HTTP request sent, awaiting response... 200 OK |
- | 0 0 DROP tcp -- * * 0.0.0.0/0 192.168.2.2 tcp dpt:22 | + | [...] |
+ | 2013-11-23 14:03:22 (17.3 MB/s) - `index.html' saved [36519] | ||
+ | </code> | ||
- | root@red:~# ssh green | + | Pentru afișarea atât a pachetelor de interogare cât și a celor de răspuns, rulăm comenzile de mai jos:<code bash> |
- | ^C | + | root@host:~# tcpdump -i any ip host cs.pub.ro and tcp port 80 |
+ | [...] | ||
+ | 16:06:25.896565 IP red.55634 > 141.85.241.57.http: Flags [P.], seq 1:111, ack 1, win 14600, length 110 | ||
+ | 16:06:25.896576 IP host.local.55634 > 141.85.241.57.http: Flags [P.], seq 1:111, ack 1, win 14600, length 110 | ||
+ | 16:06:25.896796 IP 141.85.241.57.http > host.local.55634: Flags [.], ack 111, win 65535, length 0 | ||
+ | 16:06:25.896805 IP 141.85.241.57.http > red.55634: Flags [.], ack 111, win 65535, length 0 | ||
+ | [...] | ||
- | root@host:~# iptables -L FORWARD -n -v | + | root@red:~# wget cs.pub.ro |
- | Chain FORWARD (policy ACCEPT 94 packets, 10307 bytes) | + | --2013-11-23 14:05:36-- http://cs.pub.ro/ |
- | pkts bytes target prot opt in out source destination | + | Resolving cs.pub.ro (cs.pub.ro)... 141.85.241.57 |
- | 2 120 DROP tcp -- * * 0.0.0.0/0 192.168.2.2 tcp dpt:23 | + | Connecting to cs.pub.ro (cs.pub.ro)|141.85.241.57|:80... connected. |
- | 2 120 DROP tcp -- * * 0.0.0.0/0 192.168.2.2 tcp dpt:21 | + | HTTP request sent, awaiting response... 200 OK |
- | 3 180 DROP tcp -- * * 0.0.0.0/0 192.168.2.2 tcp dpt:22 | + | [...] |
+ | 2013-11-23 14:05:36 (77.9 MB/s) - `index.html.1' saved [36519] | ||
+ | </code> | ||
</solution> | </solution> | ||
+ | </hidden> |