LFCA Como melhorar a segurança do sistema Linux - Parte 20

LFCA Como melhorar a segurança do sistema Linux - Parte 20

Como todos sabemos, o usuário raiz é rei e emposita privilégios ilimitados no sistema Linux. No entanto, os usuários de não raiz estão limitados a tarefas básicas. Além disso, os usuários do sudo recebem apenas um certo grau de privilégios radiculares, conforme considerado adequado pelo usuário raiz para executar tarefas elevadas específicas.

Problemas surgem quando usuários regulares têm acesso não controlado a recursos ou são escalados para enraizar sem querer. Esse é um sério risco de segurança que pode causar violações, modificações indesejadas e, no pior cenário, travando o sistema. Outro risco potencial é quando os arquivos têm permissões de arquivo menos seguras. Por exemplo, arquivos de inicialização com permissões de gravação para usuários globais podem ser facilmente modificados ou corrompidos, resultando em um sistema quebrado.

[Você também pode gostar: dicas úteis para proteger dados e Linux]

Embora possamos implementar a segurança física, de rede e dados, um usuário malicioso pode contornar as medidas de segurança e tirar proveito de tais brechas de segurança. É por esse motivo que a segurança do sistema de arquivos deve ser levada a sério. Ele fornece uma camada extra de defesa diante de ataques ou ameaças internas de funcionários maliciosos que não precisam fazer o levantamento pesado na contornar medidas de segurança para acessar arquivos.

Na segurança do sistema, nos concentraremos nos seguintes pontos -chave:

  • Direitos de Acesso - Permissões de Usuário e Grupo.
  • Aplicar políticas de senha com o módulo PAM.

Direitos de Acesso - Separação de Usuário e Grupo

Você provavelmente deve ter ouvido dizer que tudo no Linux é considerado um arquivo. E se não for, é um processo. Cada arquivo em um sistema Linux é de propriedade de um usuário e um usuário do grupo. Também possui permissões de arquivo para 3 categorias de usuário: Usuário (você), Grupo (g), e outros (o). As permissões são representadas em leitura, escreva e execute ( rwx ) para cada categoria de usuário.

RWX RWX RWX Grupo de usuários Outros 

Como visto antes, na seção Basics Linux, você pode visualizar as permissões de arquivo usando o formato longo do comando LS, como mostrado.

$ ls -l 
Listando arquivos no Linux

Apenas para recapitular, as permissões geralmente são representadas por nove caracteres. Os três primeiros caracteres representam os direitos de acesso do usuário real que possui o arquivo. O segundo conjunto de caracteres representa as permissões do proprietário do grupo do arquivo. Finalmente, o último conjunto para outros usuários globais ou globais. Esses personagens estão perpetuamente no ler, escrever, executar (rwx) ordem.

Após as permissões, temos proprietários de usuários e grupos, seguidos pelo tamanho do arquivo ou do diretório, data da modificação e, finalmente, o nome do arquivo.

Alteração de permissões e proprietários de arquivos/diretórios

As permissões de usuário de arquivos e diretórios podem ser modificados como considerados adequados. A regra geral é usar o princípio de segurança menos privilegiado. Simplificando, garanta que os usuários obtenham os direitos de acesso mínimo ou permissões necessárias para fazer o trabalho.

O princípio de menos privilégios restringe os usuários apenas a determinadas funções e, ao fazê-lo, minimiza o risco de atacantes acessando e modificando dados críticos, alavancando uma conta de usuário de baixa alver. Também reduz a superfície de ataque e limita a propagação de malware no caso de o invasor assumir o controle do seu sistema.

Portanto, se um usuário precisar apenas visualizar o conteúdo de um arquivo ou diretório, ele não deve ser concedido executar ou gravar permissões. No nível muito básico, conceda apenas as menos permissões e proprietários exigidos pelo usuário para realizar tarefas. Abordamos como modificar as permissões e proprietários de usuários em arquivos/diretórios usando comandos CHMOD e CHOW.

Modo de permissão de bit pegajoso

Para que o administrador do sistema tenha mais tempo gerenciando permissões, permissões especiais ou direitos de acesso pode ser concedido a diretórios inteiros. Uma das permissões especiais que podem ser aplicadas para restringir a exclusão e a modificação de um arquivo ou diretório é a parte pegajosa.

Bit pegajoso

Em um cenário em que um diretório compartilhado pode ser acessado por todos os usuários do sistema ou rede, há um risco potencial de que alguns usuários possam excluir ou modificar os arquivos dentro do diretório. Isso não é inspirado se você quiser manter a integridade do conteúdo do diretório. E é aqui que entra a parte pegajosa.

Uma parte pegajosa é uma permissão de arquivo especial definida em um arquivo ou diretório inteiro. Ele concede apenas o proprietário desse arquivo/diretório a permissão para excluir ou fazer alterações no conteúdo do arquivo ou diretório. Nenhum outro usuário pode excluir ou modificar o arquivo/diretório. Tem o valor simbólico de t e um valor numérico de 1000.

Para ligar um pouco em um diretório, use o comando chmod do seguinte modo:

$ chmod +t Directory_name 

No exemplo abaixo, aplicamos uma parte pegajosa ao diretório chamado teste. No caso de um diretório, todo o conteúdo herdará as permissões pegajosas. Você pode verificar as permissões de bits pegajosas usando o LS -LD comando. Certifique -se de observar o t Símbolo no final das permissões de arquivo.

Teste de $ ls -ld 
Defina um bit pegajoso no Linux

Se outro usuário tentar excluir o diretório ou modificar o arquivo dentro do diretório, ele é recebido com um Permissão negada erro.

Permissão de bit pegajoso negado

E essa é a essência da permissão do arquivo de bit stick.

Monitorando as permissões SUID e SGID

O Suid (Defina o ID do usuário) é outra permissão de arquivo especial que permite que outro usuário regular execute um arquivo com as permissões de arquivo do proprietário do arquivo. Geralmente é denotado por um valor simbólico s na parte do usuário das permissões de arquivo em vez de um x que representa permissões de execução. O suid tem um valor numérico de 4000.

O Sgid, (Set Group ID) permite que um usuário regular herde as permissões do grupo do proprietário do grupo de arquivos. Ao invés de x Para executar permissões, você verá um s na parte do grupo das permissões de arquivo. O Sgid tem um valor numérico de 2000.

Por mais conveniente que eles sejam, o Suid e Sgid As permissões estão associadas a riscos de segurança e devem ser evitadas a todo custo. Isso ocorre porque eles concedem privilégios especiais a usuários regulares. Se um intruso posando como usuário regular encontrar um arquivo executável de propriedade do usuário root com um Suid Bit definido, eles podem usar essa brecha e explorar o sistema.

Para encontrar todos os arquivos com Suid bits definidos no linux executam o comando find como o usuário root.

$ find / -perm -4000 tipo -f 

Para os diretórios executados:

$ find / -perm -4000 tipo -D 

Para encontrar todos os arquivos com Sgid Bit Set Run:

$ find / -perm -2000 tipo -f 

Para executar os diretórios:

$ find / -perm -2000 tipo -D 

Para remover o Suid Bit em um arquivo, execute o comando chmod como mostrado:

$ chmod u-s/caminho/para/arquivo 

Para remover o bit SGID em um arquivo, execute o comando:

$ chmod g-s nome de arquivo/caminho/para/arquivo 

Aplicar políticas de senha com o módulo PAM

Não é incomum para os usuários definir senhas fracas. Um bom número definido por senhas curtas, simples e facilmente adivinhadas para evitar esquecê -las durante o login. Embora conveniente, as senhas fracas podem ser facilmente violadas usando scripts de ataque de força bruta.

O Pam módulo ( Módulo de autenticação travável ) é um módulo que permite que os administradores do sistema apliquem políticas de senha em sistemas Linux. Para conseguir isso, você precisa do pam_pwquality módulo que é fornecido pelo libpam_pwquality biblioteca. O pam_pwquality O módulo verifica a força de uma senha em um conjunto de regras e um dicionário de sistema e identifica opções de senha fracas.

Para instalar o pam_pwquality módulo on Ubuntu 18.04 E versões posteriores, execute:

$ sudo apt install libpam_pwquality 

Para RHEL / CENTOS 8, Execute o comando:

$ sudo dnf install libpwquality 

O arquivo de configuração é encontrado no seguinte local:

  • Nos sistemas de Debian - /etc/pam.D/Pass-Password
  • Nos sistemas Redhat - /etc/pam.D/System-Auth

Configurando a política de senha

Antes de começarmos a modificar o Pam Arquivo de configuração, vamos primeiro considerar obter informações sobre os controles de envelhecimento de senha.

Detalhes do envelhecimento de senha

Estes podem ser encontrados no /etc/login.Defs arquivo.

O arquivo contém os seguintes controles de senha de chave:

  • Pass_max_days: Número máximo de dias uma senha pode ser usada.
  • Pass_min_days: Número mínimo. de dias permitidos entre alterações de senha.
  • Pass_warn_age: Número de dias de aviso dado antes que uma senha expire.

Os valores padrão são indicados abaixo.

Envelhecimento de senha do Linux

O Pass_max_days atributo limita o número de dias em que um usuário pode usar sua senha. Quando esse valor é atingido ou a senha expira, o usuário é obrigado a alterar sua senha para fazer login no sistema. Por padrão, este valor está definido como 99999, que se traduz em 273 anos. Isso não faz muito sentido no que diz respeito à segurança, pois o usuário pode continuar usando sua senha por toda a vida.

Você pode definir isso como um valor significativo, digamos 30 dias como mostrado.

Pass_max_days 30 

Após 30 dias decorrentes, o usuário será forçado a alterar sua senha para uma diferente.

O Pass_min_days atributo explica a duração mínima de que os usuários podem usar sua senha antes de alterá -la. O que isto significa? Se, por exemplo, esse valor for definido como 15 dias, o usuário não poderá alterar sua senha novamente antes de 15 dias.

Pass_max_days 15 

O Pass_warn_age Atributo Especifica o número de dias que um usuário receberá um aviso sobre o vencimento iminente de sua senha antes de expirar. Por exemplo, você pode definir isso para 7 dias como mostrado.

Pass_max_days 7 

OBSERVAÇÃO: Esses controles de senha não funcionam com contas pré-existentes. Eles são aplicados apenas a novas contas criadas após definir as regras.

Definir complexidade de senha com módulo PAM

Antes de editar o /etc/pam.D/Pass-Password Arquivo, crie uma cópia de backup. Neste exemplo, criamos o Password comum.Bak arquivo de cópia de backup.

$ sudo cp /etc /pam.D/Pass-Password/etc/Pam.D/Pass-Password.Bak 

Em seguida, abra o arquivo.

$ sudo vim /etc /pam.D/Pass-Password 

Localize a linha mostrada abaixo.

senha requisito de senha pam_pwquality.Então tente novamente = 3 
Definir complexidade de senha com PAM

O tente novamente Opção define o número máximo de vezes que você deve inserir a senha certa antes de receber um erro. Por padrão, isso é definido como 3. Esta é apenas uma opção e vamos incluir várias opções.

Adicione os seguintes atributos à linha:

minlen = 10 difok = 3 lcredit = -1 ucredit = -1 dcredit = -1 ocredit = -1 rejeit_username 

Vamos detalhar esses atributos.

  • minlen = 10: Define o tamanho mínimo aceitável para a senha. Nesse caso, 10 caracteres.
  • DIFOK = 3: Este é o número máximo de caracteres que estão presentes na senha anterior.
  • lcredit = -1: Este é o número mínimo de caracteres minúsculos que devem estar presentes na senha.
  • ucredit = -1: É o número máximo de caracteres minúsculos que devem estar presentes na senha.
  • dcredit = -1: O número mínimo de caracteres numéricos que devem ser definidos na senha.
  • ocredit = -1: O número mínimo de caracteres especiais e.g @, #, e isso deve ser definido na senha.
  • rejeitar_username: Esta opção aciona a rejeição da senha se a senha for o nome de usuário em formato reto ou reverso.

Se você tentar criar um novo usuário que fique aquém das políticas de senha, você encontrará os erros como mostrado.

Crie novo usuário no Linux
Resumo

Isso conclui o tópico sobre segurança e segurança do sistema em geral em geral. Em todo o capítulo, lançamos a luz sobre medidas básicas de segurança que você pode implementar para proteger seu sistema Linux de usuários maliciosos, como hackers ou funcionários descontentes.

Torne -se um Associado de TI certificado pela Fundação Linux (LFCA)