Rete / Intervalli delle porte note, registrate e dinamiche

I numeri delle porte di rete vanno da 0 a 65535. IANA li divide in porte note (0–1023), registrate (1024–49151) e dinamiche o private (49152–65535). Questi intervalli descrivono l’assegnazione dei numeri: una porta da sola non identifica il programma che comunica né stabilisce che cosa debba consentire un firewall.

I tre intervalli dei numeri di porta

L’Internet Assigned Numbers Authority (IANA) gestisce il registro dei nomi dei servizi e delle porte per protocollo di trasporto. Gli intervalli definiti dalla RFC 6335 sono i seguenti.

Categoria Numeri Significato
Porte note
System / Well-Known Ports
0~1023 Numeri di servizio assegnati con le procedure IANA più rigorose per le porte di sistema
Porte registrate
User / Registered Ports
1024~49151 Intervallo di numeri di servizio registrati e assegnati tramite IANA
Porte dinamiche o private
Dynamic / Private Ports
49152~65535 Uso locale e dinamico; IANA non le assegna come identificatori di servizio

Non tutti i numeri dell’intervallo registrato sono effettivamente registrati. Distingui numeri assegnati, non assegnati e riservati. Lo 0 appartiene allo spazio numerico, ma il registro IANA lo riserva sia per TCP sia per UDP: non è un esempio di porta ordinaria di un servizio.

Perché considerare il numero insieme a TCP o UDP

Un indirizzo IP indica un indirizzo di origine o destinazione; la porta distingue il servizio o socket che gestisce la comunicazione su quell’indirizzo. TCP (Transmission Control Protocol) e UDP (User Datagram Protocol) usano spazi di numerazione separati. TCP 53 e UDP 53 vanno quindi controllati separatamente, pur avendo lo stesso numero.

Esempi comuni sono HTTP su TCP 80, HTTPS su TCP 443 e SSH (Secure Shell) su TCP 22. Il DNS (Domain Name System, sistema dei nomi di dominio) usa la porta 53 con TCP e UDP. Nell’intervallo registrato troviamo MySQL su TCP 3306 e desktop remoto su TCP 3389. Sono esempi rappresentativi, non un elenco completo dei trasporti registrati né un sostituto della configurazione reale.

Un server può ascoltare su un numero diverso e un altro programma può usare una porta familiare. Una TCP 3306 aperta non dimostra da sola la presenza di MySQL o la sicurezza del traffico. IANA precisa inoltre che la registrazione non approva un prodotto né garantisce che il traffico corrisponda al servizio assegnato.

Porte del server e porte effimere del client

Quando un client si collega alla TCP 443 del server, entrambe le estremità non usano necessariamente 443. L’esempio ipotetico seguente usa la porta di origine 51514. I numeri reali dipendono dal sistema e dalla connessione.

TCP: client:51514 -> server:443
TCP: server:443 -> client:51514

La 443 del server è la porta di destinazione del servizio; la 51514 del client è la sua porta locale effimera. Nella risposta origine e destinazione si invertono. Una connessione TCP si distingue per protocollo e coppie di indirizzo IP e porta delle due estremità: una porta non significa quindi una sola connessione.

“Privata” non significa indirizzo IP privato o blocco automatico degli accessi esterni. Un numero di questo intervallo non è neppure sempre libero. Se un dispositivo o la traduzione degli indirizzi di rete intermedia (NAT, Network Address Translation) modifica indirizzi o porte, i dettagli osservati possono variare secondo il punto di osservazione.

Controllare l’intervallo effimero effettivo del sistema

Distingui l’intervallo dinamico IANA da quello selezionato automaticamente dal sistema operativo. La documentazione Microsoft sulle porte dinamiche descrive il valore predefinito 49152–65535 da Windows Vista e Server 2008, ma verifica il dispositivo per conoscerne la configurazione attuale.

In Windows, esegui queste interrogazioni in PowerShell o nel Prompt dei comandi. Controlla separatamente IPv4, IPv6, TCP e UDP. I comandi non modificano le impostazioni.

netsh int ipv4 show dynamicport tcp
netsh int ipv4 show dynamicport udp
netsh int ipv6 show dynamicport tcp
netsh int ipv6 show dynamicport udp

Leggi porta iniziale e numero di porte. Con inizio 49152 e quantità 16384, l’ultima è 49152 + 16384 - 1 = 65535. Non confondere quantità e numero finale. Il risultato descrive la selezione automatica, senza garantire la disponibilità attuale di ogni numero.

In Linux, leggi il file seguente per controllare l’intervallo locale. Esegui il comando nell’ambiente Linux che gestisce realmente la comunicazione.

cat /proc/sys/net/ipv4/ip_local_port_range

I due interi sono il primo e l’ultimo numero. La documentazione del kernel Linux su ip_local_port_range indica i valori predefiniti 32768 e 60999; distribuzione e configurazione possono differire. Anche le porte riservate influenzano l’assegnazione automatica: non tutto l’intervallo è necessariamente selezionabile.

Controlli per problemi di connessione e firewall

  1. Definisci destinazione e protocollo. Identifica IP del server, TCP o UDP e porta di destinazione. Confronta il registro IANA con la configurazione effettiva del servizio.
  2. Verifica dove ascolta il server. Un’applicazione attiva può usare un’altra porta o solo un indirizzo locale. Software installato e servizio in ascolto su indirizzo e porta desiderati sono condizioni diverse.
  3. Esamina il percorso. Controlla firewall del sistema e della rete, regole cloud, inoltro delle porte e NAT. Specifica direzione, origine e destinazione: conoscere l’intervallo effimero non giustifica esporlo interamente.
  4. Verifica con l’applicazione reale. Una connessione TCP riuscita non dimostra autenticazione o funzionalità del servizio. Non applicare risultati TCP a UDP; usa un controllo adatto al servizio.