remover `nullok` do system-auth impede qualquer senha root

remover `nullok` do system-auth impede qualquer senha root

[esta é uma continuação da minha postagem no ServerFault:https://serverfault.com/questions/661136/root-accepts-any-password-how-to-change-to-a-real-password]

Em um sistema antigo, a conta root aceita qualquer senha, desde que não esteja vazia. Qualquer senha foi aceita como a senha correta, para que qualquer pessoa pudesse fazer o login.

No passado (há mais de 10 anos) isso não era um problema, pois o sistema estava por trás de um modem dial-up com autenticação própria... mas há alguns anos o sistema pode ser acessado através de um endereço IP público.

Milagrosamente, ninguém se preocupou com sua porta SSH, até a semana passada.

Alguém (endereço IP chinês) efetuou login como root, alterou algumas configurações do sistema e efetuou logout.

Restaurei o sistema a partir de um backup e mudei a porta SSH para que ela não pudesse mais ser acessada pelo modem ADSL para me dar algum tempo para resolver esse problema.

O problema parece estar em /etc/pam.d/system-auth:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      /lib/security/pam_env.so
auth        sufficient    /lib/security/pam_unix.so likeauth nullok
auth        required      /lib/security/pam_deny.so

account     required      /lib/security/pam_unix.so

password    required      /lib/security/pam_cracklib.so retry=3
password    sufficient    /lib/security/pam_unix.so nullok use_authtok md5
password    required      /lib/security/pam_deny.so

session     required      /lib/security/pam_limits.so
session     required      /lib/security/pam_unix.so

Quando eu mudo

auth        sufficient    /lib/security/pam_unix.so likeauth nullok

para

auth        sufficient    /lib/security/pam_unix.so likeauth

então a conta root não aceita mais nenhuma senha aleatória, mas também não aceita minha senha configurada

Eu tentei o seguinte:

  • primeiro altere a senha root por meio do passwdcomando. resultado: eu poderia fazer login com qualquer senha
  • então remova nullok: não consegui fazer login com nenhuma senha em uma nova sessão SSH, nem mesmo com a senha que acabei de definir
  • então mudei a senha root novamente. resultado: ainda não consegui fazer login com nenhuma senha em uma nova sessão SSH.
  • então coloquei nullokde volta no system-auth: eu poderia fazer login com qualquer senha novamente

O tempo todo fiz a edição e configuração de senha em uma sessão SSH que mantive aberta, e testei o resultado abrindo uma nova sessão SSH.

Não me atrevi a fechar minha sessão SSH principal com medo de não conseguir entrar novamente. Além disso, não reiniciei o sistema porque é um sistema em execução para semáforos

Fiquei surpreso por não ter que digitar uma senha antiga, mas apenas fornecer a nova senha (2 vezes).

Após alterar a senha obtive a resposta Password changedmas não consegui fazer login via SSH com a nova senha.

Preciso definir a senha root em outro lugar? Ou a remoção nullokbloqueia completamente a conta root via SSH?

Quero rootapenas poder fazer login com 1 senha específica e negar acesso para qualquer outra senha.

informação relacionada