Onde está a documentação que indica que a porta de origem TCP e UDP deve ter mais de 1024 e aleatória?

11

Estou com dificuldades para descobrir onde está documentado que a porta de origem deve ser aleatória e no intervalo 1024-65535.

Em qual RFC isso está documentado?

Edit: A
primeira referência para portas privilegiadas está no RFC2623
Parece que isso depende mais da implementação do TCP / IP e é um padrão de fato.

A IANA está atribuindo os números de porta (RFC1700)

Mircea Vutcovici
fonte
1
A ARJ - RFC 1700 (STD 2) trata apenas da atribuição de portas do ouvinte (onde os serviços ouvem conexões). Ele não lida com a seleção da porta de origem do servidor de conexão.
precisa saber é o seguinte
Sim, mas o corolário que você "DEVE" usar as portas registradas é que você não deve usá-las para outras coisas. Por isso mencionei.
Mircea Vutcovici
2
iana.org/assignments/service-names-port-numbers/… fala sobre as portas dinâmicas e / ou privadas (49152-65535). Portanto, parece que o cliente deve usar uma porta desse intervalo.
Mircea Vutcovici

Respostas:

13

Você provavelmente está procurando pelo RFC 6056 - Recomendações para aleatorização de porta de protocolo de transporte ("Melhor prática atual").

Tecnicamente, não é necessário que a porta efêmera seja> 1024 ou aleatória (você pode criar um sistema que sempre inicia conexões da porta 12 porque gosta do número 12), mas não é "normal" fazê-lo (e uma péssima idéia para uma série de razões, algumas das quais são descritas nessa RFC).

voretaq7
fonte
Parece que as portas efêmeras devem ser> = 49152. Mas sua resposta é a mais próxima da minha pergunta.
Mircea Vutcovici
3

O RFC 6335 está explicando isso:

As portas no intervalo de portas dinâmicas (49152-65535) foram especificamente reservadas para uso local e dinâmico e não podem ser atribuídas pela IANA. O software aplicativo pode simplesmente usar qualquer porta dinâmica disponível no host local, sem nenhum tipo de atribuição. Por outro lado, o software de aplicativo NÃO DEVE assumir que um número de porta específico no intervalo de portas dinâmicas estará sempre disponível para comunicação o tempo todo, e um número de porta nesse intervalo, portanto, NÃO DEVE ser usado como identificador de serviço.

As portas reservadas:

As portas no intervalo de portas do usuário (1024-49151) estão disponíveis para atribuição através da IANA e PODEM ser usadas como identificadores de serviço após a atribuição bem-sucedida.

As portas no intervalo de portas do sistema (0-1023) também estão disponíveis para atribuição através da IANA. Como o intervalo de portas do sistema é o menor e o mais densamente atribuído, os requisitos para novas atribuições são mais rigorosos do que aqueles para o intervalo de portas do usuário e serão concedidos apenas sob os procedimentos "IETF Review" ou "IESG Approval" RFC5226 .

A introdução explica a confusão:

Por muitos anos, a atribuição de novos nomes de serviço e valores de número de porta para uso com o Protocolo de Controle de Transmissão (TCP) [RFC0793] e o Protocolo de datagrama de usuário (UDP) [RFC0768] teve
diretrizes menos que claras.

Parece que o Windows XP não está seguindo o RFC6335, mas o Solaris 10 está.

Mircea Vutcovici
fonte
1

O que o voretaq7 disse junto com isso, mas sendo pedante, há um requisito técnico. Historicamente, os daemons / servidores no * nix estão em execução nas portas <1024 (chamando-as de portas do sistema), portanto, para evitar conflitos, as portas de origem (portas do usuário) são> 1024 (ou, para ser mais preciso, 1024 - 49151). Entretanto, isso nem sempre é o caso como você diz e depende da implementação. No geral, o link acima fornece uma lista das RFCs, mas provavelmente a mais específica é a RFC5226, que descreve o processo de "Revisão de especialistas" da IANA.

do utilizador
fonte
Algumas implementações de servidor NFS exigem que o cliente NFS use uma porta <1024. Portanto, tecnicamente, sempre foi possível usar todas as portas como porta de origem. O que estou pedindo é para um documento que pedir para usar para os portos ao longo de 1024. Parece que, na verdade, o cliente deve usar portas mais de 49152.
Mircea Vutcovici
1
Isso não refuta minha resposta. Veja aqui unix.stackexchange.com/questions/16564/… Por que a atribuição da IANA e a RFC 6056 não cobrem você? Depois que você sempre pode dar recomendações, ninguém o impede de implementar um navegador da Web que usará a porta 80 como porta de origem
usuário
1
Sendo igualmente pedante, não há exigência de que as portas privilegiadas ou "conhecidas" não sejam usadas como porta de origem (consulte o contra-exemplo do Mircea com portas NFS privilegiadas) - Isso não costuma ser feito pelos motivos mencionados, mas também não é proibido. AFAIK de acordo com as RFCs TCP e UDP, qualquer porta não utilizada é um jogo justo como uma porta de origem. As regras que compõem em cima do que são para nossa conveniência :-)
voretaq7