Differences

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

Link to this comparison view

rl:labs:08:contents:03 [2013/09/18 09:48]
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. Filtrare 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 filtra traficul aferent serviciului SSH (portul 23).+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''​ șvom captura pachetele folosind ''​tcpdump'' ​pe stația ''​host''​.
  
-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ă destinație numele ''​%%cs.pub.ro%%''​.
  
 +<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.
 +
 +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.
 +
 +<​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@red:~# wget cs.pub.ro
 +--2013-11-23 14:​03:​22-- ​ http://​cs.pub.ro/​
 +Resolving cs.pub.ro (cs.pub.ro)... 141.85.241.57
 +Connecting to cs.pub.ro (cs.pub.ro)|141.85.241.57|:​80... connected.
 +HTTP request sent, awaiting response... 200 OK
 +[...]
 +2013-11-23 14:03:22 (17.3 MB/s) - `index.html'​ saved [36519]
 +</​code>​
 +
 +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>
 +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@red:~# wget cs.pub.ro
 +--2013-11-23 14:​05:​36-- ​ http://​cs.pub.ro/​
 +Resolving cs.pub.ro (cs.pub.ro)... 141.85.241.57
 +Connecting to cs.pub.ro (cs.pub.ro)|141.85.241.57|:​80... connected.
 +HTTP request sent, awaiting response... 200 OK
 +[...]
 +2013-11-23 14:05:36 (77.9 MB/s) - `index.html.1'​ saved [36519]
 +</​code>​
 +</​solution>​
 +</​hidden>​
rl/labs/08/contents/03.1379486893.txt.gz · Last modified: 2013/09/18 09:48 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