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

14

Eu vejo o seguinte intervalo efetivo de portas na minha caixa Linux.

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

Quero estender o intervalo de portas para começar por volta de 16000. Uma pergunta rápida aqui é: quão seguro é mudar o intervalo no contexto para os outros aplicativos? Outros aplicativos serão afetados por essa alteração? Entendo que um aplicativo é afetado apenas se estiver usando as portas no intervalo de portas especificado. Mas, em geral, como esse tipo de problema é tratado?

Ashwin Tumma
fonte
Não acho que haja efeito em outros aplicativos, mas não tenho certeza. Pergunta interessante.
ikrabbe
Certo. Até tentei procurar alguma outra documentação e não encontrei nenhum efeito em outros aplicativos. Os dois links a seguir são excelentes explicações do motivo pelo qual eu estava enfrentando esse problema: vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux.html ncftp.com/ncftpd/doc/misc /ephemeral_ports.html
Ashwin
@ikrabbe Certamente afetará outras aplicações se, por exemplo, seu navegador abrir uma porta efêmera para entrar em contato com um site, então alguém tentar iniciar um aplicativo que por coincidência use essa porta. O aplicativo falhará.
Goldilocks
3
Apenas para sermos mais completos, a sintaxe para editar o intervalo de números de porta é a seguinte: $ sudo sysctl -w net.ipv4.ip_local_port_range = "15000 61000"
Ashwin tumma

Respostas:

10

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

O Mesos anuncia os recursos de um host para várias estruturas do Mesos, que podem optar por 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 conflito com o intervalo de portas efêmeras padrão do Linux de 32768-61000 .

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

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

erik.weathers
fonte
4

Você pode obter uma lista de serviços potencialmente afetados olhando o que está nesse intervalo no /etc/servicesarquivo local , por exemplo:

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

Ou no local autorizado:

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
Josip Rodin
fonte
Obrigado pelo script awk, ele definitivamente ajuda na identificação das portas listadas nos serviços!
Ashwin Tumma