Gabriel Zuqueto Amaral
www.gabrielzuqueto.eti.br

Segurança de servidores na nuvem da Digital Ocean

Neste post iremos ver como aplicar segurança básica em servidores linux. Pormais que eu utilize a Digital Ocean e o CentOS, estas regras servem para qualquer *UNIX

Segurança de servidores na nuvem da Digital Ocean

Hoje irei mostrar como aplicar as configurações básicas de segurança em um servidor Linux.

A distro linux utilizada será o CentOS 7, porém as configurações de segurança apresentadas aqui podem ser aplicadas a qualquer disto. Dependendo da distro que você for utilizar, alguns detlahes como caminho de arquivos ou comandos podem ser diferentes.

Tomarei como base, que você já tenha um servidor e queira aplicar as configurações de segurança básica. Caso ainda não tenha um servidor, confira: Como criar um Droplet na Digital Ocean

Acessando o droplet

Nosso droplet está pronto para ser acessado! Levando em consideração que está utilizando uma distro Linux, copie o IP Address referente à instância que acabamos de subir e conecte-se a ela da seguinte forma:

ssh root@IP_DA_INSTANCIA

No caso do nosso tutorial fica assim:

ssh [email protected]

Criando a senha do usuário root

É importante cria uma senha para o root, pois mais para frente vamos desativar o acesso dele via ssh, porém teremos que deixar uma forma de atualizar o sistema ou instalar novos pacotes no nosso servidor. Mais para frente explico melhor.

Utilize o seguinte comando para criar a senha do root:

passwd root

Uma nova senha sera solicitada, logo digite uma e tecle ENTER. Após, será pedido que confirme a senha que acabou de digitar, então, repita a senha e tecle ENTER novamente.

Segurança de servidores na nuvem da Digital Ocean

Ok! Agora que criamos uma senha para o root, vamos adicionar um usuário comum em nossa instância.

Adicionando um usuário comum

Um usuário comum é aquele que não tem os privilégios de root e nem permissão para executar comandos com sudo. Ou seja, este usuário não pode alterar que não seja dele ou seja público.

É super importante que as aplicações que ficaram ativas em nosso servidor, não estejam pelo usuário root ou por um usuário com poder de sudo. Isso nos dá uma camada a mais de segurança.

Para criar um novo usuário utilize o comando abaixo no terminal da instância e tecle ENTER:

useradd NOME_DO_NOVO_USUARIO

No caso do nosso tutorial:

useradd gabriel

Nenhum retorno será exibido. Agora vamos criar uma senha para o novo usuário.

passwd NOME_DO_NOVO_USUARIO

No caso do nosso tutorial:

passwd gabriel

Os passos são idênticos aos que utilizamos para por a senha no usuário root. E a saída será semelhante.

Segurança de servidores na nuvem da Digital Ocean

Tudo certo!

Adicionando Autenticação de Chave Pública para o novo usuário

O próximo passo é configurar uma chave pública de autenticação para o seu novo usuário, isso te proporciona uma camada de segurança, pois só conseguirá logar com este usuário via SSH, quem tive sua chave privada.

É importante fazer backup do seu par de chaves, pois se perder sua chave privada, não terá mais acesso ao seu servidor.

O ideal seria gerar um par de chaves novas para ter um pouco mais de segurança. Porém, neste tutorial vou utulizar a mesma chave pública que utilizamos para o usuário root.

Com a chave pública em mãos, vamos chavear para o novo usuário. Para isso digite o seguinte comando:

su - NOME_DO_NOVO_USUARIO

No caso do nosso tutorial:

su - gabriel

O - faz com que a gente vá para o diretório home do usuário.

Se você digitar o seguinte comando:

pwd

Verá que o retorno será /home/NOME_DO_NOVO_USUARIO, ou seja, não estamos no diretório /root, estamos na home do usuário.

Segurança de servidores na nuvem da Digital Ocean

Agora que estamos chaveado para o novo usuário, vamos adicionar a chave pública para ele.

Crie um novo diretório chamado .ssh e restrinja suas permissões com os seguintes comandos:

mkdir .ssh
chmod 700 .ssh

Agora crie um arquivo dentro do diretório .ssh chamado authorized_keys e adicione sua chave pública dentro dele.

Utilize o seguinte commando:

echo "SUA_CHAVE_PUBLICA_AQUI" > .ssh/authorized_keys

No caso do nosso tutorial fica assim:

echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuNu6K/LblCPgWTpfv/QBbZh8W/DJmjIHs8s7KMiqWgqVD8RILZ5TnNSfrg+BwwW4P0KvRyBMVoJeeAy1Xeonh5Yn+KUQ/6OehCsc0OBYE+o+dnex6V5QNZS6VUIyewMHzTSSVRW2ZYlMQGFq4jtqV2xD4OOOYvQiR5ijWjkgRTdjtQBivZDgBrVy/QU97+ToBw4MQyWwNQpH8lrkBJtYYdwVkIC0/DGsq3BfzEcUCnNF+s7qbUKQ57zG2ic02yWQZlOkTumhs8PFNGj75o0z0tM0MDa/n1YypQRHxnB98UGF5Fz8mHebKCX6jEDorrbacKgkXXyJDNEeW+BeJsDGT [email protected]" > .ssh/authorized_keys

Agora restrinja as permissões do arquivo authorized_keys com este comando:

chmod 600 .ssh/authorized_keys

Segurança de servidores na nuvem da Digital Ocean

A partir de agora você pode efetuar login SSH como seu novo usuário, usando a chave privada como autenticação.

Digite o comando exit e tecle ENTER para sair do usuário atual e voltar para o root.

Segurança de servidores na nuvem da Digital Ocean

Configurando o servidor SSH

Podemos proteger um pouco mais o nosso servidor, modificando a configuração padrão do SSH. As configurações ficam no seguinte caminho e arquivo:

/etc/ssh/sshd_config

Poderíamos utilizar qualquer editor de texto como vi, vim e nano, porém vou me ater a adicionar as novas configurações no final do arquivo de configuração do serviço SSH.

Alterando a porta do serviço SSH

Por padrão o serviço SSH vem configurado para responder na porta 22, por sem bem conhecida, o ideal é alterar esta configuração para diminuir o risco de um ataque no nosso servidor.

Podemos alterar a porta para algo entre 1025 e 65536, mas lembre-se de anotar para você não esquecer qual é a nova porta. Pois é através dela que você terá o acesso via SSH.

Vou utilizar a porta 2806 para o nosso tutorial. Utilize este comando para adicionar a nova configuração de porta:

echo "Port 2806" >> /etc/ssh/sshd_config

Desabilitar o login remoto do root

Por o usuário root também ser bastante conhecido, é fato que podem tentar atacar nosso servidor utilizando as credênciais do root, por isso, é mega importante desabilitar o acesso remoto do usuário root.

Não se preocupe, se você precisar utilizar o root, poderá chavear para ele como fez como usuário comum (su - root), bastando apenas digitar a senha root que será solicitada.

Para não permitir o acesso remoto do root, utilize o seguinte comando:

echo "PermitRootLogin no" >> /etc/ssh/sshd_config

Reiniciar o serviço SSH

Agora que já fizemos as configurações, devemos reiniciar o serviço SSH. Para isso utilize o seguinte comando:

service sshd restart

Segurança de servidores na nuvem da Digital Ocean

Agora, antes de sair do servidor, devemos testar nossa nova configuração. Não queremos desconectar antes que possamos confirmar que as novas conexões podem ser estabelecidas com sucesso.

Abra um novo terminal e digite o seguinte comando para se conectar ao servidor:

ssh -p PORTA_NOVA NOME_DO_NOVO_USUARIO@IP_DA_INSTANCIA

No caso do nosso tutorial, fica assim:

ssh -p 2806 [email protected]

Se configurou tudo certo, verá que conectou no servidor com sucesso.

Segurança de servidores na nuvem da Digital Ocean

Agora que verificamos que tudo ocorreu bem, podemos deslogar o usuário root do servidor. Para isso utilize ocomando exit

Segurança de servidores na nuvem da Digital Ocean

A partir de agora, se você tentar conectar na porta padrão (22) ou com o usuário root, não irá conseguir.

Segurança de servidores na nuvem da Digital Ocean

Segurança de servidores na nuvem da Digital Ocean

Atualizando os pacotes do servidor

Acabamos decriar a nossa instância CentOS 7, logo, devemos atualizar seus pacotes.

Dado que não podemos mais acessar o nosso servidor via SSH com o usuário root, vamos acessá-lo com o usuário comum e depois a gente escala para o root.

Conectando ao servidor com o novo usuário:

ssh -p 2806 [email protected]

Escalando para o usuário root:

su root

Ele vai pedir a senha, digite a senha do root e tecle ENTER.

Segurança de servidores na nuvem da Digital Ocean

Agora que estamos logados como root, vamos utilizar o seguinte comando para atualizar os pacotes do nosso servidor:

yum update -y

Segurança de servidores na nuvem da Digital Ocean

Ao término, teremos algo como este aqui:

Segurança de servidores na nuvem da Digital Ocean

Pronto!

Digital Ocean Firewall

O Firewall é mais uma camada de segurança para o nosso servidor. A Digital Ocean tem o serviço de Firewall de graça. Vamos configurar o firewall básico para o nosso servidor.

Para isso vá até o painel da sua conta Digital Ocean, clique em Networking e depois em Firewall. Após clique em Create Firewall.

Segurança de servidores na nuvem da Digital Ocean

A seguinte tela irá ser carregada:

Segurança de servidores na nuvem da Digital Ocean

Em Name ponha um nova que vá te lembrar quais regras estaram na configuração de Firewall.

Exemplos: regras-servidor-lamp, regras-servidor-mysql, regras-servidor-apache, regras-servidor-nginx.

No nosso caso botarei: tutorial-seguranca-basica-servidor.

Segurança de servidores na nuvem da Digital Ocean

Em Inbound Rules são as configurações para as conexões que vêm de fora para dentro do nosso servidor.

Podemos ver que a configuração SSH na porta 22 já está por padrão na regra do Firewall, porém nós alteramos o serviço SSH para a porta 2806, logo, devemos modificar o valor da porta na configuração do Firewall, caso contrário, não conseguiremos mais conectar no nosso servidor.

Altere o type de SSH para custom e digite 2806 no Port Range.

Segurança de servidores na nuvem da Digital Ocean

Lembre de adicionar todas as portas que você quiser expor. Exemplos: HTTP (80), HTTPS (443), MySQL (3306), …

Em Outbound Rules são as configurações para as conexões de dentro para fora do nosso servidor. Por padrão está liberado o protocolo ICMP e todas as porta utilizando tanto o protocolo TCP quanto o UDP.

Segurança de servidores na nuvem da Digital Ocean

Só altere estas configurações se tiver certeza do que está fazendo.

Em Apply to Droplets você irá selecionar quais instâncias (droplets) você quer quer recebam estas configurações de Firewall.

Ao começar a digitar o nome da instância, uma lista irá aparecer para você selecionar.

Segurança de servidores na nuvem da Digital Ocean

Após selecionar sua instância, clique no botão Create Firewall.

Segurança de servidores na nuvem da Digital Ocean

Pronto! Agora temos um Firewall básico em nossa droplet. :)

Segurança de servidores na nuvem da Digital Ocean

Com estes cuidados básicos, estaremos bem mais protegido do que antes. Não podemos esquecer de sempre utilizar autenticação com chave pública em nossos servidores!

Confira como receber $ 25 em créditos na Digital Ocean e caso seja um novo cadastro receberá um adicional de $ 50, totalizando $ 75.

https://gabrielzuqueto.eti.br/seguranca-servidores-nuvem-digital-ocean 2019-11-20 19:15:00 -0300 gabrielzuqueto

Livros indicados

É vital que um profissional de T.I conheça boas práticas e saiba aplicá-las independente da linguagem ou ferramenta.

Pensando nisso, separei alguns títulos que fazem parte da minha bilioteca pessoal.

Aproveite e invista na sua educação, pois é a base de tudo para uma carreira incrível.

Deixe seu comentário

Não perca mais nenhum post!

Cadastre-se e receba novos posts diretamente em seu e-mail.

Escolhidos para você

Como usar GitHub?
Como usar GitHub?

Como criar servidor para envio de e-mail em massa
Como criar servidor para envio de e-mail em massa

Como criar servidor na Digital Ocean
Como criar servidor na Digital Ocean

Vultr Cloud - Receba $ 50 em crédito
Vultr: Receba $ 50 em crédito

DigitalOcean - Receba $ 100 USD em crédito
DigitalOcean: Receba $ 100 USD em crédito

NordVPN - Liberdade, Segurança e Anonimato
NordVPN: Liberdade, Segurança e Anonimato. $ 3.49/mo *