Porta (reti)

Da Wikipedia, l'enciclopedia libera.

In informatica nell'ambito delle reti di calcolatori, le porte sono lo strumento utilizzato per realizzare la multiplazione delle connessioni a livello di trasporto, ovvero per permettere ad un calcolatore di effettuare più connessioni contemporanee verso altri calcolatori, facendo in modo che i dati contenuti nei pacchetti in arrivo vengano indirizzati al processo che li sta aspettando.

Il termine è la traduzione dell'inglese port, nella accezione derivante dal latino porta: apertura, portale, oblò; il termine che in italiano si traduce in porto deriva invece dal latino portus.[1]

In particolare il termine porta è mutuato direttamente da quello di porta fisica di connessione tra cavi di un calcolatore o di un qualunque altro dispositivo elettronico, ma di fatto nell'ambito della trasmissione dei dati durante una connessione non c'è altra porta fisica oltre a quella di aggancio del connettore del cavo. Nell'ambito delle reti di telecomunicazioni il termine porta indica quindi solamente una porta virtuale o logica e può essere vista banalmente come un'etichetta (label) che identifica e discrimina il traffico dati di una connessione da quello di un'altra.

Tutti i processi di rete tra i vari terminali di rete necessitano dunque di una porta per l'instaurazione, l'esecuzione ed il completamento del servizio preposto.

Caratteristiche[modifica | modifica sorgente]

Le porte sono numeri (in TCP e UDP sono a 16 bit per un totale di 216 = 65 536 porte possibili) utilizzati per identificare una particolare connessione di trasporto tra quelle al momento attive su un calcolatore. I pacchetti appartenenti ad una connessione saranno quindi identificati dalla quadrupla [<indirizzo IP sorgente>, <indirizzo IP destinazione>, <porta sorgente>, <porta destinazione>]. I pacchetti nella direzione opposta avranno ovviamente sorgente e destinazione scambiati.

Mentre la porta di destinazione è l'identificativo univoco del processo applicativo, la porta di sorgente è assegnata casualmente in maniera tale da identificare univocamente la connessione da parte del mittente col destinatario eventualmente tra più computer all'interno di una rete locale.

Il livello di trasporto (tipicamente realizzato dal sistema operativo) associa a ciascuna porta utilizzata un punto di contatto (ad esempio, una socket), utilizzato da uno (o più) processi applicativi per trasmettere e/o ricevere dati.

Per poter inviare con successo un pacchetto con una certa porta di destinazione, ci deve essere un processo che è "in ascolto" su quella porta, ovvero che ha chiesto al sistema operativo di ricevere connessioni su quella porta. L'operazione di impegnare una porta TCP o UDP da parte di un processo è detta "bind", dal nome della chiamata di sistema unix che la realizza.

La porta sorgente utilizzata in una connessione viene scelta dal calcolatore che inizia la connessione tra una di quelle al momento non impegnate.

In Internet, c'è una convenzione per cui ad alcuni numeri di porta sono associati determinati protocolli di livello applicativo. Ad esempio, se voglio contattare il server HTTP eventualmente in esecuzione su un certo calcolatore, so che devo tentare di stabilire una connessione verso la porta 80 (vedi lista di porte standard).

Tipi di porte[modifica | modifica sorgente]

I numeri di porta sono classificabili in tre gruppi:

  • le porte conosciute sono assegnate dall'Internet Assigned Numbers Authority (IANA), sono quelle inferiori a 1024, e sono generalmente utilizzate a livello di sistema operativo o di processi di sistema. In genere rimangono in ascolto su queste porte applicazioni con funzioni di server. Alcuni esempi possono essere le applicazioni che utilizzino protocolli FTP (21), SSH (22), TELNET (23), SMTP (25) e HTTP (80). Sono dette porte ben note.
  • Le porte registrate invece sono spesso utilizzate come riferimento fra applicazioni, come una specie di accordo.
  • Le porte dinamiche invece sono tutte le altre, liberamente utilizzabili da tutte le applicazioni utente, salvo l'occupazione contemporanea da parte di qualche altro processo.

Sicurezza[modifica | modifica sorgente]

Supervisionare le porte in ascolto cioè aperte è di estrema importanza sul fronte della sicurezza informatica per evitare attacchi informatici che nel caso più grave possono portare al controllo completo del computer. Per visualizzare le porte aperte sul proprio computer è necessario un programma di scansione delle porte (port scanning) e dei relativi servizi collegati ad esse. Le porte normalmente più vulnerabili sono:

  • Servizi di login: Telnet (23/TCP), SSH (22/TCP), NetBIOS (139/TCP), ecc.
  • Posta: SMTP (25/TCP), POP (109/TCP e 110/TCP), IMAP (143/TCP), ecc.
  • Web: HTTP (80/TCP) e SSL (443/TCP, tranne quelle verso i server web esterni. Si dovrebbero bloccare anche le porte HTTP comuni (8000/TCP, 8080/TCP, 8888/TCP e così via)
  • Piccoli servizi: porte prima delle 20/TCP e 20/UDP, time (37/TCPe 37/UDP)

Note[modifica | modifica sorgente]

  1. ^ [1], [2].

Voci correlate[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

Telematica Portale Telematica: accedi alle voci di Wikipedia che parlano di reti, telecomunicazioni e protocolli di rete