Насколько безопасно изменять диапазон временных портов Linux?

14

Я вижу следующий диапазон портов на моем компьютере с Linux.

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

Я хочу расширить диапазон портов до 16000. Здесь возникает быстрый вопрос: насколько безопасно изменить диапазон в контексте для других приложений? Будут ли другие изменения затронуты этим изменением? Я понимаю, что на приложение влияет только если оно использует порт (ы) в указанном диапазоне портов. Но в целом, как решаются такие проблемы?

Эшвин Тумма
источник
Я не думаю, что это влияет на другие приложения, но я не уверен. Интересный вопрос.
Икраббе
Правильно. Даже я пытался найти какую-то другую документацию, и я не нашел никакого влияния на другие приложения. Следующие две ссылки являются отличным объяснением причины, по которой я столкнулся с этой проблемой: vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux.html ncftp.com/ncftpd/doc/misc /ephemeral_ports.html
Эшвин Тумма
@ikrabbe Это, безусловно, повлияет на другие приложения, если, например, ваш браузер откроет временный порт для связи с веб-сайтом, а затем кто-то / вещь попытается запустить приложение, которое по совпадению использует этот порт. Приложение не удастся.
Златовласка
3
Для полноты картины синтаксис для редактирования диапазона номеров портов выглядит следующим образом: $ sudo sysctl -w net.ipv4.ip_local_port_range = "15000 61000"
Эшвин Тумма

Ответы:

10

Изменение диапазона эфемерного порта может вызвать проблемы, если вы используете Mesos .

Mesos анонсирует ресурсы хоста для различных платформ Mesos, которые затем могут использовать рекламируемые ресурсы. Объявленные ресурсы включают ЦП, память, порты и т. Д. Набор портов по умолчанию, который рекламирует Mesos, составляет 31000-32000 . Это позволяет избежать конфликта с диапазоном портов Linux по умолчанию, равным 32768-61000 .

Примечательно, что Mesos не знает о том, является ли порт используется каким - либо другим процессом, он просто отслеживает назначение портов для субъектов , которые он оркеструет ( Mesos Задачи и Mesos исполнителях ). Поэтому, если вы измените диапазон эфемерных портов так, чтобы он перекрывался с диапазоном портов Mesos, вполне вероятно, что некоторый произвольный процесс будет использовать эфемерный порт, который на самом деле является одним из этих «портов Mesos». Это может привести к тому, что Mesos предложит этот порт для Mesos Framework , что приведет к случайным сбоям его исполнителей Mesos и / или задач Mesos, поскольку они не смогут подключиться к этому порту.

Если вам нужно увеличить диапазон временных портов, а также запустить Mesos, вы можете изменить объявленные порты через mesos-slave(скоро будет переименован mesos-agent) параметр конфигурации --resources.

erik.weathers
источник
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, он определенно помогает в идентификации тех портов, которые перечислены в сервисах!
Эшвин Тумма