15 Hasznos 'Sockstat parancspélda' a FreeBSD nyitott portjainak megtalálásához
A Sockstat egy sokoldalú parancssori segédprogram, amely a hálózaton és a rendszeren megnyitott socketek megjelenítésére szolgál a FreeBSD-ben. Főleg a sockstat parancs alapértelmezés szerint telepítve van a FreeBSD-ben, és általában azon folyamatok nevének megjelenítésére használják, amelyek egy adott hálózati portot nyitottak meg a FreeBSD rendszeren.
A sockstat azonban a protokoll verziója (mindkét IP-verzió), a kapcsolat állapota, valamint a démon vagy program milyen portokra köti és figyeli a megnyitott socketeket is listázhatja.
Olvassa el még: 20 hasznos „netstat” parancs példa a hálózati kapcsolatok ellenőrzéséhez
Megjelenítheti a folyamatok közötti kommunikációs socketeket is, amelyeket általában Unix tartományi socketeknek vagy IPC-nek neveznek. A grep szűrővel kombinált vagy az awk segédprogramon keresztül továbbított Sockstat parancs hatékony eszköznek bizonyul a helyi hálózati verem számára.
Csökkentheti a megnyitott kapcsolat eredményeit a socketet birtokló felhasználó, a hálózati socket fájlleírója vagy a socketet megnyitó folyamat PID-je alapján.
Ebben az útmutatóban felsorolunk néhány gyakori, de nagyon hatékony felhasználási példát a sockstat parancssori hálózati segédprogramjára a FreeBSD-ben.
Követelmények
- FreeBSD 11.1 telepítési útmutató
1. Sorolja fel az összes megnyitott portot a FreeBSD-ben
Egyszerűen végrehajtva, opciók és kapcsolók nélkül, a sockstat parancs megjeleníti az összes megnyitott socketet a FreeBSD rendszerben, ahogy az alábbi képernyőképen is látható.
sockstat
A sockstat kimenetén megjelenő értékek leírása a következő:
- USER : A socket tulajdonosa (felhasználói fiókja).
- COMMAND : A parancs, amely megnyitotta a socketet.
- PID : A socketet birtokló parancs folyamatazonosítója.
- FD : A socket fájlleíró száma.
- PROTO : A megnyitott sockethez vagy socket típushoz társított szállítási protokoll (általában TCP/UDP) unix tartomány socketek (datagram, adatfolyam vagy seqpac) esetén UNIX socketekhez.
- HELYI CÍM: Az IP-alapú socket-ek helyi IP-címe. Unix socketek esetén a sockethez csatolt végpont fájlnevet jelenti. A
? ” jelölés arra utal, hogy a socket végpontot nem lehetett felismerni vagy létrehozni. - IDEGEN CÍM : Az a távoli IP-cím, amelyhez az aljzat csatlakozik.
2. Sorolja fel a figyelő vagy megnyitott portokat a FreeBSD-ben
A -l
kapcsolóval végrehajtott sockstat parancs megjeleníti a hálózati veremben megnyitott összes lehallgató socketet, valamint az összes megnyitott unix tartományi socketet vagy elnevezett vezetéket, amelyek valamilyen helyi adatfeldolgozásban vesznek részt a rendszerben.
sockstat -l
3. Sorolja fel a FreeBSD-ben megnyitott IPv4-portokat
Ha az összes megnyitott socketet csak az IPv4 protokollhoz szeretné megjeleníteni, adja ki a parancsot a -4
jelzővel, az alábbi példában javasolt módon.
sockstat -4
4. Sorolja fel a FreeBSD IPv6 megnyitott portjait
Az IPv4-es verzióhoz hasonlóan a megnyitott hálózati socketeket is megjelenítheti csak IPv6 esetén az alábbi parancs kiadásával.
sockstat -6
5. Sorolja fel a FreeBSD TCP vagy UDP megnyitott portjait
Ha csak meghatározott hálózati protokollon (például TCP vagy UDP) alapuló hálózati socketeket szeretne megjeleníteni, használja a -P
jelzőt, majd a a protokoll argumentum neve.
A protokollneveket az /etc/protocols fájl tartalmának ellenőrzésével találhatja meg. Jelenleg az ICMP protokollt nem támogatja a sockstat eszköz.
Csak a TCP socketek megjelenítése
sockstat -P tcp
Csak az UDP socketeket jelenítse meg
sockstat -P udp
Láncolja mindkét protokollt.
sockstat –P tcp,udp
6. Sorolja fel a TCP- és UDP-specifikus portszámokat
Ha meg szeretné jeleníteni az összes TCP vagy UDP IP megnyitott socketet a helyi vagy távoli portszám alapján, használja az alábbi parancsjelzőket és szintaxist, az alábbi képernyőképen látható módon.
sockstat -P tcp -p 443 [Show TCP HTTPS Port]
sockstat -P udp -p 53 [Show UDP DNS Port]
sockstat -P tcp -p 443,53,80,21 [Show Both TCP and UDP]
7. Sorolja fel a FreeBSD megnyitott és csatlakoztatott portjait
Az összes megnyitott és csatlakoztatott socket megjelenítéséhez használja a -c
jelzőt. Ahogy az alábbi mintákon is látható, a parancsok kiadásával listázhatja az összes HTTPS csatlakoztatott socketet vagy az összes TCP-hez csatlakoztatott socketet.
sockstat -P tcp -p 443 -c
sockstat -P tcp -c
8. Sorolja fel a hálózati figyelő portokat a FreeBSD-ben
Az összes nyitott TCP socket figyelési állapotban felsorolásához fűzze hozzá a -l
és a -s
jelzőket, az alábbi példában látható módon. Mivel kapcsolat nélküli protokoll, az UDP nem tárol információt a kapcsolat állapotáról.
Az UDP megnyitott socketek állapotuk használatával nem jeleníthetők meg, mivel az udp protokoll datagramokat használ az adatok küldésére/fogadására, és nincs beépített mechanizmusa a kapcsolat állapotának meghatározására.
sockstat -46 -l -s
9. Sorolja fel a Unix socketeket és az elnevezett csöveket
A Unix tartományi socketek, valamint a helyi folyamatok közötti kommunikáció egyéb formái, például az elnevezett csövek, megjeleníthetők a sockstat paranccsal a -u
jelző használatával, az alábbi képen látható módon.
sockstat -u
10. Sorolja fel a FreeBSD alkalmazás által megnyitott portokat
A Sockstat parancs kimenete szűrhető a grep segédprogramon keresztül, hogy megjelenítse az adott alkalmazás vagy parancs által megnyitott portok listáját.
Tegyük fel, hogy listázni szeretné az Nginx webszerverhez társított összes socketet, a feladat végrehajtásához kiadhatja a következő parancsot.
sockstat -46 | grep nginx
Ha csak az Nginx webszerverhez tartozó csatlakoztatott socketeket szeretné megjeleníteni, adja ki a következő parancsot.
sockstat -46 -c| grep nginx
11. Sorolja fel a HTTPS-hez csatlakoztatott protokollokat
Az alábbi parancs futtatásával listázhatja a HTTPS protokollhoz társított összes csatlakoztatott socketet az egyes kapcsolatok állapota mellett.
sockstat -46 -s -P TCP -p 443 -c
12. Sorolja fel a HTTP távoli socketeket
A HTTP protokollhoz társított összes távoli socket listázásához futtassa a következő parancskombinációk egyikét.
sockstat -46 -c | egrep '80|443' | awk '{print $7}' | uniq -c | sort -nr
sockstat -46 -c -p 80,443 | grep -v ADDRESS|awk '{print $7}' | uniq -c | sort -nr
13. Keresse meg a legmagasabb HTTP-kéréseket IP-címek alapján
Ha meg szeretné tudni, hogy az egyes távoli IP-címek hány HTTP-kapcsolatot kérnek, adja ki az alábbi parancsot. Ez a parancs nagyon hasznos lehet abban az esetben, ha meg szeretné állapítani, hogy a webszerver valamilyen DDOS támadás alatt áll-e. Gyanú esetén érdemes megvizsgálni a legmagasabb kérési arányú IP-címeket.
sockstat -46 -c | egrep '80|443' | awk '{print $7}' | cut -d: -f1 | uniq -c | sort –nr
14. Sorolja fel a DNS megnyitott socketeket
Ha beállított egy gyorsítótárazó és továbbító DNS-kiszolgálót a telephelyén, hogy a belső ügyfeleket TCP-átviteli protokollon keresztül szolgálja ki, és meg szeretné jeleníteni az összes socket listáját
a feloldó által megnyitott, az egyes socket-kapcsolatok állapotával együtt hajtsa végre a következő parancsot.
sockstat -46 -P tcp –p 53 -s
15. TCP DNS lekérdezése helyi tartományban
Ha nincs DNS-forgalom a hálózaton, manuálisan indíthat DNS-lekérdezést a TCP-foglalatban a helyi gép konzoljáról a következő dig parancs futtatásával. Ezután adja ki a fenti parancsot az összes feloldó socket listázásához.
dig +tcp www.domain.com @127.0.0.1
Ez minden! A netstat és az lsof parancssori segédprogramok mellett a sockstat parancssor egy hatékony segédprogram hálózati információk megszerzésére, valamint a FreeBSD hálózati verem és a hálózattal kapcsolatos folyamatok és szolgáltatások számos aspektusának hibaelhárítására.
A FreeBSD sockstat parancs megfelelőjét Linuxban a netstat vagy az újonnan ss parancs képviseli. Akár hiszi, akár nem, a sockstat segédprogram alapján találhat egy hasonló, Android operációs rendszerre fejlesztett alkalmazást SockStat – Simple Netstat GUI néven.