# Configuração do Servidor Ubuntu 20.04

### Introdução

Ao criar um novo servidor Ubuntu 20.04 pela primeira vez, você deve executar algumas etapas de configuração importantes como parte da configuração inicial. Essas etapas aumentarão a segurança e a usabilidade do seu servidor e fornecerão uma base sólida para as ações subsequentes.

### Etapa 1 - Login no servidor como ROOT

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 — se tiver instalado uma chave SSH para autenticação — da chave privada da conta do usuário root.

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

{% code lineNumbers="true" %}

```shell
ssh root@your_server_ip
```

{% endcode %}

Aceite o aviso sobre a autenticidade do host, se ele aparecer. Se você estiver usando autenticação por senha, forneça sua senha de root para efetuar login. Se você estiver usando uma chave SSH protegida por senha, poderá ser solicitado a inserir a senha na primeira vez que usar a chave em cada sessão. Se esta for a primeira vez que você faz login no servidor com uma senha, você também pode ser solicitado a alterar a senha root.

{% hint style="info" %}
**Sobre o ROOT**

O usuário root é o usuário administrativo em um ambiente Linux que possui privilégios muito amplos. Devido aos privilégios aumentados da conta root, você é desencorajado a usá-la regularmente. Isso ocorre porque a conta root é capaz de fazer alterações muito destrutivas, mesmo por acidente.

A próxima etapa é configurar uma nova conta de usuário com privilégios reduzidos para uso diário.
{% endhint %}

### Etapa 2 — Criando um novo usuário

Depois de fazer login como root, você poderá adicionar a nova conta de usuário. No futuro, faremos login com esta nova conta em vez de root.

Este exemplo cria um novo usuário chamado sammy, mas você deve substituí-lo por um nome de usuário de sua preferência:&#x20;

{% code lineNumbers="true" %}

```sh
adduser sammy
```

{% endcode %}

Ser-lhe-ão feitas algumas perguntas, começando com a palavra-passe da conta.

Digite uma senha forte e, opcionalmente, preencha qualquer informação adicional, se desejar. Isso não é necessário e você pode simplesmente pressionar ENTER em qualquer campo que deseja pular.

### Etapa 3 — Concessão de privilégios administrativos

Agora temos uma nova conta de usuário com privilégios de conta regulares. No entanto, às vezes podemos precisar fazer tarefas administrativas.

Para evitar ter que sair de nosso usuário normal e fazer login novamente como conta root, podemos configurar o que é conhecido como privilégios de superusuário ou root para nossa conta normal. Isso permitirá que nosso usuário normal execute comandos com privilégios administrativos colocando a palavra sudo antes do 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 podem usar o comando sudo.

Como root, execute este comando para adicionar seu novo usuário ao grupo sudo (substitua o nome de usuário destacado pelo seu novo usuário):&#x20;

{% code lineNumbers="true" %}

```shell
usermod -aG sudo sammy
```

{% endcode %}

Agora, quando estiver conectado como usuário normal, você pode digitar sudo antes dos comandos para executá-los com privilégios de superusuário.

### Passo 4 — Configurando um Firewall Básico

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

Os aplicativos podem registrar seus perfis no UFW após a instalação. Esses perfis permitem que o UFWpara gerenciar esses aplicativos pelo nome. O OpenSSH, o serviço que agora nos permite conectar ao nosso servidor, tem um perfil registrado na UFW.

Você pode ver isso digitando:&#x20;

```
ufw app list
```

{% code title="OUTPUT" %}

```
Available applications:
OpenSSH
```

{% endcode %}

Precisamos garantir que o firewall permita conexões SSH para que possamos fazer login novamente na próxima vez.&#x20;

Podemos permitir essas conexões digitando:&#x20;

{% code lineNumbers="true" %}

```sh
ufw allow OpenSSH
```

{% endcode %}

Em seguida, podemos habilitar o firewall digitando:&#x20;

{% code lineNumbers="true" %}

```
ufw enable
```

{% endcode %}

Digite y e pressione ENTER para prosseguir. Você pode ver que as conexões SSH ainda são permitidas digitando:&#x20;

```
ufw status
```

{% code title="OUTPUT" lineNumbers="true" %}

```shell
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
```

{% endcode %}

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

### Etapa 5 — Ativando o acesso externo para seu usuário comum

Agora que temos umusuário regular para uso diário, precisamos ter certeza de que podemos fazer SSH diretamente na conta.

{% hint style="info" %}
**Observação:** até verificar se você pode fazer login e usar o sudo com seu novo usuário, recomendamos que você permaneça logado como root. Dessa forma, se você tiver problemas, poderá solucioná-los e fazer as alterações necessárias como root. Se você estiver usando um Droplet da DigitalOcean e tiver problemas com sua conexão SSH raiz, poderá recuperar o acesso aos Droplets usando o Console de Recuperação.
{% endhint %}

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

### Se a conta raiz usa autenticação de senha

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

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

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

{% hint style="info" %}
**Observação:** o comando `rsync` trata origens e destinos que terminam com uma barra final de forma diferente daqueles sem uma barra final. Ao usar o `rsync` abaixo, certifique-se de que o diretório de origem (`~/.ssh`) não inclua uma barra final (verifique se você não está usando `~/.ssh/`).

Se você acidentalmente adicionar uma barra final ao comando, o `rsync` copiará o conteúdo do diretório `~/.ssh` da conta root para o diretório inicial do usuário sudo, em vez de copiar toda a estrutura do diretório \~/.ssh. Os arquivos estarão no local errado e o SSH não poderá encontrá-los e usá-los.
{% endhint %}

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

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

```
ssh sammy@your_server_ip
```

Você deve estar conectado à nova conta de usuário sem usar uma senha. Lembre-se, se você precisar executar um comando com privilégios administrativos, digite sudo antes dele assim:&#x20;

```
sudo command_to_run
```

Você será solicitado a fornecer sua senha de usuário regular ao usar o sudo pela primeira vez em cada sessão (e periodicamente depois).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://liedsons-organization.gitbook.io/gitlab-no-ubuntu/instalacao-e-configuracao-script/configuracao-do-servidor-ubuntu-20.04.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
