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
- 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.