Configuração Inicial do Servidor com Rocky Linux 8

Introdução

Ao criar um novo servidor Rocky Linux 8 pela primeira vez, existem algumas etapas de configuração que você deve realizar logo no início como parte da configuração básica. Isso aumentará a segurança e a usabilidade do seu servidor e fornecerá uma base sólida para ações subsequentes.

Passo 1 — Fazendo Login como Root

Para fazer login no seu servidor, você precisará saber o endereço IP público do servidor. Você também precisará da senha ou, se instalou uma chave SSH para autenticação, da chave privada da conta do usuário root. Se você ainda não se conectou ao seu servidor, pode seguir nossa documentação sobre como conectar-se ao seu Droplet com SSH, que aborda este processo em detalhes.

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

  1. ssh root@your_server_ip

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

Sobre o Root

O usuário root é o usuário administrativo em um ambiente Linux e possui privilégios muito amplos. Devido aos privilégios elevados da conta de root, é desencorajado o uso regular dela. Isso ocorre porque parte do poder inerente à conta de root é a capacidade de fazer alterações muito destrutivas, até mesmo por acidente.

Portanto, o próximo passo é configurar uma conta de usuário alternativa com um escopo reduzido de influência para o trabalho diário. Esta conta ainda poderá obter privilégios aumentados quando necessário.

Passo 2 — Criando um Novo Usuário

Depois de estar logado como root, você pode criar a nova conta de usuário que usaremos para fazer login a partir de agora.

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

  1. adduser sammy

Em seguida, defina uma senha forte para o usuário sammy:

  1. passwd sammy

Você será solicitado a inserir a senha duas vezes. Depois de fazer isso, seu usuário estará pronto para uso, mas primeiro daremos a este usuário privilégios adicionais para usar o comando sudo. Isso nos permitirá executar comandos como root quando necessário.

Passo 3 — Concedendo Privilégios Administrativos

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

Para evitar ter que sair do nosso usuário regular e entrar novamente como usuário root, podemos configurar o que é conhecido como privilégios de “superusuário” ou root para nossa conta regular. Isso permitirá que nosso usuário regular execute comandos com privilégios administrativos colocando a palavra sudo antes de cada comando.

Para adicionar esses privilégios ao nosso novo usuário, precisamos adicionar o novo usuário ao grupo wheel. Por padrão, no Rocky Linux 8, os usuários que pertencem ao grupo wheel têm permissão para usar o comando sudo.

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

  1. usermod -aG wheel sammy

Agora, quando estiver logado como seu usuário regular, você pode digitar sudo antes dos comandos para realizar ações com privilégios de superusuário.

Passo 4 — Configurando um Firewall Básico

Firewalls fornecem um nível básico de segurança para o seu servidor. Essas aplicações são responsáveis por negar o tráfego para todas as portas no seu servidor, exceto para aquelas portas/serviços que você tenha aprovado explicitamente. O Rocky Linux tem um serviço chamado firewalld para realizar essa função. Uma ferramenta chamada firewall-cmd é usada para configurar políticas de firewall do firewalld.

Nota: Se seus servidores estiverem sendo executados na DigitalOcean, você pode opcionalmente usar Firewalls da Nuvem DigitalOcean em vez do firewalld. Recomendamos usar apenas um firewall por vez para evitar regras conflitantes que possam ser difíceis de depurar.

Primeiro, instale o firewalld:

  1. dnf install firewalld -y

A configuração padrão do firewalld permite conexões ssh, então podemos ligar o firewall imediatamente:

  1. systemctl start firewalld

Verifique o status do serviço para garantir que ele iniciou:

  1. systemctl status firewalld
Output
● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-02-06 16:39:40 UTC; 3s ago Docs: man:firewalld(1) Main PID: 13180 (firewalld) Tasks: 2 (limit: 5059) Memory: 22.4M CGroup: /system.slice/firewalld.service └─13180 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid

Note que está tanto ativo quanto habilitado, o que significa que ele será iniciado por padrão se o servidor for reiniciado.

Agora que o serviço está em execução, podemos usar o utilitário firewall-cmd para obter e definir informações de política para o firewall.

Primeiro, vamos listar quais serviços já estão permitidos:

  1. firewall-cmd --permanent --list-all
Output
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Para ver os serviços adicionais que você pode habilitar pelo nome, digite:

  1. firewall-cmd --get-services

Para adicionar um serviço que deve ser permitido, use a flag --add-service:

  1. firewall-cmd --permanent --add-service=http

Isso adicionaria o serviço http e permitiria tráfego TCP de entrada para a porta 80. A configuração será atualizada depois de recarregar o firewall:

  1. firewall-cmd --reload

Lembre-se de que você terá que abrir explicitamente o firewall (com serviços ou portas) para quaisquer serviços adicionais que você possa configurar posteriormente.

Passo 5 — Habilitando Acesso Externo para Seu Usuário Regular

Agora que temos um usuário regular não-root para uso diário, precisamos garantir que podemos usá-lo para SSH em nosso servidor.

Nota: Até verificar se você pode fazer login e usar sudo com seu novo usuário, recomendamos permanecer logado como root. Dessa forma, se você tiver problemas, poderá 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 SSH root, você pode acessar o Droplet usando o Console da DigitalOcean.

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 Root Usa Autenticação por Senha

Se você fez login em sua conta root usando uma senha, então a autenticação por senha está habilitada para SSH. Você pode acessar SSH com sua nova conta de usuário abrindo uma nova sessão do terminal e usando SSH com seu novo nome de usuário:

  1. ssh sammy@your_server_ip

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

  1. sudo command_to_run

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

Para aumentar a segurança do seu servidor, recomendamos fortemente configurar chaves SSH em vez de usar autenticação por senha. Siga nosso guia sobre configuração de chaves SSH no Rocky Linux 8 para aprender como configurar a autenticação baseada em chaves.

Se a Conta Root Usa Autenticação de Chave SSH

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

Já que sua chave pública está no arquivo ~/.ssh/authorized_keys da conta root no servidor, podemos copiar esse arquivo e a estrutura de diretórios para nossa nova conta de usuário.

A maneira mais simples de copiar os arquivos com as permissões e propriedades corretas é com o comando rsync. Isso 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 de forma diferente as origens e destinos que terminam com uma barra final em relação àqueles sem uma barra final. Ao usar rsync abaixo, certifique-se de que o diretório de origem (~/.ssh) não inclui uma barra final (verifique para garantir que você não esteja usando ~/.ssh/).

Se você adicionar acidentalmente uma barra final ao comando, o rsync irá 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 na localização errada e o SSH não será capaz de encontrá-los e usá-los.

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

Agora, de volta a um novo terminal em sua máquina local, abra uma nova sessão SSH com seu usuário não-root:

  1. ssh sammy@your_server_ip

Você deve estar logado na nova conta de usuário sem usar uma senha. Lembre-se, se precisar executar um comando com privilégios administrativos, digite sudo antes dele, assim:

  1. sudo command_to_run

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

Conclusão

Neste ponto, você tem uma base sólida para o seu servidor. Você pode instalar qualquer software que precise em seu servidor agora.

Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-rocky-linux-8