O Rocky Linux 9 é a opção gratuita compatível com RHEL: os mesmos pacotes, o mesmo dnf, os mesmos firewalld e SELinux. Se você já configurou Debian ou Ubuntu, a ordem dos passos é a mesma; mudam as ferramentas. Estes são os primeiros dez minutos num servidor Rocky 9 recém-criado.
Executamos cada comando abaixo na nossa imagem de Rocky Linux 9 antes de publicar. Num servidor limpo, a sequência inteira leva poucos minutos.
1. Atualize o sistema
Entre como root com a senha do painel e atualize:
dnf -y upgrade
Na nossa imagem levou segundos no teste, porque a imagem já estava atualizada.
2. Crie um usuário sudo e adicione sua chave SSH
No Rocky o grupo de administradores é wheel, não sudo:
useradd -m -G wheel deploy
passwd deploy # sudo will ask for this password
Coloque sua chave pública no servidor (como criar uma). Se você a copiou para /root/key.pub:
install -d -m 700 -o deploy -g deploy /home/deploy/.ssh
install -m 600 -o deploy -g deploy /root/key.pub /home/deploy/.ssh/authorized_keys
restorecon -R /home/deploy/.ssh
O restorecon define os rótulos do SELinux que o sshd espera. Com um rótulo errado, o login por chave falha sem erro claro.
Abra um segundo terminal e confira que ssh deploy@YOUR.SERVER.IP funciona e que sudo -v aceita a senha. Mantenha a sessão root aberta até lá.
3. Desligue o login root e por senha
Aqui o Rocky foge da edição clássica do sshd_config. As opções ficam em arquivos dentro de /etc/ssh/sshd_config.d/, e o sshd usa o primeiro valor que encontra. Na nossa imagem o primeiro arquivo é 00-eqvps.conf, que permite root e senha para você conseguir entrar no primeiro dia. Altere ali:
sed -i -e 's/^PermitRootLogin .*/PermitRootLogin no/' \
-e 's/^PasswordAuthentication .*/PasswordAuthentication no/' \
/etc/ssh/sshd_config.d/00-eqvps.conf
sshd -t && systemctl reload sshd
sshd -T | grep -E '^(permitrootlogin|passwordauthentication) '
O último comando mostra o que o sshd vai aplicar de fato. Você deve ver:
permitrootlogin no
passwordauthentication no
A partir daí ssh root@… é recusado mesmo com chave, e deploy entra só com a chave.
4. Firewall: firewalld
A imagem cloud não traz o firewalld. Instale, inicie e deixe só o necessário:
dnf -y install firewalld
systemctl enable --now firewalld
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --remove-service=cockpit
firewall-cmd --reload
firewall-cmd --list-services
A zona padrão abre cockpit (porta 9090) e dhcpv6-client. O Cockpit não está instalado, mas não há motivo para deixar a porta dele aberta. Quando adicionar um aplicativo, abra a porta dele do mesmo jeito, por exemplo firewall-cmd --permanent --add-service=https.
5. Atualizações de segurança automáticas
O dnf-automatic baixa atualizações por um temporizador. Por padrão ele não as instala, então ative isso:
dnf -y install dnf-automatic
sed -i 's/^apply_updates = .*/apply_updates = yes/' /etc/dnf/automatic.conf
systemctl enable --now dnf-automatic.timer
systemctl list-timers dnf-automatic.timer
Se quiser só correções de segurança, defina também upgrade_type = security no mesmo arquivo.
6. Mantenha o SELinux ligado
O getenforce mostra Enforcing num servidor novo, e tudo acima funciona com ele. Quando um aplicativo precisa de uma porta ou diretório fora do padrão, a solução é um rótulo (semanage port, restorecon), não setenforce 0.
Qual plano
O Rocky 9 usa cerca de 400 MB de RAM em repouso. O plano Nano (1 GB, $3/mês) basta para um serviço pequeno; o Micro (2 GB, $5/mês) deixa espaço para um banco de dados. Nos planos NAT, o SSH entra por uma porta pessoal mostrada no painel. Se precisar das portas 80/443 abertas para todos, escolha um plano com IPv4 próprio, como o Micro-IP por $10/mês.
O Rocky Linux 9 é uma das imagens da página da família RHEL e está em todos os planos de VPS. O pagamento é em USDT, USDC ou ETH nas redes Base, Ethereum ou Polygon, sem documentos nem cartão. Se preferir controlar o servidor por scripts, a documentação da API cobre pedido, reinstalação e renovação.
Comentários
Nenhum comentário ainda. Seja o primeiro.