Tutorial

Configuração inicial de servidor com o CentOS 8

Linux BasicsCentOSGetting StartedInitial Server SetupCentOS 8

Introdução

Ao criar um servidor com CentOS 8 pela primeira vez, há alguns passos de configuração que você deve seguir logo no início - como parte da configuração básica. Isso aumentará a segurança e a usabilidade do seu servidor e dará a você uma base sólida para as ações subsequentes.

Passo 1 — Fazendo login como root user

Para fazer login no seu servidor, você precisará saber o endereço IP público do seu servidor. Também precisará da senha ou, caso tenha instalado uma chave SSH para autenticação, da chave privada para a conta do root user. Se ainda não estiver conectado ao seu servidor, talvez você queira seguir nosso guia de início rápido 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 root user, só que, desta vez, 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 uma senha, pode ser que também seja solicitado a alterar a senha root.

Sobre o user root

O root user é 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.

Como tal, o próximo passo é configurar uma conta de usuário alternativa com um escopo menor de influência para o trabalho do dia a dia. Essa conta ainda poderá obter privilégios maiores quando necessário.

Passo 2 — Criando um usuário

Assim que estiver conectado como root user, você pode criar uma conta de usuário que usaremos para fazer login a partir de agora.

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

  • adduser sammy

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

  • passwd sammy

Será solicitado que você digite a senha duas vezes. Após fazer isso, seu usuário estará pronto para ser usado. Antes, porém daremos a esse usuário, privilégios para usar o comando sudo. Isso nos permitirá executar os comandos como usuário root, quando necessário.

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 novo usuário ao grupo wheel. Por padrão, no CentOS 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):

  • usermod -aG wheel sammy

Agora, quando estiver 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 firewalls fornecem um nível básico de segurança para o seu servidor. Esses aplicativos são responsáveis por negar tráfego para cada porta do seu servidor, exceto para as portas/serviços que você tenha aprovado explicitamente. O CentOS tem 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 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 firewalld. Recomendamos que use apenas um firewall de cada vez para evitar regras conflitantes que podem ser difíceis de difícil depuração.

Primeiro, instale o firewalld:

  • dnf install firewalld -y

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

  • systemctl start firewalld

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

  • 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 ele está active (ativo) e enabled (habilitado), o que significa que ele iniciará por padrão caso o servidor for reiniciado.

Agora que o serviço está em funcionamento, 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á foram autorizados:

  • 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:

  • firewall-cmd --get-services

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

  • 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 depois que você recarregar o firewall:

  • firewall-cmd --reload

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

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

Agora que temos um non-root user regular para o uso diário, precisamos garantir que podermos usá-lo para conexão via SSH em nosso servidor.

Nota: até verificar se você pode fazer login e usar o sudo com seu novo usuário, recomendamos que fique conectado como root user. Desta forma, caso tenha problemas, pode solucioná-los e fazer as alterações necessárias como root user. Se estiver usando um Droplet da DigitalOcean e tiver problemas com sua conexão root via SSH, 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 root 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 que, 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 CentOS 8 para aprender como configurar 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 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.

A maneira mais simples de copiar os arquivos com a propriedade e as permissões corretas é com o comando rsync. Isso irá copiar o diretório .ssh do root user, 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, de volta em um novo terminal em sua máquina local, abra uma nova sessão SSH com seu non-root user:

  • ssh sammy@your_server_ip

Você deve estar conectado com a conta do novo usuário, sem usar uma senha. Lembre-se que, 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).

Conclusão

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

0 Comments

Creative Commons License