Dov'è la documentazione che afferma che la porta di origine TCP e UDP deve essere superiore a 1024 e casuale?


11

Sto facendo fatica a trovare dove è documentato che la porta di origine dovrebbe essere casuale e nell'intervallo 1024-65535.

In quale RFC è documentato?

Modifica: il
primo riferimento per le porte privilegiate è in RFC2623
Sembra che ciò dipenda maggiormente dall'implementazione TCP / IP ed è uno standard di fatto.

IANA sta assegnando i numeri di porta (RFC1700)


1
FYR - RFC 1700 (STD 2) si occupa solo dell'assegnazione delle porte dell'ascoltatore (dove i servizi ascoltano le connessioni). Non si occupa della selezione della porta di origine del server di connessione.
voretaq7,

Sì, ma il corollario che "DOVREBBE" usare le porte registrate è che non dovresti usarle per altre cose. Ecco perché l'ho menzionato.
Mircea Vutcovici,

2
iana.org/assignments/service-names-port-numbers/… parla delle porte dinamiche e / o private (49152-65535). Quindi sembra che il client dovrebbe usare una porta da quell'intervallo.
Mircea Vutcovici,

Risposte:


13

Probabilmente stai cercando RFC 6056 - Consigli per la randomizzazione delle porte del protocollo di trasporto ("Best Practice Current").

Tecnicamente non è necessario che la porta effimera sia> 1024 o casuale (potresti costruire un sistema che avvii sempre connessioni dalla porta 12 perché ti piace il numero 12), semplicemente non è "normale" farlo (e un'idea terribile per una serie di ragioni, alcune delle quali sono descritte in tale RFC).


Sembra che le porte effimere dovrebbero essere> = 49152. Ma la tua risposta è la più vicina alla mia domanda.
Mircea Vutcovici,

3

La RFC 6335 sta spiegando in questo modo:

Le porte della gamma Porte dinamiche (49152-65535) sono state appositamente riservate per l'uso locale e dinamico e non possono essere assegnate tramite IANA. Il software applicativo può semplicemente utilizzare qualsiasi porta dinamica disponibile sull'host locale, senza alcun tipo di assegnazione. D'altra parte, il software applicativo NON DEVE presumere che un numero di porta specifico nell'intervallo Porte dinamiche sarà sempre disponibile per la comunicazione in qualsiasi momento e un numero di porta in tale intervallo NON DEVE essere utilizzato come identificatore di servizio.

Le porte riservate:

Le porte nell'intervallo Porte utente (1024-49151) sono disponibili per l'assegnazione tramite IANA e POSSONO essere utilizzate come identificatori di servizio in caso di assegnazione corretta.

Le porte nell'intervallo Porte di sistema (0-1023) sono disponibili anche per l'assegnazione tramite IANA. Poiché la gamma Porte di sistema è la più piccola e la più densamente assegnata, i requisiti per le nuove assegnazioni sono più rigorosi di quelli per la gamma Porte utente e saranno concessi solo in base alle procedure "Revisione IETF" o "Approvazione IESG" RFC5226 .

L'introduzione spiega la confusione:

Per molti anni, l'assegnazione di nuovi nomi di servizi e valori di numeri di porta da utilizzare con il protocollo TCP (Transmission Control Protocol) [RFC0793] e l'UDP (User Datagram Protocol) [RFC0768] ha avuto
linee guida poco chiare.

Sembra che Windows XP non stia seguendo RFC6335, ma Solaris 10 lo fa.


1

Ciò che voretaq7 ha detto insieme a questo, ma essendo pedante, c'è un requisito tecnico. Storicamente i demoni / server in * nix sono in esecuzione su porte <1024 (chiamandole porte di sistema) quindi, al fine di evitare conflitti, le porte di origine (porte utente) sono> 1024 (o per essere precisi 1024 - 49151) Tuttavia, ciò non è sempre il caso come dici tu e dipende dall'implementazione. Tutto sommato, il link sopra riportato fornisce un elenco di RFC ma probabilmente il più specifico è RFC5226 che descrive il processo di "Revisione degli esperti" di IANA.


Alcune implementazioni del server NFS richiedono che il client NFS utilizzi una porta <1024. Quindi tecnicamente era sempre possibile utilizzare tutte le porte come porta di origine. Quello che sto chiedendo è un documento che chieda di usare porte oltre 1024. Sembra che in realtà il client dovrebbe usare porte oltre 49152.
Mircea Vutcovici,

1
Ciò non confuta la mia risposta. Vedi qui unix.stackexchange.com/questions/16564/… Perché l'assegnazione IANA e RFC 6056 non ti coprono? Dopo che puoi sempre dare raccomandazioni, nessuno ti impedisce di implementare un browser web che utilizzerà la porta 80 come porta di origine
utente

1
Essendo ugualmente pedante, non è necessario che le porte privilegiate o "ben note" non vengano utilizzate come porta di origine (vedere il controesempio di Mircea con le porte NFS privilegiate) - Non è comunemente fatto per i motivi menzionati, ma non lo è nemmeno vietato. AFAIK secondo le RFC TCP e UDP qualsiasi porta inutilizzata è un gioco equo come una porta di origine. Le regole che creiamo sopra sono per la nostra comodità :-)
voretaq7
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.