As portas efêmeras precisam estar abertas no firewall da rede para que o nginx e o sshd funcionem corretamente?

2

Preâmbulo: Então, antes de eu realmente fazer a pergunta, gostaria de salientar que estou um pouco apreensivo em postar isso porque, mesmo enquanto estou digitando isso, parece que Eu estou pedindo a alguém para me dizer a configuração do switch que eu preciso, o que não é o caso. Eu já tenho a configuração do switch principal finalizada e pronta para voltar ao cliente, mas eles me pediram para verificar o / entire / config que eles vão realmente se aplicar aos switches, não apenas o material específico do aplicativo, portanto a questão abaixo. Enfim, agora que acabou, para a questão real.

Tenho desenvolvido um aplicativo para um cliente que será executado em um monte de servidores AWS com balanceamento de carga rodando Debian 7.5, o qual só estará acessível na porta 80 para o próprio aplicativo de todos os endereços, e a porta 22 para SSH de apenas nosso escritório e o escritório da equipe de gerenciamento da AWS terceirizada do cliente.

A política de segurança do cliente é obrigatoriamente restritiva, pois os servidores conterão dados comerciais confidenciais, portanto, a configuração de rede precisa ser bloqueada para conexões de entrada e saída de todos os servidores, tanto quanto possível. Eu já descrevi os requisitos para esta parte e foi acordado entre mim e a equipe da AWS. No entanto, eles me pediram para verificar a configuração final a ser aplicada e isso inclui as seguintes linhas:

Source          Destination     Protocol  Ports        Service          Action  Description
0.0.0.0/0       192.168.0.0/16  TCP       1024-65535   Ephemeral Ports  Allow   Allows inbound return traffic from the Internet
192.168.0.0/16  0.0.0.0/0       TCP       32768-65535  Ephemeral Ports  Allow   Allows outbound responses to clients on the Internet (for example, serving web pages to people visiting the web servers in the subnet)

Infelizmente, a camada de rede é o único aspecto do modelo OSI sobre o qual sei muito pouco. Eu estava vagamente ciente de que alguns serviços usam portas efêmeras para as conexões de trabalho reais depois que a solicitação inicial para a porta conhecida do serviço foi estabelecida, mas não tenho certeza de quais serviços realmente precisam que essas portas sejam abertas nas interfaces públicas de servidores para que esses servidores funcionem corretamente. O comentário implica que 32768-65535 são necessários para que os servidores da Web funcionem, mas eu tive respostas autoritativas deles no passado, que mais tarde se mostraram erradas, portanto, quero confirmar essa afirmação.

Algum nginx ou sshd requer que as portas efêmeras sejam abertas para que elas executem suas funções corretamente, ou toda atividade sempre acontece apenas nas portas que foram configuradas para uso (por exemplo, 80 e 443, e 22 respectivamente)? O fechamento das portas efêmeras para o tráfego impediria que serviços como o apt funcionassem corretamente (o que, na minha opinião, normalmente usa o HTTP na porta 80 para interagir com suas fontes)?

Além disso, eles adicionaram as duas linhas a seguir sobre consultas DNS à configuração:

Source          Destination     Protocol  Ports  Service  Action  Description
0.0.0.0/0       192.168.0.0/16  TCP/UDP   53     DNS      Allow   Allows inbound DNS query from anywhere
192.168.0.0/16  0.0.0.0/0       TCP/UDP   53     DNS      Allow   Allows outbound DNS queries to anywhere

Agora, não estamos executando daemons de DNS nesses servidores, portanto, tenho certeza de que podemos descartar totalmente a primeira linha, mas fechar 53 para o tráfego de entrada ou de saída impede que os servidores resolvam os nomes de host corretamente? Eu tenho que admitir que eu nunca realmente olhei em como o DNS realmente funciona tão de perto como eu nunca precisei. : s Suponha que agora é uma boa hora para começar!

Mas sim, o resumo:

O fechamento das portas 1024-65535 para todo o tráfego, tanto de entrada quanto de saída, impedirá que qualquer nginx, sshd, consultas DNS ou quaisquer utilitários do sistema operacional funcionem corretamente nos servidores Debian?

    
por Benjamin Nolan 11.09.2014 / 18:19

1 resposta

3

Definição de um par de soquetes :

Communicating local and remote sockets are called socket pairs. Each socket pair is described by a unique 4-tuple consisting of source and destination IP addresses and port numbers, i.e. of local and remote socket addresses.[3][4] In the TCP case, each unique socket pair 4-tuple is assigned a socket number, while in the UDP case, each unique local socket address is assigned a socket number.

No lado do servidor, a porta geralmente é corrigida pelo protocolo / aplicativo que está sendo usado. Por exemplo, SSH 22 e DNS 53.

No lado do cliente, aquele que inicia a conexão com o servidor, ele precisa escolher uma porta de origem para cumprir sua parte daquela 4-tupla necessária para identificar exclusivamente uma conexão. Os clientes geralmente escolhem uma porta aleatória no intervalo 1025-65535. Eu acredito que isso é o que eles estão chamando de portos efêmeros?

Alguns protocolos (por exemplo, portmap RPC) terão um servidor escutando em uma porta fixa, um cliente se conectará e solicitará um serviço específico, o listener fornecerá uma porta onde o cliente deve se conectar (geralmente aleatório, dentro de um intervalo) e spawn o serviço nessa porta. Este é apenas um exemplo de uma organização mais complexa para as portas do servidor, mas de forma alguma requer portas de origem específicas do lado do cliente a serem usadas. Eles deveriam ser aleatórios.

A filtragem na porta de origem é meio desajeitada. A listagem que você postou não mostra se está filtrando a origem ou as portas de destino. Se você realmente quer endurecer seu firewall, defina como padrão uma política block = all e deixe apenas as portas necessárias. Não mexerei em restringir quais portas de origem podem ser usadas, a menos que você esteja procurando por problemas (por exemplo, clientes não sendo capazes de conectar) ou trabalho extra (ou seja, regras complexas de firewall).

Parece que na primeira listagem eles estão especificando o aleatório de portas aleatórias que os clientes podem usar. Por que eles se importam?

    
por 11.09.2014 / 18:41