< Hálózat

Portok felderítése

Szerző: Sallai András

Copyright © 2020, Sallai András

Licenc: CC BY-SA 4.0

Web: https://szit.hu

Az ss parancs

Az iproute2 csomag tartalmaz egy ss nevű parancsot. Segítségével felderíthetők a használt hálózati portok.

A legegyszerűbb használat esetén egyszerűen beírjuk a ss parancsot:

# ss

A parancs megjeleníti az összes TCP, UDP és unix foglalatokat (socket).

Ez megjeleníti az összes kapcsolatot. Általában túlfut a képernyőn. Ezért tördeljük például a less paranccsal:

# ss | less

A kimenet szűrhető például TCP kapcsolatokra a -t kapcsolóval:

# ss -t

A -A kapcsolóval megadható a három betűvel is a TCP:

# ss -A tcp

Vagy így:

# ss --tcp --listening

A kimenetben az aktuális kapcsolatokat láthatjuk, de nem látjuk a hallgatózó (kapcsolatra váró) portokat.

A -a kapcsolóval megjeleníthetjük a létező kapcsolatok mellett a kapcsolatra váró portokat is:

# ss -ta

Az UDP kapcsolatok listázása a -u kapcsolóval lehetséges:

# ss -u

Itt is használhatjuk a -a kapcsolót, amely a kapcsolatra várakozó portokat is megjeleníti:

# ss -ua

Ugyanaz, egyértelműbben:

# ss -A udp --all

Ha csak a unix foglalatokat szeretnénk látni, akkor használjuk az -x kapcsolót:

# ss -x

Hosszú kapcsolóval:

# ss --unix

Az ss parancs alapértelmezetten megpróbálja feloldani a címeket és portokat nevekre. Ha ez sikerül a címek és portok helyett, azok nevei jelennek meg. Ez letiltható a -n kapcsolóval:

# ss -tn

Hosszú kapcsolókkal:

# ss -A tcp --numeric

Ha csak a hallgatózó portokat szeretnénk megtekinteni, például TCP esetén:

# ss -lt

Ugyanígy UDP esetén:

# ss -lu

Összefoglaló megjelenítése:

# ss -s

Időinformációk megjelenítése:

# ss -t -o

IPv4 kapcsolatok:

# ss -lt4

Az „l” és a „t” elhagyható.

IPv6 kapcsolatok:

# ss -lt6

Az „l” és a „t” természetesen itt is elhagyható.

A kapcsolat állapota alapján is szűrhetünk:

# ss -t state established

Ilyen állapotok lehetnek például TCP esetén:

established

syn-sent

syn-recv

fin-wait-{1,2}

time-wait

closed

close-wait

last-ack

stb.

A syn-sent, syn-recv olyan gyorsan hajtódik végre, hogy azt a valóságban nem vagyunk képesek elkapni. Ezért használhatjuk a watch parancsot:

# watch -n 1 "ss -t state syn-sent"

A teszteléshez egy böngészőben nyissunk meg egy weboldalt.

Szűrhetünk konkrét portra is:

# ss -nt dst :80

Esetleg több portra:

# ss -nt dst :80 or dst :443

Esetleg így:

# ss -nt dport = :80

Még több szűrési lehetőség:

# ss -nt src 192.168.10.11 sport gt :1024

Operátorok:

<= vagy le – kisebb vagy egyenlő

>= vagy ge – nagyobb vagy egyenlő

== vagy eq – egyenlő

!= vagy ne –nem egyenlő

< vagy gt – kisebb

> vagy lt – nagyobb

Több információért lásd az ss kézikönyvét:

$ man ss

Esetleg help:

$ ss -h
$ ss --help

Esetleg telepítsük a iproute2-doc csomagot:

# apt install iproute2-doc

Ekkor a dokumentációk a következő helyen találhatók:

/usr/share/doc/iproute2-doc/