15 hyödyllistä 'Sockstat-komento-esimerkkiä' avoimien porttien etsimiseen FreeBSD:stä


Sockstat on monipuolinen komentorivityökalu, jota käytetään FreeBSD:n verkon ja järjestelmän avaamien sockettien näyttämiseen. Pääasiassa sockstat-komento asennetaan oletuksena FreeBSD:hen ja sitä käytetään yleisesti niiden prosessien nimen näyttämiseen, jotka avasivat tietyn verkkoportin FreeBSD-järjestelmässä.

sockstat voi kuitenkin myös listata avoimet pistokkeet protokollaversion (molemmat IP-versiot), yhteyden tilan ja sen mukaan, mitä portteja daemon tai ohjelma sitoo ja kuuntelee.

Lue myös: 20 hyödyllistä netstat-komentoesimerkkiä verkkoyhteyksien tarkistamiseen

Se voi myös näyttää prosessien välisiä viestintäpistokkeita, jotka tunnetaan tyypillisesti Unix-verkkoaluepistokkeina tai IPC:nä. Sockstat-komento yhdistettynä grep-suodattimeen tai awk-apuohjelman kautta on osoittautunut tehokkaaksi työkaluksi paikalliseen verkkopinoon.

Se voi kutistaa avatun yhteyden tuloksia pistokkeen omistavan käyttäjän, verkkopistorasian tiedostokuvaajan tai pistokkeen avaneen prosessin PID:n perusteella.

Tässä oppaassa luetellaan joitain yleisiä, mutta myös erittäin tehokkaita, käyttöesimerkkejä sockstat-komentoriviverkkoapuohjelmasta FreeBSD:ssä.

Vaatimukset

  1. FreeBSD 11.1 asennusopas

1. Listaa kaikki FreeBSD:n avoimet portit

Yksinkertaisesti suoritettuna ilman valintoja tai kytkimiä, sockstat-komento näyttää kaikki FreeBSD-järjestelmän avatut socketit, kuten alla olevassa kuvakaappauksessa näkyy.

sockstat

Sockstat-ulostulossa näkyvät arvot kuvataan seuraavasti:

  • KÄYTTÄJÄ : Socketin omistaja (käyttäjätili).
  • KOMENTO : komento, joka avasi pistokkeen.
  • PID : Socketin omistavan komennon prosessitunnus.
  • FD : Socketin tiedostokuvausnumero.
  • PROTO : Siirtoprotokolla (yleensä TCP/UDP), joka liittyy avattuun liitäntään tai socket-tyyppiin UNIX-sockettien unix-verkkoalueen vastakkeiden (datagrammi, stream tai seqpac) tapauksessa.
  • PAIKALLINEN OSOITE : Se edustaa IP-pohjaisten pistokkeiden paikallista IP-osoitetta. Unix-sockettien tapauksessa se edustaa kantaan liitettyä päätepisteen tiedostonimeä. ? ”-merkintä tarkoittaa, että vastakkeen päätepistettä ei voitu tunnistaa tai määrittää.
  • ULMAINEN OSOITE : IP-etäosoite, johon pistorasia on kytketty.

2. Listaa kuunneltavat tai avoimet portit FreeBSD:ssä

-l-lipulla suoritettu sockstat-komento näyttää kaikki verkkopinossa avatut kuunteluliittimet ja kaikki avatut Unix-verkkoalueen pistokkeet tai nimetyt putket, jotka ovat mukana jonkinlaisessa paikallisessa tietojenkäsittelyssä järjestelmässä.

sockstat -l

3. Listaa FreeBSD:ssä avatut IPv4-portit

Jos haluat näyttää kaikki avatut vastakkeet vain IPv4-protokollalle, anna komento -4-lipulla alla olevan esimerkin mukaisesti.

sockstat -4

4. Listaa IPv6:n avoimet portit FreeBSD:ssä

IPv4-version tapaan voit myös näyttää avatut verkkopistokkeet vain IPv6:lle antamalla alla olevan komennon.

sockstat -6

5. Listaa FreeBSD:ssä avoimet TCP- tai UDP-portit

Jos haluat näyttää verkkopistokkeet, jotka perustuvat vain tiettyyn verkkoprotokollaan, kuten TCP tai UDP, käytä lippua -P ja sen jälkeen protokollan argumentin nimi.

Protokollan nimet löytyvät tarkistamalla /etc/protocols-tiedoston sisältö. Tällä hetkellä sockstat-työkalu ei tue ICMP-protokollaa.

Näytä vain TCP-socket
sockstat -P tcp

Näytä vain UDP-vastakkeet
sockstat -P udp

Ketjuta molemmat protokollat.

sockstat –P tcp,udp

6. Listaa TCP- ja UDP-kohtaiset porttinumerot

Jos haluat näyttää kaikki TCP- tai UDP-IP-vastakkeet paikallisen tai etäportin numeron perusteella, käytä alla olevia komentolippuja ja syntaksia alla olevan kuvakaappauksen mukaisesti.

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. Listaa FreeBSD:n avoimet ja yhdistetyt portit

Käytä -c-lippua näyttääksesi kaikki avatut ja liitetyt pistokkeet. Kuten alla olevista esimerkeistä näkyy, voit luetella kaikki HTTPS-liitännät tai kaikki TCP:hen yhdistetyt pistokkeet antamalla komennot.

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

8. Listaa FreeBSD:n verkon kuunteluportit

Liitä kaikki kuuntelutilassa avatut TCP-socketit liittämällä -l- ja -s-liput alla olevan esimerkin mukaisesti. Koska UDP on yhteydetön protokolla, se ei säilytä mitään tietoa yhteyden tilasta.

UDP:n avattuja pistorasioita ei voida näyttää niiden tilaa käyttämällä, koska udp-protokolla käyttää datagrammeja tiedon lähettämiseen/vastaanotukseen, eikä siinä ole sisäänrakennettua mekanismia yhteyden tilan määrittämiseen.

sockstat -46 -l -s

9. Listaa Unix-liittimet ja nimetyt putket

Unix-verkkoalueen pistokkeet sekä muut paikallisen prosessien välisen viestinnän muodot, kuten nimetyt putket, voidaan näyttää sockstat-komennolla käyttämällä -u-lippua, kuten alla olevassa kuvassa näkyy.

sockstat -u

10. Listaa sovelluksen avaamat portit FreeBSD:ssä

Sockstat-komennon lähtö voidaan suodattaa grep-apuohjelman avulla, jotta saadaan näkyviin luettelo tietyn sovelluksen tai komennon avaamista porteista.

Oletetaan, että haluat luetella kaikki Nginx-verkkopalvelimeen liittyvät pistokkeet, voit suorittaa tehtävän antamalla seuraavan komennon.

sockstat -46 | grep nginx

Jos haluat näyttää vain Nginx-verkkopalvelimeen liittyvät liitetyt pistokkeet, anna seuraava komento.

sockstat -46 -c| grep nginx

11. Luettele HTTPS Connected Protocols

Voit luetella kaikki HTTPS-protokollaan liittyvät liitetyt pistokkeet kunkin yhteyden tilan ohella suorittamalla alla olevan komennon.

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

12. Luettelo HTTP Remote Sockets

Jos haluat luetella kaikki HTTP-protokollaan liittyvät etävastakkeet, voit suorittaa jonkin seuraavista komentoyhdistelmistä.

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. Etsi korkeimmat HTTP-pyynnöt IP-osoitteiden mukaan

Jos haluat selvittää, kuinka monta HTTP-yhteyttä kukin IP-etäosoite pyytää, anna alla oleva komento. Tämä komento voi olla erittäin hyödyllinen, jos haluat määrittää, onko verkkopalvelimesi jonkinlainen DDOS-hyökkäys. Jos epäilet, sinun tulee tutkia IP-osoitteet, joilla on korkein pyyntö.

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

14. Listaa DNS:n avatut socketit

Jos olet määrittänyt tiloissasi välimuisti- ja edelleenlähetyspalvelimen palvelemaan sisäisiä asiakkaita TCP-siirtoprotokollan kautta ja haluat näyttää luettelon kaikista pistokkeista
ratkaiseja avaa seuraavan komennon yhdessä kunkin socket-yhteyden tilan kanssa.

sockstat -46 -P tcp –p 53 -s

15. Pyydä TCP DNS paikallisessa toimialueessa

Jos verkossa ei ole DNS-liikennettä, voit käynnistää DNS-kyselyn manuaalisesti TCP-socketista paikallisen koneen konsolista suorittamalla seuraavan dig-komennon. Anna sen jälkeen yllä oleva komento listataksesi kaikki ratkaisijapistokkeet.

dig +tcp  www.domain.com  @127.0.0.1

Siinä kaikki! Netstat- ja lsof-komentoriviapuohjelmien ohella sockstat-komentorivi on tehokas apuohjelma, jota käytetään verkkotietojen hankkimiseen ja FreeBSD-verkkopinon ja verkkoon liittyvien prosessien ja palvelujen useiden näkökohtien vianmääritykseen.

FreeBSD-komennon vastinetta sockstat edustaa Linuxissa netstat tai uusi ss-komento. Usko tai älä, mutta sockstat-apuohjelman perusteella löydät samanlaisen Android-käyttöjärjestelmälle kehitetyn sovelluksen nimeltä SockStat – Simple Netstat GUI.