Port translation - como espalhar o tráfego de saída através de portas aleatórias?

0

Gostaria de poder usar o PAT para que o tráfego de saída de uma determinada porta de destino seja traduzido para uma porta aleatória em um intervalo por PDU ou por pacote.

A intenção é que o tráfego de saída seja "espalhado" pelo intervalo de portas especificado, semelhante ao princípio de salto de frequência para transmissão de rádio ... Preferencialmente, eu gostaria que isso fosse transparente para aplicativos upstream.

Um cenário de exemplo seria um utilitário de transferência de arquivos que envia um fluxo de dados em pacote para hospedar com a porta de destino 9080. Eu gostaria de traduzir (talvez até mesmo escutar na porta TCP 9080 localhost) todo o tráfego para um determinado host com porta de destino 9080 de tal forma que cada pacote vai para o host fornecido em uma porta aleatória entre, digamos de 49000 a 50000.

Para esclarecer ainda mais, não estou preocupado com a porta de origem da qual o tráfego se origina. Minha intenção é ter um remetente que envia a destino porta 'N' através de um link para um receptor que está escutando o tráfego chegando na porta de destino 'N'. Depois que o tráfego deixa o remetente, eu quero randomizar a porta de destino para um valor dentro de um intervalo conhecido ... então um monte de tráfego será visto através do fio com portas de destino aleatórias ... porque o intervalo é conhecido, esse tráfego pode então ser re-traduzido para a porta de destino 'N' pelo firewall ou similar no final do receptor.

Semelhante a:

[N]         = packet with destination port 'N'

[A <=N=> B] = packet with destination port between A and B

                                     /--[49000 <=N=> 50000]--\
SENDER --[N]-[N]-[N]--> (RANDOMISER)<---[49000 <=N=> 50000]--->(UNDO)-[N]-[N]-[N]-->RECEIVER
                                     \--[49000 <=N=> 50000]--/

Estou procurando alcançar isso nas plataformas Windows e Linux. Até agora, não consigo encontrar muito em termos de informações úteis ou sugestões e, portanto, qualquer conselho ou sugestão seria apreciado.

    
por J Ivory 08.04.2015 / 17:30

1 resposta

0

O Windows atribui conexões de clientes de saída à primeira porta TCP disponível > 1024 por padrão, a menos que o aplicativo especifique uma porta para conexão.

você pode alterar a porta inicial desse comportamento, usando os comandos netsh mostrados aqui: link para que você possa configurá-lo para começar em 40000 e o fim em 50000 se desejar.

No linux, você pode alterar o comportamento da porta inicial / final usando sysctl: link

Dito isto, você não poderá selecionar portas aleatoriamente, usando estas técnicas. Eu ficaria surpreso se você pudesse alterar essa funcionalidade sem alterar o código-fonte do sistema operacional, e muitos aplicativos não funcionariam bem com a funcionalidade.

espero que ajude.

    
por 08.04.2015 / 18:22