GNU/Linux >> Linux Esercitazione >  >> FreeBSD

15 Utili "esempi di comandi Sockstat" per trovare porte aperte in FreeBSD

Sockstat è una versatile utility da riga di comando usata per visualizzare i socket aperti di rete e di sistema in FreeBSD. Principalmente, il comando socksstat è installato di default in FreeBSD ed è comunemente usato per visualizzare il nome dei processi che hanno aperto una certa porta di rete su un sistema FreeBSD.

Tuttavia, sockstat può anche elencare i socket aperti in base alla versione del protocollo (entrambe le versioni IP), allo stato della connessione e su quali porte un demone o un programma si lega e rimane in ascolto.

Leggi anche :20 utili esempi di comandi "netstat" per controllare le connessioni di rete

Può anche visualizzare socket di comunicazione tra processi, generalmente noti come socket di dominio Unix o IPC. Il comando Socksstat combinato con il filtro grep o inviato tramite pipe tramite l'utilità awk si rivela un potente strumento per lo stack di rete locale.

Può ridurre i risultati per una connessione aperta in base all'utente che possiede il socket, al descrittore di file di un socket di rete o al PID del processo che ha aperto il socket.

In questa guida elencheremo alcuni esempi di utilizzo comuni, ma anche molto potenti, dell'utilità di rete a riga di comando socksstat in FreeBSD.

Requisiti

  1. Guida all'installazione di FreeBSD 11.1

1. Elenca tutte le porte aperte in FreeBSD

Eseguito semplicemente senza alcuna opzione o interruttore, il comando socksstat mostrerà tutti i socket aperti in un sistema FreeBSD, come illustrato nello screenshot qui sotto.

# sockstat

I valori visualizzati nell'output del calzino sono descritti come:

  • UTENTE :Il proprietario (account utente) del socket.
  • COMANDO :Il comando con cui ha aperto il socket.
  • PID :L'ID del processo del comando che possiede il socket.
  • FD :il numero del descrittore di file del socket.
  • PROTO :Il protocollo di trasporto (solitamente TCP/UDP) associato al socket aperto o al tipo di socket in caso di socket di dominio unix (datagram, stream o seqpac) per socket UNIX.
  • INDIRIZZO LOCALE :Rappresenta l'indirizzo IP locale per i socket basati su IP. In caso di socket Unix, rappresenta il nome del file dell'endpoint collegato al socket. Il “??” la notazione implica che l'endpoint del socket non può essere riconosciuto o stabilito.
  • INDIRIZZO ESTERO :l'indirizzo IP remoto a cui è collegata la presa.

2. Elenca le porte in ascolto o aperte in FreeBSD

Eseguito con -l flag, il comando socksstat visualizzerà tutti i socket in ascolto aperti nello stack di rete e tutti i socket di dominio Unix aperti o le named pipe coinvolte in qualche tipo di elaborazione locale dei dati nel sistema.

# sockstat -l

3. Elenca le porte IPv4 aperte in FreeBSD

Per visualizzare tutti i socket aperti per IPv4 solo protocollo, immetti il ​​comando con -4 flag, come suggerito nell'esempio seguente.

# sockstat -4

4. Elenca le porte aperte IPv6 in FreeBSD

Analogamente alla versione IPv4, puoi anche visualizzare i socket di rete aperti per IPv6 solo, eseguendo il comando come mostrato di seguito.

# sockstat -6

5. Elenca le porte aperte TCP o UDP in FreeBSD

Per visualizzare i socket di rete basati solo su un protocollo di rete specifico, come TCP o UDP , usa il -P flag, seguito dal nome dell'argomento del protocollo.

I nomi dei protocolli possono essere trovati esaminando il contenuto di /etc/protocols file. Attualmente, il protocollo ICMP non è supportato dallo strumento socksstat.

Mostra solo socket TCP
# sockstat -P tcp
Mostra solo socket UDP
# sockstat -P udp

Concatena entrambi i protocolli.

# sockstat –P tcp,udp

6. Elenca i numeri di porta specifici per TCP e UDP

Se desideri visualizzare tutti i socket IP TCP o UDP aperti, in base al numero di porta locale o remota, utilizza i flag di comando e la sintassi seguenti, come illustrato nella schermata seguente.

# 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. Elenca le porte aperte e connesse in FreeBSD

Per visualizzare tutte le prese aperte e collegate, usa il -c bandiera. Come mostrato negli esempi seguenti, puoi elencare tutti gli HTTPS socket connessi o tutti i socket connessi TCP emettendo i comandi.

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

8. Elenca le porte di ascolto della rete in FreeBSD

Per elencare tutti i socket TCP aperti in stato di ascolto, aggiungere il -l e -s flag, come mostrato nell'esempio seguente. Essendo un protocollo senza connessione, UDP non conserva informazioni sullo stato della connessione.

I socket aperti UDP non possono essere visualizzati utilizzando il loro stato, perché il protocollo udp utilizza datagrammi per inviare/ricevere dati e non ha un meccanismo integrato per determinare lo stato della connessione.

# sockstat -46 -l -s

9. Elenca socket Unix e pipe con nome

I socket di dominio Unix, così come altre forme di comunicazione tra processi locali, come le named pipe, possono essere visualizzati dal comando socksstat usando il -u bandiera, come mostrato nell'immagine qui sotto.

# sockstat -u

10. Elenca le porte aperte dall'applicazione in FreeBSD

L'output del comando Socksstat può essere filtrato tramite l'utilità grep per visualizzare un elenco di porte aperte da un'applicazione o un comando specifico.

Supponiamo di voler elencare tutti i socket associati a Nginx server web, puoi emettere il seguente comando per portare a termine l'attività.

# sockstat -46 | grep nginx

Per visualizzare solo i socket connessi associati al server web Nginx, emettere il seguente comando.

# sockstat -46 -c| grep nginx

11. Elenca i protocolli connessi HTTPS

Puoi elencare tutte le prese collegate associate a HTTPS protocollo insieme allo stato di ogni connessione eseguendo il comando seguente.

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

12. Elenca i socket remoti HTTP

Per elencare tutti i socket remoti associati al protocollo HTTP, puoi eseguire una delle seguenti combinazioni di comandi.

# 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. Trova le richieste HTTP più elevate per indirizzi IP

Nel caso in cui desideri trovare quante connessioni HTTP sono richieste da ciascun indirizzo IP remoto, emetti il ​​comando seguente. Questo comando può essere molto utile nel caso in cui desideri determinare se il tuo server web è sotto qualche tipo di attacco DDOS. In caso di sospetto, dovresti indagare sugli indirizzi IP con il tasso di richiesta più alto.

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

14. Elenca i socket aperti DNS

Se hai configurato un server DNS di cache e forwarding presso la tua sede per servire i client interni tramite il protocollo di trasporto TCP e desideri visualizzare un elenco di tutti i socket
aperti dal risolutore, insieme allo stato di ciascuna connessione socket, esegui il comando seguente.

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

15. Interroga il DNS TCP sul dominio locale

Se non c'è traffico DNS sulla rete, puoi attivare manualmente una query DNS sul socket TCP dalla console della macchina locale eseguendo il seguente comando dig. Successivamente, emetti il ​​comando sopra per elencare tutti i socket del risolutore.

# dig +tcp  www.domain.com  @127.0.0.1

È tutto! Insieme alle utilità a riga di comando netstat e lsof, la riga di comando socksstat è una potente utilità utilizzata per acquisire informazioni di rete e risolvere diversi aspetti dello stack di rete di FreeBSD e dei processi e servizi correlati alla rete.

La controparte del comando socksstat di FreeBSD in Linux è rappresentata da netstat o le nuove ss comando. Che tu ci creda o no, in base all'utilità socksstat, puoi trovare un'applicazione simile sviluppata per il sistema operativo Android, chiamata SockStat – Simple Netstat GUI.


FreeBSD
  1. 12 utili esempi di comandi Wget in Linux

  2. 23 Esempi utili di comandi PKG per gestire i pacchetti in FreeBSD

  3. 5 Esempi utili del comando firewall-cmd

  4. 7 Esempi utili di comandi Trova per individuare i file da rimuovere quando un filesystem è pieno

  5. trova Esempi di comandi in Linux

11 Esempi utili di comandi data di Linux

Esempi utili di comandi Wget nel sistema Linux

50 esempi semplici e utili di comando Trova in Linux

15 esempi utili di comando touch nel sistema Linux

15 esempi super utili del comando Trova in Linux

12 Esempi utili di comandi data di Linux