Use o ecs-user em vez do root para reduzir a superfície de ataque e permitir a elevação de privilégios auditável.
Riscos de segurança
A conta root tem permissões irrestritas no sistema. Se as credenciais do root (senha ou chave SSH) forem comprometidas, um invasor obterá controle total do servidor. As consequências incluem:
Destruição de dados: exclusão de dados comerciais, logs e backups.
Instalação de malware: implantação de ransomware, programas de mineração ou backdoors.
Roubo de informações sensíveis: subtração de código-fonte comercial, dados de clientes e informações de pagamento.
Movimentação lateral: uso do servidor como ponto de partida para atacar outros servidores na rede interna.
Apagamento de rastros operacionais: modificação ou exclusão de arquivos de log, o que dificulta a investigação de eventos de segurança.
Melhores práticas
Crie instâncias com o usuário ecs-user para login diário. Essa prática limita a superfície de ataque e garante que todas as operações privilegiadas passem pelo sudo, deixando um rastro de auditoria claro.
Console
Na página de compra de instância, defina o Logon Username como ecs-user.
O usuárioecs-useré compatível apenas com versões específicas de imagens Linux. Se a sua imagem não oferecer suporte, crie o usuárioecs-usere conceda permissões desudo. Consulte Login remoto multiusuário .
API
Chame a operação RunInstances ou CreateInstance com o parâmetro ImageOptions.LoginAsNonRoot definido como true. Assim, a instância usa o ecs-user em vez do root, e a senha do root não pode ser redefinida.
Caso não tenha um par de chaves, chame a operação CreateKeyPair para criar um.
Conformidade
Verificação: identificar instâncias Linux com login root
Acesse o ECS Insight.
Selecione a aba Security e clique em Use of Non-root Users for Logons to Linux ECS Instances para visualizar as instâncias que usam login root.
Bloqueio: impedir operações da conta root, como criação de instâncias
Use uma política do RAM para bloquear operações da conta root, como a criação de instâncias Linux. Aplique a política no nível organizacional ou da conta.
-
Usuários corporativos:
-
Faça login no console do Resource Directory com sua conta Alibaba Cloud. No painel de navegação, clique em Control Policies. Crie uma política personalizada e cole o seguinte conteúdo JSON.
Esta política nega operações da identidade
root, como criação de instâncias, anexação de discos de sistema e substituição de discos de sistema.{ "Version": "1", "Statement": [ { "Action": [ "ecs:RunInstances", "ecs:CreateInstance", "ecs:ReplaceSystemDisk", "ecs:AttachDisk", "ecs:InvokeCommand" ], "Resource": "*", "Condition": { "Bool": { "ecs:LoginAsNonRoot": [ "false" ] } }, "Effect": "Deny" } ] } No Resource Directory, selecione um nó apropriado e anexe a política. A política bloqueará as operações especificadas para todas as contas no diretório.
-
-
Usuários não corporativos:
Faça login no console do RAM com sua conta Alibaba Cloud. No painel de navegação, clique em Permission Policy. Crie uma política personalizada com o mesmo conteúdo.
Anexe a política a usuários RAM, grupos de usuários RAM ou funções RAM. Consulte Gerenciar políticas de acesso.
Correção: desativar login da conta root
Crie um usuário comum para login SSH. Consulte Login remoto multiusuário.
Faça login na instância como root ou como usuário comum.
-
Desative o login SSH do root. Execute o script a seguir para modificar a configuração do SSH:
#!/bin/bash # Back up the original configuration file cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak_$(date +%F) # Disable SSH logon for the root user: Change the PermitRootLogin parameter to no sed -i 's/^#*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config # Restart the SSH service for the configuration to take effect # Note: The SSH service name may vary by distribution (for example, sshd or ssh). Modify it as needed. systemctl restart sshd || service sshd restart -
Verifique a alteração. Mantenha a sessão atual aberta e abra um novo terminal. Confirme se o login do root falha e se o usuário comum consegue fazer login e executar comandos
sudo. Em seguida, desconecte todas as sessões.Após a verificação, o resultado da verificação pode não ser atualizado imediatamente. Ignore esse atraso.