Наскільки безпечно змінювати діапазон ефемерних портів Linux


14

У моєму вікні Linux я бачу наступний діапазон ефемерних портів.

sysctl net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768    61000

Я хочу розширити діапазон портів, починаючи приблизно з 16000. Тут є швидке питання: наскільки безпечно змінювати діапазон у контексті інших програм? Чи впливатимуть на цю зміну інші програми? Я розумію, що на додаток впливає лише якщо він використовує порт (и) у вказаному діапазоні портів. Але загалом, як вирішуються такі питання?


Я не думаю, що це впливає на інші програми, але я не впевнений. Цікаве запитання.
ikrabbe

Правильно. Навіть я намагався шукати якусь іншу документацію, і я не знайшов жодного ефекту в інших додатках. Наступні два посилання є чудовими поясненнями причини, чому я зіткнувся з цим питанням: vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux.html ncftp.com/ncftpd/doc/misc /ephemeral_ports.html
Ешвін Тумма

@ikrabbe Це, безумовно, матиме вплив на інші програми, якщо, наприклад, ваш браузер відкриє ефемерний порт для контакту з веб-сайтом, тоді хтось / річ намагається запустити програму, яка за збігом обставин використовує цей порт. Програма не працює.
goldilocks

3
Для повноти, синтаксис редагування діапазону номерів портів виглядає наступним чином: $ sudo sysctl -w net.ipv4.ip_local_port_range = "15000 61000"
Ешвін Тумма

Відповіді:


10

Зміна діапазону ефемерних портів може спричинити проблеми, якщо ви використовуєте Mesos .

Mesos рекламує ресурси хоста на різних Mesos Frameworks, які потім можуть вибрати рекламовані ресурси. Рекламовані ресурси включають процесор, пам'ять, порти тощо. Набір портів, які Mesos рекламує за замовчуванням, становить 31000-32000 . Це дозволяє уникнути зіткнення з діапазоном ефемерних портів за замовчуванням Linux 32768-61000 .

Зокрема, Mesos не знає про те, чи використовується порт яким-небудь іншим процесом, він просто відстежує призначення портів сутностям, які він оркеструє ( Mesos Tasks & Mesos Execitors ). Отже, якщо ви зміните діапазон ефемерних портів таким чином, щоб він перекривався з діапазоном портів Mesos, цілком ймовірно, що якийсь довільний процес буде використовувати ефемерний порт, який насправді є одним із цих "портів Mesos". Це може призвести до того, що Mesos запропонує цей порт для Mesos Framework , який зіткнеться з наче випадковими відмовами його виконавців Mesos та / або Завданнями Mesos, оскільки вони не зможуть прив’язатись до цього порту.

Якщо вам потрібно збільшити діапазон ефемерних портів, а також потрібно запустити Mesos, ви можете змінити рекламовані порти через параметр конфігурації mesos-slave(незабаром перейменований на mesos-agent) --resources.


4

Ви можете отримати список потенційно постраждалих служб, подивившись, що знаходиться в цьому діапазоні у вашому локальному /etc/servicesфайлі, наприклад:

awk '/^#/ { next } $2+0 >= 16000 && $2+0 < 32768 { print }' /etc/services

Або в авторитетному місці:

wget http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.csv
awk -F, '$2+0 >= 16000 && $2+0 < 32768 { print }' service-names-port-numbers.csv

Дякуємо за скрипт awk, він безумовно допомагає визначити ті порти, які перераховані в службах!
Ешвін Тумма
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.