Guida alla risoluzione dei problemi di rete in Linux

12 dicembre 2023


L’affidabilità della rete non è solo una comodità: è una pietra miliare dell’integrità operativa. Linux, noto per la sua robustezza e versatilità, è la piattaforma preferita da molti amministratori di rete. Tuttavia, anche le reti più robuste possono incontrare intoppi che richiedono una risoluzione avanzata dei problemi.

Questo articolo approfondisce la risoluzione dei problemi di rete di Linux, fornendo sia agli utenti occasionali che agli amministratori di sistema le conoscenze e gli strumenti necessari per diagnosticare e risolvere efficacemente i problemi di rete più complessi.

Strumenti di base per la diagnostica di rete

La risoluzione dei problemi di rete è sia un’arte che una scienza. Richiede un mix di metodologia sistematica e capacità di risolvere i problemi in modo creativo. Prima di immergersi nella complessità dei problemi di rete, è essenziale comprendere le basi della diagnostica di rete. Questi strumenti fondamentali, spesso dati per scontati, rappresentano la prima linea di difesa quando la connettività non funziona.

Iniziare dalle basi: comandi ip, ping e traceroute

comando ip

Quando si verificano problemi di connettività, il comando ip è il tuo strumento preferito. Con ip addr show puoi verificare che le interfacce di rete siano attive e confermare i loro indirizzi IP. È più completo di ifconfig perché è in grado di gestire tutte le caratteristiche moderne dello stack di rete di Linux, come VLAN, tunnel IP e protocolli di routing più complessi. Sebbene ifconfig sia ancora presente in molti sistemi per la compatibilità con il passato, ip è lo strumento a prova di futuro che si allinea alle funzioni di rete avanzate del kernel Linux.

comando ping

Il prossimo strumento per la risoluzione dei problemi di rete è il comando ping. È l’equivalente di un sonar in un mare di dati, che invia richieste di eco ICMP (Internet Control Message Protocol) agli host di destinazione. Un ping riuscito conferma non solo lo stato operativo dell’interfaccia di rete locale, ma anche la raggiungibilità del sistema di destinazione sulla rete. Inviando una serie di pacchetti, il ping può fornire metriche sul tempo di andata e ritorno, preziose per valutare la latenza della rete. Questo funziona nella maggior parte delle situazioni, ma ci sono reti, altamente “securizzate”, che hanno disabilitato il protocollo ICMP, dunque comando ping andrebbe a vuoto.

comando traceroute

Il traceroute mappa il percorso che i dati compiono dall’origine alla destinazione. Visualizzando la serie di salti e il tempo impiegato per ogni salto, traceroute aiuta a individuare i punti in cui si verificano potenziali ritardi o blocchi. Questo strumento può essere particolarmente utile quando si tratta di reti complesse in cui i dati passano attraverso più router e percorsi.

Un approccio sistematico alla risoluzione dei problemi di rete

L’importanza di un approccio sistematico alla risoluzione dei problemi di rete non può essere sopravvalutata. Come un medico che diagnostica un paziente, un amministratore di rete deve affrontare ogni problema con metodo. Il primo passo è definire la portata del problema: si tratta di un singolo utente, di un intero segmento o di un problema a livello di sistema? Una volta individuato l’ambito, i passi successivi sono la raccolta di informazioni, l’identificazione delle aree interessate, la definizione di una teoria di probabile causa e la verifica di tale teoria.

La raccolta di informazioni inizia dalle basi: verificare che i cavi siano collegati e alimentati, assicurarsi che le interfacce di rete siano attive e configurate correttamente e confermare che le impostazioni IP del sistema siano corrette. Da qui, l’utilizzo di ip addr,ip link e ip route per verificare la corretta assegnazione dell’indirizzo IP, lo stato del link e la subnetting è fondamentale. Se il livello IP è operativo, ping e traceroute possono aiutare a determinare se il problema si trova all’interno della rete locale o al di fuori di essa.

Ogni fase del processo si basa su quella precedente e, come un detective, un addetto alla risoluzione dei problemi di rete (Incident Resolver) deve considerare tutte le prove. A volte il problema è semplice come un cavo scollegato, mentre altre volte può richiedere un’analisi approfondita del traffico di rete, delle configurazioni o dell’hardware.

Approfondimenti con strumenti più avanzati

Una volta utilizzati gli strumenti fondamentali come ping e traceroute e comprese le basi del problema, è il momento di andare più a fondo. Gli strumenti avanzati forniscono una visione più granulare del funzionamento interno della rete, consentendo l’identificazione e l’analisi precisa di problemi complessi.

Tcpdump, netstat, iperf e altri.

In questa sezione esploriamo  tcpdump per l’analisi dei pacchetti, netstat per il monitoraggio delle connessioni di rete e iperf per la misurazione della larghezza di banda, il tutto sullo sfondo di scenari reali.

Analisi dei pacchetti con tcpdump

tcpdump è lo strumento di analisi dei pacchetti per eccellenza che ogni sysadmin dovrebbe conoscere. Ti permette di catturare e ispezionare i pacchetti di rete a livello granulare. Immagina uno scenario in cui gli utenti si lamentano della lentezza delle prestazioni di un’applicazione web. tcpdump può essere utilizzato per catturare il traffico che va e viene dal server dell’applicazione e analizzare se le richieste e le risposte avvengono in modo tempestivo.

Ad esempio, puoi catturare il traffico sulla porta 80 con:

tcpdump -i eth0 porta 80

Questo comando fornirà un flusso in tempo reale del traffico HTTP, che potrà essere ulteriormente analizzato per identificare eventuali ritardi o ritrasmissioni insolite che potrebbero essere la causa del degrado delle prestazioni.

Monitoraggio delle connessioni con netstat

Mentre tcpdump ti offre una visione in diretta del traffico a livello di pacchetti, netstat ti permette di fare un passo indietro e di visualizzare le connessioni di rete nel loro complesso. Questo strumento può aiutare a identificare quali socket sono aperti e in quale stato si trovano. Nel caso di un’applicazione che sembra non riuscire a raggiungere il suo server di database, netstat può rivelare rapidamente se ci sono connessioni stabilite sulla porta del database e, in caso contrario, se l’applicazione sta cercando di avviarne una e non ci riesce.

Un esempio di comando potrebbe essere:

netstat -tuln

In questo modo vengono elencate tutte le porte in ascolto e le connessioni TCP stabilite, senza risolvere i nomi degli host o delle porte. Rapido e diretto, è perfetto per verificare se i server dell’applicazione e del database hanno un percorso di comunicazione aperto.

Misurare la larghezza di banda con iperf

I problemi di larghezza di banda possono essere difficili da diagnosticare, ma iperf è uno strumento specializzato progettato proprio per questo scopo. Misura la larghezza di banda massima dei collegamenti di rete. Supponiamo che un ufficio remoto abbia una velocità di rete inferiore al previsto. Impostando iperf in modalità server presso la sede principale e collegandoti ad esso dalla sede remota, puoi misurare la larghezza di banda tra i due punti.

Per avviare iperf in modalità server, usa:

iperf -s

E per connettersi a questo server da un client, si usa:

iperf -c <indirizzo_ip_server>

Questo semplice test può confermare rapidamente se il collegamento di rete funziona alla velocità prevista o se c’è un collo di bottiglia che deve essere affrontato.

Applicando questi strumenti in scenari reali, i sysadmin possono isolare i problemi in modo più efficace e comprendere il comportamento della rete in diverse condizioni, ottenendo un ambiente di rete più robusto e affidabile.

alternative a tcpdump, netstat e iperf

È importante notare che gli strumenti di rete e le raccomandazioni si evolveranno nel tempo. Fammi sapere se ho dimenticato qualcuno dei tuoi preferiti. Forse hai più familiarità con strumenti alternativi:

wireshark

Wireshark offre un’interfaccia grafica più semplice da usare per analizzare i pacchetti. Tuttavia, tcpdump è preferibile negli ambienti in cui non è disponibile un’interfaccia grafica o quando si lavora in remoto tramite un’interfaccia a riga di comando.

comando ss

Alcune distribuzioni Linux moderne si stanno orientando verso il comando ss (parte del pacchetto iproute2 ) in sostituzione di netstat. ss può visualizzare più informazioni di netstat ed è più veloce nel fornire statistiche di rete. È consigliabile acquisire familiarità con ss se stai lavorando su un sistema che lo supporta.

iperf3

Sebbene non esistano molte alternative dirette a iperf, le versioni più recenti come iperf3 offrono funzioni migliori e un’esperienza d’uso più snella. È consigliabile utilizzare iperf3 se stai impostando nuovi test di larghezza di banda.

Come per ogni strumento, la scelta dipende spesso dai requisiti specifici dell’attività e dall’ambiente in cui si lavora.

Monitoraggio delle prestazioni della rete

Utilizzando  bpytop e  Btop con il preset di rete. (entrambi ospitati da stacklinux.com)

Nel campo della gestione della rete, monitoraggio continuo è essenziale. Stabilire le metriche  di base delle prestazioni e monitorarle continuamente può identificare preventivamente i potenziali problemi prima che si trasformino in problemi significativi. Questa sezione approfondisce l’importanza di queste pratiche ed esplora strumenti come nload, iftop e nethogs.

L’importanza del monitoraggio continuo della rete

Il monitoraggio continuo della rete è fondamentale per mantenere la salute e l’efficienza di una rete. Permette agli amministratori di:

  • Individua i problemi in anticipo: Grazie al monitoraggio continuo del traffico di rete, le anomalie possono essere rilevate tempestivamente, spesso prima che gli utenti ne risentano.
  • Stabilire le linee guida delle prestazioni: Capire i normali parametri di funzionamento della tua rete è essenziale per individuare quando le cose non funzionano come dovrebbero.
  • Pianifica la capacità: Il monitoraggio aiuta a capire i modelli di utilizzo e a pianificare le future esigenze di capacità.
  • Garantire la conformità e la sicurezza: Il monitoraggio continuo può anche aiutare a garantire che la rete sia conforme alle politiche e agli standard di sicurezza.

Metriche di prestazione di base

Stabilire le metriche di base è il primo passo per un efficace monitoraggio delle prestazioni della rete. Le linee di base (Baseline) forniscono un punto di confronto per le misurazioni future, rendendo più facile individuare eventuali anomalie. Le metriche chiave da monitorare includono:

  • Utilizzo della larghezza di banda: Quanto viene utilizzata la larghezza di banda e da quali applicazioni o servizi.
  • Latenza: Il tempo che i dati impiegano per spostarsi da un punto all’altro della rete.
  • Perdita di pacchetti: Il tasso di perdita dei pacchetti durante la trasmissione.
  • Velocità di trasmissione: La percentuale di messaggi consegnati con successo su un canale di comunicazione.

Monitoraggio in tempo reale con nload

nload è un’applicazione console che fornisce in tempo reale il traffico di rete e l’utilizzo della larghezza di banda. È facile da usare e visualizza separatamente il traffico in entrata e in uscita. Ad esempio, l’esecuzione di nload su un server può mostrare immediatamente se c’è un picco inaspettato di traffico, che potrebbe indicare un problema o un problema di sicurezza come un attacco DDoS.

Analisi del traffico di rete con iftop

iftop è come il comando top ma per l’utilizzo della rete. Fornisce una visione in tempo reale dell’utilizzo della larghezza di banda di rete su un’interfaccia. iftop visualizza le coppie di sorgenti e destinazioni e la quantità di dati trasferiti tra di esse. Questo livello di dettaglio è prezioso per identificare le connessioni che consumano più banda e può essere particolarmente utile per risolvere i problemi di congestione della rete o i colli di bottiglia.

Monitorare l’attività di rete per processo con nethogs

Mentre strumenti come iftop e nload monitorano il traffico di rete a livello di interfaccia, nethogs fa un ulteriore passo avanti suddividendo il traffico per processo. Questo è incredibilmente utile per identificare i processi specifici che consumano più banda. Ad esempio, se un server ha un carico di rete elevato, i nethog possono aiutare a capire se è dovuto all’uso legittimo di un servizio o a un processo errante che consuma più del dovuto.

Risoluzione dei problemi di rete: Problemi di firewall e sicurezza

Cloudflare Pagina delle analisi di sicurezza.

Mentre ci avviciniamo alla conclusione di questa guida sulla risoluzione dei problemi di rete, è indispensabile concentrarsi su un aspetto cruciale della gestione della rete: risolvere i problemi del firewall di rete e affrontare le sfide più comuni in materia di sicurezza.

Risoluzione dei problemi del firewall di rete

I firewall sono i guardiani della rete e garantiscono che solo il traffico autorizzato sia consentito. Tuttavia, a volte possono diventare la fonte di problemi di rete.

  • Rilevare i problemi: I segnali più comuni di problemi al firewall sono l’impossibilità di accedere a determinati servizi o applicazioni, prestazioni di rete lente o disconnessioni inaspettate.
  • Affrontare i problemi: La chiave per risolvere i problemi del firewall sta nel rivedere e testare sistematicamente le regole e le configurazioni del firewall. Assicurati che le regole non siano troppo restrittive, bloccando il traffico legittimo, o troppo permissive, esponendo la rete a rischi. La chiave è bilanciare sicurezza e fruibilità dei servizi.
  • Gli strumenti: iptables e  ufw offrono log dettagliati che possono essere preziosi in questo processo. Inoltre, Cloudflare e ConfigServer Security and Firewall.

Rispondere agli attacchi DDoS

Gli attacchi DDoS possono sovraccaricare una rete di traffico, causando notevoli disagi.

  • Rilevamento: Un picco improvviso e massiccio di traffico, in particolare da più fonti, è un forte indicatore di un attacco DDoS.
  • Mitigazione: La risposta immediata dovrebbe comprendere la limitazione della velocità del traffico in entrata e potenzialmente il reindirizzamento o il blocco del traffico proveniente da IP sospetti. Le strategie a lungo termine possono prevedere l’utilizzo di servizi di protezione DDoS e l’implementazione di una solida architettura di rete con ridondanza per assorbire tali attacchi. Se possibile identificare la zona d’attacco, (possibile una regione o nazione) da dove provengono le richieste di connessione e isolarne gli IP. Molti IDS/IPS (sistemi di rilevamento delle intrusioni (IDS) e di prevenzione delle intrusioni (IPS) lo fanno in modo automatico.
  • Strumenti: Wireshark e Snort sono strumenti essenziali per l’analisi della rete e offrono la possibilità di rilevare e registrare informazioni dettagliate sugli attacchi DDoS e altre minacce alla sicurezza.

Affrontare i tentativi di accesso non autorizzato

I tentativi di accesso non autorizzato possono portare a violazioni dei dati o a interruzioni del servizio.

  • Rilevamento: Gli strumenti di monitoraggio come i sistemi di rilevamento delle intrusioni possono avvisare gli amministratori di modelli di accesso o tentativi di login insoliti, indicando un potenziale accesso non autorizzato.
  • Risoluzione: Rafforzare i meccanismi di autenticazione, aggiornare le regole del firewall per bloccare gli IP sospetti e garantire che i sistemi siano aggiornati con le patch di sicurezza sono modi efficaci per rispondere a questi incidenti.
  • Strumenti: Fail2Ban e OSSEC sono strumenti potenti e capaci di rilevare e mitigare i tentativi di accesso non autorizzato a una rete.

Risolvere le intrusioni malware

Il malware può interrompere le operazioni di rete e compromettere la sicurezza.

  • Rilevamento: Un traffico di rete insolito, un comportamento inaspettato del sistema (da qui la necessità di conoscere bene la propria rete) o gli avvisi degli strumenti antivirus possono indicare la presenza di malware.
  • Eradicazione: L’isolamento dei sistemi infetti, l’esecuzione di scansioni complete del malware e l’analisi del traffico di rete alla ricerca di segni di comunicazione con il malware sono passi fondamentali per affrontare questo problema.
  • Strumenti: ClamAV e Malwarebytes sono strumenti affidabili e ampiamente utilizzati per rilevare ed eliminare efficacemente varie forme di intrusioni malware. Inoltre, Imunify360 AV.

Comprendere i protocolli di rete

La comprensione dei livelli del modello TCP/IP è fondamentale per una risoluzione efficace dei problemi. Ogni livello ha funzionalità distinte e problemi comuni ad esso associati. Scomponendo questi livelli e comprendendo i problemi tipici di ogni livello, gli amministratori di rete possono diagnosticare e risolvere i problemi di rete in modo più efficace.

Il modello TCP/IP: Un approccio a più livelli

Il modello TCP/IP è composto da quattro livelli:

1) il livello di collegamento,

2) il livello Internet,

3) il livello di trasporto e

4) il livello di applicazione.

Ogni livello svolge una funzione specifica nel processo di trasmissione dei dati in rete. Diamo un’occhiata a ciascun livello.

Livello di collegamento (livello di interfaccia di rete)

Questo livello è responsabile della trasmissione fisica dei dati sull’hardware di rete. Include protocolli per Ethernet e Wi-Fi.

Problemi comuni:

  • Problemi ARP: L’Address Resolution Protocol (ARP) è utilizzato per mappare gli indirizzi IP con gli indirizzi MAC fisici. In questo caso, i problemi possono portare a una mancata localizzazione dei dispositivi sulla stessa rete, con conseguenti problemi di comunicazione.
  • Problemi hardware: I problemi con gli adattatori di rete, i cavi e gli switch rientrano in questa categoria. Un hardware difettoso può causare la perdita di pacchetti o l’interruzione completa della comunicazione.
Livello Internet (livello di rete)

Questo livello gestisce il movimento dei pacchetti all’interno della rete. IP (Internet Protocol) è il protocollo principale a questo livello.

Problemi comuni:

  • Problemi di indirizzamento IP: Gli indirizzi IP, le maschere di sottorete e i gateway non correttamente configurati possono causare problemi di routing.
  • Problemi di routing: Tabelle di routing mal configurate possono far sì che i pacchetti prendano percorsi inefficienti o si perdano del tutto.
Livello di trasporto

Il livello di trasporto è responsabile della comunicazione end-to-end e del controllo degli errori. Include protocolli come TCP (Transmission Control Protocol) e UDP (User Datagram Protocol).

Problemi comuni:

  • Problemi di dimensione della finestra TCP: Una configurazione errata delle dimensioni delle finestre TCP può portare a un trasferimento inefficiente dei dati, con conseguenti ripercussioni sulle prestazioni.
  • Conflitti di utilizzo porte: Più applicazioni che cercano di utilizzare la stessa porta possono causare conflitti e problemi di connettività.
Livello applicazione

Questo livello è costituito dai protocolli utilizzati dalle applicazioni per comunicare in rete, come HTTP, SMTP e FTP.

Problemi comuni:

  • Misconfigurazioni del protocollo: Le impostazioni errate dei protocolli applicativi possono causare malfunzionamenti nei servizi applicativi.
  • Problemi di DNS: I problemi con la risoluzione del Domain Name System (DNS) possono causare problemi nel raggiungere i siti web o i servizi per nome.

Risoluzione dei problemi tra i vari livelli

Una risoluzione efficace dei problemi di rete spesso implica l’analisi dei problemi su tutti questi livelli. Ad esempio, un problema di connettività potrebbe sembrare un problema di routing a livello Internet, ma in realtà potrebbe essere dovuto a un guasto hardware a livello Link. Allo stesso modo, i tempi di caricamento lenti di un sito web potrebbero non essere un problema del server web stesso (livello Applicazione) ma potrebbero essere dovuti a problemi di dimensione della finestra TCP nel livello Trasporto.

Comprendere i problemi tipici di ogni livello aiuta a restringere le possibilità di diagnosi dei problemi. Ad esempio, se gli utenti non riescono ad accedere a un determinato server, i primi passi da fare sono controllare le tabelle ARP (livello Link) e le configurazioni di routing (livello Internet). Se c’è un problema di velocità di trasferimento dei dati, un approccio sensato è quello di esaminare le configurazioni TCP a livello di trasporto.

Ulteriori strumenti e letture per la risoluzione dei problemi di rete

Nella nostra esplorazione della risoluzione dei problemi di rete, abbiamo approfondito una vasta gamma di strumenti che sono essenziali per diagnosticare e risolvere vari problemi di rete. Ci auguriamo che la lettura e i link riportati in questo articolo ti abbiano fornito le conoscenze e le risorse necessarie per iniziare ad affrontare le sfide della rete Linux. Detto questo, ecco altri strumenti e letture per la risoluzione dei problemi di rete.

Strumenti aggiuntivi per la risoluzione dei problemi di rete

  • dig – un comando versatile per interrogare i server dei nomi DNS, che fornisce informazioni dettagliate su indirizzi host, scambi di posta, server dei nomi e record DNS.
  • ethtool – una versatile utility a riga di comando utilizzata per interrogare e controllare i driver di rete e le impostazioni hardware, in particolare per i dispositivi Ethernet.
  • iw – uno strumento a riga di comando utilizzato per configurare e gestire i dispositivi wireless in Linux.
  • ip neigh – sostituisce il comando arp tradizionale, per gestire la tabella ARP e risolvere gli indirizzi IP in indirizzi MAC.
  • ncat – un’utility di rete ricca di funzioni del progetto progetto Nmap per il trasferimento di dati, lo scripting e il debug della rete.

Ulteriori letture sulla risoluzione dei problemi di rete

Conclusione

In conclusione, anche se gli strumenti e le tecniche avanzate sono indispensabili per risolvere problemi complessi, non sottovalutare mai il potere diagnostico di ifconfig, ping e traceroute. Questi strumenti non solo forniscono la prima linea di visione dello stato di salute della rete, ma rimangono anche componenti cruciali del kit di strumenti di ogni amministratore di rete. Applicando un approccio sistematico all’uso di questi strumenti, è possibile diagnosticare e risolvere in modo efficiente ed efficace una moltitudine di problemi di rete comuni.

In un prossimo articolo ci concentreremo esclusivamente sull’aspetto vitale della sicurezza della rete. Questo articolo approfondirà le complessità della sicurezza di una rete, discutendo le strategie e gli strumenti avanzati che sono essenziali per salvaguardare il panorama in evoluzione delle minacce informatiche.

Esploreremo le complessità delle configurazioni dei firewall con iptables e ufw e il ruolo fondamentale dei sistemi di rilevamento delle intrusioni nell’identificare e mitigare le violazioni della sicurezza. Questa prossima discussione promette di essere una guida essenziale per gli amministratori di rete e i professionisti IT, fornendo loro gli spunti necessari per rafforzare le loro reti contro le sfide della sicurezza esterna e interna.

5,0 / 5
Grazie per aver votato!

2 Risposte a “Guida alla risoluzione dei problemi di rete in Linux”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *