Renomeie / etc / passwd e / etc / shadow por motivos de segurança [closed]

8

Eu tenho um servidor. Meu servidor é seguro, mas vamos imaginar um bom hacker que entre. Ele agora pode examinar /etc/passwd e /etc/shadow . Gostaria de renomear os arquivos /etc/passwd para algo como /etc/xxanoda .

Eu pensei em fazer um link, mas para um hacker será fácil fazer ls -l .

É possível renomear esses arquivos e ainda ter um sistema operacional em execução, sem problemas de compatibilidade, ou é completamente inútil? Apenas pela busca de conhecimento.

    
por Marco Caggiano 07.02.2014 / 16:03

5 respostas

29

O Padrão de Hierarquia do Sistema de Arquivos para sistemas unix-like inclui /etc/passwd em um local fixo e as ferramentas são geralmente codificadas para procurar por isso. Embora, em teoria, você pudesse recompilar todos os utilitários relevantes para procurar em um novo local, qualquer invasor poderia sempre procurar cadeias de caracteres nesses binários para localizar o novo arquivo ou usar expressões regulares para localizar arquivos com conteúdo semelhante a passwd .

O arquivo shadow deve ser legível apenas para root (e possivelmente para um grupo chamado shadow ). Se um invasor conseguiu obter acesso root ao seu sistema, ele tem controle total e se ele pode ou não ler seus arquivos passwd / shadow é bem irrelevante nesse ponto.

Existem algumas situações em que ter arquivos que não estão em lugares esperados pode ajudar, por exemplo, se você tiver um servidor web mal configurado que permita que alguém solicite http://myserver/../../etc/passwd , mas em geral esse tipo de indireto exigirá muito trabalho para um benefício de segurança mínimo.

    
por chronitis 07.02.2014 / 16:14
12

A melhor coisa seria "completamente inútil", como você diz. (Não fornece um obstáculo adicional para um intruso)

/etc/passwd contém nomes de conta, mas qualquer pessoa que tenha acesso shell ao sistema poderá localizá-los.

/etc/shadow contém informações confidenciais (os hashes de senha), mas é legível apenas para raiz. Se um invasor conseguiu privilégios de root - bem como você soletra desastre ?

    
por user1721265 07.02.2014 / 18:43
9

Nos Unices modernos (e no Unix-like, incluindo o Ubuntu), /etc/passwd não contém nenhum segredo. Renomear seria mais um problema do que vale a pena, dado o número de utilitários que precisariam ser reconstruídos para procurá-lo em sua nova localização.

/etc/shadow é outra questão, pois há segredos nesse arquivo, mas renomá-lo não ajudará. É apenas legível pelo root, por isso, mesmo que um hacker entre no sistema como outro usuário, isso não é suficiente para chegar ao arquivo. É por isso que as senhas foram tiradas de /etc/passwd : todo mundo precisa ser capaz de ler /etc/passwd , mas somente o root precisa ser capaz de obter as senhas reais, então as senhas foram movidas para um arquivo que apenas root poderia ler.

Se o hacker fizer root, uma renomeação não salvará você. Uma simples recursiva grep poderia dar ao hacker uma lista de arquivos em um formato /etc/shadow -like, e então o hacker só tem que olhar através deles para encontrar os dados que ele quer. Você o atrasou por algumas horas no máximo, e provavelmente menos: novamente, não vale a pena o tempo que levaria para modificar e recompilar todos os utilitários que dependem da localização de /etc/shadow .

    
por The Spooniest 07.02.2014 / 19:55
2

Você não pode simplesmente renomear esses arquivos. Muitos processos e programas irão procurá-los, já que este é um padrão nos sistemas Linux. O que você pode fazer é securizar seu servidor da maneira correta.

    
por Frantique 07.02.2014 / 16:13
1

Embora provavelmente não seja útil renomear os arquivos /etc/passwd e /etc/shadow , se você deseja segurança adicional, pode querer examinar o PAM (módulos de autenticação conectáveis) e o NSS (Name Service Switch). Como aqui

O PAM pode ser usado para adicionar módulos de autenticação que, em vez de ler sua autenticação se a partir dos arquivos padrão, o leiam de outra fonte, como do ldap ou de um banco de dados. Usá-lo significaria que o /etc/shadow pode ser quase totalmente eliminado.

O NSS complementa o PAM fazendo algumas das resoluções de nome (como a que grupos este usuário pertence) independentemente dos arquivos padrão ( /etc/passwd , /etc/groups ). Usá-lo significaria que seu arquivo passwd provavelmente conteria apenas uma opção de fallback para root e nada mais. Usar chaves SSH para validar o login root também eliminaria a necessidade de ter uma senha root dentro do arquivo shadow (embora possa ser desejado se a conexão SSH quebrar).

Alternativamente, se você não quiser autenticar seus usuários através de um banco de dados separado ou host ldap, você também pode criar seus próprios módulos PAM e NSS, que lêem seus dados de um arquivo não padrão, embora eu não recomende esta opção.

Quando você quiser tentar usá-los, nunca esqueça de manter algum tipo de fallback em uma camada de autenticação conhecida e em funcionamento, caso contrário, você poderá se bloquear do sistema, mesmo com o root.

Note que nem todos os aplicativos suportam o PAM (muitos deles, no entanto). No entanto, o NSS pode ser usado para implementar autenticação para aplicativos que não suportam o PAM, e alguns sites que eu li sobre o NSS realmente sugerem essa abordagem. No entanto, isso significa que o módulo NSS fornecerá a (potencialmente) senha com hash a qualquer pessoa que possa acessar a camada de autenticação do NSS, que é quase sempre algo que você deseja evitar (é basicamente o mesmo que conceder acesso de leitura não raiz ao arquivo de sombra )! Então, se você está indo nessa abordagem, sempre certifique-se de que o NSS seja usado apenas para fornecer ao usuário os dados básicos (como o conteúdo de /etc/passwd ), e o PAM é usado como a camada de autenticação.

    
por SztupY 07.02.2014 / 23:14