Controllare le porte aperte in Ubuntu

Controllare le porte aperte in Ubuntu 20.04?

Come controllare le porte aperte in Ubuntu 20.04?

Quando si cercano di risolvere i problemi di connettività di rete o problemi specifici di un applicazione, una delle prime cose da verificare (controllare) dovrebbe essere quali porte sono effettivamente in uso sul sistema e quali applicazioni sono in ascolto su una porta specifica.

Sia che tu stia usando Linux come server o desktop, controllare le porte aperte o le porte in uso può essere utile in una varietà di situazioni.

Ad esempio, se si esegue un server Web basato su Apache o Ngnix, la porta in uso deve essere 80 o 443. Il controllo delle porte lo confermerà. Allo stesso modo, è possibile verificare quale porta viene utilizzata da SMTP o SSH o da altri servizi. Sapere quali porte sono in uso può essere utile durante l’allocazione delle porte a un nuovo servizio.

È inoltre possibile verificare se sono presenti porte aperte per il rilevamento delle intrusioni.

Esistono vari modi per controllare le porte in Linux ed in questo articolo vedremo come controllare quali servizi sono in ascolto sulle porte utilizzando i comandi netstat lsof. Le istruzioni sono applicabili a tutti i sistemi operativi basati su Linux e Unix come macOS.

Le porte in uso

La porta di rete è identificata dal suo numero, dall’indirizzo IP associato e dal tipo di protocollo di comunicazione come TCP o UDP.

La porta di ascolto è una porta di rete su cui è in ascolto un’applicazione o un processo, che funge da endpoint di comunicazione.

Ogni porta di ascolto può essere aperta o chiusa (filtrata) utilizzando un firewall. In termini generali, una porta aperta è una porta di rete che accetta pacchetti in entrata da posizioni remote.

Non puoi avere due servizi che ascoltano la stessa porta sullo stesso indirizzo IP.

Controllare le porte aperte in Ubuntu: comando lsof

Se si è connessi a un sistema come Ubuntu, direttamente o tramite SSH, è possibile utilizzare il comando lsof per controllarne le porte.

sudo lsof -i -P -n

Questo comando lsof viene utilizzato per trovare i file e i processi utilizzati da un utente. Le opzioni utente sono:

  • -i: se non viene specificato alcun indirizzo IP, questa opzione seleziona l’elenco di tutti i file di rete
  • -P: inibisce la conversione dei numeri di porta in nomi di porta per i file di rete
  • -n: inibisce la conversione dei numeri di rete in nomi host per i file di rete
Controllare le porte aperte in Ubuntu: comando lsof
Controllare le porte aperte in Ubuntu: comando lsof

Questo ci mostra anche molte porte extra che il computer non ascolta effettivamente.

Puoi semplicemente reindirizzare questo output al comando grep e abbinare il modello “LISTEN”, in questo modo:

sudo lsof -i -P -n | grep LISTEN

Questo mostrerà solo le porte che il nostro computer sta ascoltando attivamente e anche quale servizio sta utilizzando la porta aperta.

Controlla le porte di ascolto con netstat

Uno strumento utilizzato per controllare le porte aperte è netstat.  Uno strumento da riga di comando che può fornire informazioni sulle connessioni di rete.

Per elencare tutte le porte TCP o UDP in ascolto, inclusi i servizi che utilizzano le porte e lo stato del socket, utilizzare il comando seguente:

sudo netstat -tunlp

Le opzioni utilizzate in questo comando hanno il seguente significato:

  • -t – Mostra le porte TCP.
  • -u – Mostra le porte UDP.
  • -n – Mostra gli indirizzi numerici invece di risolvere gli host.
  • -l – Mostra solo le porte di ascolto.
  • -p – Mostra il PID e il nome del processo. Queste informazioni vengono visualizzate solo se si esegue il comando come root o utente sudo

L’output sarà simile al seguente:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      5469/systemd-resolv
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1304/sshd
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      21662/mysqld
tcp6       0      0 :::22                   :::*                    LISTEN      1304/sshd
udp        0      0 127.0.0.53:53           0.0.0.0:*                           5469/systemd-resolv
udp        0      0 0.0.0.0:68              0.0.0.0:*                           811/dhclient

Le colonne importanti nel nostro caso sono:

  • Proto – Il protocollo utilizzato dal socket.
  • Local Address – L’indirizzo IP e il numero di porta su cui è in ascolto il processo.
  • PID/Program name – Il PID e il nome del processo.

Se vuoi filtrare i risultati usa il comando grep . Ad esempio, per trovare quale processo è in ascolto sulla porta TCP 22, digitare:

sudo netstat -tnlp | grep :22

L’output mostra che su questa macchina la porta 22 è utilizzata dal server SSH:

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1304/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      1304/sshd

Se l’output è vuoto significa che sulla porta non è in ascolto nulla.

È inoltre possibile filtrare l’elenco in base a criteri, ad esempio PID, protocollo, stato e così via.

netstat è obsoleto e sostituito con ss ip, ma è comunque uno dei comandi più utilizzati per controllare le connessioni di rete.

Conclusione

Abbiamo visto insieme come controllare le porte aperte in Ubuntu mediante l’utilizzo i comandi Nestat e Lsof.

Sicuramente ci sono tantissimi altri comando per controllare le porte aperte in un sistema, tu quale utilizzi?

Autore Bartolomeo

Consulente tecnico con la passione per il web e la tecnologia e tutto quello che le ronza intorno.
Nel tempo libero scrivo articoli per il mio blog su argomenti vari, in particolare su configurazione Windows, Linux e WordPress.

Condividi questo articolo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Ho letto la policy privacy e accetto il trattamento dei miei dati personali in conformità al D.Lgs. 196/2003