Configuração Inicial do Servidor com Rocky Linux 9

Introdução

Ao criar um novo servidor Rocky Linux 9, existem algumas etapas de configuração que você deve realizar no início como parte da configuração inicial. Isso aumentará a segurança e usabilidade do seu servidor, proporcionando uma base sólida para construir.

Passo 1 — Fazer Login 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 instalou uma chave SSH para autenticação, da chave privada do usuário root. Se ainda não fez login no seu servidor, talvez queira seguir nossa documentação sobre como se conectar ao seu Droplet com SSH, que aborda esse processo em detalhes.

Se ainda não estiver 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 senha, pode ser solicitado que insira a senha pela 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, também pode ser solicitado que altere a senha do 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 root, é desencorajado usá-lo regularmente. Isso ocorre porque parte do poder inerente à conta root é a capacidade de fazer alterações muito destrutivas, mesmo por acidente.

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

Etapa 2 — Criando um Novo Usuário

Depois de fazer login como root, você pode criar uma nova conta de usuário que usará 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. Após fazer isso, seu usuário estará pronto para uso, mas primeiro você dará a esse usuário privilégios adicionais para usar o comando sudo. Isso permitirá que você execute comandos como root quando necessário.

Etapa 3 — Concedendo Privilégios Administrativos

Agora, você tem uma nova conta de usuário com privilégios regulares. No entanto, às vezes, pode ser necessário realizar tarefas administrativas.

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

Para adicionar esses privilégios ao seu novo usuário, você precisa adicioná-lo ao grupo wheel. Por padrão, no Rocky Linux 9, 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 executar ações com privilégios de superusuário.

Passo 4 — Configurando um Firewall

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 do seu servidor, exceto aquelas portas/serviços que você tenha explicitamente aprovado. O Rocky Linux possui um serviço chamado firewalld para realizar essa função. Uma ferramenta chamada firewall-cmd é usada para configurar as políticas de firewall do firewalld.

Nota: Se seus servidores estiverem sendo executados na DigitalOcean, você pode opcionalmente usar Firewalls na Nuvem DigitalOcean em vez de firewalld. Você deve usar apenas um firewall por vez para evitar regras conflitantes que podem 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 você pode ligar o firewall imediatamente:

  1. systemctl start firewalld

Verifique o status do serviço para garantir que ele tenha iniciado:

  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 Tue 2022-09-13 18:26:19 UTC; 1 day 2h ago Docs: man:firewalld(1) Main PID: 15060 (firewalld) Tasks: 4 (limit: 10938) Memory: 28.1M CPU: 6.127s CGroup: /system.slice/firewalld.service └─15060 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid

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

Agora que o serviço está em execução, você pode 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 sinalização --add-service:

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

Isso adicionaria o serviço http e permitiria o tráfego TCP de entrada na porta 80. A configuração será atualizada após você 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 possa configurar posteriormente.

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

Agora que você tem um usuário regular não-root para uso diário, você precisa garantir que possa usá-lo para fazer SSH em seu servidor.

Nota: Até verificar se consegue fazer login e usar sudo com seu novo usuário, você deve permanecer logado como root. Dessa forma, se 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 de root, você pode fazer login no 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 senha ou chaves SSH para autenticação.

Se a Conta Root Usa Autenticação por Senha

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

  1. ssh sammy@your_server_ip

Após inserir a senha do seu usuário comum, 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 inserir a senha do seu usuário comum ao usar sudo pela primeira vez em cada sessão (e periodicamente depois).

Para aprimorar a segurança do seu servidor, é recomendável configurar chaves SSH em vez de usar autenticação por senha. Siga este guia sobre como configurar chaves SSH no Rocky Linux 9 para aprender como configurar a autenticação baseada em chave.

Se a Conta Root 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 o 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.

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

A maneira mais direta de copiar os arquivos com as permissões e propriedades corretas é usando 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 no comando abaixo para corresponder ao nome do seu usuário regular:

Nota: O comando rsync trata de forma diferente as fontes e destinos que terminam com uma barra invertida dos que não terminam. Ao usar o rsync abaixo, certifique-se de que o diretório de origem (~/.ssh) não inclua uma barra invertida no final (verifique para garantir que você não esteja usando ~/.ssh/).

Se você adicionar acidentalmente uma barra invertida ao comando, o rsync copiará o conteúdo do diretório ~/.ssh da conta raiz para o diretório pessoal 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-raiz:

  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 sua senha de usuário regular ao usar o 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. Agora você pode instalar qualquer software necessário no seu servidor. Por exemplo, você pode começar instalando o servidor web Nginx.

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