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.

O guia completo para gerenciamento de usuários no Linux

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

CompartilhadoTweetE-mail
Tópicos relacionados
  • Linux
  • Segurança
  • Controle de conta de usuário
  • Segurança
  • Dicas de segurança
Sobre o autor
Rumaisa Niazi (8 Artigos Publicados)

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.

Mais de Rumaisa Niazi

Assine a nossa newsletter

Junte-se à nossa newsletter para dicas de tecnologia, análises, e-books gratuitos e ofertas exclusivas!

Clique aqui para assinar