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.
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.
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.
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.
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.
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
Outputpublic (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.
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 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 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).
Neste ponto, você possui uma base sólida para seu servidor. Agora, você já pode instalar qualquer software que precisar em seu servidor.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!