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/