Porte aperte
Le porte vengono aperte su un sistema da vari servizi in background come server http, server di database, server smtp ecc.
Se stai eseguendo un server web e avvii un servizio di questo tipo, si aprirà una porta in modo che altri sistemi su Internet o sulla rete locale possano connettersi ad esso.
Dopo aver avviato un servizio sul sistema, è necessario verificare se la porta desiderata è stata aperta dal servizio o meno.
Se la porta non è aperta, è probabile che il servizio non sia stato avviato o abbia smesso di funzionare a causa di un errore.
Controlla le porte aperte con Netstat
Un modo molto semplice per verificare la presenza di porte aperte su un server o un sistema Linux consiste nell'usare i comandi netstat. Sebbene il comando netstat sia pensato per controllare le connessioni di rete su un sistema, può controllare e segnalare facilmente le porte aperte.
La sintassi è molto semplice. Devi utilizzare le seguenti opzioni:
"-l" (for listening connections) "-t" (for tcp connections) "-p" (process name and id that opened the port) "-n" (show port numbers instead of names)
Ecco un rapido esempio:
$ sudo netstat -ltpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:33060 0.0.0.0:* LISTEN 1294/mysqld tcp 0 0 0.0.0.0:6600 0.0.0.0:* LISTEN 1/init tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1294/mysqld tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1283/apache2 tcp 0 0 0.0.0.0:1716 0.0.0.0:* LISTEN 1748/kdeconnectd tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 735/systemd-resolve tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1471/cupsd
L'esempio sopra mostra chiaramente che apache ha aperto la porta http (80) e mysql ha aperto la porta 3306.
Se ometti l'opzione "-n", verranno invece visualizzati i nomi delle porte.
$ sudo netstat -ltp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:33060 0.0.0.0:* LISTEN 1294/mysqld tcp 0 0 0.0.0.0:6600 0.0.0.0:* LISTEN 1/init tcp 0 0 localhost:mysql 0.0.0.0:* LISTEN 1294/mysqld tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN 1283/apache2 tcp 0 0 0.0.0.0:1716 0.0.0.0:* LISTEN 1748/kdeconnectd tcp 0 0 localhost:domain 0.0.0.0:* LISTEN 735/systemd-resolve tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN 1471/cupsd
Controlla una porta aperta specifica
Se vuoi elencare una porta aperta specifica, filtra l'output con grep. Il comando seguente filtra il numero di porta contenente 3306
$ sudo netstat -ltpn | grep "3306" tcp 0 0 0.0.0.0:33060 0.0.0.0:* LISTEN 1294/mysqld tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1294/mysqld
Conclusione
Per saperne di più sul comando netstat, dai un'occhiata al nostro tutorial qui:
10 esempi di base del comando Linux Netstat
Spero che sia stato utile. Se hai domande o feedback, faccelo sapere nei commenti qui sotto.