15 noderīgi Sockstat komandu piemēri, lai atrastu atvērtos portus FreeBSD


Sockstat ir universāla komandrindas utilīta, ko izmanto tīkla un sistēmas atvērtu ligzdu parādīšanai FreeBSD. Galvenokārt sockstat komanda pēc noklusējuma ir instalēta FreeBSD, un to parasti izmanto, lai parādītu to procesu nosaukumu, kuri FreeBSD sistēmā ir atvēruši noteiktu tīkla portu.

Tomēr sockstat var arī uzskaitīt atvērtās kontaktligzdas, pamatojoties uz protokola versiju (abām IP versijām), uz savienojuma stāvokli un uz to, kādos portos dēmons vai programma saista un klausās.

Tas var arī parādīt starpprocesu komunikācijas kontaktligzdas, kuras parasti sauc par Unix domēna ligzdām vai IPC. Sockstat komanda apvienojumā ar awk lietderību izrādās spēcīgs vietējās tīkla kaudzes rīks.

Tas var samazināt atvērta savienojuma rezultātus, pamatojoties uz lietotāju, kuram pieder ligzda, tīkla kontaktligzdas failu deskriptors vai procesa PID, kurš atvēris ligzdu.

Šajā ceļvedī mēs uzskaitīsim dažus izplatītus, bet arī ļoti spēcīgus sockstat komandrindas tīkla utilītas izmantošanas piemērus FreeBSD.

  1. FreeBSD 11.1 instalēšanas rokasgrāmata

1. Uzskaitiet visus atvērtos portus FreeBSD

Vienkārši izpildot bez jebkādām opcijām vai slēdžiem, komanda sockstat parādīs visas atvērtās ligzdas FreeBSD sistēmā, kā parādīts zemāk esošajā ekrānuzņēmumā.

# sockstat

Sockstat izvades attēlotās vērtības ir aprakstītas šādi:

  • LIETOTĀJS: kontaktligzdas īpašnieks (lietotāja konts).
  • KOMANDA: komanda, ar kuru tika atvērta kontaktligzda.
  • PID: Komandas, kurai pieder ligzda, procesa ID.
  • FD: ligzdas faila deskriptora numurs.
  • PROTO: transporta protokols (parasti TCP/UDP), kas saistīts ar atvērto kontaktligzdu vai kontaktligzdas tipu, ja UNIX ligzdām ir domēna ligzdas (datagramma, straume vai seqpac).
  • LOKĀLĀ ADRESE: tā apzīmē vietējo IP adresi ligzdām, kuru pamatā ir IP. Unix ligzdu gadījumā tas apzīmē gala faila nosaukumu, kas pievienots ligzdai. Apzīmējums “??” nozīmē, ka ligzdas galapunktu nevarēja atpazīt vai izveidot.
  • ĀRVALSTES ADRESE: attālā IP adrese, kurai ir pievienota kontaktligzda.

2. Uzskaitiet FreeBSD klausīšanās vai atvērtās ostas

Veicot ar karodziņu -l , komanda sockstat parādīs visas tīkla kaudzē atvērtās klausīšanās ligzdas un visas atvērtās unix domēna ligzdas vai nosauktās caurules, kas iesaistītas kaut kādā lokālā datu apstrādē sistēmā.

# sockstat -l

3. Sarakstiet IPv4 atvērtos portus FreeBSD

Lai parādītu visas atvērtās ligzdas tikai IPv4 protokolam, izsniedziet komandu ar karodziņu -4 , kā ieteikts zemāk esošajā piemērā.

# sockstat -4

4. Sarakstiet IPv6 atvērtos portus FreeBSD

Līdzīgi kā IPv4 versijā, atveramās tīkla ligzdas var parādīt arī tikai IPv6, izsniedzot komandu, kā parādīts zemāk.

# sockstat -6

5. Sarakstā TCBS vai UDP atvērtos portus norādiet FreeBSD

Lai parādītu tīkla kontaktligzdas, kuru pamatā ir tikai noteikts tīkla protokols, piemēram, TCP vai UDP, izmantojiet karodziņu -P , kam seko protokola argumenta nosaukums.

Protokolu nosaukumus var atrast, pārbaudot faila/etc/protocols saturu. Pašlaik ICMP protokolu neatbalsta rīks sockstat.

# sockstat -P tcp
# sockstat -P udp

Ķēdē abus protokolus.

# sockstat –P tcp,udp

6. Uzskaitiet TCP un UDP portu numurus

Ja vēlaties parādīt visas TCP vai UDP IP atvērtās kontaktligzdas, pamatojoties uz vietējā vai attālā porta numuru, izmantojiet zemāk redzamos komandu karodziņus un sintaksi, kā parādīts zemāk esošajā ekrānuzņēmumā.

# 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. Sarakstiet atvērtās un savienotās ostas FreeBSD

Lai parādītu visas atvērtās un pievienotās kontaktligzdas, izmantojiet karodziņu -c . Kā parādīts zemāk esošajos paraugos, izsniedzot komandas, varat uzskaitīt visas ar HTTPS savienotās kontaktligzdas vai visas ar TCP savienotās kontaktligzdas.

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

8. Sarakstiet tīkla klausīšanās ostas FreeBSD

Lai uzskaitītu visas atvērtās TCP ligzdas klausīšanās stāvoklī, pievienojiet karodziņus -l un -s , kā parādīts zemāk esošajā piemērā. Tā kā protokols ir bez savienojuma, UDP nesniedz informāciju par savienojuma stāvokli.

UDP atvērtās ligzdas nevar parādīt, izmantojot to stāvokli, jo udp protokols datu sūtīšanai/saņemšanai izmanto datagramas un tam nav iebūvēta mehānisma, lai noteiktu savienojuma stāvokli.

# sockstat -46 -l -s

9. Uzskaitiet Unix kontaktligzdas un nosauktās caurules

Unix domēna kontaktligzdas, kā arī citas lokālas starpprocesu komunikācijas formas, piemēram, nosauktas caurules, var parādīt ar komandu sockstat, izmantojot karodziņu -u , kā parādīts zemāk esošajā attēlā.

# sockstat -u

10. Sarakstiet portus, kurus FreeBSD ir atvēris pēc lietojumprogrammas

Sockstat komandu izvadi var filtrēt, izmantojot grep utilītu, lai parādītu portu sarakstu, ko atvērusi konkrēta lietojumprogramma vai komanda.

Pieņemsim, ka vēlaties uzskaitīt visas ligzdas, kas saistītas ar Nginx tīmekļa serveri, uzdevuma sasniegšanai varat izdot šādu komandu.

# sockstat -46 | grep nginx

Lai parādītu tikai pievienotās kontaktligzdas, kas saistītas ar Nginx tīmekļa serveri, izsniedziet šādu komandu.

# sockstat -46 -c| grep nginx

11. Sarakstā pievienojiet HTTPS savienotos protokolus

Varat uzskaitīt visas pievienotās kontaktligzdas, kas saistītas ar HTTPS protokolu, blakus katra savienojuma stāvoklim, izpildot zemāk esošo komandu.

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

12. Uzskaitiet HTTP attālās ligzdas

Lai uzskaitītu visas ar HTTP protokolu saistītās attālās ligzdas, varat palaist vienu no šīm komandu kombinācijām.

# 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. Atrodiet augstākos HTTP pieprasījumus pēc IP adresēm

Ja vēlaties uzzināt, cik HTTP savienojumu pieprasa katra attālā IP adrese, izsniedziet tālāk norādīto komandu. Šī komanda var būt ļoti noderīga gadījumā, ja vēlaties noteikt, vai jūsu tīmekļa serverim ir kaut kāds DDOS uzbrukums. Ja rodas aizdomas, jums vajadzētu izpētīt IP adreses ar visaugstāko pieprasījumu līmeni.

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

14. Uzskaitiet DNS atvērtās ligzdas

Ja savās telpās esat konfigurējis kešatmiņu un pārsūtīšanas DNS serveri, lai apkalpotu iekšējos klientus, izmantojot TCP transporta protokolu, un vēlaties parādīt visu kontaktligzdu sarakstu
Atveriet izšķirtspēju kopā ar katra kontaktligzdas savienojuma stāvokli izpildiet šādu komandu.

# sockstat -46 -P tcp –p 53 -s

15. Vaicājums TCP DNS vietējā domēnā

Ja tīklā nav DNS trafika, varat manuāli aktivizēt DNS vaicājumu TCP ligzdā no vietējās mašīnas konsoles, izpildot šo komandu dig. Pēc tam izsniedziet iepriekš minēto komandu, lai uzskaitītu visas izšķirtspējas ligzdas.

# dig +tcp  www.domain.com  @127.0.0.1

Tas ir viss! Kopā ar lsof komandrindas utilītprogrammām sockstat komandrinda ir spēcīga lietderība, ko izmanto tīkla informācijas iegūšanai un vairāku FreeBSD tīkla kaudzes un ar tīkliem saistīto procesu un pakalpojumu aspektu novēršanai.

FreeBSD sockstat komandas kolēģi Linux attēlo netstat vai nesen ss komanda. Ticiet vai nē, pamatojoties uz sockstat lietderību, jūs varat atrast līdzīgu lietojumprogrammu, kas izstrādāta Android OS, ar nosaukumu SockStat - Simple Netstat GUI.