Gdzie jest dokumentacja stwierdzająca, że ​​port źródłowy TCP i UDP powinien mieć więcej niż 1024 i być losowy?

11

Trudno mi znaleźć miejsce, w którym udokumentowano, że port źródłowy powinien być losowy i znajdować się w zakresie 1024-65535.

W którym RFC jest to udokumentowane?

Edycja:
Pierwsze odniesienie do uprzywilejowanych portów znajduje się w RFC2623
Wygląda na to, że zależy to bardziej od implementacji TCP / IP i jest de facto standardem.

IANA przypisuje numery portów (RFC1700)

Mircea Vutcovici
źródło
1
FYR - RFC 1700 (STD 2) dotyczy tylko przypisania portów nasłuchiwania (gdzie usługi nasłuchują połączeń). Nie zajmuje się wyborem portu źródłowego serwera łączącego.
voretaq7
Tak, ale następstwem tego, że „POWINNO” używać zarejestrowanych portów, jest to, że nie należy ich używać do innych celów. Dlatego o tym wspomniałem.
Mircea Vutcovici,
2
iana.org/assignments/service-names-port-numbers/… mówi o portach dynamicznych i / lub prywatnych (49152-65535). Wygląda więc na to, że klient powinien użyć portu z tego zakresu.
Mircea Vutcovici,

Odpowiedzi:

13

Prawdopodobnie szukasz RFC 6056 - Zalecenia dotyczące randomizacji portów protokołu transportu („Najlepsza bieżąca praktyka”).

Technicznie nie ma wymogu , aby efemeryczny port był> 1024 lub losowy (możesz zbudować system, który zawsze inicjuje połączenia z portu 12, ponieważ podoba ci się liczba 12), po prostu nie jest to „normalne” (i okropny pomysł na kilka powodów, z których niektóre opisano w tym dokumencie RFC).

voretaq7
źródło
Wygląda na to, że efemeryczne porty powinny wynosić> = 49152. Ale twoja odpowiedź jest najbliższa mojemu pytaniu.
Mircea Vutcovici,
3

RFC 6335 tłumaczy w ten sposób:

Porty z zakresu portów dynamicznych (49152-65535) zostały specjalnie przeznaczone do użytku lokalnego i dynamicznego i nie można ich przypisać za pośrednictwem IANA. Oprogramowanie aplikacji może po prostu korzystać z dowolnego portu dynamicznego dostępnego na lokalnym hoście, bez żadnego przypisania. Z drugiej strony, oprogramowanie NIE MOŻE zakładać, że określony numer portu z zakresu portów dynamicznych będzie zawsze dostępny do komunikacji przez cały czas, a zatem numer portu z tego zakresu NIE MOŻE być używany jako identyfikator usługi.

Zarezerwowane porty:

Porty z zakresu Porty użytkownika (1024–49151) są dostępne do przypisania za pośrednictwem IANA i MOGĄ być użyte jako identyfikatory usługi po pomyślnym przypisaniu.

Porty w zakresie portów systemowych (0-1023) są również dostępne do przypisania za pośrednictwem IANA. Ponieważ zakres portów systemowych jest zarówno najmniejszy, jak i najbardziej gęsto przydzielony, wymagania dotyczące nowych przypisań są bardziej rygorystyczne niż te dla zakresu portów użytkowników i zostaną przyznane wyłącznie zgodnie z procedurami RFC5226 „Przeglądu IETF” lub „Zatwierdzenia IESG” .

Wprowadzenie wyjaśnia zamieszanie:

Od wielu lat przypisywanie nowych nazw usług i numerów portów do użytku z protokołem Transmission Control Protocol (TCP) [RFC0793] i User Datagram Protocol (UDP) [RFC0768] ma mniej niż
jasne wytyczne.

Wygląda na to, że Windows XP nie przestrzega RFC6335, ale Solaris 10 tak.

Mircea Vutcovici
źródło
1

Co voretaq7 że wraz z tym , ale jest pedantyczny istnieje wymóg techniczny. Historycznie demony / serwery w * nix działają na portach <1024 (nazywając je portami systemowymi), dlatego aby uniknąć konfliktu, porty źródłowe (porty użytkownika) mają> 1024 (a ściślej 1024 - 49151). Jednak nie zawsze przypadek, jak mówisz i zależy to od implementacji. Podsumowując, powyższy link zawiera listę RFC, ale prawdopodobnie najbardziej szczegółowym jest RFC5226, który opisuje proces „Przeglądu eksperckiego” IANA.

użytkownik
źródło
Niektóre implementacje serwera NFS wymagają, aby klient NFS używał portu <1024. Tak więc technicznie zawsze można było użyć wszystkich portów jako portu źródłowego. Co Pytam jest dla dokumentu, który poprosi użyć do portów ponad 1024. Wydaje się, że w rzeczywistości klient powinien wykorzystywać porty ponad 49152.
Mircea Vutcovici
1
To nie obala mojej odpowiedzi. Zobacz tutaj unix.stackexchange.com/questions/16564/... Dlaczego przypisanie IANA i RFC 6056 Cię nie obejmuje? Po tym, jak zawsze możesz udzielać rekomendacji, nikt nie powstrzyma Cię przed wdrożeniem przeglądarki internetowej, która będzie używać portu 80 jako portu źródłowego
użytkownik
1
Ponieważ są równie pedantyczne, nie ma wymogu , aby uprzywilejowane lub „dobrze znane” porty nie były używane jako porty źródłowe (patrz przykład Mircei z uprzywilejowanymi portami NFS) - nie jest to często robione z powodów, o których wspomniałeś, ale też nie jest zakazana. AFAIK zgodnie z RFC TCP i UDP każdy nieużywany port jest uczciwą grą jako port źródłowy. Zasady, które nadrabiamy, są dla naszej wygody :-)
voretaq7 20.09.11