Como desativar completamente o login root

Como desativar completamente o login root

Tenho um servidor na OVH que de repente ficou offline por volta das 12h10.

De acordo com meus registros, o hacker entrou com o usuário root. O que significa que ele provavelmente tinha minha senha. Já mudei essa senha mas ainda estou me perguntando como ela entrou.

No sshd_config diz PermitRootLogin noque normalmente eles não poderiam entrar via SSH. Portanto, a única maneira de entrar como root diretamente é via KVM e sou o único que tem acesso a isso.

Este é o registro no momento em que ele caiu. Eu poderia resolver isso com uma simples reinicialização. Mas pelo que vejo nos logs anteriores, alguém fez root várias vezes. E tenho quase certeza de que não fui eu. Além disso, os mesmos logs dizem que alguém está entrando como root.

Jun 11 12:10:01 vps115965 systemd: Starting Session c3450 of user root.
Jun 11 12:10:01 vps115965 systemd: Started Session c3450 of user root.
Jun 11 21:31:02 vps115965 xinetd[2703]: START: gopher pid=22775 from=::ffff:46.182.107.117

Minha pergunta. Como posso desabilitar completamente o login root. Para isso, quero dizer apenas um login físico. cronjobs rodando como root e sudo (assim como sudo -i) ainda devem funcionar.

Meu servidor está executando o CentOS 7 (atualizações instaladas via cronjobs)

Obrigado antecipadamente

Jeroen

EDITAR:

Descobri que o login root ocorre a cada 10 minutos, a partir do qual achei que deveria ser agendado. Então olhei no crontab e parece que o spamassassin está fazendo isso. Como não uso mais isso (uso meu Norton IS para filtragem de spam), decidi removê-lo.

Como não tenho mais nenhuma evidência de que fui hackeado, estou pensando apenas em azar (Kernel Panic, talvez).

Porém ainda quero saber minha dúvida sobre como desabilitar o rootlogin físico.

Responder1

você pode usar passwd -l roota partir de man passwdvocê pode ver a descrição disso.

   -l     This  option  is used to lock the specified account and it is available to root only. The locking is performed by rendering the encrypted pass-
          word into an invalid string (by prefixing the encrypted string with an !).

Responder2

Você tem 2 opções:

  1. Enfrente o arquivo /etc/securetty, conforme mencionado na resposta anterior.

  2. Exclua a senha root de /etc/shadow - desta forma ninguém poderá fazer login como root, enquanto cron jobs e sudo funcionarão.

A segunda opção é usada na configuração padrão do Ubuntu, pois não quebra a compatibilidade com software antigo da era 1/2 do KDE, que usava caixas de diálogo auxiliares para obter senha de root e obter privilégios de root.

Responder3

O login no console físico é controlado através do /etc/securettyarquivo. Para evitar que o usuário root efetue login usando qualquer console, use algo como echo > /etc/securettyesvaziar o arquivo (você pode querer criar um backup primeiro).

Se você quiser apenas fechar caminhos específicos como, por exemplo, logins usando o console serial, simplesmente remova-os do /etc/securettyarquivo.

Depois de fazer isso, você ainda poderá fazer login usandosshe uma conta de usuário normal e depois usesudopara se tornar raiz.

informação relacionada