Categories: Tecnologia

Como (e por que) desativar o login root por SSH no Linux

Efetuar login como usuário root do Linux é uma prática recomendada. Fazer login como root em uma conexão SSH é ainda pior. Dizemos por quê e mostramos como evitá-lo.

A espada de dois gumes

Você precisa de alguém com autoridade para possuir e administrar as partes do seu sistema operacional que são muito importantes ou muito sensíveis para serem tratadas por usuários comuns. É aí que entra o root. root é o superusuário todo-poderoso dos sistemas operacionais Unix e Linux.

A conta do usuário root, como todas as contas, é protegida por uma senha. Sem a senha do usuário root, ninguém mais poderá acessar essa conta. Isso significa que os privilégios e poderes do root não podem ser usados ​​por mais ninguém. O outro lado é que a única defesa entre um usuário mal-intencionado e os poderes do root é essa senha. As senhas, é claro, podem ser adivinhadas, deduzidas, localizadas e escritas em algum lugar ou forçadas com força bruta .

Se um invasor mal-intencionado descobrir a senha do root, ele poderá fazer login e fazer o que quiser em todo o sistema. Com os privilégios elevados do root, não há restrições sobre o que eles podem fazer. Seria como se o usuário root tivesse saído de um terminal sem sair, permitindo acesso oportunista à sua conta.

Por causa desses riscos, muitas distribuições modernas do Linux não permitem que o root faça login no computador localmente , muito menos por SSH. O usuário root existe, mas não possui uma senha definida para ele. E ainda assim, alguém precisa ser capaz de administrar o sistema. A solução para esse enigma é a

 sudo  

comando.

sudopermite que usuários indicados usem temporariamente privilégios de nível raiz em suas próprias contas de usuário. Você precisa se autenticar para usar o sudo, o que é feito inserindo sua própria senha. Isso lhe dá acesso temporário aos recursos do root.

Seus poderes de root morrem quando você fecha a janela do terminal em que foram usados. Se você deixar a janela do terminal aberta, eles atingirão o tempo limite, retornando automaticamente ao status de usuário normal. Isso fornece outro tipo de proteção. Ele protege você de você mesmo.

Se você costuma fazer login como root em vez de como uma conta normal, qualquer erro cometido na linha de comando pode ser catastrófico. Ter que usar sudopara realizar a administração significa que você terá mais chances de se concentrar e ter cuidado com o que digita.

Permitir login root por SSH aumenta os riscos porque os invasores não precisam ser locais; eles podem tentar forçar seu sistema remotamente.

O usuário root e acesso SSH

É mais provável que você encontre esse problema ao administrar sistemas para outras pessoas. Alguém pode ter decidido definir uma senha de root para poder fazer login. Outras configurações precisam ser alteradas para permitir que o root faça login por SSH.

Essas coisas não acontecerão por acidente. Mas isso pode ser feito por pessoas que não compreendem os riscos associados. Se você assumir a administração de um computador nesse estado, precisará informar aos proprietários por que isso é uma má ideia e, em seguida, reverter o sistema para um funcionamento seguro. Se foi algo configurado pelo administrador do sistema anterior, os proprietários podem não saber disso.

Aqui está um usuário em um computador executando o Fedora, fazendo uma conexão SSH com um computador Ubuntu como usuário root do computador Ubuntu.

ssh root@ubuntu-22-04.local

O computador Ubuntu permite que o usuário root faça login via SSH. No computador Ubuntu, podemos ver que uma conexão ativa está em andamento do usuário root.

Quem

O que não podemos ver é quem está usando aquela sessão. Não sabemos se a pessoa do outro lado da conexão SSH é o usuário root ou alguém que conseguiu obter a senha do root.

Desativando o acesso SSH para root

Para desabilitar o acesso SSH para o usuário root, precisamos fazer alterações no arquivo de configuração SSH. Ele está localizado em “/etc/ssh/sshd_config.” Precisaremos usar sudopara escrever alterações nele.

sudo gedit /etc/ssh/sshd_config

Percorra o arquivo ou procure a string “PermitRootLogin”.

Defina como “não” ou comente a linha colocando um hash ” #” como o primeiro caractere da linha. Salve suas alterações.

Precisamos reiniciar o daemon SSH para que nossas alterações tenham efeito.

sudo systemctl reiniciar ssh

Se você também deseja impedir logins locais, desative a senha do root. Estamos adotando uma abordagem de cinto e suspensórios e usando as opções -l(bloquear) e -d(excluir senha).

sudo senha root -ld

Isso bloqueia a conta e também remove a senha da conta. Mesmo que o usuário root esteja fisicamente sentado em frente ao seu computador, ele não conseguirá fazer login.

Uma maneira mais segura de permitir acesso SSH root

Às vezes você encontrará resistência gerencial para remover o acesso root por SSH. Se eles realmente não ouvirem, você poderá se encontrar em uma posição em que precisará restabelecê-lo. Se for esse o caso, você deverá ser capaz de fazer concessões de uma forma que reduza o risco e ainda permita logins remotos do usuário root.

Usar chaves SSH para fazer uma conexão via SSH é muito mais seguro do que usar senhas. Como não há senhas envolvidas, elas não podem ser forçadas, adivinhadas ou descobertas de outra forma.

Antes de bloquear a conta root local, configure chaves SSH no computador remoto para que o usuário root possa se conectar ao seu computador local. Em seguida, exclua a senha e bloqueie a conta local.

Também precisaremos editar o arquivo “sshd_config” mais uma vez.

sudo gedit /etc/ssh/sshd_config

Altere a linha “PermitRootLogin” para que use a opção “proibir senha”.

Salve suas alterações e reinicie o daemon SSH.

sudo systemctl reiniciar ssh

Agora, mesmo que alguém restabeleça a senha do usuário root, não será possível fazer login via SSH usando uma senha.

Quando o usuário root remoto faz uma conexão SSH com o computador local, as chaves são trocadas e examinadas. Se eles passarem na autenticação, o usuário root será conectado ao seu computador local sem a necessidade de uma senha.

ssh root@ubuntu-22-04.local

Entrada proibida

Recusar conexões remotas do usuário root é a melhor opção. Permitir que o root se conecte usando chaves SSH é a segunda melhor opção, mas ainda é muito melhor do que usar senhas.

maisroot

Recent Posts

O novo aplicativo “PC Manager” da Microsoft se parece muito com o CCleaner

Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…

9 meses ago

Como reiniciar um PS4

Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…

9 meses ago

Veja por que as reticências são tão assustadoras ao enviar mensagens de texto…

A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…

9 meses ago

O telescópio James Webb acaba de capturar os “Pilares da Criação”

A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…

9 meses ago

Você poderá baixar o Proton Drive mais cedo do que pensa

O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…

9 meses ago

Como aumentar o zoom no Photoshop

Para ver suas fotos mais de perto ou para uma edição precisa , você pode…

9 meses ago