Grupo de segurança do AWS EC2 / ACL - Negar a saída para apenas uma / 24 sub-rede

1

Eu tenho um cenário estranho que não sei como se locomover.

Normalmente isso é possível com as ACLs de sub-rede - no entanto, elas não são stateful. Preciso de pacotes "de resposta" estabelecidos para permitir um retorno (como um firewall típico)

Eu tenho uma sub-rede pública e privada. O público precisa entrar em contato com a Internet para que eu tenha permissão de saída para 0.0.0.0/0, mas eu quero restringir a saída para sub-redes específicas (10.100.1.0/24 e 10.150.2.0/24, por exemplo)

Eu poderia, claro, configurar isso facilmente no ACL, já que ele permite 'negar', mas não permite pacotes de resposta, pois não é stateful.

A única opção é controlar isso com regras de 'entrada' nas outras sub-redes internas? Isso faz muito mais regras para nossas diferentes redes quando seria muito mais limpo apenas restringi-lo na saída.

Todas as ideias são bem-vindas, incluindo a reformulação da coisa toda (isto é greenfield)

O comentário abaixo pediu para esclarecer melhor as necessidades do ambiente, então aqui está o ambiente como está sendo pedido para eu construir:

Pense nisso como um local e DMZ:

  • As instâncias na sub-rede pública 10.200.0.0/24 não podem iniciar novas conexões de saída nas sub-redes privadas 10.100.0 / 24.
  • As instâncias na sub-rede privada 10.100.0.0/24 podem iniciar novas conexões de saída na sub-rede pública (para ssh, código de implementação etc.).
  • A sub-rede pública precisa iniciar o tráfego de saída para a internet livremente
  • Devido às limitações da ACL, se eu bloquear a saída de public > privado, ele não permitirá pacotes de retorno (desde que não seja stateful)

Neste momento, a única coisa em que consigo pensar é confiar no iptables e no windows firewall dentro das próprias instâncias, o que é possível, mas muito mais difícil de gerenciar.

Outra ideia é implantar um firewall de software no EC2 (mais $$) que possa permitir / negar o tráfego de maneira estável. Ainda outra máquina para gerenciar.

Outra ideia é fazer com que o grupo de segurança negue a entrada de tráfego da sub-rede pública para a sub-rede privada que teria que ser permitida em todas as instâncias da sub-rede privada. O problema é que os grupos de segurança não possuem regras de negação. Novamente não é ideal.

Ter uma ACL com estado ou permitir negar regras em grupos de segurança resolveria o problema completamente. Infelizmente, nem é possível na infraestrutura atual da AWS.

    
por emmdee 28.09.2017 / 18:15

1 resposta

0

A solução parece muito simples.

Instances in public subnet 10.200.0.0/24 cannot initiate new outbound connections into the private subnets 10.100.0/24.

Eles já não podem, a menos que você tenha criado regras de entrada nos grupos de segurança nas instâncias nas sub-redes particulares para permitir isso.

Se você fez isso, remova essas regras, porque elas não deveriam estar lá.

O único tráfego permitido pelas regras de entrada nos grupos de segurança para instâncias na sub-rede privada deve ser o tráfego que precisa alcançá-las. Não há uma justificativa válida de "facilidade de administração" para a execução de uma rede com um centro flexível onde tudo é permitido por padrão, principalmente quando a especificação de origem das regras do grupo de segurança pode ser IDs de grupos de segurança ou IPs. Permitir acesso de onde o acesso deve ser permitido e nada mais.

    
por 29.09.2017 / 00:58