Aumente a segurança na Digital Ocean com o Cloud Firewalls

A Digital Ocean está sempre com novidades e um ponto que chama atenção é a contínua melhora da plataforma. A empresa está sempre lançando novos recursos que são documentados através de uma comunicação clara com os desenvolvedores, seja através do blog, documentação ou contato direto com a comunidade. Outro fator relevante é a facilidade de se usar os novos recursos e esse é, certamente, outro ponto forte da plataforma.

Segurança na nuvem

Ao configurar qualquer servidor ligado na internet a segurança é uma das primeiras coisas que devemos pensar. Antes da Digital Ocean possuir o recurso Cloud Firewalls que veremos nesse artigo, era necessário configurar iptables manualmente no Linux. O grande problema da configuração manual não está quando temos apenas uma máquina para rodar determinado serviço, mas quando várias máquinas são utilizadas ou quando existe uma rede com Load Balancers e outros recursos dentro da plataforma e aí esse trabalho de configuração manual pode se tornar bastante complexo.

Em outras plataformas a utilização de firewall padrão não é novidade, por exemplo, na AWS esse recurso já existe há algum tempo.

Conceitos básicos do Cloud Firewalls

Antes, alguns aspectos que precisamos conhecer:

  • No firewall existem as regras de entrada e as regras de saída;
  • Dentro de uma regra é possível selecionar o protocolo, porta única ou range de portas e quem terá permissão de acesso;
  • Por fim, temos as VPSs e tags que esse firewall será aplicado. Um VPS pode ter muitos firewalls e um firewall pode ser aplicado a vários VPS’s;

Veremos na prática alguns exemplos.

Gerenciamento do Firewall

Para criar um novo firewall podemos acessar o gerenciador de 2 modos, na tela principal no menu Networking > Firewalls ou nas configurações de uma Droplet específica no menu Networking > Firewalls > Manage Firewalls. No gerenciador basta clicar em Create Firewall para criar um novo.

Por padrão, o firewall aceita conexões na porta 22 (SSH) de qualquer IP, seja IPv4 ou IPv6. Veja a imagem:

Imagem porta de entrada padrão

Vamos supor que você queira liberar a porta do SSH somente para um IP específico (e essa prática é encorajada):

Liberação porta de entrada ip especifico

Outro recurso legal é o uso de Tags. Dentro da plataforma é possível criar tags para agrupar recursos, por exemplo, vamos supor que você queira liberar o acesso à porta do MySQL somente para as droplets que possuam a tag servidor-web:

Abertura porta de entrada para uma Tag

Nas regras de saída temos algo bem parecido:

Portas de saída padrão firewall

Por padrão as regras de saída são:

  • Permite tráfego ICMP de qualquer endereço IPv4 e IPv6
  • Permite tráfego de saída TCP para todas as portas em qualquer endereço;
  • Permite tráfego de saída UDP para todas as portas em qualquer endereço;

É possível configurar essas regras para ficarem mais restritivas, apesar do tráfego de saída não ser tão perigoso como o de entrada.

Por fim, deve ser escolhido o local onde o firewall será aplicado, pode ser em um ou mais Droplets ou Tags:

Locais onde o firewall será aplicado

No exemplo acima está sendo aplicado a todos os recursos com a Tag servidor-web e ao Droplet treinaweb-test.

Conclusão

Um dos princípios de segurança mais importantes é a permissão mínima. Sempre que for configurar seu firewall libere apenas as permissões mínimas necessárias para as conexões usadas no seu servidor. Serviços como SSH e MySQL preferencialmente devem ser liberados para acesso somente ao IP do administrador ou de alguma outra máquina que acesse esse serviço e, com isso, restringe-se a maioria dos ataques possíveis.

Por fim, vale destacar os limites do Firewall da Digital Ocean:

  • Quantidade total de regras de entrada e saída de um firewall: 50
  • Quantidade de Droplets por Firewall: 10
  • Firewalls por Droplet: Ilimitado
  • Tags por Firewall 5.
  • Droplets por tag: Ilimitado

Caso queira mais de detalhes, você pode acessar o exemplo oficial.

HTTP - Fundamentos
Curso de HTTP - Fundamentos
CONHEÇA O CURSO
Deixe seu comentário

Desenvolvedor, autor e instrutor. Apaixonado por desenvolvimento de software e tudo ligado a área de tecnologia. É autor de cursos em diversos temas, como, desenvolvimento back-end, cloud computing e CMSs. Nas horas vagas adora estudar sobre o mercado financeiro, cozinhar e brincar com pequeno Daniel de 1 ano.