15 Nyttige 'Sockstat-kommandoer' for å finne åpne porter i FreeBSD


Sockstat er et allsidig kommandolinjeverktøy som brukes til å vise nettverks- og systemåpnede sockets i FreeBSD. Hovedsakelig er sockstat-kommandoen installert som standard i FreeBSD, og den brukes ofte for å vise navnet på prosessene som åpnet en bestemt nettverksport på et FreeBSD-system.

Imidlertid kan sockstat også liste åpne sockets basert på protokollversjon (begge IP-versjoner), på tilstanden til tilkoblingen og på hvilke porter en demon eller et program binder og lytter på.

Les også: 20 nyttige eksempler på netstat-kommandoer for å sjekke nettverkstilkoblinger

Den kan også vise kommunikasjonssockets mellom prosesser, vanligvis kjent som Unix domene sockets eller IPC. Sockstat-kommando kombinert med grep-filter eller piped through awk-verktøy viser seg å være et kraftig verktøy for den lokale nettverksstakken.

Det kan krympe resultatene for en åpnet tilkobling basert på brukeren som eier kontakten, filbeskrivelsen til en nettverkskontakt eller PID-en til prosessen som åpnet kontakten.

I denne guiden vil vi liste noen vanlige brukseksempler, men også veldig kraftige, av sockstat-kommandolinjenettverksverktøy i FreeBSD.

Krav

  1. FreeBSD 11.1 Installasjonsveiledning

1. List alle åpnede porter i FreeBSD

Enkelt utført uten noen alternativer eller brytere, vil sockstat-kommandoen vise alle åpnede sockets i et FreeBSD-system, som illustrert i skjermbildet nedenfor.

sockstat

Verdiene som vises i sockstat-utgangen er beskrevet som:

  • BRUKER : Eieren (brukerkontoen) av stikkontakten.
  • KOMMANDO : Kommandoen som åpnet kontakten.
  • PID : Prosess-ID-en til kommandoen som eier sokkelen.
  • FD : Fildeskriptornummeret til sokkelen.
  • PROTO : Transportprotokollen (vanligvis TCP/UDP) knyttet til den åpnede socket- eller sockettypen i tilfelle unix-domene-sockets (datagram, stream eller seqpac) for UNIX-sockets.
  • LOKAL ADRESSE : Den representerer den lokale IP-adressen for IP-baserte sockets. I tilfelle av Unix-sockets representerer det endepunkts filnavn knyttet til socket. “?? ”-notasjon antyder at socket-endepunktet ikke kunne gjenkjennes eller etableres.
  • UTLANDSADRESSE : Den eksterne IP-adressen som kontakten er koblet til.

2. Listening eller åpnede porter i FreeBSD

Utført med -l-flagget, vil sockstat-kommandoen vise alle lyttesockets åpnet i nettverksstakken og alle åpnede unix-domene-sockets eller navngitte pipes involvert i en slags lokal databehandling i systemet.

sockstat -l

3. List opp IPv4-åpnede porter i FreeBSD

For å vise alle åpnede sockets kun for IPv4-protokollen, utfør kommandoen med -4-flagget, som foreslått i eksemplet nedenfor.

sockstat -4

4. List opp IPv6-åpnede porter i FreeBSD

I likhet med IPv4-versjonen kan du også vise de åpnede nettverkskontaktene kun for IPv6, ved å gi kommandoen som vist nedenfor.

sockstat -6

5. List TCP- eller UDP-åpnede porter i FreeBSD

For å vise nettverkskontakter basert kun på en spesifisert nettverksprotokoll, for eksempel TCP eller UDP, bruk -P-flagget, etterfulgt av argumentnavnet til protokollen.

Protokollnavnene kan finnes ved å inspisere innholdet i /etc/protocols-filen. For øyeblikket støttes ikke ICMP-protokollen av sockstat-verktøyet.

Vis kun TCP-sockets
sockstat -P tcp

Vis kun UDP-stikkontakter
sockstat -P udp

Koble begge protokollene.

sockstat –P tcp,udp

6. List TCP- og UDP-spesifikke portnumre

Hvis du vil vise alle TCP- eller UDP IP-åpnede sockets, basert på det lokale eller eksterne portnummeret, bruk kommandoflaggene og syntaks nedenfor, som illustrert i skjermbildet nedenfor.

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. Liste åpnede og tilkoblede porter i FreeBSD

For å vise alle åpnede og tilkoblede stikkontakter, bruk -c-flagget. Som vist i eksemplene nedenfor, kan du liste alle HTTPS-tilkoblede stikkontakter eller alle TCP-tilkoblede stikkontakter ved å utstede kommandoene.

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

8. List nettverkslytteporter i FreeBSD

For å liste alle åpnede TCP-sockets i lyttetilstand, legg til -l og -s flaggene, som vist i eksemplet nedenfor. Siden UDP er en tilkoblingsløs protokoll, opprettholder ingen informasjon om tilstanden til tilkoblingen.

UDP åpnede sockets kan ikke vises ved å bruke deres tilstand, fordi udp-protokollen bruker datagrammer for å sende/motta data og har ingen innebygd mekanisme for å bestemme tilstanden til forbindelsen.

sockstat -46 -l -s

9. List opp Unix-sokler og navngitte rør

Unix-domenekontakter, så vel som andre former for lokal kommunikasjon mellom prosesser, for eksempel navngitte rør, kan vises med sockstat-kommando ved å bruke -u-flagget, som vist i bildet nedenfor.

sockstat -u

10. List porter åpnet av applikasjon i FreeBSD

Sockstat-kommandoutdata kan filtreres gjennom grep-verktøyet for å vise en liste over porter åpnet av en spesifikk applikasjon eller kommando.

Anta at du vil liste opp alle sockets tilknyttet Nginx-nettserveren, kan du gi følgende kommando for å oppnå oppgaven.

sockstat -46 | grep nginx

For å vise bare de tilkoblede stikkontaktene som er knyttet til Nginx webserver, utfør følgende kommando.

sockstat -46 -c| grep nginx

11. List HTTPS Connected Protocols

Du kan liste alle tilkoblede stikkontakter tilknyttet HTTPS-protokollen sammen med tilstanden til hver tilkobling ved å kjøre kommandoen nedenfor.

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

12. List opp HTTP-fjernkontakter

For å liste opp alle eksterne stikkontakter som er knyttet til HTTP-protokollen, kan du kjøre en av følgende kommandokombinasjoner.

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. Finn høyeste HTTP-forespørsler etter IP-adresser

Hvis du vil finne ut hvor mange HTTP-tilkoblinger som er forespurt av hver ekstern IP-adresse, utfør kommandoen nedenfor. Denne kommandoen kan være veldig nyttig i tilfelle du ønsker å finne ut om webserveren din er under et slags DDOS-angrep. Ved mistanke bør du undersøke IP-adressene med høyest forespørselsfrekvens.

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

14. List opp DNS-åpnede sockets

Hvis du har konfigurert en caching og videresending av DNS-server i lokalene dine for å betjene interne klienter via TCP-transportprotokoll og du vil vise en liste over alle sockets
åpnet av resolveren, sammen med tilstanden til hver socket-tilkobling, utfør følgende kommando.

sockstat -46 -P tcp –p 53 -s

15. Spør etter TCP DNS på lokalt domene

Hvis det ikke er DNS-trafikk på nettverket, kan du manuelt utløse en DNS-spørring på TCP-kontakten fra den lokale maskinens konsoll ved å kjøre følgende gravekommando. Etterpå, utfør kommandoen ovenfor for å liste opp alle resolver sockets.

dig +tcp  www.domain.com  @127.0.0.1

Det er alt! Sammen med netstat og lsof kommandolinjeverktøy er sockstat kommandolinje et kraftig verktøy som brukes til å innhente nettverksinformasjon og feilsøke flere aspekter av FreeBSD nettverksstabel og nettverksrelaterte prosesser og tjenester.

FreeBSD sockstat-kommandomotparten i Linux er representert av netstat eller den nylig ss-kommandoen. Tro det eller ei, basert på sockstat-verktøyet, kan du finne en lignende applikasjon utviklet for Android OS, kalt SockStat – Simple Netstat GUI.