Usar um sudo
usuário para acessar um servidor e executar comandos no nível de raiz é uma prática muito comum entre o Linux e o Unix Systems Administrator. O uso de um sudo
usuário é frequentemente associado ao desabilitar o acesso direto ao servidor, em um esforço para impedir o acesso não autorizado.
Neste tutorial, abordaremos as etapas básicas para desabilitar o acesso direto ao root, criar um usuário sudo e configurar o grupo sudo no CentOS, no Debian e no FreeBSD.
Pré-requisitos
- Um servidor Linux recém-instalado com sua distribuição preferida.
- Um editor de texto instalado no servidor seja nano, vi, vim, emacs.
Etapa 1: instalando o sudo
Debian
apt-get install sudo -y
CentOS
yum install sudo -y
FreeBSD
cd /usr/ports/security/sudo/ && make install clean
ou
pkg install sudo
Etapa 2: Adicionando o usuário sudo
Um sudo
usuário é uma conta de usuário normal em uma máquina Linux ou Unix.
Debian
adduser mynewusername
CentOS
adduser mynewusername
FreeBSD
adduser mynewusername
Etapa 3: Adicionando o novo usuário ao grupo wheel (opcional)
O grupo wheel é um grupo de usuários que limita o número de pessoas que podem su
fazer root. Adicionar seu sudo
usuário ao wheel
grupo é totalmente opcional, mas é aconselhável.
Nota: No Debian, o sudo
grupo é frequentemente encontrado em vez de wheel
. Você pode, entretanto, adicionar manualmente o wheel
grupo usando o groupadd
comando. Para o propósito deste tutorial, usaremos o sudo
grupo para o Debian.
A diferença entre wheel
e sudo
.
No CentOS e no Debian, um usuário pertencente ao wheel
grupo pode executar su
e ascender diretamente a ele root
. Enquanto isso, um sudo
usuário teria usado o sudo su
primeiro. Essencialmente, não há diferença real, exceto pela sintaxe usada para se tornar root , e usuários pertencentes a ambos os grupos podem usar o sudo
comando.
Debian
usermod -aG sudo mynewusername
CentOS
usermod -aG wheel mynewusername
FreeBSD
pw group mod wheel -m mynewusername
Etapa 4: verificar se o sudoers
arquivo está configurado corretamente
É importante garantir que o sudoers
arquivo localizado /etc/sudoers
esteja configurado corretamente para permitir sudo users
o uso efetivo do sudo
comando. Para conseguir isso, vamos ver o conteúdo /etc/sudoers
e editá-los, quando aplicável.
Debian
vim /etc/sudoers
ou
visudo
CentOS
vim /etc/sudoers
ou
visudo
FreeBSD
vim /etc/sudoers
ou
visudo
Nota: O visudo
comando será aberto /etc/sudoers
usando o editor de texto preferido do sistema (geralmente vi ou vim) .
Comece a rever e editar abaixo desta linha:
# Allow members of group sudo to execute any command
Esta seção /etc/sudoers
geralmente é assim:
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
Em alguns sistemas, você pode não encontrar em %wheel
vez de %sudo
; Nesse caso, essa seria a linha sob a qual você começaria a modificar.
Se a linha que inicia %sudo
no Debian ou %wheel
no CentOS e no FreeBSD não estiver comentado (prefixado por #) , isso significa que o sudo já está configurado e está ativado. Você pode então passar para o próximo passo.
Etapa 5: Permitir que um usuário que não pertença ao wheel
nem ao sudo
grupo execute o sudo
comando
É possível permitir que um usuário que não esteja em nenhum dos grupos de usuários execute o sudo
comando simplesmente adicionando-os da /etc/sudoers
seguinte maneira:
anotherusername ALL=(ALL) ALL
Etapa 6: Reiniciando o Servidor SSHD
Para aplicar as alterações feitas /etc/sudoers
, você precisa reiniciar o servidor SSHD da seguinte maneira:
Debian
/etc/init.d/sshd restart
CentOS 6
/etc/init.d/sshd restart
CentOS 7
systemctl restart sshd.service
FreeBSD
/etc/rc.d/sshd start
Etapa 7: teste
Depois de ter reiniciado o servidor SSH, efetue logout e, em seguida, efetue login novamente como seu e sudo user
, em seguida, tente executar alguns comandos de teste da seguinte maneira:
sudo uptime
sudo whoami
Qualquer um dos comandos abaixo permitirá que o sudo user
se torne root
.
sudo su -
sudo -i
sudo -S
Notas:
- O
whoami
comando retornarároot
quando acopladosudo
. - Você será solicitado a inserir a senha do usuário ao executar o
sudo
comando, a menos que você instrua explicitamente o sistema a não solicitarsudo users
suas senhas. Por favor, note que não é uma prática recomendada.
Opcional: permitindo sudo
sem digitar a senha do usuário
Como explicado anteriormente, essa não é uma prática recomendada e está incluída neste tutorial apenas para fins de demonstração.
Para permitir que você sudo user
execute o sudo
comando sem ser solicitado pela senha, sufixe a linha de acesso /etc/sudoers
com NOPASSWD: ALL
o seguinte:
%sudo ALL=(ALL:ALL) ALL NOPASSWD: ALL
Nota: Você precisa reiniciar seu servidor SSHD para aplicar as mudanças.
Etapa 8: Desabilitar o acesso root direto
Agora que você confirmou que pode usar o seu sudo user
sem problemas, é hora da oitava e última etapa, desabilitando o acesso direto à raiz.
Primeiro, abra /etc/ssh/sshd_config
usando seu editor de texto favorito e encontre a linha que contém a seguinte string. Pode ser prefixado com um #
caractere.
PermitRootLogin
Independentemente do prefixo ou do valor da opção /etc/ssh/sshd_config
, você precisa alterar essa linha para o seguinte:
PermitRootLogin no
Por fim, reinicie seu servidor SSHD.
Nota: Não esqueça de testar suas mudanças tentando SSH em seu servidor como root
. Se você não conseguir, isso significa que você concluiu com êxito todas as etapas necessárias.
Isso conclui nosso tutorial.