Como desabilito o login root no Ubuntu?


27

há um tempo atrás, dei uma senha ao root para poder fazer login como root e fazer algumas coisas. Agora, quero desativar o login raiz para aumentar a segurança, pois vou expor meu serviço à Internet. Eu já vi várias maneiras de fazer isso ( sudo passwd -l root, brincando /etc/shadowe assim por diante), mas em nenhum lugar diz qual é a melhor / mais sensata maneira de fazer isso. Eu já fiz, sudo passwd -l rootmas vi conselhos que dizem que isso pode afetar os scripts init e que não são tão seguros quanto parecem, pois ainda solicitam uma senha se você tentar fazer login, em vez de negar completamente o acesso. Então, qual seria o caminho para conseguir isso?

EDIT: para esclarecer, isso é para login local como root; Eu já desabilitei o login remoto via SSH. Embora a tentativa de efetuar login como root no SSH ainda solicite a senha do root (que sempre falha). Isso é ruim?


11
Desabilitar o acesso local para raiz tem quase zero benefício de segurança. Um usuário com acesso físico pode usar sua caixa de inúmeras maneiras.
Jscott # 04/16

Ponto tomado. Não é necessário fazer login como root se você puder apenas remover os discos rígidos. Eu ainda gostaria de saber como retornar a conta raiz a como era antes de alterá-la, embora apenas por curiosidade agora.
Ben Hymers 04/04/10

veja a atualização para minha resposta abaixo. Acho que agora entendo o que você está perguntando.
Jscott #

O @jscott, ao desativar o root, pode não fornecer benefícios de segurança contra invasões, mas não o login, pois o root fornece uma opção de segurança contra a destruição de sistemas com rmcomando extraviado ou algo do tipo. Algo que aprendi da maneira mais difícil. Sim, simplesmente NÃO se pode fazer login como root, mas desativá-lo faz sentido do ponto de vista do administrador do sistema.
Codecimp

Parece ótimo para VPS ou hospedagem, realmente não é fácil.
jjxtra 8/02

Respostas:


33

É discutível, para mim, que a raiz desabilitante vale os possíveis problemas. Eu nunca testei um servidor configurado dessa maneira. Minha preferência é permitir apenas o acesso local raiz. Se um invasor tiver acesso físico ao seu servidor, você poderá esquecer tudo o que fez para "proteger" sua instalação de qualquer maneira.

Desative o sshacesso root editando /etc/ssh/sshd_configpara conter:

PermitRootLogin no

Brincando com tudo /etc/shadow, chsh -s /bin/false roottudo pode ser desfeito com um simples CD / pendrive inicializável.

Atualização por seu comentário:

Do help.ubuntu.com : "Por padrão, a senha da conta root está bloqueada no Ubuntu ". Consulte a seção "Desativando sua conta root" especificamente. Para redefinir o estado da conta raiz, para instalar o padrão, use o seguinte comando:

sudo usermod -p '!' root

Nenhum sistema é seguro quando um invasor tem acesso físico a esse sistema. Quando você pode editar o / etc / shadow, o que impede você de editar o arquivo / etc / ssh / sshd_config?
Sven

@ SvenW: Exatamente. É por isso que discuto a utilidade, em termos de segurança, de me preocupar em "desativar" o root. Restrinja o acesso do root, sim. Desative a conta, não.
jscott

4
sudo service ssh restart ....... depois de fazer isso.
Naweed Chougle

O arquivo de ajuda referenciado agora fornece o seguinte comando: sudo passwd -dl root
MrG

21

Presumo que você se refira ao login remoto via ssh. Adicione a seguinte linha a /etc/ssh/sshd_config:

PermitRootLogin no

e reinicie o serviço ssh

sudo service ssh restart

Isso deve fazer o trabalho e você pode manter sua conta root como está (ou tente desativá-la de qualquer maneira, se achar necessário).


Desculpe, eu deveria ter dito, isso é para logins locais. Eu atualizei a pergunta.
Ben Hymers 04/04/10

4

A questão principal foi respondida várias vezes, mas a secundária não. O SSH solicita a senha após inserir o root após ser desativado como um recurso de segurança. Também será acionado se você tentar fazer login como lkjfiejlksji.

Isso evita que alguém teste uma pilha de nomes de usuários e tente descobrir quais são válidos no seu sistema. No entanto, do ponto de vista de segurança, se você desabilitou o root sobre SSH, eu também configuraria um programa de detecção de força bruta (como fail2ban) e o configuraria para que, se alguém tentar efetuar login como root, ele os impedirá de tentando ataques adicionais.


Boa resposta, obrigado! Já tenho o fail2ban configurado, vou configurá-lo para bloquear na primeira tentativa de efetuar login como root, um bom conselho.
Ben Hymers

2

Substituir a senha criptografada por um * em / etc / shadow (segundo campo, após o primeiro ':') é a melhor maneira, IMHO. Além disso, desative o logon root para ssh (desta forma, é simplesmente impossível logar via ssh como root) e talvez restrinja o ssh aos logins de certificados, o que é muito mais seguro do que os logons baseados em senha.

Na maioria dos casos, o SSH deve ser o único serviço acessível a partir do exterior, o que potencialmente permite o login raiz, portanto, essa porta estaria trancada.

Para restringir ainda mais isso, você pode instalar algo como fail2ban, que proíbe os endereços IP por um certo período de tempo após várias tentativas malsucedidas de login.


Sinto que '*' é o mesmo que '!', De acordo com a resposta aceita, então também votarei nessa resposta.
Ben Hymers

1

JR et al.

Seus AllowUsers me levaram a este https://help.ubuntu.com/community/SSH/OpenSSH/Configuring

sudo vi /etc/ssh/sshd_config

PermitRootLogin sim (alterado para não)

(adicionar linha na parte inferior do arquivo) DenyUsers user1 user2

salve e saia e depois

serviço sudo ssh restart

Resolvido meu problema. Obrigado a todos.


0

Se você quiser desativar o login raiz local, tente modificar / etc / passwd e substituir / bin / bash por / bin / false. No entanto, como não testei, diria deixar uma sessão raiz aberta ao lado, testá-la e, se houver algum efeito colateral estranho, altere-a novamente.


0

Re: Segurança.

IMHO, há muito que você pode fazer, em termos de segurança, desconectando a caixa, desconectando-a da rede e soldando-a dentro de uma caixa de aço-carbono de 3 "de espessura, à prova de bala.

Pense dessa maneira - se as pessoas podem invadir o Departamento de Defesa, a CIA, o FBI e o Citibank - o resto de nós, meros mortais, não pode fazer muito melhor.

Re: Segurança SSH.

Eu não apenas proíbo o acesso root via ssh, mas também defino o parâmetro "AllowUsers" como meu e apenas meu nome de usuário. Dessa forma, ninguém além do meu próprio usuário pode efetuar login via ssh. Isso pode ser redundante, pois, no meu caso, eu apenas crio UM usuário não raiz de qualquer maneira.

Infelizmente, como outros já disseram várias vezes antes, assim que alguém obtém acesso físico à caixa, todas as apostas estão desativadas!

Troca de certificados para login ssh? Hmmmm. . . . parece bom. Como você faz isso?

Jim (JR)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.