Como todos sabemos, o usuário root é o rei e detém privilégios ilimitados sobre o sistema Linux. No entanto, os usuários não root estão limitados a tarefas básicas. Além disso, usuários sudo recebem apenas um certo grau de privilégios de root conforme considerado adequado pelo usuário root para executar tarefas elevadas específicas.
Os problemas surgem quando os usuários regulares têm acesso descontrolado aos recursos ou são escalados para a raiz involuntariamente. Este é um sério risco de segurança que pode causar violações, modificações indesejadas e, na pior das hipóteses, travar 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 corrompido.
[ Você pode gostar também: Dicas úteis para proteger dados e Linux ]
Embora possamos implementar segurança física, de rede e de dados, um usuário mal-intencionado 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 em face de ataques ou ameaças internas de funcionários mal-intencionados que não precisam fazer o trabalho pesado para contornar as medidas de segurança para acessar os arquivos.
Na segurança do sistema, vamos nos concentrar nos seguintes pontos-chave:
Você provavelmente deve ter ouvido isso tudo no Linux é considerado um arquivo. E se não for, é um processo. Cada arquivo em um sistema Linux é propriedade de um usuário e de um grupo de usuários. Ele 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, escrita e execução ( rwx ) para cada categoria de usuário.
rwx rwx rwx. Grupo de usuários Outros.
Como visto antes, no Seção de noções básicas do Linux, você pode ver as permissões de arquivo usando o formato longo do ls comando como mostrado.
$ ls -l.
Só para recapitular, as permissões geralmente são representadas por nove caracteres. Os primeiros três 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 ou usuários globais. Esses personagens estão perpetuamente no ler, Escreva, executar (rwx) pedido.
Após as permissões, temos as propriedades do usuário e do grupo, seguidas do tamanho do arquivo ou diretório, data de modificação e por último o nome do arquivo.
As permissões do usuário de arquivos e diretórios podem ser modificadas conforme considerado adequado. A regra é usar o princípio de segurança de privilégios mínimos. Simplificando, certifique-se de que os usuários obtenham os direitos ou permissões de acesso mínimos necessários para realizar o trabalho.
O princípio de privilégios mínimos restringe os usuários a apenas certas funções e, ao fazer isso, minimiza o risco de invasores acessarem e modificarem dados críticos, aproveitando uma conta de usuário de baixo nível. Ele também reduz a superfície de ataque e limita a propagação do malware no caso de o invasor assumir o controle do seu sistema.
Portanto, se um usuário só precisa visualizar o conteúdo de um arquivo ou diretório, ele não deve receber permissões de execução ou gravação. No nível mais básico, conceda apenas o mínimo de permissões e propriedades exigidas pelo usuário para realizar as tarefas. Abordamos como modificar as permissões e propriedades do usuário em arquivos / diretórios usando os comandos chmod e chown no comandos básicos do Linux tema.
Para que o administrador do sistema tenha mais facilidade no gerenciamento de permissões, permissões especiais ou direitos de acesso podem ser concedidos a diretórios inteiros. Uma das permissões especiais que podem ser aplicadas para restringir a exclusão e modificação de um arquivo ou diretório é o sticky bit.
Em um cenário onde um diretório compartilhado pode ser acessado por todos os usuários no sistema ou rede, há um risco potencial de que alguns usuários possam excluir ou modificar os arquivos dentro do diretório. Isso é indesejado se você deseja manter a integridade do conteúdo do diretório. E é aqui que entra a parte pegajosa.
Um sticky bit é uma permissão de arquivo especial definida em um arquivo ou diretório inteiro. Ele concede apenas ao 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 ativar um sticky bit em um diretório, use o comando chmod do seguinte modo:
$ chmod + t directory_name.
No exemplo abaixo, aplicamos um sticky bit ao diretório chamado teste. No caso de um diretório, todo o conteúdo herdará as permissões do sticky bit. Você pode verificar as permissões do sticky bit usando o ls -ld comando. Certifique-se de observar o t
símbolo no final das permissões de arquivo.
Teste de $ ls -ld.
Se outro usuário tentar excluir o diretório ou modificar o arquivo dentro do diretório, ele será saudado com um Permissão negada erro.
E essa é a essência da permissão de arquivo stick bit.
O SUID (Definir ID de 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, (Definir ID do grupo) permite que um usuário normal herde as permissões de grupo do proprietário do grupo de arquivos. Em vez de x
para permissões de execução, você verá um s
na parte do grupo das permissões do arquivo. O SGID tem um valor numérico de 2000.
Por mais convenientes que sejam, 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 fingindo ser um usuário comum encontrar um arquivo executável pertencente ao usuário root com um SUID bit definido nele, eles podem usar essa lacuna e explorar o sistema.
Para encontrar todos os arquivos com SUID conjunto de bits no Linux execute o encontrar comando como usuário root.
$ find / -perm -4000 digite -f.
Para diretórios, execute:
$ find / -perm -4000 digite -d.
Para encontrar todos os arquivos com SGID bit set run:
$ find / -perm -2000 digite -f.
Para diretórios, execute:
$ find / -perm -2000 digite -d.
Para remover o SUID bit em um arquivo, execute o comando chmod conforme mostrado:
$ chmod u-s / caminho / para / arquivo.
Para remover o bit SGID de um arquivo, execute o comando:
$ chmod g-s nome do arquivo / caminho / para / arquivo.
Não é incomum que os usuários definam senhas fracas. Um bom número define senhas curtas, simples e fáceis de adivinhar para evitar esquecê-las durante o login. Embora convenientes, as senhas fracas podem ser facilmente violadas usando scripts de ataque de força bruta.
O PAM módulo ( Módulo de autenticação plugável ) é um módulo que permite que os administradores de sistema imponham políticas de senha em sistemas Linux. Para fazer 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 relação a um conjunto de regras e um dicionário do sistema e identifica opções de senha fracas.
Para instalar o pam_pwquality módulo em 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 está localizado no seguinte local:
Antes de começarmos a modificar o PAM arquivo de configuração, vamos primeiro considerar a coleta de insights sobre os controles de expiração de senha.
Estes podem ser encontrados no /etc/login.defs Arquivo.
O arquivo contém os seguintes controles-chave de senha:
Os valores padrão são indicados a seguir.
O PASS_MAX_DAYS atributo limita o número de dias que um usuário pode usar sua senha. Quando este valor é atingido ou a senha expira, o usuário é obrigado a alterar sua senha para efetuar o login no sistema. Por padrão, este valor é 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 a senha por toda a vida.
Você pode definir isso para um valor significativo, digamos 30 dias, conforme mostrado.
PASS_MAX_DAYS 30.
Após 30 dias, o usuário será forçado a alterar sua senha para outra.
O PASS_MIN_DAYS atributo especifica a duração mínima que os usuários podem usar sua senha antes de alterá-la. O que isto significa? Se, por exemplo, esse valor for definido para 15 dias, o usuário não poderá alterar a senha novamente antes de decorridos 15 dias.
PASS_MAX_DAYS 15.
O PASS_WARN_AGE attribute especifica o número de dias que um usuário receberá um aviso sobre a expiração iminente de sua senha antes que ela expire. Por exemplo, você pode definir isso para 7 dias, conforme mostrado.
PASS_MAX_DAYS 7.
NOTA: Esses controles de senha não funcionam com contas pré-existentes. Eles são aplicados apenas a novas contas criadas após a definição das regras.
Antes de editar o /etc/pam.d/common-password arquivo, crie uma cópia de backup. Neste exemplo, criamos o common-password.bak arquivo de cópia de backup.
$ sudo cp /etc/pam.d/common-password /etc/pam.d/common-password.bak.
Em seguida, abra o arquivo.
$ sudo vim /etc/pam.d/common-password
Localize a linha mostrada abaixo.
requisito de senha pam_pwquality.so retry = 3.
O tentar novamente opção define o número máximo de vezes que você deve inserir a senha correta antes de obter um erro. Por padrão, isso é definido como 3. Esta é apenas uma opção e incluiremos várias opções.
Adicione os seguintes atributos à linha:
minlen = 10 difok = 3 lcredit = -1 ucredit = -1 dcredit = -1 ocredit = -1 rejeitar_username
Vamos detalhar esses atributos.
Se você tentar criar um novo usuário que não atenda às políticas de senha, encontrará os erros mostrados.
Isso conclui o tópico sobre segurança do sistema e fundamentos de segurança em geral. Em todo o capítulo, esclarecemos as medidas básicas de segurança que você pode implementar para proteja o seu sistema Linux de programas maliciosos usuários como hackers ou funcionários insatisfeitos.