[[oktatas:linux:halozat|< Hálózat]] ====== Portok felderítése ====== * **Szerző:** Sallai András * Copyright (c) 2020, Sallai András * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|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/