GNU/Linux >> Linux Esercitazione >  >> Linux

Visualizza le connessioni di rete del tuo server Linux con netstat

Ho condiviso alcuni importanti primi passi per aiutare a gestire il tuo server Linux personale in un articolo precedente. Ho menzionato brevemente il monitoraggio delle connessioni di rete per le porte in ascolto e voglio ampliarlo utilizzando netstat comando per sistemi Linux.

Il monitoraggio del servizio e la scansione delle porte sono pratiche standard del settore. C'è un ottimo software come Prometheus per automatizzare il processo e SELinux per contestualizzare e proteggere l'accesso al sistema. Tuttavia, credo che capire come il tuo server si connette ad altre reti e dispositivi sia la chiave per stabilire una linea di base di ciò che è normale per il tuo server, che ti aiuta a riconoscere le anomalie che potrebbero suggerire un bug o un'intrusione. Da principiante, ho scoperto che netstat Il comando fornisce informazioni importanti sul mio server, sia per il monitoraggio che per la risoluzione dei problemi di rete.

Netstat e strumenti di monitoraggio della rete simili, raggruppati nel pacchetto net-tools, visualizzano informazioni sulle connessioni di rete attive. Poiché i servizi in esecuzione su porte aperte sono spesso vulnerabili allo sfruttamento, la pratica del monitoraggio regolare della rete può aiutarti a rilevare tempestivamente attività sospette.

Installa netstat

Netstat è spesso preinstallato sulle distribuzioni Linux. Se netstat non è installato sul tuo server, installalo con il tuo gestore di pacchetti. Su un sistema basato su Debian:

$ sudo apt-get install net-tools

Per i sistemi basati su Fedora:

$ dnf install net-tools

Utilizza netstat

Da solo, il netstat comando visualizza tutte le connessioni stabilite. Puoi usare netstat opzioni precedenti per specificare ulteriormente l'output previsto. Ad esempio, per mostrare tutte le connessioni in ascolto e non in ascolto, utilizza --all (-a in breve) opzione. Questo restituisce molti risultati, quindi in questo esempio invio l'output a head per visualizzare solo le prime 15 righe di output:

$ netstat --all | head -n 15
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 *:27036                 *:*                     LISTEN      
tcp        0      0 localhost:27060         *:*                     LISTEN      
tcp        0      0 *:16001                 *:*                     LISTEN      
tcp        0      0 localhost:6463          *:*                     LISTEN      
tcp        0      0 *:ssh                   *:*                     LISTEN      
tcp        0      0 localhost:57343         *:*                     LISTEN      
tcp        0      0 *:ipp                   *:*                     LISTEN      
tcp        0      0 *:4713                  *:*                     LISTEN      
tcp        0      0 10.0.1.222:48388        syd15s17-in-f5.1e:https ESTABLISHED
tcp        0      0 10.0.1.222:48194        ec2-35-86-38-2.us:https ESTABLISHED
tcp        0      0 10.0.1.222:56075        103-10-125-164.va:27024 ESTABLISHED
tcp        0      0 10.0.1.222:46680        syd15s20-in-f10.1:https ESTABLISHED
tcp        0      0 10.0.1.222:52730        syd09s23-in-f3.1e:https ESTABLISHED

Per mostrare solo le porte TCP, usa --all e --tcp opzioni o -at in breve:

$ netstat -at | head -n 5
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address   Foreign Address  State      
tcp        0      0 *:27036         *:*              LISTEN      
tcp        0      0 localhost:27060 *:*              LISTEN      
tcp        0      0 *:16001         *:*              LISTEN

Per mostrare solo le porte UDP, usa --all e --udp opzioni o -au in breve:

$ netstat -au | head -n 5
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address     Foreign Address    State      
udp        0      0 *:27036           *:*                                
udp        0      0 10.0.1.222:44741  224.0.0.56:46164   ESTABLISHED
udp        0      0 *:bootpc          

Le opzioni per netstat sono spesso intuitive. Ad esempio, per mostrare tutte le porte TCP e UDP in ascolto con ID processo (PID) e indirizzo numerico:

$ sudo netstat --tcp --udp --listening --programs --numeric
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address      Foreign Addr  State   PID/Program name    
tcp        0      0 0.0.0.0:111        0.0.0.0:*     LISTEN  1/systemd            
tcp        0      0 192.168.122.1:53   0.0.0.0:*     LISTEN  2500/dnsmasq        
tcp        0      0 0.0.0.0:22         0.0.0.0:*     LISTEN  1726/sshd            
tcp        0      0 127.0.0.1:631      0.0.0.0:*     LISTEN  1721/cupsd          
tcp        0      0 127.0.0.1:6010     0.0.0.0:*     LISTEN  4023/sshd: tux@  
tcp6       0      0 :::111             :::*          LISTEN  1/systemd            
tcp6       0      0 :::22              :::*          LISTEN  1726/sshd            
tcp6       0      0 ::1:631            :::*          LISTEN  1721/cupsd          
tcp6       0      0 ::1:6010           :::*          LISTEN  4023/sshd: tux@  
udp        0      0 0.0.0.0:40514      0.0.0.0:*             1499/avahi-daemon:  
udp        0      0 192.168.122.1:53   0.0.0.0:*             2500/dnsmasq        
udp        0      0 0.0.0.0:67         0.0.0.0:*             2500/dnsmasq        
udp        0      0 0.0.0.0:111        0.0.0.0:*             1/systemd            
udp        0      0 0.0.0.0:5353       0.0.0.0:*             1499/avahi-daemon:  
udp6       0      0 :::111             :::*                  1/systemd            
udp6       0      0 :::44235           :::*                  1499/avahi-daemon:  
udp6       0      0 :::5353            :::*                  1499/avahi-daemon:

La versione breve di questa combinazione comune è -tulpn .

Per visualizzare informazioni su un servizio specifico, filtra con grep :

$ sudo netstat -anlp | grep cups
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1721/cupsd           tcp6       0      0 ::1:631                 :::*                    LISTEN      1721/cupsd
unix  2      [ ACC ]     STREAM     LISTENING     27251    1/systemd /var/run/cups/cups.sock
unix  2      [ ]         DGRAM                    59530    1721/cupsd
unix  3      [ ]         STREAM     CONNECTED     55196    1721/cupsd /var/run/cups/cups.sock

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Passaggi successivi

Dopo aver eseguito netstat comando, puoi adottare misure per proteggere il tuo sistema assicurandoti che solo i servizi che utilizzi attivamente siano in ascolto sulla tua rete.

  1. Riconosci le porte e i servizi comunemente sfruttati. Come regola generale, chiudi le porte che non stai effettivamente utilizzando.
  2. Fai attenzione ai numeri di porta non comuni e impara a riconoscere le porte legittime in uso sul tuo sistema.
  3. Fai molta attenzione agli errori di SELinux. A volte tutto ciò che devi fare è aggiornare i contesti in modo che corrispondano a una modifica legittima che hai apportato al tuo sistema, ma leggi gli errori per assicurarti che SELinux non ti avvisi di attività sospette o dannose.

Se scopri che una porta sta eseguendo un servizio sospetto, o vuoi semplicemente chiudere una porta che non usi più, puoi negare manualmente l'accesso alla porta tramite le regole del firewall seguendo questi passaggi:

Se stai usando firewall-cmd , esegui questi comandi:

$ sudo firewall-cmd –remove-port=<port number>/tcp
$ sudo firewall-cmd –runtime-to-permanent

Se stai usando UFW, esegui il seguente comando:

$ sudo ufw deny <port number>

Quindi, interrompi il servizio stesso utilizzando systemctl :

$ systemctl stop <service>

Impara netstat

Netstat è uno strumento utile per raccogliere rapidamente informazioni sulle connessioni di rete del tuo server. Il monitoraggio regolare della rete è una parte importante per conoscere il tuo sistema e ti aiuta a mantenere il tuo sistema al sicuro. Per incorporare questo passaggio nella tua routine amministrativa, puoi utilizzare strumenti di monitoraggio della rete come netstat o ss, nonché scanner di porte open source come Nmap o sniffer come Wireshark, che consentono attività pianificate.

Poiché i server ospitano quantità maggiori di dati personali, è sempre più importante garantire la sicurezza dei server personali. Comprendendo in che modo il tuo server si connette a Internet, puoi ridurre la vulnerabilità della tua macchina, pur continuando a beneficiare della crescente connettività dell'era digitale.


Linux
  1. Inizia con NetworkManager su Linux

  2. Crea un gemello malvagio della tua rete con Fluxion su Kali Linux

  3. Risolvi i problemi della tua rete con tcpdump

  4. Sincronizza l'ora del server Linux con il server dell'ora di rete

  5. Verifica la connettività di rete su un server Linux

Configura un server VPN sul tuo PC Linux

Personalizza il tuo desktop Linux con FVWM

Crea il tuo server di streaming video con Linux

Proteggi la tua rete Linux con firewall-cmd

ReaR:esegui il backup e il ripristino del tuo server Linux in tutta sicurezza

Network Manager su Linux con esempi