15 naudingų „Sockstat“ komandų pavyzdžių, kaip rasti atvirus prievadus „FreeBSD“.


Sockstat yra universalus komandų eilutės įrankis, naudojamas tinkle ir sistemoje atidaryti FreeBSD lizdus. Dažniausiai „sockstat“ komanda yra įdiegta pagal numatytuosius nustatymus „FreeBSD“ ir ji dažniausiai naudojama norint parodyti procesų, kurie atidarė tam tikrą tinklo prievadą „FreeBSD“ sistemoje, pavadinimus.

Tačiau sockstat taip pat gali išvardyti atidarytus lizdus pagal protokolo versiją (abi IP versijas), ryšio būseną ir tai, kokius prievadus demonas ar programa susieja ir klausosi.

Taip pat skaitykite: 20 naudingų „netstat“ komandų pavyzdžių tinklo ryšiams patikrinti

Jis taip pat gali rodyti tarpprocesinius ryšio lizdus, paprastai žinomus kaip Unix domeno lizdai arba IPC. „Sockstat“ komanda kartu su grep filtru arba perduodama per „awk“ įrankį yra galingas vietinio tinklo krūvos įrankis.

Jis gali sumažinti atidaryto ryšio rezultatus pagal vartotoją, kuriam priklauso lizdas, tinklo lizdo failo aprašą arba proceso, kuris atidarė lizdą, PID.

Šiame vadove pateiksime keletą įprastų, bet taip pat labai galingų „sockstat“ komandų eilutės tinklo paslaugų programos „FreeBSD“ naudojimo pavyzdžių.

Reikalavimai

  1. FreeBSD 11.1 diegimo vadovas

1. Išvardykite visus atidarytus FreeBSD prievadus

Paprasčiausiai vykdoma be jokių parinkčių ar jungiklių, komanda „sockstat“ parodys visus atidarytus „FreeBSD“ sistemos lizdus, kaip parodyta žemiau esančioje ekrano kopijoje.

sockstat

Sockstat išvestyje rodomos reikšmės apibūdinamos taip:

  • USER : lizdo savininkas (naudotojo paskyra).
  • COMMAND : komanda, kuri atidarė lizdą.
  • PID : komandos, kuriai priklauso lizdas, proceso ID.
  • FD: lizdo failo deskriptoriaus numeris.
  • PROTO : perdavimo protokolas (dažniausiai TCP/UDP), susietas su atidarytu lizdu arba lizdo tipu, kai naudojami UNIX domeno lizdai (duomenų diagrama, srautas arba seqpac), skirti UNIX lizdams.
  • VIETINIS ADRESAS: nurodo vietinį IP adresą, skirtą IP lizdams. „Unix“ lizdų atveju tai reiškia pabaigos taško failo pavadinimą, pridėtą prie lizdo. ? ” žymėjimas reiškia, kad lizdo pabaigos taško atpažinti arba nustatyti nepavyko.
  • UŽSIENIO ADRESAS : nuotolinis IP adresas, prie kurio prijungtas lizdas.

2. Išvardykite klausymosi arba atidarytus prievadus FreeBSD

Vykdoma su vėliava -l, komanda sockstat parodys visus klausymosi lizdus, atidarytus tinklo krūvoje, ir visus atidarytus unix domeno lizdus arba pavadintus vamzdžius, susijusius su tam tikru sistemos vietiniu duomenų apdorojimu.

sockstat -l

3. Išvardykite IPv4 atidarytus prievadus FreeBSD

Jei norite rodyti visus atidarytus tik IPv4 protokolo lizdus, išduokite komandą su vėliava -4, kaip siūloma toliau pateiktame pavyzdyje.

sockstat -4

4. Išvardykite IPv6 atidarytus prievadus FreeBSD

Panašiai kaip ir IPv4 versijoje, taip pat galite rodyti atidarytus tinklo lizdus, skirtus tik IPv6, išduodami komandą, kaip parodyta toliau.

sockstat -6

5. Išvardykite TCP arba UDP atidarytus prievadus FreeBSD

Kad būtų rodomi tinklo lizdai, pagrįsti tik nurodytu tinklo protokolu, pvz., TCP arba UDP, naudokite vėliavėlę -P, po kurios argumento protokolo pavadinimas.

Protokolų pavadinimus galite rasti patikrinę /etc/protocols failo turinį. Šiuo metu sockstat įrankis nepalaiko ICMP protokolo.

Rodyti tik TCP lizdus
sockstat -P tcp

Rodyti tik UDP lizdus
sockstat -P udp

Sujunkite abu protokolus.

sockstat –P tcp,udp

6. Išvardykite specifinius TCP ir UDP prievadų numerius

Jei norite rodyti visus atidarytus TCP arba UDP IP lizdus pagal vietinio arba nuotolinio prievado numerį, naudokite toliau pateiktas komandų vėliavėles ir sintaksę, kaip parodyta toliau esančioje ekrano kopijoje.

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. Išvardykite FreeBSD atidarytus ir prijungtus prievadus

Norėdami rodyti visus atidarytus ir prijungtus lizdus, naudokite vėliavėlę -c. Kaip parodyta toliau pateiktuose pavyzdžiuose, išduodami komandas galite išvardyti visus HTTPS prijungtus lizdus arba visus TCP prijungtus lizdus.

sockstat -P tcp -p 443 -c
sockstat -P tcp -c

8. Išvardykite tinklo klausymosi prievadus FreeBSD

Norėdami išvardyti visus atidarytus TCP lizdus klausymosi būsenoje, pridėkite vėliavėles -l ir -s, kaip parodyta toliau pateiktame pavyzdyje. Būdamas be ryšio protokolas, UDP nepalaiko jokios informacijos apie ryšio būseną.

UDP atidarytų lizdų negalima rodyti naudojant jų būseną, nes udp protokolas naudoja datagramas duomenims siųsti/gauti ir neturi įmontuoto mechanizmo ryšio būsenai nustatyti.

sockstat -46 -l -s

9. Išvardykite Unix lizdus ir pavadintus vamzdžius

Unix domeno lizdai, taip pat kitos vietinio tarpprocesinio ryšio formos, pvz., pavadinti vamzdžiai, gali būti rodomi komanda sockstat naudojant vėliavėlę -u, kaip parodyta toliau pateiktame paveikslėlyje.

sockstat -u

10. Išvardykite prievadus, kuriuos atidarė programa FreeBSD

„Sockstat“ komandos išvestis gali būti filtruojama naudojant grep įrankį, kad būtų rodomas konkrečios programos ar komandos atidarytų prievadų sąrašas.

Tarkime, kad norite išvardyti visus su Nginx žiniatinklio serveriu susietus lizdus, galite išleisti šią komandą, kad įvykdytumėte užduotį.

sockstat -46 | grep nginx

Norėdami rodyti tik prijungtus lizdus, susietus su Nginx žiniatinklio serveriu, išduokite šią komandą.

sockstat -46 -c| grep nginx

11. Išvardykite HTTPS prijungtus protokolus

Galite nurodyti visus prijungtus lizdus, susietus su HTTPS protokolu, kartu su kiekvieno ryšio būsena, vykdydami toliau pateiktą komandą.

sockstat -46 -s -P TCP -p 443 -c

12. Išvardykite HTTP nuotolinius lizdus

Norėdami išvardyti visus nuotolinius lizdus, susietus su HTTP protokolu, galite paleisti vieną iš šių komandų derinių.

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. Raskite didžiausias HTTP užklausas pagal IP adresus

Jei norite sužinoti, kiek HTTP jungčių reikalauja kiekvienas nuotolinis IP adresas, išduokite toliau pateiktą komandą. Ši komanda gali būti labai naudinga tuo atveju, jei norite nustatyti, ar jūsų žiniatinklio serveris yra paveiktas kokios nors DDOS atakos. Jei kyla įtarimų, turėtumėte ištirti IP adresus, kurių užklausų dažnis yra didžiausias.

sockstat -46 -c | egrep '80|443' | awk '{print $7}' | cut -d: -f1 | uniq -c | sort –nr

14. Išvardykite DNS atidarytus lizdus

Jei savo patalpose sukonfigūravote talpyklos ir persiuntimo DNS serverį, kad jis aptarnautų vidinius klientus per TCP perdavimo protokolą ir norite rodyti visų lizdų sąrašą
atidarytą sprendiklio, kartu nurodydami kiekvieno lizdo ryšio būseną, vykdykite šią komandą.

sockstat -46 -P tcp –p 53 -s

15. Pateikite užklausą TCP DNS vietiniame domene

Jei tinkle nėra DNS srauto, galite rankiniu būdu suaktyvinti DNS užklausą TCP lizde iš vietinio kompiuterio konsolės vykdydami šią kasimo komandą. Po to išduokite aukščiau pateiktą komandą, kad pateiktumėte visus sprendiklio lizdus.

dig +tcp  www.domain.com  @127.0.0.1

Tai viskas! Kartu su „netstat“ ir „lsof“ komandų eilutės programomis, „sockstat“ komandų eilutė yra galinga priemonė, naudojama tinklo informacijai gauti ir daugeliui „FreeBSD“ tinklo dėklo ir su tinklu susijusių procesų bei paslaugų trikčių šalinimo.

FreeBSD „sockstat“ komandos atitikmuo „Linux“ yra netstat arba nauja komanda ss. Tikėkite ar ne, remiantis „sockstat“ programa, galite rasti panašią programą, sukurtą „Android“ OS, pavadintą „SockStat“ – „Simple Netstat GUI“.