Tutorial

Configuração inicial de servidor com o Ubuntu 20.04

UbuntuGetting StartedSecurityInitial Server SetupUbuntu 20.04

Introdução

Ao criar um servidor do Ubuntu 20.04, deve-se executar alguns passos de configuração importantes como parte da configuração básica. Esses passos aumentarão a segurança e a usabilidade do seu servidor e darão a você uma base sólida para ações subsequentes.

Passo 1 — Fazendo login como raiz

Para fazer login no seu servidor, você precisará saber o endereço IP público do seu servidor. Você também precisará da senha ou, caso tenha instalado uma chave SSH para autenticação, da chave privada para a conta do usuário root. Se você ainda não estiver conectado ao seu servidor, aconselhamos seguir nosso guia sobre como se conectar ao seu Droplet com o SSH, o qual trata desse processo em detalhes.

Se ainda não estiver conectado ao seu servidor, faça login como usuário root usando o seguinte comando (substitua a parte destacada do comando pelo endereço IP público do seu servidor):

  • ssh root@your_server_ip

Aceite o aviso sobre a autenticidade do host, se ele for exibido. Se estiver usando autenticação por senha, insira sua senha root para fazer login. Se estiver usando uma chave SSH, protegida por frase secreta, você pode ser solicitado a digitar a frase secreta na primeira vez que usar a chave a cada sessão. Se esta for a primeira vez que você se conecta ao servidor com com uma senha, pode ser que também seja solicitado a alterar a senha root.

Sobre o usuário raiz

O usuário root é o usuário administrativo em um ambiente Linux e tem privilégios bastante amplos. Por conta dos privilégios elevados da conta root, desencorajamos sua utilização de maneira regular. Isto se dá porque parte da autoridade inerente à conta root é a capacidade de fazer alterações muito destrutivas, mesmo por acidente.

O próximo passo será configurar uma nova conta de usuário com privilégios reduzidos para o uso no dia a dia. Ensinaremos mais tarde como obter privilégios aumentados apenas nos momentos em que precisar deles.

Passo 2 — Criando um novo usuário

Assim que fizer login como root, estaremos preparados para adicionar a nova conta de usuário. No futuro, faremos o login como esta nova conta em vez da conta root.

Este exemplo cria um novo usuário chamado sammy, mas você deve substituí-lo pelo nome de usuário que preferir:

  • adduser sammy

Você terá de responder algumas perguntas, começando pela senha da conta.

Digite uma senha forte e, de maneira opcional, preencha qualquer uma das informações adicionais se quiser. Isso não é necessário. Você pode apertar ENTER em qualquer campo que quiser ignorar.

Passo 3 — Concedendo privilégios administrativos

Agora, temos uma nova conta de usuário com privilégios de conta regular. No entanto, às vezes, pode ser que precisemos realizar tarefas administrativas.

Para evitar ter que sair do nosso usuário normal e fazer login com a conta root, podemos configurar o que é conhecido como superusuário, ou privilégios root para nossa conta normal. Isso permitirá que nosso usuário normal execute comandos com privilégios administrativos, ao colocar a palavra sudo antes de cada comando.

Para adicionar esses privilégios ao nosso novo usuário, precisamos adicionar o usuário ao grupo sudo. Por padrão, no Ubuntu 20.04, os usuários que são membros do grupo sudo têm permissão para utilizar o comando sudo.

Como root, execute este comando para adicionar seu novo usuário ao grupo sudo (substitua a palavra destacada pelo seu novo nome de usuário):

  • usermod -aG sudo sammy

Agora, quando conectado com o usuário regular, você pode digitar sudo antes dos comandos para executar ações com privilégios de superusuário.

Passo 4 — Configurando um firewall básico

Os servidores do Ubuntu 20.04 podem utilizar o firewall UFW para garantir que sejam permitidas apenas conexões a certos serviços. Podemos configurar um firewall básico facilmente usando este aplicativo.

Nota: se os seus servidores estiverem em execução na plataforma da DigitalOcean, você pode utilizar, de maneira opcional, os Firewalls da DigitalOcean em nuvem, em vez do firewall UFW. Recomendamos que use apenas um firewall de cada vez para evitar regras conflitantes que podem ser difíceis de difícil depuração.

Após a instalação, os aplicativos podem registrar seus perfis com o UFW. Esses perfis permitem que o UFW gerencie esses aplicativos por nome. O OpenSSH, serviço que nos permite conectar ao nosso servidor agora, tem um perfil registrado com o UFW.

Você ver isso digitando:

  • ufw app list
Output
Available applications: OpenSSH

Precisamos garantir que o firewall permita conexões SSH para que possamos fazer login da próxima vez. Podemos permitir essas conexões digitando:

  • ufw allow OpenSSH

Depois disso, podemos habilitar o firewall digitando:

  • ufw enable

Digite y e pressione ENTER para continuar. Você pode ver se as conexões SSH ainda são permitidas digitando:

  • ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)

Como o firewall está bloqueando todas as conexões exceto as SSH, se você instalar e configurar serviços adicionais, precisará ajustar as configurações de firewall para permitir o tráfego de entrada. Você pode aprender algumas operações comuns do UFW em nosso guia de Essenciais do UFW.

Passo 5 — Habilitando o acesso externo ao seu usuário regular

Agora que temos um usuário comum para o uso diário, precisamos confirmar se conseguimos acessar o SSH diretamente na conta.

Nota: até verificar se você pode fazer login e usar o sudo com seu novo usuário, recomendamos que fique conectado como root. Desta forma, caso tenha problemas, pode solucioná-los e fazer as alterações necessárias como root. Se estiver usando um Droplet da DigitalOcean e tiver problemas com sua conexão raiz via SSH root, você pode fazer login no Droplet usando o console da DigitalOcean.

O processo para configurar o acesso via SSH para seu novo usuário depende de se a conta root do seu servidor usa uma senha ou chaves SSH para autenticação.

Se a conta raiz utiliza autenticação por senha

Se você fez login na sua conta raiz usando uma senha, então a autenticação por senha está habilitada para o SSH. Você pode conectar-se via SSH à sua nova conta de usuário, abrindo uma nova sessão no terminal e usando o SSH com seu novo nome de usuário:

  • ssh sammy@your_server_ip

Após digitar a senha do seu usuário regular, você estará conectado. Lembre-se, caso precise executar um comando com privilégios administrativos, digite sudo antes dele, desta forma:

  • sudo command_to_run

Será solicitado que você digite a senha do seu usuário regular ao usar o sudo pela primeira vez em cada sessão (e periodicamente após isso).

Para melhorar a segurança do seu servidor, recomendamos fortemente que configure chaves SSH, em vez de usar autenticação por senha. Siga nosso guia sobre como configurar as chaves SSH no Ubuntu 20.04 para aprender como configurar a autenticação baseada em chaves.

Se a conta raiz utiliza autenticação por chave SSH

Se você fez login na sua conta root usando chaves SSH, então a autenticação por senha está desabilitada para SSH. Você precisará adicionar uma cópia da sua chave pública local ao arquivo ~/.ssh/authorized_keys do novo usuário para fazer login com sucesso.

Como sua chave pública já está no arquivo ~/.ssh/authorized_keys da conta root no servidor, podemos copiar aquele arquivo e a estrutura do diretório para nossa nova conta de usuário existente.

A maneira mais simples de copiar os arquivos com a propriedade e permissões corretas é com o comando rsync. Isso irá copiar o diretório .ssh do usuário root, preservar as permissões e modificar os proprietários dos arquivos, tudo em um único comando. Certifique-se de alterar as partes destacadas do comando abaixo para corresponder ao nome do seu usuário regular:

Nota: o comando rsync trata as fontes e os destinos que terminam com uma barra à direita de maneira diferente daqueles sem uma barra. Ao usar o rsync abaixo, certifique-se de que o diretório fonte (~/.ssh) não inclui uma barra à direita (verifique para garantir que não está usando ~/.ssh/).

Se adicionar uma barra à direita acidentalmente no comando, o rsync copiará o conteúdo do diretório ~/.ssh da conta root para o diretório home do usuário sudo, em vez copiar toda a estrutura do diretório ~/.ssh. Os arquivos ficarão no local errado e o SSH não conseguirá encontrar e usar esses arquivos.

  • rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy

Agora, abra uma nova sessão de terminal em sua máquina local e utilize o SSH com seu novo nome de usuário:

  • ssh sammy@your_server_ip

Você deve estar conectado com a conta do novo usuário, sem usar uma senha. Lembre-se, caso precise executar um comando com privilégios administrativos, digite sudo antes dele, desta forma:

  • sudo command_to_run

Será solicitado que você digite a senha do seu usuário regular ao usar o sudo pela primeira vez em cada sessão (e periodicamente após isso).

Para onde partir daqui?

Neste ponto, você possui uma base sólida para seu servidor. Agora, você já pode instalar qualquer software que precisar em seu servidor.

Creative Commons License