O primeiro e mais crucial passo para proteger servidores e sistemas Linux é impedir que partes mal-intencionadas tenham acesso desnecessário. O controle adequado da conta do usuário é uma das muitas maneiras de aumentar a segurança do seu sistema.
Uma conta de usuário protegida impede o sistema dos métodos de ataque mais comuns de escalação de privilégios horizontal ou vertical. Portanto, como administrador do sistema Linux, você também é responsável por proteger seu servidor por meio de técnicas de segurança eficazes.
Este artigo aborda alguns controles básicos de segurança de conta de usuário para evitar acesso desnecessário e corrigir possíveis brechas para comprometimento do sistema.
1. Restringir o acesso à conta raiz
Por padrão, toda instalação do sistema Linux configura uma conta root acessível a qualquer pessoa de fora via SSH. No entanto, o acesso à conta root via SSH ou acesso de vários usuários dentro do sistema pode causar problemas de repúdio.
Por exemplo, um invasor pode usar força bruta para fazer login como usuário root e obter acesso ao sistema.
Para restringir o acesso root desnecessário de dentro/fora do sistema Linux, você pode:
- Adicionar outro usuário e conceda privilégios de root para ele
- Desativar login raiz SSH
Criar um novo superusuário
Para conceder sudo ou permissões de root a uma conta de usuário Linux normal, adicione o usuário ao sudo grupo da seguinte forma:
usermod -aG sudo nome de usuário
Agora mude para a conta de usuário usando o comando su e verifique seus privilégios de root emitindo um comando acessível apenas ao usuário root:
su - nome de usuário
sudo systemctl reiniciar sshd
Habilitar permissões sudo fornece alguns bons benefícios de segurança, como:
- Você não precisa compartilhar senhas de root com usuários regulares.
- Ele ajuda você a verificar todos os comandos executados por usuários regulares, o que significa que ele armazena os detalhes de quem, quando e onde da execução do comando no /var/log/secure Arquivo.
- Além disso, você pode editar o /etc/sudoers para limitar as permissões de superusuário dos usuários regulares. Você pode usar o comando su -l para verificar as permissões de root atuais de um usuário.
Desativar login SSH raiz
Para desabilitar o acesso SSH root em seu sistema, primeiro abra o arquivo de configuração principal.
sudo vim /etc/ssh/sshd_config
Agora descomente a seguinte linha para definir as permissões de login root para não:
PermitRootLogin no
Salve o arquivo e reinicie o sshd serviço digitando:
sudo systemctl reiniciar sshd
Agora, sempre que você tentar fazer o SSH no sistema como usuário root, receberá a seguinte mensagem de erro:
Permissão negada, por favor tente novamente.
2. Definir datas de expiração nas contas
Outra maneira eficaz de controlar o acesso desnecessário é definir datas de expiração nas contas criadas para uso temporário.
Por exemplo, se um estagiário ou funcionário precisar acessar o sistema, você poderá definir uma data de expiração durante a criação da conta. É uma medida de precaução caso você esqueça de remover ou excluir manualmente a conta depois que eles deixarem a organização.
Use o mudar comando com o utilitário grep para buscar detalhes de expiração da conta para o usuário:
chage -l nome de usuário| conta grep
Saída:
A conta expira: nunca
Como mostrado acima, ele não gera data de validade. Agora use o usermod comando com o -e sinalizador para definir a data de vencimento no AAAA-MM-DD formate e verifique a alteração usando o comando chage acima.
usermod -e 2021-01-25 nome de usuário
chage -l nome de usuário| conta grep
3. Melhore a segurança da senha da conta
A aplicação de uma política de senha forte é um aspecto importante da proteção de contas de usuário, pois senhas fracas permitem que invasores invadam facilmente seus sistemas por meio de força bruta, dicionário ou ataques de tabela de arco-íris.
Escolher uma senha fácil de lembrar pode oferecer alguma conveniência, mas também abre oportunidades para os invasores adivinharem senhas com a ajuda de ferramentas e listas de palavras disponíveis online.
Definir data de expiração da senha
Além disso, o Linux oferece algumas opções padrão dentro /etc/logins.defs arquivo que permite definir o vencimento da senha da conta. Use o mudar comando e grep os detalhes de expiração de senha da seguinte forma:
chage -l nome de usuário | dias de grep
Variáveis | Valor padrão | Uso | Valor ideal |
---|---|---|---|
PASS_MAX_DAYS | 9999 | O número padrão de dias para usar uma senha que depende do tipo de configuração da sua conta | 40 |
PASS_MIN_DAYS | 0 | Impede que os usuários alterem sua senha imediatamente | 5 |
PASS_MIN_LEN | 5 | Força o usuário a definir senhas de um determinado comprimento | 15 |
PASS_WARN_AGE | 0 | Avisa o usuário para alterar a senha antes de ser forçado a fazê-lo | 7 |
Para as contas em uso, você pode controlar a duração da senha com a ajuda do mudar comando para definir PASS_MAX_DAYS, PASS_MIN_DAYS e PASS_WARN_AGE para 40, 5 e 7.
mudança -M 40 -m 5 -W 7 nome de usuário
Hashes de senha
Outra maneira de fortalecer a segurança da senha da conta é armazenar hashes de senha dentro o arquivo /etc/shadow. Hashes são funções matemáticas unidirecionais que usam a senha como entrada e geram uma string não reversível.
Anteriormente, em sistemas Linux, sempre que um usuário digitava sua senha para fazer login, o sistema gerava seu hash e o comparava com o armazenado em /etc/passwd Arquivo.
No entanto, há um problema com o acesso à permissão do arquivo passwd, ou seja, qualquer pessoa com acesso ao sistema pode ler o arquivo e quebrar o hash com rainbow tables.
Portanto, o Linux agora salva os hashes dentro do /etc/shadow arquivo com o seguinte conjunto de permissões de acesso:
ls -l /etc/shadow
1 root root 1626 7 de janeiro 13:56 /etc/shadow
Ainda é possível instalar o Linux com as antigas formas de armazenamento de hashes. Você pode modificar isso executando o pwconv comando, de tal forma que ele salvará automaticamente os hashes de senha no /etc/shadow Arquivo. Da mesma forma, você pode habilitar o outro método (/etc/passwd arquivo) usando o pwunconv comando.
4. Remover contas de usuário não utilizadas
Um mau ator pode explorar contas não utilizadas e expiradas no sistema, renovando essa conta e fazendo com que pareça um usuário legítimo. Para remover uma conta inativa e dados associados sempre que um usuário sair da organização, primeiro encontre todos os arquivos relacionados ao usuário:
encontrar / -usuário nome de usuário
Em seguida, desative a conta ou defina uma data de expiração conforme discutido acima. Não se esqueça de fazer backup dos arquivos de propriedade do usuário. Você pode optar por atribuir arquivos a um novo proprietário ou removê-los do sistema.
Por fim, exclua a conta de usuário usando o comando userdel.
userdel -f nome de usuário
5. Restringir o acesso remoto a um grupo de usuários específico
Se você estiver hospedando um servidor da Web em sua máquina Linux, talvez seja necessário permitir que apenas usuários específicos acessem o SSH remoto no sistema. O OpenSSL permite limitar os usuários verificando se eles pertencem a um grupo específico.
Para isso, crie um grupo de usuários chamado ssh_gp, adicione os usuários aos quais você deseja conceder acesso remoto ao grupo e liste as informações do grupo de usuários da seguinte forma:
sudo groupadd ssh_gp
sudo gpasswd -um nome de usuário ssh_gp
nome de usuário do grupo
Agora, abra o arquivo de configuração principal do OpenSSL para incluir o grupo de usuários permitido ssh_gp.
sudo vim /etc/ssh/sshd_config
Permitir Grupos ssh_gp
Lembre-se de descomentar a linha para garantir a inclusão bem-sucedida do grupo. Quando terminar, salve e saia do arquivo e reinicie o serviço:
sudo systemctl reiniciar sshd
Mantendo a segurança da conta de usuário no Linux
Atualmente, a maioria das organizações hospeda infraestruturas críticas como servidores web, firewalls e bancos de dados em Linux, e o comprometimento de qualquer componente interno representa uma ameaça significativa para todo o a infraestrutura.
Dada a importância da configuração, gerenciar e proteger contas de usuários é um desafio fundamental enfrentado pelos administradores do Linux. Este artigo listou algumas medidas de segurança que um administrador de conta deve tomar para proteger o sistema contra possíveis ameaças devido a contas de usuário desprotegidas.
Gerenciar usuários é uma tarefa crucial na qual todo administrador de sistema Linux deve ser proficiente. Aqui está o guia definitivo de gerenciamento de usuários para Linux.
Leia a seguir
- Linux
- Segurança
- Controle de conta de usuário
- Segurança
- Dicas de segurança

Rumaisa é redatora freelancer na MUO. Ela já desempenhou muitos cargos, de matemática a entusiasta de segurança da informação, e agora está trabalhando como analista de SOC. Seus interesses incluem ler e escrever sobre novas tecnologias, distribuições Linux e qualquer coisa relacionada à Segurança da Informação.
Assine a nossa newsletter
Junte-se à nossa newsletter para dicas de tecnologia, análises, e-books gratuitos e ofertas exclusivas!
Clique aqui para assinar