Де документація, в якій зазначено вихідний порт TCP та UDP, має бути понад 1024 та випадковою?


11

Мені важко знайти місце, де зафіксовано, що вихідний порт повинен бути випадковим і в межах 1024-65535.

У якому RFC це документально підтверджено?

Редагувати:
Перша посилання на привілейовані порти знаходиться в RFC2623
Схоже, що це більше залежить від реалізації TCP / IP і це фактично стандарт.

IANA присвоює номери портів (RFC1700)


1
FYR - RFC 1700 (STD 2) займається лише призначенням портів слухачів (де служби прослуховують з'єднання). Він не стосується вибору вихідного порту підключення сервера.
— voretaq7

Так, але висновок, що ви "ДОЛЖЕН" використовувати зареєстровані порти, полягає в тому, що ви не повинні використовувати їх для інших матеріалів. Саме тому я це згадав.
— Mircea Vutcovici

2
iana.org/assignments/service-names-port-numbers/… розповідає про динамічні та / або приватні порти (49152-65535). Тож здається, що клієнт повинен використовувати порт із цього діапазону.
— Мірча Вутковичі

Відповіді:


13

Ви, ймовірно, шукаєте RFC 6056 - Рекомендації щодо рандомізації порту транспорту-протоколу ("Краща поточна практика").

Технічно немає вимоги, щоб ефемерний порт був> 1024 або випадковим (ви можете створити систему, яка завжди ініціює з'єднання з порту 12, тому що вам подобається число 12), просто це не "нормально" робити це (і жахлива ідея для купа причин, деякі з яких описані в тому RFC).


Здається, що ефемерні порти повинні бути> = 49152. Але ваша відповідь є найближчим до мого питання.
— Mircea Vutcovici

3

RFC 6335 пояснює це:

Порти в діапазоні динамічних портів (49152-65535) були спеціально відведені для місцевого та динамічного використання і не можуть бути призначені через IANA. Прикладне програмне забезпечення може просто використовувати будь-який динамічний порт, доступний на локальному хості, без будь-якого призначення. З іншого боку, прикладне програмне забезпечення НЕ МОЖЕ припускати, що певний номер порту в діапазоні "Динамічні порти" завжди буде доступний для зв'язку постійно, а номер порту в цьому діапазоні НЕ МОЖЕ використовуватися як ідентифікатор послуги.

Зарезервовані порти:

Порти в діапазоні Порти користувачів (1024-49151) доступні для призначення через IANA, і МОЖНА використовуватись як ідентифікатори послуг після успішного призначення.

Порти в діапазоні системних портів (0-1023) також доступні для призначення через IANA. Оскільки діапазон системних портів є як найменшим, так і найбільш щільно присвоєним, вимоги до нових завдань суворіші, ніж вимоги до діапазону Портів користувача, і надаватимуться лише в рамках процедур «Огляд IETF» або «Схвалення IESG» RFC5226 .

Вступ пояснює плутанину:

Протягом багатьох років присвоєння нових імен служб та значень номерів портів для використання з протоколом управління передачею (TCP) [RFC0793] та протоколом User Datagram Protocol (UDP) [RFC0768] мало менш
чітких рекомендацій.

Здається, що Windows XP не відповідає RFC6335, але Solaris 10 це робить.


1

Те, що сказав voretaq7 поряд з цим, але бути педантичним, є технічна вимога. Історично демони / сервери в * nix працюють на портах <1024 (називаючи їх системними портами), таким чином, щоб уникнути конфлікту, вихідні порти (порти користувачів) становлять> 1024 (або якщо бути точнішим 1024 - 49151) Однак це не завжди як ви говорите, і це залежить від реалізації. Загалом, вищезазначене посилання містить перелік RFC, але, мабуть, найбільш специфічним є RFC5226, який описує процес "Огляд експертів" IANA.


Деякі реалізації сервера NFS вимагають, щоб клієнт NFS використовував порт <1024. Тож технічно завжди можна було використовувати всі порти як вихідний порт. Що я прошу, це документ, який просять використовувати для портів понад 1024. Здається, що клієнт фактично повинен використовувати порти понад 49152.
— Mircea Vutcovici

1
Це не спростує моєї відповіді. Дивіться тут unix.stackexchange.com/questions/16564/… Чому завдання IANA та RFC 6056 не покривають вас? Після того, як ви завжди можете давати рекомендації, ніхто не заважає вам впровадити веб-браузер, який використовуватиме порт 80 як вихідний порт
— користувач

1
Будучи однаково педантичним, немає ніякої вимоги, щоб привілейовані або "добре відомі" порти не використовувались як вихідний порт (див. Контрприклад Мірчі з привілейованими портами NFS). Це зазвичай не робиться з вказаних вами причин, але це також не заборонено. AFAIK згідно з TCP та UDP RFC, будь-який невикористаний порт - це чесна гра як вихідний порт. Правила, які ми складаємо,
— крім
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.