Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati


Attenzione! Questa è una Pagina di prova. Le informazioni riportate potrebbero essere incomplete, errate e potenzialmente pericolose. Per contribuire alla realizzazione di questa pagina consultare la discussione di riferimento.

Guida verificata con Ubuntu: 22.04 24.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Wireshark è un analizzatore in tempo reale di protocolli di rete per l'amministrazione, lo sviluppo di software e la sicurezza informatica, tutti i pacchetti del traffico di una o più interfacce di rete. Questa guida mostrerà come installarlo e configurando correttamente i permessi necessari su Ubuntu.

In questa guida non viene indicato come interpretare i dati monitorati, in quanto è necessaria un'approfondita conoscenza dei protocolli di rete e dei modelli ISO/OSI, nonchè del protocollo TCP/IP.

Wireshark è uno strumento estremamente versatile e in continua evoluzione.

Protocolli di rete supportati

Il supporto per i protocolli viene continuamente aggiornato e ampliato con nuove versioni di Wireshark.

Wireshark supporta un'enorme quantità di protocolli, praticamente quasi tutti quelli utilizzati nel networking moderno.<BR>>Ecco una lista di protocolli che possono essere decodificati e analizzati:

Questa lista è lunga, ma non esaustiva. Puoi controllare la lista completa e aggiornata dei protocolli supportati direttamente sul sito di Wireshark o all'interno dell'applicazione stessa.

Wireshark può analizzare i metadati dei protocolli criptati (es. indirizzi IP, porte), ma non può decriptare il contenuto senza la chiave di decriptazione. Per esempio, può analizzare il traffico HTTPS, ma non vedere il contenuto delle pagine web a meno che non si forniscano le chiavi SSL/TLS.

Wireshark permette di scrivere dissettori personalizzati (plugin) per analizzare protocolli non supportati di default.

La lista completa dei protocolli supportati dall'applicazione si può visualizzare e modificare. Consultare il paragrafo di configurazione.

  • Protocolli di livello Applicazione (Layer 7):
    • Web: HTTP, HTTPS (SSL/TLS), HTTP/2, HTTP/3, WebSocket

    • Email: SMTP, POP3, IMAP
    • Trasferimento File: FTP, SFTP, TFTP
    • Database: MySQL, PostgreSQL, MongoDB, Oracle
    • VoIP: SIP, RTP, RTCP, H.323
    • DNS: DNS, DNSSEC
    • Autenticazione: LDAP, Kerberos, NTLM
    • Streaming: RTSP, MMS
    • Remote Access: SSH, Telnet, RDP, VNC
    • Condivisione File: SMB/CIFS (Windows File Sharing), NFS
    • Messaggistica: XMPP (Jabber), IRC
    • Network Management: SNMP
    • Blockchain: Molti protocolli blockchain custom, in base alla disponibilità di plugin.
    • Vari: Modbus, BACnet (building automation), DLMS/COSEM (smart metering), MQTT (IoT)
  • Protocolli di livello Trasporto (Layer 4):
    • TCP (Transmission Control Protocol): Il protocollo principale per connessioni affidabili.
    • UDP (User Datagram Protocol): Usato per comunicazioni veloci e senza connessione.
    • SCTP (Stream Control Transmission Protocol): Meno comune, ma usato in telecomunicazioni.
    • QUIC: Protocollo di trasporto moderno di Google, utilizzato da HTTP/3 e altro.
  • Protocolli di livello Rete (Layer 3):
    • IP (Internet Protocol): Il protocollo fondamentale di internet.
    • IPv4 (Internet Protocol Version 4): La versione più comune.
    • IPv6 (Internet Protocol Version 6): La versione successiva.
    • ICMP (Internet Control Message Protocol): Usato per messaggi di errore e controllo (es. ping).
    • IGMP (Internet Group Management Protocol): Usato per multicast.
    • ARP (Address Resolution Protocol): Usato per trovare l'indirizzo MAC corrispondente a un indirizzo IP nella LAN.
    • RARP (Reverse Address Resolution Protocol): L'opposto di ARP, obsoleto.
    • OSPF (Open Shortest Path First): Protocollo di routing interno.
    • BGP (Border Gateway Protocol): Protocollo di routing tra sistemi autonomi (internet).
    • RIP (Routing Information Protocol): Vecchio protocollo di routing.
  • Protocolli di livello Data Link (Layer 2):
    • Ethernet: Il protocollo di rete locale più comune.
    • Wi-Fi (802.11): Wireless networking.
    • Token Ring: Obsoleto.
    • Frame Relay: Obsoleto.
    • ATM (Asynchronous Transfer Mode): Obsoleto in LAN, ma ancora usato in alcune WAN.
    • PPP (Point-to-Point Protocol): Usato per connessioni dial-up e DSL.
    • HDLC (High-Level Data Link Control): Protocollo generico per connessioni seriali.
    • VLAN (Virtual LAN): Protocollo per segmentare reti Ethernet.
    • LLDP (Link Layer Discovery Protocol): Usato per scoprire i dispositivi vicini.
    • CDP (Cisco Discovery Protocol): Protocollo proprietario Cisco per scoprire i dispositivi vicini.
  • Protocolli di livello Fisico (Layer 1): Wireshark non cattura dati a questo livello, ma può analizzare i dati catturati da altri strumenti che operano a livello fisico (es. analizzatori di spettro per Wi-Fi).

Altri Protocolli

  • VPN: PPTP, L2TP, IPSec, OpenVPN, WireGuard

  • Bluetooth: Molti protocolli Bluetooth.
  • USB: Vari protocolli USB.
  • CAN bus: Usato in automobili e altri sistemi embedded.

Filtri

Analizzare tutto il traffico di rete senza filtri sarebbe come cercare un ago in un pagliaio. I filtri ti permettono di concentrarti sui pacchetti che ti interessano, rendendo l'analisi molto più efficiente.

Questa guida introdurrà ai diversi tipi di filtri, alla loro sintassi e a esempi pratici.

Tipi di filtri

Wireshark offre due tipi principali di filtri:

  • Filtri di Cattura (Capture Filters): Applicati prima che i pacchetti vengano catturati. Questi filtri riducono la quantità di dati catturati, risparmiando spazio su disco e riducendo il carico sulla CPU. Sono più performanti ma meno flessibili dei filtri di visualizzazione.

  • Filtri di Visualizzazione (Display Filters): Applicati dopo che i pacchetti sono stati catturati. Permettono di nascondere i pacchetti che non ti interessano nella vista principale. Sono più flessibili ma meno performanti dei filtri di cattura.

Sintassi dei filtri

La sintassi dei filtri è simile per entrambi i tipi, ma con alcune differenze.

  • Protocolli: Usa il nome del protocollo (es. http, tcp, dns, ip).

  • Campi: Usa i nomi dei campi all'interno dei protocolli (es. ip.src, tcp.port, http.request.method). Puoi trovare i nomi dei campi esplorando i dettagli di un pacchetto.

  • Operatori di Confronto:

== (uguale a) != (diverso da) > (maggiore di) < (minore di) >= (maggiore o uguale a) <= (minore o uguale a) contains (contiene) matches o ~= (corrisponde a un'espressione regolare)

  • Operatori Logici:

and o && (e) or o || (o) not o ! (non)

I filtri sono uno strumento essenziale per sfruttare appieno la potenza di Wireshark. Imparare a usarli in modo efficace permetterà di analizzare il traffico di rete in modo più rapido e preciso.

Installazione

Mantenere Wireshark aggiornato per beneficiare delle ultime correzioni di bug e funzionalità.

Ci sono principalmente due metodi per installare Wireshark su Ubuntu, tramite apt (Advanced Package Tool) e tramite Snap.

apt

Questo metodo è il più semplice e consigliato per la maggior parte degli utenti.

Installare il pacchetto wireshark

Al termine dell'installazione sarà possible avviare Wireshark.

Durante l'installazione, verrà chiesto di permettere agli utenti non-root di catturare pacchetti. È fortemente consigliato rispondere Sì a questa domanda.

Snap

L'installazione tramite Snap può avere limitazioni e introdurre leggeri overhead di prestazioni nella cattura del traffico di rete e non è generalmente raccomandata per un uso professionale.

  1. Digitare nel terminale il comando:

    sudo snap install wireshark
  2. Riavviare la sessione.

Al termine dell'installazione sarà possible avviare Wireshark.

Avvio

Per avviare Wireshark, digitare nel terminale il seguente comando:

wireshark

Si dovrebbe essere in grado di vedere le interfacce di rete e iniziare a catturare pacchetti senza utilizzare privilegi di amministrazione.

Configurazione

Configura i permessi per la cattura dei pacchetti

Se durante l'installazione tramite apt è stato risposto No alla richiesta di permettere agli utenti non-root di catturare pacchetti, è possibile modificare la scelta.

  1. Eseguire nella riga di comando il seguente comando:

    sudo dpkg-reconfigure wireshark-common
  2. Selezionare quando richiesto.

Aggiungere l'utente al gruppo wireshark

Per permettere all'utente di catturare pacchetti senza dover utilizzare sudo, è necessario aggiungerlo al gruppo wireshark.

  1. Digitare nel terminale il seguente comando:

    sudo usermod -aG wireshark [nome_utente]

    sostituendo [nome_utente] con il nome utente desiderato.

  2. Riavviare la sessione utente per applicare le modifiche al gruppo, oppure riavviare il sistema.

Il riavvio è essenziale affinché i nuovi permessi abbiano effetto.

Connessione delle interfacce (solo snap)

La Connessione delle interfacce si riferisce esclusivamente all'installazione di Wireshark tramite Snap. In quanto: con apt, la configurazione dei permessi per l'accesso alle interfacce di rete è gestita a livello di sistema tramite dpkg-reconfigure e l'appartenenza al gruppo wireshark. Non è necessario "connettere" le interfacce manualmente.
I comandi sottostanti, potrebbero non essere sufficienti e la performance potrebbe non essere ottimale a garantire lo stesso livello di accesso all'installazione tramite apt.

  • Installando Wireshark tramite apt e configurando correttamente i permessi e aggiunto l'utente al gruppo wireshark, l'accesso alle interfacce di rete è gestito a livello di sistema operativo e non richiede ulteriori configurazioni specifiche. Passare al paragrafo successivo.

  • Installando in snap, le applicazioni installate sono eseguite in un ambiente isolato (sandbox), è un sistema di pacchetti in container. Di default, le applicazioni snap, in questo caso Wireshark, non ha accesso diretto alle interfacce di rete del sistema.

Se Wireshark è stato installato tramite snap è necessario connettere manualmente le interfacce per permettere di accedere alla rete.
Digitare nel terminale i seguenti comandi:

sudo snap connect wireshark:network-control
sudo snap connect wireshark:network-observe
sudo snap connect wireshark:raw-serial

questi comandi vengono utilizzati per concedere esplicitamente le autorizzazioni, collegando le interfacce necessarie al container di Snap.

Alternativa ad APT per la configurazione dei permessi

Non esistono metodi alternativi tramite APT per replicare la funzionalità di "connessione delle interfacce" che si trova in Snap, semplicemente perché non sono necessari.

Cattura monitoraggio pacchetti

Una volta configurato il programma, avviare il monitoraggio dei pacchetti, è sufficiente cliccare su CatturaAvvia.

Apparirà una finestra, dalla quale sarà possibile scegliere le singole interfacce per le quali avviare il monitoraggio.

Abilitare protocolli

La lista completa dei protocolli supportati dall'applicazione si può visualizzare e modificare dal menù AnalizzaAbilita protocolli...

Impostare i Filtri di Cattura

I filtri di cattura supportano solo una sintassi limitata. Non è possibile usare tutti i campi e gli operatori disponibili nei filtri di visualizzazione. Sono applicati a basso livello, quindi operano principalmente su indirizzi IP, porte e protocolli di base.

Per impostare filtri di cattura:

  1. Avviare Wireshark.

  2. Cliccare sull'icona "Opzioni" (ingranaggio) o vai nel menu "Cattura" -> "Opzioni".

  3. Nella finestra "Opzioni di cattura", selezionare l'interfaccia di rete da monitorare.
  4. Inserisci il filtro di cattura nel campo "Filtro di cattura per le interfacce selezionate:".
  5. Cliccare su "Avvia" per avviare la cattura.

Esempi

Filtro

Descrizione

tcp port 80

Cattura solo il traffico HTTP

host 192.168.1.100

Cattura il traffico da o verso un indirizzo IP specifico

tcp port 443 or tcp port 22

Cattura il traffico TCP sulla porta 443 (HTTPS) o sulla porta 22 (SSH)

icmp

Cattura solo il traffico ICMP (ping)

Impostare i Filtri di Visualizzazione (Display Filters)

I filtri di cattura supportano solo una sintassi limitata. Non è possibile usare tutti i campi e gli operatori disponibili nei filtri di visualizzazione. Sono applicati a basso livello, quindi operano principalmente su indirizzi IP, porte e protocolli di base.

Per impostare filtri di visualizzazione:

  1. Avviare Wireshark.

  2. Cliccare sull'icona "Opzioni" (ingranaggio) o vai nel menu "Cattura" -> "Opzioni".

  3. Nella finestra "Opzioni di cattura", aprire un file di cattura esistente.
  4. Inserisci il filtro di visualizzazione nella barra dei filtri sopra la lista dei pacchetti.
  5. Premere Invio per applicare il filtro.

Wireshark mostrerà solo i pacchetti che corrispondono al filtro.

Esempi

Filtro

Descrizione

http

Mostra solo il traffico HTTP

ip.src == 192.168.1.100

Mostra il traffico con un indirizzo IP sorgente specifico

ip.dst == 192.168.1.200

Mostra il traffico con un indirizzo IP di destinazione specifico

tcp.srcport == 8080

Mostra il traffico TCP con porta sorgente 8080

tcp.dstport == 443

Mostra il traffico TCP con porta di destinazione 443 (HTTPS)

tcp contains "password"

Mostra il traffico che contiene la stringa "password" nel payload (ATTENZIONE: non farlo su reti non sicure!)

tcp.analysis.flags

Mostra solo i pacchetti con errori TCP (es. retransmission)

http.request.method == "GET"

Mostra le richieste HTTP GET

http.response.code == 404

Mostra le risposte HTTP con codice di stato 404 (Not Found)

dns.flags.response == 1 && dns.qry.type == 1

Mostra il traffico DNS con tipo di record A (indirizzo IPv4). (il dns.flags.response == 1 indica che è una risposta DNS).

frame.len > 1000

Mostra i pacchetti che hanno una lunghezza maggiore di 1000 byte

!dns

Mostra il traffico che non è DNS

Altri esempi

Per Combinare Filtri:

Filtro

Descrizione

http and ip.src == 192.168.1.100

Mostra il traffico HTTP proveniente da un certo IP

tcp.dstport == 80 or tcp.dstport == 443

Mostra il traffico TCP con porta di destinazione 80 o 443

Per Espressioni Regolari:

Filtro

Descrizione

http.user_agent matches "Mozilla.*Firefox"

Usa l'operatore matches o ~= per confrontare un campo con un'espressione regolare

frame contains 0x48545450

(corrisponde a "HTTP" in esadecimale) Trova pacchetti con un particolare valore esadecimale nel payload

ip.src == 192.168.1.0/24

Trova il traffico proveniente da una rete specifica (subnet)

Risoluzione dei problemi

Permessi insufficienti

Se si riceve errori relativi ai permessi durante la cattura dei pacchetti, assicurarsi di aver seguito correttamente i passaggi per configurare i permessi e di aver riavviato la sessione utente. Verificare che l'utente sia effettivamente nel gruppo wireshark, digitare nel terminale il comando:

groups

Interfacce di rete non visualizzate

Se Wireshark non mostra le interfacce di rete, assicurarsi di aver installato Wireshark:

Cattura in modalità monitor

Per catturare il traffico in modalità monitor (necessaria per analizzare il traffico wireless), potrebbe aver necessario bisogno di configurare ulteriormente la scheda di rete wireless.

Filtro non valido

Controllare attentamente la sintassi del filtro. Wireshark ti aiuterà evidenziando gli errori.

Nessun pacchetto visualizzato

Assicurarsi che il filtro sia corretto e che ci siano pacchetti che corrispondono al filtro nel file di cattura.

Prestazioni rallentate

Filtri molto complessi possono rallentare Wireshark, soprattutto con file di cattura di grandi dimensioni. Cercare di semplificare i filtri quando possibile. Valutare l'utilizzo di filtri di cattura per ridurre la quantità di dati da analizzare.

Ulteriori risorse


CategoryHomepage CategoryNuoviDocumenti