Quão seguro é mudar o intervalo de portas efêmeras do Linux?

14

Eu vejo o seguinte intervalo de portas efêmeras na minha caixa do Linux.

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

Eu quero estender o intervalo de portas para iniciar em torno de 16000. Uma pergunta rápida é: como é seguro alterar o intervalo no contexto para os outros aplicativos? Outras aplicações serão afetadas por essa mudança? Eu entendo que um aplicativo é afetado apenas se estiver usando as portas no intervalo de portas especificado. Mas, em geral, como essas questões são tratadas?

    
por Ashwin Tumma 23.06.2015 / 19:57

2 respostas

9

Alterar o intervalo de portas efêmeras pode causar problemas se você estiver usando Mesos .

Mesos anuncia os recursos de um host para vários Mesos Frameworks , que podem usar os recursos anunciados. Os recursos anunciados incluem CPU, memória, portas, etc. O conjunto padrão de portas que o Mesos anuncia é 31000-32000 . Isso evita um confronto com o intervalo de portas efêmeras Linux padrão de 32768-61000 .

Notavelmente, Mesos não sabe se uma porta é usada por algum outro processo, apenas rastreia a atribuição de portas para as entidades que orquestra ( Mesos Tasks & Mesos Executors ). Portanto, se você alterar o intervalo de portas efêmeras de forma que ele se sobreponha ao intervalo de portas Mesos, é provável que algum processo arbitrário use uma porta efêmera que, na verdade, seja uma dessas "portas Mesos". Isso poderia levar Mesos a oferecer essa porta para um Mesos Framework , que encontraria falhas aparentemente aleatórias de seus Mesos Executors e / ou Mesos Tasks como eles não poderão se ligar a essa porta.

Se você precisar aumentar seu intervalo de portas efêmeras e também precisar executar Mesos, poderá modificar as portas anunciadas por meio de um parâmetro de configuração mesos-slave (que em breve será renomeado para mesos-agent ) de --resources .

    
por 21.10.2015 / 02:53
4

Você pode obter uma lista de serviços potencialmente afetados procurando o que está nesse intervalo em seu arquivo /etc/services local, por exemplo:

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

Ou no local autoritativo:

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
    
por 23.06.2015 / 21:32

Tags