Introdução
Ao criar pela primeira vez um novo servidor Rocky Linux 9, existem alguns passos de configuração que você deve realizar no início como parte da configuração inicial. Isso aumentará a segurança e a usabilidade do seu servidor e lhe dará uma base sólida para construir.
Passo 1 — Fazendo login como Root
Para fazer login no seu servidor, você precisará conhecer 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 de usuário root. Se você ainda não fez login no seu servidor, pode seguir nossa documentação sobre como conectar-se ao seu Droplet com SSH, que aborda esse 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):
- 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, você pode 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, 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 seu uso regular. Isso ocorre porque parte do poder inerente à conta de 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 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
Assim que estiver conectado como root, você pode criar uma nova conta de usuário que será usada 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:
- adduser sammy
Em seguida, defina uma senha forte para o usuário sammy
:
- passwd sammy
Você será solicitado a inserir a senha duas vezes. Depois de fazer isso, seu usuário estará pronto para uso, mas primeiro você dará a este usuário privilégios adicionais para usar o comando sudo
. Isso permitirá que você execute comandos como root quando necessário.
Passo 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 como usuário 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 o 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 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 tráfego para todas as portas no seu servidor, exceto aquelas portas/serviços que você tenha explicitamente aprovado. O Rocky Linux possui um serviço chamado firewalld
para desempenhar essa função. Uma ferramenta chamada firewall-cmd
é usada para configurar políticas de firewall do firewalld
.
Observação: Se seus servidores estiverem sendo executados na DigitalOcean, você pode opcionalmente usar Firewalls na Nuvem da DigitalOcean em vez do firewalld
. Você deve usar apenas um firewall de cada vez para evitar regras conflitantes que podem ser difíceis de depurar.
Primeiro, instale o firewalld
:
- dnf install firewalld -y
A configuração padrão do firewalld
permite conexões ssh
, então você pode ligar 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 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 ativado
, 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 a utilidade firewall-cmd
para obter e definir informações de política para o firewall.
Primeiro, vamos listar quais serviços já estão permitidos:
- 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 a opção --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 após recarregar o firewall:
- 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 você tem um usuário regular não-root para uso diário, certifique-se de que pode usá-lo para SSH no seu servidor.
Nota: Até verificar se consegue entrar e usar sudo
com o seu novo usuário, deve permanecer conectado como root. Desta forma, se tiver problemas, pode resolver e fazer as alterações necessárias como root. Se estiver a usar um Droplet da DigitalOcean e tiver problemas com a conexão SSH do seu root, pode entrar no Droplet usando a Consola da DigitalOcean.
O processo de configuração do acesso SSH para o 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 Usar Autenticação por Senha
Se você entrou na sua conta root usando uma senha, então a autenticação por senha está ativada para o SSH. Você pode SSH para a sua nova conta de usuário abrindo uma nova sessão de terminal e usando SSH com o seu novo nome de usuário:
- ssh sammy@your_server_ip
Depois de inserir 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:
- sudo command_to_run
Você será solicitado a inserir a senha do seu usuário regular ao usar sudo
pela primeira vez em cada sessão (e periodicamente depois).
Para aprimorar a segurança do seu servidor, você deve 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 chaves.
Se a Conta Root Usar Autenticação por Chave SSH
Se você fez login na sua conta root usando chaves SSH, então a autenticação por senha está desativada 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.
Dado que 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 conta do novo usuário.
A maneira mais direta de copiar os arquivos com as permissões e proprietários corretos é 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 coincidir com o nome do seu usuário regular:
Nota: O comando rsync
trata de forma diferente as fontes e os destinos que terminam com uma barra invertida daqueles sem uma barra invertida no final. 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 root 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 conseguirá encontrá-los e usá-los.
- rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy
Agora, em um novo terminal em sua máquina local, abra uma nova sessão SSH com seu usuário não-root:
- ssh sammy@your_server_ip
Você deverá estar conectado à 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:
- sudo command_to_run
Você será solicitado a digitar a senha de 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 precisar no seu servidor agora. 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