3 práticas recomendadas para proteger servidores Ubuntu Linux na Internet

3 práticas recomendadas para proteger servidores Ubuntu Linux na Internet

Imagine esta situação: você está ansioso para experimentar a nova versão de seu framework web de código aberto favorita e decide criar um servidor Linux virtual em seu provedor de nuvem para hospedá-la. Não passa nem uma hora, você já finalizou a instalação e está prestes a compartilhar a URL com seus amigos desenvolvedores para mostrar sua conquista, quando você começa a notar algo estranho e pensa: “Por que o servidor está tão lento? E esses processos que estão em execução? Eles não têm nada a ver com a minha inscrição!”

Você está prestes a perceber que seu servidor foi comprometido e não sabe como isso aconteceu.

Esta situação hipotética, mas não muito longe da realidade, mostra-nos como as ameaças que existem na Internet colocam em risco tudo, desde um projeto pessoal que não envolve uma perda muito grande de informação, até à sobrevivência completa de um gigante tecnológico. Basta ler algumas manchetes de feeds de notícias especializados em segurança informática para nos dar uma ideia da magnitude do problema.

Agora, a segurança informática é uma disciplina muito ampla e requer um conjunto de conhecimentos e anos de experiência para dominá-la. Porém, alguns conhecimentos básicos podem ajudar muito a hospedar nossas aplicações de forma mais segura. Neste artigo propomos 3 melhores práticas para proteger servidores Ubuntu Linux na Internet. Se a sua distribuição Linux favorita for outra, não se preocupe: as melhores práticas ainda se aplicam, apenas as instruções de instalação mudam de acordo com o gerenciador de pacotes do seu sistema operacional.


1) Instale o Ubuntu necessário para que seu aplicativo funcione

Ao instalar um sistema operacional Ubuntu Server, o assistente de instalação nos pergunta se queremos a versão completa ou minimizada, que contém apenas um pequeno número de utilitários e aplicativos:


Podemos ficar tentados a escolher a opção padrão, que instala um grupo seleto de software projetado para facilitar a administração do servidor para você. Minha recomendação é escolher sempre a opção Ubuntu Server (minimized) para reduzir nossa superfície de ataque, termo muito utilizado no meio de segurança de informática que, no nosso caso, consiste em todos os pacotes de software instalados em nosso servidor que possam sofrer alguma vulnerabilidade de segurança.

Neste caso, como em muitos outros da nossa profissão, menos é mais.

2) Sem firewall? Nem pensar!

Após a conclusão da instalação do Ubuntu e antes de instalar um servidor de aplicativos, tempo de execução de contêiner ou qualquer componente exigido pelo meu aplicativo; podemos ter a falsa ideia de que estamos seguros no momento. Não é assim! Um servidor exposto à Internet é quase imediatamente sujeito a sondagens de reconhecimento de entidades com fins legítimos (como manutenção de uma base de dados atualizada de endereços IP, estatísticas para fins de investigação académica, etc.), bem como de entidades de reputação duvidosa que procuram sua próxima vítima. Estas últimas são o que nos preocupa e são objeto das nossas melhores práticas.

Esta primeira recomendação é que, imediatamente após o funcionamento do nosso servidor, ativemos o firewall do Ubuntu e o configuremos com uma regra que bloqueie todas as comunicações de entrada para o nosso servidor e permita apenas o acesso aos serviços que queremos expor à Internet. Para isso, existem diversos utilitários que nos facilitam a realização dessas configurações. Neste caso utilizaremos UFW (Universal Firewall) devido à sua simplicidade e disponibilidade nas versões recentes do Ubuntu.

As etapas para ativar e configurar o UFW com segurança são:

1) Instale o software usando o apt:

2) Configure o UFW para negar todas as conexões de entrada. Não se preocupe, a configuração ainda não será aplicada e não há risco de ficar sem acesso ao servidor.


3) Permitir conexões com o serviço de acesso remoto SSH.


4) Ligar o firewall.

Neste ponto, nosso servidor terá apenas acesso SSH disponível pela Internet, deixando qualquer outro ponto de acesso inacessível pela rede. Posteriormente, quando instalarmos os demais componentes de nossa aplicação, poderemos habilitar os serviços necessários com UFW.

3) Proteja-se contra ataques de força bruta

Um ataque de força bruta ocorre quando um invasor, usando utilitários disponíveis publicamente que incluem enormes listas de senhas comuns e suas variantes, tenta acessar um servidor, persistindo por longos períodos, esperando em algum momento acessar o servidor através de alguma conta. senha fraca.

Mesmo que pensemos que a nossa senha de acesso ao servidor (composta pelo nome do nosso animal de estimação mais o ano de seu nascimento) é segura, é muito provável que o invasor consiga encontrá-la após várias tentativas. Para reduzir o risco destes ataques propomos três medidas básicas:

  1. Use senhas fortes. As senhas de acesso aos servidores devem ter no mínimo cerca de 16 caracteres e, preferencialmente, ser geradas aleatoriamente com ferramenta para esse fim. Além disso, o fato de conterem uma mistura de dígitos, letras, maiúsculas, minúsculas e sinais de pontuação é altamente recomendado.
  2. Armazene suas senhas com segurança. As senhas não devem ser salvas em cadernos ou planilhas. Use um gerenciador de senhas confiável para armazenar suas senhas. Como todos os softwares, eles também estão sujeitos a vulnerabilidades, por isso, antes de decidir por um, pesquise na Internet se ele sofreu ataques ou vazamentos de informações recentemente.
  3. Use mecanismos para mitigar ataques de força bruta. Nesta ocasião mostraremos como instalar e configurar o fail2ban, que nos permite detectar em tempo real tentativas fracassadas de acesso aos diversos serviços hospedados em nosso servidor e, caso seja detectada alguma anomalia, bloquear automaticamente o endereço IP de origem por um tempo certo.

Para instalar o fail2ban em seu servidor siga estes passos:

1) Instale o pacote de software usando apt:


2) Configure o Ubuntu para que o gerenciador de serviços systemctl execute fail2ban automaticamente quando o servidor for iniciado. Na primeira ocasião iniciamos manualmente:


3) Verifique se o fail2ban está em execução e se a proteção do serviço SSH está ativa:

A configuração padrão do fail2ban bloqueará tentativas de conexão do endereço IP que causa 5 tentativas fracassadas em um intervalo de 10 minutos por 10 minutos. Esta configuração é suficiente para tornar os utilitários de força bruta muito ineficazes e pode ser personalizada usando arquivos de configuração localizados no caminho /etc/fail2ban.


Preparar! Estou seguro/a agora?

Não tão rápido! Proteger nosso servidor contra ataques é uma tarefa diária do administrador de sistemas. Novas ameaças surgem continuamente, bem como ferramentas que nos permitem estar mais bem preparados para enfrentá-las.

Como desenvolvedores, normalmente não nos preocupamos muito com esses tópicos, mas ter conhecimento técnico básico e uma ideia sobre as melhores práticas do setor nos permite estar melhor preparados e contribuir com nossas equipes de DevOps quando implantamos uma aplicação.

Espero que este guia ajude você a proteger seus servidores Ubuntu. Todo o sucesso!

💡
As opiniões e comentários expressos neste artigo são de propriedade exclusiva de seu autor e não representam necessariamente o ponto de vista da Revelo.

A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.